How would i lock the player in place without anchoring the root part?

Hello! I am currently reworking a combat system and I want to go from locking a player in place by anchoring a root part to a different method, due to the fact that the anchoring messed with other game elements.

How would I lock the player in place but still allow them some moblity?

Here is an example of what I mean:

This footage is from the game Blotch by codyblade

As you can see, you can still move your character around while locked in place. How would I go about doing this?

1 Like

walkspeed 0 would stop movement, and jumppower 0

Hi,
if you are controlling the character with a custom movement script, you can use humanoidInstance:Move(moveVector) to have full controll over character movement.
You typically calculate the moveVector you pass into the function based on inputs (register inputs with UserInputService) and stop listening to inputs whenever there is this kind of “cutscene” playing.
With humanoidInstance:Move(Vector3.zero) you can instantly stop the player.

I recommend to disable the “AutoRotate” attribute of the player’s Humanoid instance when manually controlling movement.

You can disable their movement by requiring the movement module under playerscripts and set the Humanoid.AutoRotate to false

local lp = game:GetService("Players").LocalPlayer
local Controls = require(lp.PlayerScripts.PlayerModule):GetControls()

Controls:Disable()
lp.Character:FindFirstChildWhichIsA("Humanoid").AutoRotate = false
task.delay(10, function()
Controls:Enable()
end)