Initialisation Order: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Page refresh)
m (updated all → Multiplayer)
Line 142: Line 142:
|- style="background-color: #95DEF0"
|- style="background-color: #95DEF0"
| [[Event Scripts#init.sqs|init.sqs]] is executed
| [[Event Scripts#init.sqs|init.sqs]] is executed
| All
| Multiplayer
| {{task/}}
| {{task/}}
| [[Event Scripts]]
| [[Event Scripts]]
Line 149: Line 149:
|- style="background-color: #95DEF0"
|- style="background-color: #95DEF0"
| [[Event Scripts#init.sqf|init.sqf]] is executed
| [[Event Scripts#init.sqf|init.sqf]] is executed
| All
| Multiplayer
| {{task/}}
| {{task/}}
| [[Event Scripts]]
| [[Event Scripts]]

Revision as of 20:21, 22 December 2020

Whenever a mission is launched (or joined in Multiplayer) certain tasks are performed to ensure the mission's various components are initialised correctly and that everyone is synced in multiplayer games (particularly JIP players). Initialisation order refers to the order in which those tasks are executed and it is important to take into account when setting up the start of a mission.

Event Scripts are a key part of a mission's initialisation order and will be utilised often when working with SQF.


Key
Item Meaning
Single Player Only
Multiplayer Only
Order is not guaranteed

Take note that the order of initialisation is different in single player and multiplayer environments. If an entry is unmarked then it applies to both.

In multiplayer the following is relevant to every machine including the server and headless clients. If the server is non-dedicated then it should be considered both a server and client.


Arma 3

Order of Initialisation (From First to Last)
Task Applies To JIP Related To Exec Environment Notes
Functions with recompile attribute are recompiled All Template:task/ Arma 3 Functions Library
Functions with preInit attribute are called All Template:task/ Arma 3 Functions Library Unscheduled
Object Init Event Handlers are called All Template:task Unscheduled
Expressions of Eden Editor entity attributes are called Template:task Eden Editor: Configuring Attributes Unscheduled They are called on the server. isPlayer _entity; does not return true immediately. Once entity has become a player, the entity is transfered to the client.
Object initialisation fields are called All Template:task/ Unscheduled
init.sqs is executed Singleplayer N/A Event Scripts
init.sqf is executed Singleplayer N/A Event Scripts Scheduled[1]
Expressions of Eden Editor scenario attributes are called All Template:task/ Eden Editor: Configuring Attributes Unscheduled player is not available immediately.
Persistent functions are called Client Template:task/ BIS_fnc_MP
Modules are initialised All Template:task
initServer.sqf is executed Server N/A Event Scripts Scheduled
initPlayerLocal.sqf is executed Client Template:task/ Event Scripts Scheduled
initPlayerServer.sqf is executed on the server Client Template:task/ Event Scripts Scheduled
Functions with postInit attribute are called All Template:task/ Arma 3 Functions Library Scheduled[1]
"BIS_fnc_init" variable is set to true All Template:task/ Arma 2: Functions Library
init.sqs is executed Multiplayer Template:task/ Event Scripts Scheduled
init.sqf is executed Multiplayer Template:task/ Event Scripts Scheduled
  1. 1.0 1.1 Note that while the environment is Scheduled (canSuspend returns true), the engine seems to wait until the script is done executing, essentially behaving similarly to an Unscheduled environment - infinite loops will freeze the game, uiSleep may pause the game for up to ~20secs (postInit), etc.