I've made code so that after tapping E or Q, the movement naturally slows down, but after it does, it continues going the opposite direction and starts speeding up.
local UserInputService = game:GetService("UserInputService") local player = game.Players.LocalPlayer; local char = player.Character or player.CharacterAdded:wait(); local bodyAngularVelocity = Instance.new("BodyAngularVelocity") bodyAngularVelocity.AngularVelocity = Vector3.new(0,0,0) bodyAngularVelocity.Parent = char.Torso UserInputService.InputBegan:connect(function(input, gameProcessed) if input.KeyCode == Enum.KeyCode.E and not gameProcessed then bodyAngularVelocity.AngularVelocity = Vector3.new(0, 0, -2) end end) UserInputService.InputEnded:connect(function(input, gameProcessed) if input.KeyCode == Enum.KeyCode.E and not gameProcessed then while true do if bodyAngularVelocity.AngularVelocity ~= Vector3.new(0,0,0) then char.Torso.BodyAngularVelocity.AngularVelocity = Vector3.new(0, 0, char.Torso.BodyAngularVelocity.AngularVelocity.Z + 0.05) wait() else bodyAngularVelocity.AngularVelocity = Vector3.new(0,0,0) end wait() end end end) UserInputService.InputBegan:connect(function(input, gameProcessed) if input.KeyCode == Enum.KeyCode.Q and not gameProcessed then bodyAngularVelocity.AngularVelocity = Vector3.new(0, 0, 2) end end) UserInputService.InputEnded:connect(function(input, gameProcessed) if input.KeyCode == Enum.KeyCode.Q and not gameProcessed then while true do if bodyAngularVelocity.AngularVelocity ~= Vector3.new(0,0,0) then char.Torso.BodyAngularVelocity.AngularVelocity = Vector3.new(0, 0, char.Torso.BodyAngularVelocity.AngularVelocity.Z - 0.05) wait() else bodyAngularVelocity.AngularVelocity = Vector3.new(0,0,0) end wait() end end end)
I would be extremely grateful if i could be corrected or told what the issue is, and how to fix it.
Thanks.