-- [[ 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 local Camera = workspace.CurrentCamera -- Clean up older interface if LocalPlayer.PlayerGui:FindFirstChild("FPE_MobileVR_Final") then LocalPlayer.PlayerGui.FPE_MobileVR_Final:Destroy() end -- Interface local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "FPE_MobileVR_Final" ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui") local ToggleBtn = Instance.new("TextButton") ToggleBtn.Size = UDim2.new(0, 160, 0, 50) ToggleBtn.Position = UDim2.new(0.05, 0, 0.15, 0) ToggleBtn.BackgroundColor3 = Color3.fromRGB(220, 50, 50) ToggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255) ToggleBtn.Text = "VR Override: ON" ToggleBtn.TextSize = 16 ToggleBtn.Font = Enum.Font.SourceSansBold ToggleBtn.Parent = ScreenGui local BtnCorner = Instance.new("UICorner") BtnCorner.CornerRadius = UDim.new(0, 10) BtnCorner.Parent = ToggleBtn local vrEnabled = true local leftArmCur, rightArmCur = CFrame.new(), CFrame.new() local leftLegCur, rightLegCur = CFrame.new(), CFrame.new() local torsoCur = CFrame.new() -- MAXIMUM WOBBLE TUNING CONFIG local armInertia = 0.08 -- Lowered for fluid, loose controller dragging local legInertia = 0.12 local bodyLeanInertia = 0.09 local wobbleSpeed = 18 -- Accelerated cycle for active tracking jitters local wobbleAmt = 0.065 -- Multiplied shake size for maximum hand bounce -- R6 Base Joint Offsets local R6_LeftShoulderRest = CFrame.new(-1, 0.5, 0) * CFrame.Angles(0, -math.pi/2, 0) local R6_RightShoulderRest = CFrame.new(1, 0.5, 0) * CFrame.Angles(0, math.pi/2, 0) local R6_LeftHipRest = CFrame.new(-0.5, -1, 0) * CFrame.Angles(0, -math.pi/2, 0) local R6_RightHipRest = CFrame.new(0.5, -1, 0) * CFrame.Angles(0, math.pi/2, 0) local R6_RootJointRest = CFrame.new(0, 0, 0) * CFrame.Angles(-math.pi/2, 0, math.pi) ToggleBtn.MouseButton1Click:Connect(function() vrEnabled = not vrEnabled local char = LocalPlayer.Character local animateScript = char and char:FindFirstChild("Animate") if vrEnabled then ToggleBtn.Text = "VR Override: ON" ToggleBtn.BackgroundColor3 = Color3.fromRGB(220, 50, 50) if animateScript then animateScript.Disabled = true end else ToggleBtn.Text = "VR Override: OFF" ToggleBtn.BackgroundColor3 = Color3.fromRGB(0, 160, 80) if animateScript then animateScript.Disabled = false end if char and char:FindFirstChild("Torso") then local torso = char.Torso local rootPart = char:FindFirstChild("HumanoidRootPart") if rootPart and rootPart:FindFirstChild("RootJoint") then rootPart.RootJoint.C0 = R6_RootJointRest end if torso:FindFirstChild("Left Shoulder") then torso["Left Shoulder"].C0 = R6_LeftShoulderRest end if torso:FindFirstChild("Right Shoulder") then torso["Right Shoulder"].C0 = R6_RightShoulderRest end if torso:FindFirstChild("Left Hip") then torso["Left Hip"].C0 = R6_LeftHipRest end if torso:FindFirstChild("Right Hip") then torso["Right Hip"].C0 = R6_RightHipRest end end end end) RunService.RenderStepped:Connect(function() if not vrEnabled then return end local char = LocalPlayer.Character local hum = char and char:FindFirstChildOfClass("Humanoid") local torso = char and char:FindFirstChild("Torso") local rootPart = char and char:FindFirstChild("HumanoidRootPart") if not (torso and hum and rootPart) then return end local rootJoint = rootPart:FindFirstChild("RootJoint") local leftShoulder = torso:FindFirstChild("Left Shoulder") local rightShoulder = torso:FindFirstChild("Right Shoulder") local leftHip = torso:FindFirstChild("Left Hip") local rightHip = torso:FindFirstChild("Right Hip") if not (rootJoint and leftShoulder and rightShoulder and leftHip and rightHip) then return end local animateScript = char:FindFirstChild("Animate") if animateScript and not animateScript.Disabled then animateScript.Disabled = true end local clock = tick() local isMoving = hum.MoveDirection.Magnitude > 0.1 -- Independent math waves for loose controller tracking emulation local wbyLeftX = math.sin(clock * wobbleSpeed) * wobbleAmt local wbyLeftY = math.cos(clock * (wobbleSpeed * 0.85)) * (wobbleAmt * 1.2) local wbyRightX = math.cos(clock * (wobbleSpeed * 1.1)) * wobbleAmt local wbyRightY = math.sin(clock * (wobbleSpeed * 0.95)) * (wobbleAmt * 1.2) local camLook = Camera.CFrame.LookVector local pitch = math.asin(camLook.Y) local clampedPitch = math.clamp(pitch, -math.rad(60), math.rad(60)) -- Spine structural lean local leanX = clampedPitch * 0.35 local leanZ = math.sin(clock * 2.5) * 0.03 if isMoving then leanX = leanX + 0.1 end torsoCur = torsoCur:Lerp(R6_RootJointRest * CFrame.Angles(leanX, 0, leanZ), bodyLeanInertia) rootJoint.C0 = torsoCur ----------------------------------------- -- FIXED SEPARATED ARM ALIGNMENT ----------------------------------------- -- Clears out inward crossing angles. Pulls hands outward and lets them wiggle freely. local armLeftTgt = R6_LeftShoulderRest * CFrame.Angles(-clampedPitch + wbyLeftX, 0, math.rad(10) + wbyLeftY) * CFrame.new(0, wbyLeftY, -0.1) local armRightTgt = R6_RightShoulderRest * CFrame.Angles(clampedPitch + wbyRightX, 0, -math.rad(10) + wbyRightY) * CFrame.new(0, wbyRightX, -0.1) leftArmCur = leftArmCur:Lerp(armLeftTgt, armInertia) rightArmCur = rightArmCur:Lerp(armRightTgt, armInertia) leftShoulder.C0 = leftArmCur rightShoulder.C0 = rightArmCur -- Leg wobble logic if isMoving then local walkCycle = clock * (hum.WalkSpeed * 0.85) local leftSway = math.sin(walkCycle) local rightSway = math.cos(walkCycle) local legLeftTgt = CFrame.new(-0.5 + (leftSway * 0.15), -1 + (math.abs(rightSway) * 0.15), leftSway * 0.25) * CFrame.Angles(leftSway * 0.5, math.rad(-90), 0) local legRightTgt = CFrame.new(0.5 + (rightSway * 0.15), -1 + (math.abs(leftSway) * 0.15), rightSway * 0.25) * CFrame.Angles(rightSway * 0.5, math.rad(90), 0) leftHip.C0 = leftHip.C0:Lerp(legLeftTgt, legInertia) rightHip.C0 = rightHip.C0:Lerp(legRightTgt, legInertia) else leftHip.C0 = leftHip.C0:Lerp(R6_LeftHipRest, legInertia) rightHip.C0 = rightHip.C0:Lerp(R6_RightHipRest, legInertia) end end)