Force a player to trip?

so i’ve been trying to figure out how to force the player humanoid to “trip” (as in, make it enter the state where they are temporarily knocked over for a few seconds, before eventually standing up on their own). However, no matter what i do, I cannot seem to force the player to enter this state without simply hitting it with a fast-moving object, or quickly switching between things like sit or platformstand after applying force to the player (I would prefer to just trip the player immediately). After looking at some of the humanoidstatetypes, I’ve found the ones that actually correspond to the player being tripped seem to do nothing when you attempt to manually change to them (or maybe I’m just doing it wrong, still unsure). Does anyone have a method to automatically send the player into the tripping state without needing to mess with other aspects of the physics?

local function Trip(Character: Model)
	local RootPart = Character.PrimaryPart
	local Humanoid = Character.Humanoid
	Humanoid:ChangeState(Enum.HumanoidStateType.FallingDown)
	-- apply small impulse to actually make the character fall down
	RootPart.AssemblyLinearVelocity += RootPart.CFrame.LookVector * 5
end
3 Likes

this doesn’t seem to work, it moves the player very slightly, but doesn’t actually make them trip. Changing 5 to something large like 20000 does make the player trip, but also makes the player clip through the floor in most cases

This does, in fact, work
I even included a pretty lightning effect to demonstrate how shocked I am to discover that it doesnt work for you

2 Likes

so upon looking into this more, it seems the script works, but doesn’t work with the animation script i was using for some reason. Guess I just need to figure out what I need to change to make it work with it.

update, turns out it was actually an issue with how I was going about sending the trip command via a server script instead of a local one.