-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. Deal with caution. -- -- Stay safe: -- • Never log in on unofficial Roblox sites or lookalike domains. -- • Real Roblox links use roblox.com (check the .com ending). -- • Treat fake Roblox login / "claim reward" pages as phishing. -- [[ End Rscripts Risk Notice ]] local Players = game:GetService("Players") local RunService = game:GetService("RunService") local LocalPlayer = Players.LocalPlayer -- Yield safely until the Legacy character framework is initialized local Character = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait() local Humanoid = Character:WaitForChild("Humanoid") local RootPart = Character:WaitForChild("HumanoidRootPart") local Torso = Character:WaitForChild("Torso") local RootJoint = RootPart:WaitForChild("RootJoint") -- Core Configuration Tuned for Classic FPE:S Physics local BREATHING_SPEED = 1.4 local BREATHING_AMPLITUDE = 0.04 local LEAN_INTENSITY = 0.35 local WOBBLE_SPEED = 13 local LEG_SWING_INTENSITY = 0.45 local HAND_WOBBLE_INTENSITY = 0.35 -- Wipe out standard animation tracking so they never clash with your sways for _, track in pairs(Humanoid:GetPlayingAnimationTracks()) do track:Stop(0) end Humanoid.AnimationPlayed:Connect(function(track) track:Stop(0) end) -- FORCE THE OVERRIDE CHAT PANEL TO STAY PERMANENTLY ACTIVE task.spawn(function() while task.wait(1) do local playerGui = LocalPlayer:FindFirstChild("PlayerGui") if playerGui then for _, gui in pairs(playerGui:GetChildren()) do if gui:IsA("ScreenGui") and (gui.Name:match("VR") or gui:FindFirstChild("Ask anything") or gui:FindFirstChildOfClass("Frame")) then gui.Enabled = true end end end end end) -- BULLETPROOF JOYSTICK LOCK ENGINE (Overrides Roblox's automatic RightGrip resets) local function lockHeldItem() if Humanoid.Health <= 0 then return end local equippedTool = Character:FindFirstChildOfClass("Tool") if equippedTool then local handle = equippedTool:FindFirstChild("Handle") -- Targets any variation of Legacy FPE:S arm segments local rightHandPart = Character:FindFirstChild("Right Arm Part 2") or Character:FindFirstChild("Right Arm Part 1") or Character:FindFirstChild("Right Arm") if handle and rightHandPart then handle.Massless = true -- Intercepts the engine's hardcoded joystick grip instance local rightGrip = rightHandPart:FindFirstChild("RightGrip") or handle:FindFirstChild("RightGrip") if rightGrip then -- Overwrites its physical math CFrame every single frame instead of deleting it rightGrip.C0 = CFrame.new(0, -1, 0) * CFrame.Angles(math.rad(-90), 0, 0) else local backupWeld = rightHandPart:FindFirstChild("MobileVRWeld") if not backupWeld then backupWeld = Instance.new("Weld") backupWeld.Name = "MobileVRWeld" backupWeld.Part0 = rightHandPart backupWeld.Part1 = handle backupWeld.Parent = rightHandPart end backupWeld.C0 = CFrame.new(0, -1, 0) * CFrame.Angles(math.rad(-90), 0, 0) end end end end -- Hook item safety check directly to joystick input vectors Humanoid:GetPropertyChangedSignal("MoveDirection"):Connect(lockHeldItem) Character.ChildAdded:Connect(lockHeldItem) -- Procedural Render Pipeline Override RunService.RenderStepped:Connect(function() if not Character or not Character:Parent() or Humanoid.Health <= 0 then return end local timeSeconds = tick() local speed = Vector3.new(RootPart.AssemblyLinearVelocity.X, 0, RootPart.AssemblyLinearVelocity.Z).Magnitude local camera = workspace.CurrentCamera -- Detect if player spawned as an FPE Teacher (Disables VR layout to avoid character model crashes) local isTeacher = Character.Name:match("Circle") or Character.Name:match("Bloomie") or Character.Name:match("Thavel") or RootPart.Size.Y > 3.5 if isTeacher then if speed > 2 then local heavyWobbleX = math.sin(timeSeconds * 14) * 0.03 local heavyWobbleY = math.abs(math.cos(timeSeconds * 14)) * 0.04 camera.CFrame = camera.CFrame * CFrame.new(heavyWobbleX, heavyWobbleY, 0) * CFrame.Angles(0, 0, heavyWobbleX * 0.5) end return end -- Always run the weapon joystick constraint check lockHeldItem() local leftShoulder = Torso:FindFirstChild("Left Shoulder") or Torso:FindFirstChild("LeftShoulder") local rightShoulder = Torso:FindFirstChild("Right Shoulder") or Torso:FindFirstChild("RightShoulder") local leftHip = Torso:FindFirstChild("Left Hip") or Torso:FindFirstChild("LeftHip") local rightHip = Torso:FindFirstChild("Right Hip") or Torso:FindFirstChild("RightHip") local cycleSin = math.sin(timeSeconds * WOBBLE_SPEED) local cycleCos = math.cos(timeSeconds * WOBBLE_SPEED) local pitchAngle = math.asin(camera.CFrame.LookVector.Y) --------------------------------------------------------- -- SERVER REPLICATED REACTION MATRIX (FE Safe) --------------------------------------------------------- if speed < 1.5 then local idleX = math.sin(timeSeconds * BREATHING_SPEED) * BREATHING_AMPLITUDE local idleY = math.cos(timeSeconds * BREATHING_SPEED * 2) * (BREATHING_AMPLITUDE * 0.4) RootJoint.Transform = CFrame.new(0, idleY, 0) * CFrame.Angles((pitchAngle * LEAN_INTENSITY) + (idleX * 0.5), 0, 0) local armIdleX = math.sin(timeSeconds * (BREATHING_SPEED * 0.5)) * 0.03 if leftShoulder then leftShoulder.Transform = CFrame.Angles(0, 0, armIdleX) end if rightShoulder then rightShoulder.Transform = CFrame.Angles(0, 0, -armIdleX) end if leftHip then leftHip.Transform = CFrame.new() end if rightHip then rightHip.Transform = CFrame.new() end else local bobCycle = math.abs(cycleCos) * 0.12 RootJoint.Transform = CFrame.new(0, -bobCycle, 0) * CFrame.Angles(pitchAngle * LEAN_INTENSITY, 0, cycleSin * 0.08) if leftShoulder then leftShoulder.Transform = CFrame.Angles(cycleSin * 0.1, 0, cycleSin * HAND_WOBBLE_INTENSITY) end if rightShoulder then rightShoulder.Transform = CFrame.Angles(-cycleSin * 0.1, 0, -cycleSin * HAND_WOBBLE_INTENSITY) end if leftHip then leftHip.Transform = CFrame.Angles(cycleSin * LEG_SWING_INTENSITY, 0, 0) end if rightHip then rightHip.Transform = CFrame.Angles(-cycleSin * LEG_SWING_INTENSITY, 0, 0) end end end)