Hosting and domain costs until October 2024 have been generously sponsored by dumptruck_ds. Thank you!

Fields:Movetype

From Quake Wiki

The movetype field determines what kind of physics an entity has applied to it. This doesn't have much to do with the movement of the entity itself but rather how the physics engine determines how velocity (and sometimes angular velocity) is applied to that entity. It can also change what collisions are considered valid when moving. Some move types come with an expectation that the solid field is a specific type. Changing an entity's move type can be done freely but certain precautions should be taken to ensure that the move type and solid type fields match when necessary. Thinking logic is often ran before the entity moves with some exceptions.

Players have special movement handling and only certain move types are valid on them. This includes MOVETYPE_NONE, MOVETYPE_WALK, MOVETYPE_TOSS, MOVETYPE_BOUNCE, MOVETYPE_FLY, and MOVETYPE_NOCLIP. Other move types should be avoided.

Move Types[edit]

  • MOVETYPE_NONE
This entity has no physics applied to it. It can still be collided against depending on its solid type. Does not apply angular velocity.
  • MOVETYPE_WALK
Only for use with players. Designates that the player should use standard movement physics. Does not apply angular velocity.
  • MOVETYPE_STEP
This entity is designed to move in discrete steps instead of using its velocity field. This is mainly used with monsters. Gravity and velocity are only applied if the entity is not on the ground, can't swim, and can't fly. Thinking logic is ran after moving. Does not apply angular velocity.
  • MOVETYPE_FLY
Similar to MOVETYPE_TOSS but gravity is not applied when off the ground. On players this will simply move the player in the direction of their velocity with no special rules or angular velocity.
  • MOVETYPE_TOSS
This entity has been thrown into the air. This is mainly used with items. Gravity is still applied, but only if the entity hasn't hit the ground yet. When the entity is on the ground, no more physics will be applied to it, including angular velocity. If the solid type of the entity is SOLID_TRIGGER or SOLID_NONE, only entities with SOLID_BSP are tested against.
  • MOVETYPE_PUSH
This entity is designed to push other entities around. This should only be paired with the solid type SOLID_BSP. This is mainly for entities like platforms, doors, and trains. Entities that have this will use their ltime field instead of the global time field to track timings. This is because their timer stops whenever they come across something that blocks them, allowing for movement timings to remain consistent even when it's unable to do so. Entities with MOVETYPE_PUSH, MOVETYPE_NOCLIP, and MOVETYPE_NONE will not be pushed when moving. Thinking logic is done after moving. Does not apply angular velocity.
  • MOVETYPE_NOCLIP
This entity simply moves to its end destination with no collision checking. On players angular velocity is not applied.
  • MOVETYPE_FLYMISSILE
Similar to MOVETYPE_FLY but when doing collision checks, a pseudo bounding box of size (30, 30, 30) is used to test collision specifically against entities with the FL_MONSTER flag. This is mainly used with projectiles which often have a size of (0, 0, 0).
  • MOVETYPE_BOUNCE
Similar to MOVETYPE_TOSS but when hitting a surface, it will bounce off of it. If the z velocity is below 60 units/second when hitting the ground, it'll also cancel its momentum entirely. This is mainly used with grenades but Spawns also use it when flying through the air.