Halo 1 uses a custom in-house physics engine which simulates the movement of dynamic objects like units, items, projectiles, and point_
Different object interactions are simulated in different ways. For example, vehicles use physics to drive themselves, collide with scenery and the BSP, and collide with other vehicles, but their model_
Limits
Vehicles cannot move to the space below approximately -4,950 world units in the Z (vertical) axis. Vehicles spawned at this extreme distance will sit on an invisible floor and return to the floor if moved below. This is not far from the -5,000 world unit limit for the game camera. Vehicles can freely move beyond 5,000 units in a horizontal axis.
Related HaloScript
The following are related functions that you can use in your scenario scripts and/or debug globals that you can enter into the developer console for troubleshooting.
Function/global | Type | |
---|---|---|
If enabled, a ray is continually shot from the camera (by default) to troubleshoot ray-object and ray-BSP collisions. A red normal-aligned marker will be shown where the ray collides with a surface. The collision surface itself, whether BSP or model, will be outline in red. Information about the collision surface will be shown in the top left corner of the screen, including plane and surface indices from the BSP structure, material type, and how many degrees the surface's normal differs from vertical. The types of surfaces which the test ray hits or ignores can be toggled with the This feature can be frozen in place with | Global | |
Toggles the display of collision features near the camera, which can be spheres (red), cylinders (blue), or prisms (green). Collision size can be adjusted with | Global | |
When | Global | |
When | Global | |
Toggles if collision debug rays ignore breakable surfaces. Defaults to | Global | |
Toggles if collision debug rays ignore invisible surfaces (e.g. collision-only player clipping). Defaults to | Global | |
Toggles if collision debug rays ignore two-sided surfaces. Defaults to | Global | |
Toggles if collision debug rays collide with water surfaces. | Global | |
Toggles if collision debug rays collide with any class of object's collision geometry. This setting will be ignored if any more specific object flag is enabled, such as | Global | |
Toggles if collision debug rays collide with bipeds. | Global | |
Toggles if collision debug rays collide with device_ | Global | |
Toggles if collision debug rays collide with equipment. | Global | |
Toggles if collision debug rays collide with device_ | Global | |
Toggles if collision debug rays collide with device_ | Global | |
Toggles if collision debug rays collide with placeholders. This would require a custom placeholder to have an effect, since the placeholder tags that come with the HEK have no collision model. | Global | |
Toggles if collision debug rays collide with projectiles. Note that most projectiles do not have a collision model. | Global | |
Toggles if collision debug rays collide with scenery. | Global | |
Toggles if collision debug rays collide with vehicles. | Global | |
Toggles if collision debug rays collide with weapons. | Global | |
Unknown purpose. Does not seem to affect collision ray tests against bipeds. | Global | |
Toggles if collision debug rays collide with the structure BSP. Collisions with model_ | Global | |
Unknown purpose. | Global | |
If enabled, collision debug rays will collide with vehicle physics spheres rather than their model_ | Global | |
When and | Global | |
Sets the maximum test ray length for | Global | |
Causes a floating pink cube and label "phantom bsp" to appear whenever a test ray from the center of the screen intersects with phantom BSP. It can be helpful to pair this with | Global | |
Represents the current origin of the | Global | |
See | Global | |
See | Global | |
Setting this to | Global | |
Setting this to | Global | |
Represents the current direction of the | Global | |
See | Global | |
See | Global | |
When | Global | |
Resets all physics constants to earthly values. | Function | |
Get the current global gravity acceleration relative to Halo standard gravity. | Function | |
Set global gravity acceleration relative to Halo standard gravity. The change in gravity is NOT network synchronized. | Function | |
Stops the vehicle from running real physics and runs fake hovering physics instead | Function |