ApplyImpulseAtPosition not working on a part owned by the server?

I’m trying to use this function to create knockback from a central point, but the affected players don’t seem to be moving. Here’s my script

local function applyKnockback(plr, origin)
	local hrp: Part = plr.Character.HumanoidRootPart
	hrp:ApplyImpulseAtPosition(, math.huge, math.huge), origin)

That thread doesn’t really help at all, I’m just wondering why ApplyImpulseAtPosition doesn’t seem to be working at all.

Did you set humanoid platform stand to true like the thread I sent.

Yes, and the knockback works when I just set AssemblyLinearVelocity.

Testing it again, I found out you definitely need a delay of around 0.2 seconds for the force to apply.

and apply impulse should work just as fine.

local RE = script.Parent.RemoteEvent

RE.OnServerEvent:Connect(function(player, hitPlayer)
	local attackerHRP = player.Character.HumanoidRootPart
	local hitPlayerHRP : BasePart = hitPlayer.Character.HumanoidRootPart
	local direction = hitPlayerHRP.Position - attackerHRP.Position
	local victimHumanoid = hitPlayer.Character.Humanoid
	--victimHumanoid.PlatformStand = true
	local trollFling =,0,0)*,1,0)*25
	--hitPlayerHRP.AssemblyLinearVelocity += trollFling
	hitPlayerHRP:ApplyImpulseAtPosition(trollFling*50, hitPlayerHRP.CenterOfMass)
	--victimHumanoid.PlatformStand = false
	print("Can walk now")

Also there seems to be a queue behavior if you apply impulse without setting network owner, the moment you set network owner all the apply impulse will stack and create a bigger one which is neat.

1 Like

Tysm for the help! The delay was all I needed (Also I spent like 5 minutes pulling my hair out because math.huge breaks ApplyImpulseAtPosition apparently)

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.