What would be the most effective and efficient way to launch players back?

I have ideas to launch players back, for example putting a body mover in the HumanoidRootPart. However, I have problems with multiple forces acting upon the body. I prefer to not mess around with part.Velocity but would this be my best best? Does anyone have any other possible ideas I could achieve this?

2 Likes

Personally, I would use part.Velocity

I’m not the best scripter so I’m not exactly aware of all the possible tips-and-tricks, so take my opinion with a grain of salt.

3 Likes

But it’s always good practice to incorporate ideas and bounce them around! thank you!

Use a BodyForce mover and generate an impulse

You could use SetPrimaryPartCFrame()

Personally, whenever I need to achieve a effect like this, I’ll use a body velocity to get it…

Just set the power to

Vector3.new(math.huge, 0, math.huge)

and the velocity to

chararacter.Head.CFrame.LookVector * -50

Then just delete it after a half second or so…

3 Likes

I see, I will look into this and mess around with it, I thank you!

In many of these cases people set the Sit property of the humanoid target to true so that the humanoid will stop applying forces on the player. I personally dislike this solution, even if, to get the desired effect, this is the easiest way.

The main problem for me in the previous solution is the fact that a player can just press space and the character will get up, suddenly stopping the force applied on it. A better solution that comes to my mind is to set the PlatformStand proprty of the humanoid to true and make it so as the player lays on the ground for a little while, the property sets itself back to false, letting the player get up.

Maybe if accompanied by some “sliding on the ground” animations and some force manipulation as the player hits the ground (like avoiding it bouncing around and instead making it slide) the effect would come out as neat and enjoyable for the players. This however, requires a lot of work