Aside from the game engine, which has undergone various iterations over the years (since Halo: CE), the core functionality is based on a “bridge” system between native code (C++) and Lua code (executed on the client and/or server).
Comments
Log in with your Bluesky account to leave a comment
Some exposed methods don’t behave the same way locally as they do online. For instance, a method called object_attach allows you to attach object A to object B. Taking the Prop Hunt mode as an example, you could:
1. Create an object (in Halo Infinite, this object must exist in the map’s tag list).
2. Make the player invisible (object_hide).
3. Attach the created object to the player so it follows their movements.
This works perfectly, right? However, in practice, and only online, the object remains in its initial position.
Ideally, a method to replace the player’s biped with an object would be the best solution. Such a method does exist on the C++ side, but it is not exposed on the Lua side.
Comments
- Anything related to vehicle physics = C++
- Anything related to events (medals, kills, etc.) = Lua
Some exposed methods don’t behave the same way locally as they do online. For instance, a method called object_attach allows you to attach object A to object B. Taking the Prop Hunt mode as an example, you could:
2. Make the player invisible (object_hide).
3. Attach the created object to the player so it follows their movements.
Ideally, a method to replace the player’s biped with an object would be the best solution. Such a method does exist on the C++ side, but it is not exposed on the Lua side.