Skip to content

Streaming ​

Streaming limits replicated entities to players near the same world region. The server partitions space into square shards controlled by shard_size and recomputes visibility every streaming_tick_rate_ms.

streaming_visibility_radius is measured in shards, not GTA units. Increasing it expands the neighborhood around every player and can substantially increase network and client entity load.

Stream lifecycle ​

When an entity becomes visible, the client receives a state snapshot and emits the corresponding *StreamIn event. Live authoritative changes follow while it remains visible. On departure, *StreamOut is emitted and the local native representation may be destroyed.

Client wrappers distinguish two identifiers:

  • id is a client-local wrapper identifier and can be reused.
  • remoteId is the server/network entity identifier used by generic replicated metadata APIs.

Players have a single network identifier exposed as id. A remote player's handle is 0 while the player is known but not currently streamed.

Dimensions are an additional visibility boundary. Distance alone never streams entities across dimensions.

VIMP developer documentation