ThrustThing — thrust the actor that triggered the special.
ThrustThing (angle, force, bNoLimit);
ThrustThing ( angle, // Byte angle to thrust the thing force, // How much force to thrust the thing with bNoLimit // Whether or not to limit the thing's maximum velocity );
This special works equally well whether you use it in a script or on a line. However, if you want to use an insanely strong force, you will need to use this special in a script because lines can only accept a maximum value of 255 for any parameters.
ThrustThing operates on whatever activated it. It cannot be used to push random actors around on the map.
The force paremeter to ThrustThing does not directly determine how far the actor gets pushed, as some earlier versions of this reference suggested. Instead, it determines how "hard" the actor is pushed. The actor is then subject to friction, which will eventually slow it down to a stop. This means that the same force value will push an actor a different distance on icy and sludgy surfaces than it would on a normal surface.
If the user has compat_wallrun enabled, then every ThrustThing will act as if bNoLimit is 0. This is because wallrunning requires this limit to be in place, or the player would be able to run through walls.
ZDoom removed the maximum speed in version 1.23 beta 25, which broke earlier maps that relied on ThrustThing having a limit. This oversight was corrected in version 2.0.22, when the bNoLimit paremeter was added.
Thrust the activator north with an initial speed of 8 units/tic (not terribly fast):
ThrustThing (64, 8);
Thrust the activator west with an initial speed of 5000 units/tic (ludicrously fast):
ThrustThing (128, 5000, 1);
ZDoom 2.0.22 added bNoLimit