Custom Humanoid is causing "sleeping" parts?

I’m currently creating my own humanoid for my game which is made of constraints(y’all can hear me screaming in pain), but whenever I try to move, I have to jump first before I can actually move? I think this is what the term “Sleeping Parts” means where you have to apply a certain amount of force before that part will actually move with its parent or whatever it’s attached to.

You can see what I’m talking about in this video:

I was pressing the WASD keys before the part where my character gets slightly pushed down or moves strangely, if anyone can suggest a fix, please do tell me. For those who wants to view the place file, just let me know and I’ll send a message with the place file.

Edit:
I was able to get the permission to share the file publicly, so here’s the place file
Zzz.rbxl (24.6 KB)

1 Like

I made a very, very hacky solution for it:

local char = script.Parent

local humanoid = char:WaitForChild("Humanoid")
local root = char:WaitForChild("HumanoidRootPart")

humanoid:GetPropertyChangedSignal("MoveDirection"):Connect(function()
	local state = humanoid:GetState()
	if humanoid.MoveDirection ~= Vector3.new() and (state == Enum.HumanoidStateType.Running or state == Enum.HumanoidStateType.RunningNoPhysics) then
		root.Velocity = humanoid.MoveDirection.Unit * humanoid.WalkSpeed
	end
end)

This goes in StarterCharacterScripts.

If there is no better way to do this, call me befuddled

3 Likes