I recently started using this script and when using it at first, I detected no issues. But, when I started to use it for my horror games, I noticed that when holding a gear, it sways side to side when I don't want it to. So I made a script that makes my character visible, and I can see that the character is moving left to right while going forward. Is there any way that I can prevent this?
Video: https://gyazo.com/59516d689c869a79da3716d559e72a1d
Script:
local runService = game:GetService("RunService")
local plr = game.Players.LocalPlayer
local chr = plr.Character
local humrootpart = chr:WaitForChild("HumanoidRootPart")
local hum = chr:WaitForChild("Humanoid")
local cam = workspace.Camera
local tiltSpeedZ = 0.1
local bobbingSpeed = 0.1
local tilt = 0
local sinValue = 0
function lerp(a, b, t)
return a + (b - a) * t
end
function calculateSine(speed, intensity)
sinValue += speed
if sinValue > (math.pi * 2) then sinValue = 0 end
local sineY = intensity * math.sin(2 * sinValue)
local sineX = intensity * math.sin(sinValue)
local sineCFrame = CFrame.new(sineX, sineY, 0)
return sineCFrame
end
local previousSineX = 0
local previousSineY = 0
runService.RenderStepped:Connect(function(dt)
local movementVector = cam.CFrame:vectorToObjectSpace(humrootpart.Velocity / math.max(hum.WalkSpeed, 0.01))
local speedModifier = (hum.WalkSpeed / 16)
tilt = math.clamp(lerp(tilt, movementVector.X * tiltSpeedZ, 0.1), -0.25, 0.1)
local sineCFrame = calculateSine(bobbingSpeed * speedModifier, movementVector.Z * speedModifier)
local lerpedSineX = lerp(previousSineX, sineCFrame.X, 0.1)
local lerpedSineY = lerp(previousSineY, sineCFrame.Y, 0.1)
cam.CFrame *= CFrame.Angles(0, 0, tilt) * CFrame.new(lerpedSineX, lerpedSineY, 0)
previousSineX = lerpedSineX
previousSineY = lerpedSineY
end)

4 comments
From what i can see this script is used to make a camera Bobbling effect and the player is not actually moving side to side also this may not be related but how did you make that flashlight
When making the character visible, the character moves side to side even on other players screens. Also, the flashlight is a gear that is equipped when the player presses F.
are you talking about where the flashlight is moving around?
oh now i see the problem this may be caused by the script moving the camera left and right when going first person the player moves where you look at and the game thinks your moving your camera left and right thats why it breaks