Lou Montana/Sandbox – User
Jump to navigation
Jump to search
Lou Montana (talk | contribs) m (Debugging Techniques stub small fixes) |
Lou Montana (talk | contribs) m (Update w/ links) |
||
(89 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
[[Category: Sandbox]] | |||
[[ | {{Feature|informative|To go on [[Initialisation Order]].}} | ||
{{ | |||
== | {| class="wikitable sortable align-center align-left-col-1" | ||
|+ Order of Initialisation (use column sorting for respective machine order) | |||
! rowspan="2" class="unsortable" style="text-align: center" | Task | |||
! rowspan="2" | Exec Environment | |||
! rowspan="1" colspan="5" class="unsortable" | Machine | |||
|- | |||
! Single Player | |||
! Dedicated Server | |||
! Hosted Server | |||
! Multiplayer Client | |||
! [[Multiplayer Scripting#Join In Progress|JIP]] MP Client | |||
|- | |||
| [[Arma 3: Functions Library|Functions]] with <syntaxhighlight lang="cpp" inline>recompile</syntaxhighlight> {{Link|Arma 3: Functions Library#Attributes 3|attribute}} are recompiled | |||
| {{n/a}} | |||
| 1 <!-- Single Player --> | |||
| 1 <!-- Dedicated Server --> | |||
| 1 <!-- Hosted Server --> | |||
| 1 <!-- Multiplayer Client --> | |||
| 1 <!-- JIP MP Client --> | |||
= | |- | ||
| [[Arma 3: Functions Library|Functions]] with <syntaxhighlight lang="cpp" inline>preInit</syntaxhighlight> {{Link|Arma 3: Functions Library#Attributes 3|attribute}} are called | |||
| [[Scheduler#Unscheduled Environment|Unscheduled]] | |||
| 2 <!-- Single Player --> | |||
| 2 <!-- Dedicated Server --> | |||
| 2 <!-- Hosted Server --> | |||
| 2 <!-- Multiplayer Client --> | |||
| 2 <!-- JIP MP Client --> | |||
|- | |||
| Object Init Event Handlers are called | |||
< | | [[Scheduler#Unscheduled Environment|Unscheduled]] | ||
| 3 <!-- Single Player --> | |||
| 3 <!-- Dedicated Server --> | |||
| 3 <!-- Hosted Server --> | |||
| 3 <!-- Multiplayer Client --> | |||
| {{Icon|unchecked}} <!-- JIP MP Client --> | |||
= | |- | ||
| Expressions of [[Eden Editor: Configuring Attributes|Eden Editor entity attributes]] are called<ref name="isPlayer"><sqf inline>isPlayer _entity</sqf> does not return [[true]] immediately. Once the entity has become a [[player]], it is transferred to the client.</ref> | |||
| [[Scheduler#Unscheduled Environment|Unscheduled]] | |||
| 4 <!-- Single Player --> | |||
| 4 <!-- Dedicated Server --> | |||
| 4 <!-- Hosted Server --> | |||
| {{Icon|unchecked}} <!-- Multiplayer Client --> | |||
| {{Icon|unchecked}} <!-- JIP MP Client --> | |||
|- | |||
| Object initialisation fields are called | |||
| [[Scheduler#Unscheduled Environment|Unscheduled]] | |||
| 5 <!-- Single Player --> | |||
| 5 <!-- Dedicated Server --> | |||
| 5 <!-- Hosted Server --> | |||
| 4 <!-- Multiplayer Client --> | |||
| 3 <!-- JIP MP Client --> | |||
= | |- style="background-color: #95F0AD" | ||
| [[Event Scripts#init.sqs|init.sqs]] is executed | |||
| | |||
| 6 <!-- Single Player --> | |||
| <!-- Dedicated Server --> | |||
| <!-- Hosted Server --> | |||
| <!-- Multiplayer Client --> | |||
| <!-- JIP MP Client --> | |||
|- style="background-color: #95F0AD" | |||
| [[Event Scripts#init.sqf|init.sqf]] is executed | |||
| [[Scheduler#Scheduled Environment|Scheduled]]<ref name="enginewaits">Note '''in single player''' that while the environment is [[Scheduler#Scheduled Environment|Scheduled]] ([[canSuspend]] returns true), the engine seems to wait until the script is done executing, essentially behaving similarly to an [[Scheduler#Unscheduled Environment|Unscheduled environment]] - infinite loops will freeze the game, [[uiSleep]] may pause the game for up to ~20s (postInit), [[waitUntil]] can cause catastrophic issues, etc.</ref> | |||
| <!-- Single Player --> | |||
| <!-- Dedicated Server --> | |||
| <!-- Hosted Server --> | |||
| <!-- Multiplayer Client --> | |||
| <!-- JIP MP Client --> | |||
|- | |||
| Expressions of [[Eden Editor: Configuring Attributes|Eden Editor scenario attributes]] are called<ref name="playerCommandNotAvailable">[[player]] is not available immediately.</ref> | |||
| [[Scheduler#Unscheduled Environment|Unscheduled]] | |||
| <!-- Single Player --> | |||
| <!-- Dedicated Server --> | |||
| <!-- Hosted Server --> | |||
| <!-- Multiplayer Client --> | |||
| <!-- JIP MP Client --> | |||
|- style="background-color: #95DEF0" | |||
| Persistent functions are called | |||
| | |||
| <!-- Single Player --> | |||
| <!-- Dedicated Server --> | |||
| <!-- Hosted Server --> | |||
| <!-- Multiplayer Client --> | |||
| <!-- JIP MP Client --> | |||
|- | |||
| [[Modules]] are initialised | |||
| | |||
| <!-- Single Player --> | |||
| <!-- Dedicated Server --> | |||
| <!-- Hosted Server --> | |||
| <!-- Multiplayer Client --> | |||
| {{Icon|unchecked}} <!-- JIP MP Client --> | |||
|- style="background-color: #DEF0AD" | |||
| [[Event Scripts#initServer.sqf|initServer.sqf]] is executed | |||
| [[Scheduler#Scheduled Environment|Scheduled]] | |||
| <!-- Single Player --> | |||
| <!-- Dedicated Server --> | |||
| <!-- Hosted Server --> | |||
| {{n/a}} <!-- Multiplayer Client --> | |||
| {{n/a}} <!-- JIP MP Client --> | |||
= | |- style="background-color: #DEF0AD" | ||
| [[Event Scripts#initPlayerLocal.sqf|initPlayerLocal.sqf]] is executed | |||
| [[Scheduler#Scheduled Environment|Scheduled]] | |||
| <!-- Single Player --> | |||
| {{n/a}} <!-- Dedicated Server --> | |||
| <!-- Hosted Server --> | |||
| <!-- Multiplayer Client --> | |||
| <!-- JIP MP Client --> | |||
|- style="background-color: #DEF0AD" | |||
| [[Event Scripts#initPlayerServer.sqf|initPlayerServer.sqf]] is executed on the server | |||
| [[Scheduler#Scheduled Environment|Scheduled]] | |||
| <!-- Single Player --> | |||
| {{n/a}} <!-- Dedicated Server --> | |||
| ?? <!-- Hosted Server --> | |||
| <!-- Multiplayer Client --> | |||
| <!-- JIP MP Client --> | |||
|- | |- | ||
| {{ | | [[Arma 3: Functions Library|Functions]] with <syntaxhighlight lang="cpp" inline>postInit</syntaxhighlight> {{Link|Arma 3: Functions Library#Attributes 3|attribute}} are called | ||
| < | | [[Scheduler#Scheduled Environment|Scheduled]]<ref name="enginewaits"/> | ||
| < | | <!-- Single Player --> | ||
| | | <!-- Dedicated Server --> | ||
| <!-- Hosted Server --> | |||
| <!-- Multiplayer Client --> | |||
| <!-- JIP MP Client --> | |||
|- style="background-color: #95DEF0" | |||
| [[Event Scripts#init.sqs|init.sqs]] is executed | |||
| [[Scheduler#Scheduled Environment|Scheduled]] | |||
| <!-- Single Player --> | |||
| <!-- Dedicated Server --> | |||
| <!-- Hosted Server --> | |||
| <!-- Multiplayer Client --> | |||
| <!-- JIP MP Client --> | |||
= | |- style="background-color: #95DEF0" | ||
| [[Event Scripts#init.sqf|init.sqf]] is executed | |||
| [[Scheduler#Scheduled Environment|Scheduled]] | |||
| <!-- Single Player --> | |||
| <!-- Dedicated Server --> | |||
| <!-- Hosted Server --> | |||
| <!-- Multiplayer Client --> | |||
| <!-- JIP MP Client --> | |||
|- | |||
| [[remoteExec]]'s [[Multiplayer Scripting#Join In Progress|JIP]] queue | |||
| {{n/a}} | |||
| {{n/a}} <!-- Single Player --> | |||
| {{n/a}} <!-- Dedicated Server --> | |||
| {{n/a}} <!-- Hosted Server --> | |||
| {{n/a}} <!-- Multiplayer Client --> | |||
| 42 <!-- JIP MP Client --> | |||
{{ | |||
|- style="background-color: #EEE" | |||
| ''Scenario going'' | |||
| {{n/a}} | |||
| <!-- Single Player --> | |||
| <!-- Dedicated Server --> | |||
| <!-- Hosted Server --> | |||
| <!-- Multiplayer Client --> | |||
| <!-- JIP MP Client --> | |||
|- | |- | ||
| | | [[Event Scripts#exit.sqf|exit.sqf]] | ||
| | |||
| | | | ||
| <!-- Single Player --> | |||
| <!-- Dedicated Server --> | |||
|- | | <!-- Hosted Server --> | ||
|< | | <!-- Multiplayer Client --> | ||
| | | <!-- JIP MP Client --> | ||
|- | |||
|< | |||
|- | |- | ||
| | | [[Event Scripts#exit.sqs|exit.sqs]] | ||
| | |||
| | | | ||
| <!-- Single Player --> | |||
| <!-- Dedicated Server --> | |||
| <!-- Hosted Server --> | |||
| <!-- Multiplayer Client --> | |||
| <!-- JIP MP Client --> | |||
|- | |- | ||
| | | {{Link|Arma 3: Mission Event Handlers#Ended|"Ended" Mission Event Handler}} | ||
| | | | ||
| <!-- Single Player --> | |||
| <!-- Dedicated Server --> | |||
|- | | <!-- Hosted Server --> | ||
|< | | <!-- Multiplayer Client --> | ||
| | | <!-- JIP MP Client --> | ||
|< | |||
| | |||
< | |||
|- | |- | ||
| | | {{Link|Arma 3: Mission Event Handlers#MPEnded|"MPEnded" Mission Event Handler}} | ||
| | |||
| | | | ||
| <!-- Single Player --> | |||
| | | <!-- Dedicated Server --> | ||
| <!-- Hosted Server --> | |||
| <!-- Multiplayer Client --> | |||
| <!-- JIP MP Client --> | |||
|} | |} | ||
== See Also == | |||
[[ | * [[Arma 3: Functions Library]]<!-- | ||
* [[Arma 2: Functions Library]] --> | |||
* [[Arma 3: Remote Execution]], [[BIS_fnc_MP]] <!-- keep? --> | |||
* [[Eden Editor: Configuring Attributes|Eden Editor: Configuring Attributes]] | |||
* [[Event Scripts]] | |||
* [[Scheduler]] |
Latest revision as of 00:29, 18 March 2024
Task | Exec Environment | Machine | ||||
---|---|---|---|---|---|---|
Single Player | Dedicated Server | Hosted Server | Multiplayer Client | JIP MP Client | ||
Functions with recompile attribute are recompiled
|
N/A | 1 | 1 | 1 | 1 | 1 |
Functions with preInit attribute are called
|
Unscheduled | 2 | 2 | 2 | 2 | 2 |
Object Init Event Handlers are called | Unscheduled | 3 | 3 | 3 | 3 | |
Expressions of Eden Editor entity attributes are called[1] | Unscheduled | 4 | 4 | 4 | ||
Object initialisation fields are called | Unscheduled | 5 | 5 | 5 | 4 | 3 |
init.sqs is executed | 6 | |||||
init.sqf is executed | Scheduled[2] | |||||
Expressions of Eden Editor scenario attributes are called[3] | Unscheduled | |||||
Persistent functions are called | ||||||
Modules are initialised | ||||||
initServer.sqf is executed | Scheduled | N/A | N/A | |||
initPlayerLocal.sqf is executed | Scheduled | N/A | ||||
initPlayerServer.sqf is executed on the server | Scheduled | N/A | ?? | |||
Functions with postInit attribute are called
|
Scheduled[2] | |||||
init.sqs is executed | Scheduled | |||||
init.sqf is executed | Scheduled | |||||
remoteExec's JIP queue | N/A | N/A | N/A | N/A | N/A | 42 |
Scenario going | N/A | |||||
exit.sqf | ||||||
exit.sqs | ||||||
"Ended" Mission Event Handler | ||||||
"MPEnded" Mission Event Handler |
See Also
- Arma 3: Functions Library
- Arma 3: Remote Execution, BIS_fnc_MP
- Eden Editor: Configuring Attributes
- Event Scripts
- Scheduler
- ↑ isPlayer _entity does not return true immediately. Once the entity has become a player, it is transferred to the client.
- ↑ 2.0 2.1 Note in single player 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 ~20s (postInit), waitUntil can cause catastrophic issues, etc.
- ↑ player is not available immediately.