Whenever a mission is launched (or joined in multiplayer) certain tasks are performed to ensure the mission's various components are initialized correctly and that everyone is synced in multiplayer games (particularly JIP players). Initialization order refers to the order in which those tasks are executed and it's important to take into account when setting up the start of a mission.
Take note that the order of initialization is different in single player and multiplayer environments. If an entry is unmarked then it applies to both.
|Single Player Only|
|Order is not guaranteed|
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.
|Task||Applies To||JIP||Related To||Exec Environment|
|Functions with recompile attribute are recompiled||All||✔||Functions Library (Arma 3)|
|Functions with preInit attribute are called||All||✔||Functions Library (Arma 3)||Unscheduled|
|Object Init Event Handlers are called||All||Unscheduled|
|Expressions of Eden Editor entity attributes are called||Eden Editor: Configuring Attributes||Unscheduled|
|Object initialization fields are called||All||✔||Unscheduled|
|init.sqs is executed||Single Player||Event Scripts|
|init.sqf is executed||Single Player||Event Scripts||Scheduled|
|Expressions of Eden Editor scenario attributes are called||All||✔||Eden Editor: Configuring Attributes||Unscheduled|
|Persistent functions are called||Client||✔||BIS_fnc_MP|
|Modules are initialized||All|
|initServer.sqf is executed||Server||Event Scripts||Scheduled|
|initPlayerLocal.sqf is executed||Client||✔||Event Scripts||Scheduled|
|initPlayerServer.sqf is executed on the server||Client||✔||Event Scripts||Scheduled|
|Functions with postInit attribute are called||All||✔||Functions Library (Arma 3)||Scheduled|
|"BIS_fnc_init" variable is set to true||All||✔|
|init.sqs is executed||All||✔||Event Scripts||Scheduled|
|init.sqf is executed||All||✔||Event Scripts||Scheduled|