Locality in Multiplayer
Entities in OFP are handled, in multiplayer, by one computer alone, which sends updates about this entity to other computers connected to the MP game. A unit is said "local" when it is handled by the local computer.
To know if a unit is local, use the local script command.
The basic rules to determine locality are as follows:
server = The dedicated server or the client that is hosting the game
client = A game instance used by a player, normally each is on a separate computer
- The player's unit is always local to its client
- AI units are always local to the client of their leader
- A vehicle is always local to the client of its driver
- AI leaders are always local to the server, if placed in the mission editor
- AI units created after mission start via scripting will be local to the computer that issued the command
- Empty vehicles/objects placed in the mission editor are local to the server
- Empty vehicles/objects created after mission start via scripting (with createVehicle for example) are local to the machine that issued the command
Effects of different localities
Knowing locality of a unit is very important as certain command only affect local units (see moveInDriver for example). Other commands have only local effect, nothing will be done outside of computer where the command was issued (see setFog for example).
A unit can change locality during its lifetime. Typical cases are:
- A player dying (his squad AI units are passed to server)
- Use of a join command
- Units or players entering or exiting a vehicle