Skip to main content

Train Network Limitations

All known limitations tied to trains and their effect on remote clients / OnesyncOneSyncFiveM's synchronization system that enables higher player counts (up to 48/128/256 players) with better entity management..


Cruise + velocity speed cap (+67mph)

The game keeps track of cruise speed in a serialized float value in the CTrainGameStateDataNode. Any attempts to set the cruise speed on the owning client to a speed greater than 30.f will be capped in CTrainGameStateDataNode, causing the network blender to be out of sync with the owning client.

This leads to instances where players clip off the train or where the train is out of sync until it slows down.

Negative speed with positive/negative direction

The game keeps track of the position in a boolean, but allows speed to be negative as it is a signed integer. In many cases the game does not expect speed to be negative and doesn't handle it well.

This is mainly seen with the NetTrainBlender interpolating the position — it only ever tries to calculate velocity and position in front of the train. This fails when the train moves backwards, leading to:

  • Rubberbanding effect on remote clients
  • Players unable to stand on the train without clipping through or being flung off