Event Scripts: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "\{\{Feature[ _]arma3" to "{{Feature|arma3")
m (Some wiki formatting)
 
(42 intermediate revisions by 6 users not shown)
Line 1: Line 1:
__NOTOC__
__NOTOC____NOEDITSECTION__
__NOEDITSECTION__
{| class="wikitable float-right"
[[Event Scripts]] are [[Script (File)|scripts]] which are executed upon specific events. Not all event scripts are executed directly by the engine.<br>
|+ Default Scripts Location
! Game
! Path
|-
| {{GVI|ofp|1.00}}
| {{hl|DTA/scripts.pbo}}
|-
| {{GVI|arma1|1.00}}
| rowspan="3" | {{hl|Ca.pbo/data/scripts}}
|-
| {{GVI|arma2|1.00}}
|-
| {{GVI|arma2oa|1.50}}
|-
| {{GVI|arma3|1.00}}
| {{hl|functions_f.pbo/scripts}}
|-
| {{GVI|TKOH|1.00}}
| {{hl|data_h.pbo/data/scripts}}
|}
Event Scripts are [[Script File|scripts]] that are executed upon specific events. Not all event scripts are executed directly by the engine.


To use an '''Event Script''', create a file of the given name in the [[Mission Editor: External|mission directory]].
To use an Event Script, create a file of the given name in the [[Mission Editor: External|mission directory]].


{| class="wikitable" style="margin: auto"
{| class="wikitable valign-top-row-2"
! init* scripts
! init* scripts
! (on)Player* scripts
! (on)Player* scripts
! other scripts
! Other Scripts
|-
|-
| style="vertical-align: top" |
| style="padding-right: 2em" |
<div style="columns: 2">
{{Columns|2|
* [[#init.sqf|init.sqf]]
* {{Link|#init.sqf}}
* [[#init.sqs|init.sqs]]
* {{Link|#init.sqs}}
* [[#init3DEN.sqf|init3DEN.sqf]]
* {{Link|#init3DEN.sqf}}
* [[#initIntro.sqf|initIntro.sqf]]
* {{Link|#initIntro.sqf}}
* [[#initIntro.sqs|initIntro.sqs]]
* {{Link|#initIntro.sqs}}
* [[#initJIPcompatible.sqf|initJIPcompatible.sqf]]
* {{Link|#initJIPcompatible.sqf}}
* [[#initPlayerLocal.sqf|initPlayerLocal.sqf]]
* {{Link|#initPlayerLocal.sqf}}
* [[#initPlayerServer.sqf|initPlayerServer.sqf]]
* {{Link|#initPlayerServer.sqf}}
* [[#initServer.sqf|initServer.sqf]]
* {{Link|#initServer.sqf}}
</div>
}}
| style="vertical-align: top" |
| style="padding-right: 2em" |
<div style="columns: 2">
{{Columns|2|
* [[#onPlayerKilled.sqf|onPlayerKilled.sqf]]
* {{Link|#onPlayerKilled.sqf}}
* [[#onPlayerKilled.sqs|onPlayerKilled.sqs]]
* {{Link|#onPlayerKilled.sqs}}
* [[#onPlayerRespawn.sqf|onPlayerRespawn.sqf]]
* {{Link|#onPlayerRespawn.sqf}}
* [[#onPlayerRespawn.sqs|onPlayerRespawn.sqs]]
* {{Link|#onPlayerRespawn.sqs}}
* [[#onPlayerRespawnAsSeagull.sqs|onPlayerRespawnAsSeagull.sqs]]
* {{Link|#onPlayerRespawnAsSeagull.sqs}}
* [[#onPlayerRespawnOtherUnit.sqs|onPlayerRespawnOtherUnit.sqs]]
* {{Link|#onPlayerRespawnOtherUnit.sqs}}
* [[#onPlayerResurrect.sqs|onPlayerResurrect.sqs]]
* {{Link|#onPlayerResurrect.sqs}}
* [[#playerKilledScript.sqs|playerKilledScript.sqs]]
* {{Link|#playerKilledScript.sqs}}
* [[#playerRespawnScript.sqs|playerRespawnScript.sqs]]
* {{Link|#playerRespawnScript.sqs}}
</div>
* {{Link|#playerRespawnSeagullScript.sqs}}
| style="vertical-align: top" |
* {{Link|#playerRespawnOtherUnit.sqs}}
* [[#exit.sqf|exit.sqf]]
* {{Link|#playerResurrectScript.sqs}}
* [[#exit.sqs|exit.sqs]]
 
* [[#missionFlow.fsm|missionFlow.fsm]]
 
* [[#onFlare.sqs|onFlare.sqs]]
}}
* [[#pauseOnLoad.sqf|pauseOnLoad.sqf]]
| style="padding-right: 2em" |
* [[#teamSwitchScript.sqs|teamSwitchScript.sqs]]
* {{Link|#exit.sqf}}
* {{Link|#exit.sqs}}
* {{Link|#missionFlow.fsm}}
* {{Link|#onFlare.sqs}}
* {{Link|#pauseOnLoad.sqf}}
* {{Link|#teamSwitchScript.sqs}}
|}
|}
{{Feature|informative|
* See [[Initialisation Order]] to learn when initialisation scripts are executed.
* Additional initialisation scripts can be executed using functions with [[Arma 3: Functions Library#Attributes|preInit or postInit]] attribute.
}}


== Available Scripts ==
== Available Scripts ==


{| class="wikitable sortable" style="text-align: center"
{| class="wikitable sortable align-center align-left-col-1"
! rowspan="2" | File
! rowspan="2" style="text-align: center" | File
! colspan="7" | Present in
! colspan="7" | Present in
|-
! Details
|- class="sticky-top"
! {{GVI|ofp|1.00}}
! {{GVI|ofp|1.00}}
! {{GVI|ofpr|1.75}}
! {{GVI|ofpr|1.75}}
! {{GVI|arma1|1.00}}
! {{GVI|arma1|1.00}}
! {{GVI|arma2|1.00}}
! {{GVI|arma2|1.00}}
! {{GVI|arma2oa|1.51}}
! {{GVI|arma2oa|1.50}}
! {{GVI|arma3|1.00}}
! {{GVI|arma3|1.00}}
! {{GVI|TKOH|1.00}}
! {{GVI|tkoh|1.00}}
 
! Can&nbsp;[[canSuspend|suspend]]
|-
|-
| style="text-align: left" |
|
=== exit.sqf ===
=== exit.sqf ===
Executed when mission is finished (before debriefing screen). In Arma 3, "ended" [[addMissionEventHandler|mission event handler]] has the same functionality.
Executed when mission is finished (before debriefing screen).
<syntaxhighlight lang="cpp">params ["_endType"];</syntaxhighlight>
In {{arma3}}, see also [[Arma 3: Mission Event Handlers#Ended|"Ended"]] and [[Arma 3: Mission Event Handlers#MPEnded|"MPEnded"]] [[Arma 3: Mission Event Handlers|Mission Event Handlers]].
<sqf>params ["_endType"];</sqf>
* endType: [[String]]
* endType: [[String]]
|  <!-- OFP -->
|  <!-- OFP -->
|  <!-- OFPR -->
|  <!-- OFPR -->
|  <!-- A1 -->
|  <!-- A1 -->
| <!-- A2 -->
| {{Icon|checked}} <!-- A2 -->
| <!-- A2OA -->
| {{Icon|checked}} <!-- A2OA -->
| <!-- A3 -->
| {{Icon|checked}} <!-- A3 -->
| <!-- TKOH -->
| {{Icon|checked}} <!-- TKOH -->
| {{Icon|checked}} <!-- suspension -->


|-
|-
| style="text-align: left" |
|
=== exit.sqs ===
=== exit.sqs ===
Executed when mission is finished (before debriefing screen). In Arma 3, "ended" [[addMissionEventHandler|mission event handler]] has the same functionality.
Executed when mission is finished (before debriefing screen).
<syntaxhighlight lang="cpp">params ["_endType"];</syntaxhighlight>
In {{arma3}}, see also [[Arma 3: Mission Event Handlers#Ended|"Ended"]] and [[Arma 3: Mission Event Handlers#MPEnded|"MPEnded"]] [[Arma 3: Mission Event Handlers|Mission Event Handlers]].
<sqf>params ["_endType"];</sqf>
* endType: [[String]]
* endType: [[String]]
|  <!-- OFP -->
|  <!-- OFP -->
| <!-- OFPR -->
| {{Icon|checked}} <!-- OFPR -->
| <!-- A1 -->
| {{Icon|checked}} <!-- A1 -->
| <!-- A2 -->
| {{Icon|checked}} <!-- A2 -->
| <!-- A2OA -->
| {{Icon|checked}} <!-- A2OA -->
| <!-- A3 -->
| {{Icon|checked}} <!-- A3 -->
| <!-- TKOH -->
| {{Icon|checked}} <!-- TKOH -->


|-
|-
| style="text-align: left" |
|
=== init.sqf ===
=== init.sqf ===
Executed when mission is started (before briefing screen)
Executed when mission is started (before briefing screen).
| <!-- OFP -->
| <!-- OFP -->
| <!-- OFPR -->
| <!-- OFPR -->
| <!-- A1 -->
| {{Icon|checked}} <!-- A1 -->
| <!-- A2 -->
| {{Icon|checked}} <!-- A2 -->
| <!-- A2OA -->
| {{Icon|checked}} <!-- A2OA -->
| <!-- A3 -->
| {{Icon|checked}} <!-- A3 -->
| <!-- TKOH -->
| {{Icon|checked}} <!-- TKOH -->
| {{Icon|checked}} <!-- suspension -->


|-
|-
| style="text-align: left" |
|
=== init.sqs ===
=== init.sqs ===
Executed when mission is started (before briefing screen)
Executed when mission is started (before briefing screen).
| <!-- OFP -->
| {{Icon|checked}} <!-- OFP -->
| <!-- OFPR -->
| {{Icon|checked}} <!-- OFPR -->
| <!-- A1 -->
| {{Icon|checked}} <!-- A1 -->
| <!-- A2 -->
| {{Icon|checked}} <!-- A2 -->
| <!-- A2OA -->
| {{Icon|checked}} <!-- A2OA -->
| <!-- A3 -->
| {{Icon|checked}} <!-- A3 -->
| <!-- TKOH -->
| {{Icon|checked}} <!-- TKOH -->
| <!-- suspension -->


|-
|-
| style="text-align: left" |
|
=== init3DEN.sqf ===
=== init3DEN.sqf ===
Executed when loading a scenario in [[Eden Editor]] if the file is present. Useful for executing scenario-specific editor functionality.
Executed when loading a scenario in [[:Category:Eden Editor|Eden Editor]] if the file is present. Useful for executing scenario-specific editor functionality.
| <!-- OFP -->
| <!-- OFP -->
| <!-- OFPR -->
| <!-- OFPR -->
Line 118: Line 155:
| <!-- A2 -->
| <!-- A2 -->
| <!-- A2OA -->
| <!-- A2OA -->
| <!-- A3 -->
| {{Icon|checked}} <!-- A3 -->
| <!-- TKOH -->
| <!-- TKOH -->
| {{Icon|unchecked}} <!-- suspension -->


|-
|-
| style="text-align: left" |
|
=== initIntro.sqf ===
=== initIntro.sqf ===
Executed when intro, outro win or outro lose is started.
Executed when intro, outro win or outro lose is started.
{{Feature|arma3|Functional in {{arma3}} only for intro.}}
| <!-- OFP -->
| <!-- OFP -->
| <!-- OFPR -->
| <!-- OFPR -->
| <!-- A1 -->
| {{Icon|checked}} <!-- A1 -->
| <!-- A2 -->
| {{Icon|checked}} <!-- A2 -->
| <!-- A2OA -->
| {{Icon|checked}} <!-- A2OA -->
| <!-- A3 -->
| {{Icon|checked}} <!-- A3 -->
| <!-- TKOH -->
| {{Icon|checked}} <!-- TKOH -->
| {{Icon|checked}} <!-- suspension -->


|-
|-
| style="text-align: left" |
|
=== initIntro.sqs ===
=== initIntro.sqs ===
Executed when intro, outro win or outro lose is started.
Executed when intro, outro win or outro lose is started.
{{Feature|arma3|Functional in {{arma3}} only for intro.}}
| <!-- OFP -->
| <!-- OFP -->
| <!-- OFPR -->
| {{Icon|checked}} <!-- OFPR -->
| <!-- A1 -->
| {{Icon|checked}} <!-- A1 -->
| <!-- A2 -->
| {{Icon|checked}} <!-- A2 -->
| <!-- A2OA -->
| {{Icon|checked}} <!-- A2OA -->
| <!-- A3 -->
| {{Icon|checked}} <!-- A3 -->
| <!-- TKOH -->
| {{Icon|checked}} <!-- TKOH -->
| <!-- suspension -->


|-
|-
| style="text-align: left" |
|
=== initJIPcompatible.sqf ===
=== initJIPcompatible.sqf ===
Executed locally by [[Arma 2: Multiplayer Framework]] when a player joins mission (includes both mission start and JIP). Also executed locally on server at mission start.
Executed locally by [[Arma 2: Multiplayer Framework]] when a player joins mission (includes both mission start and JIP). Also executed locally on server at mission start.
Line 152: Line 194:
| <!-- OFPR -->
| <!-- OFPR -->
| <!-- A1 -->
| <!-- A1 -->
| <!-- A2 -->
| {{Icon|checked}} <!-- A2 -->
| <!-- A2OA -->
| {{Icon|checked}} <!-- A2OA -->
| <!-- A3 -->
| <!-- A3 -->
| <!-- TKOH -->
| <!-- TKOH -->


|-
|-
| style="text-align: left" |
|
=== initPlayerLocal.sqf ===
=== initPlayerLocal.sqf ===
Executed locally when player joins mission (includes both mission start and JIP). See [[Initialization Order]] for details about when exactly the script is executed.
Executed locally when player joins mission (includes both mission start and JIP). See [[Initialisation Order]] for details about when exactly the script is executed.
<syntaxhighlight lang="cpp">params ["_player", "_didJIP"];</syntaxhighlight>
<sqf>params ["_player", "_didJIP"];</sqf>
* player: [[Object]]
* player: [[Object]]
* didJIP: [[Boolean]]
* didJIP: [[Boolean]]
Line 169: Line 211:
| <!-- A2 -->
| <!-- A2 -->
| <!-- A2OA -->
| <!-- A2OA -->
| <!-- A3 -->
| {{Icon|checked}} <!-- A3 -->
| <!-- TKOH -->
| <!-- TKOH -->
| {{Icon|checked}} <!-- suspension -->


|-
|-
| style="text-align: left" |
|
=== initPlayerServer.sqf ===
=== initPlayerServer.sqf ===
Executed only on server when a player joins mission (includes both mission start and JIP). See [[Initialization Order]] for details about when exactly the script is executed.<br>
Executed only on server when a player joins mission (includes both mission start and JIP). See [[Initialisation Order]] for details about when exactly the script is executed.<br>
This script relies on [[BIS_fnc_execVM]] and [[remoteExec]]. If [[CfgRemoteExec]]'s <tt>class Functions</tt> is set to mode = 0 or 1, the script will never be executed. Therefore, initPlayerServer.sqf should be avoided.
This script relies on [[BIS_fnc_execVM]] and [[remoteExec]]. If [[CfgRemoteExec]]'s {{hl|class Functions}} is set to mode = 0 or 1, the script will never be executed.
<syntaxhighlight lang="cpp">params ["_playerUnit", "_didJIP"];</syntaxhighlight>
Therefore, {{hl|initPlayerServer.sqf}} should be avoided - use {{Link|https://www.reddit.com/r/armadev/comments/8fkitd/initplayerserversqf_therefore_initplayerserversqf/dy5k5pf/|this method}} instead.
<sqf>params ["_playerUnit", "_didJIP"];</sqf>
* playerUnit: [[Object]]
* playerUnit: [[Object]]
* didJIP: [[Boolean]]
* didJIP: [[Boolean]]
Line 185: Line 229:
| <!-- A2 -->
| <!-- A2 -->
| <!-- A2OA -->
| <!-- A2OA -->
| <!-- A3 -->
| {{Icon|checked}} <!-- A3 -->
| <!-- TKOH -->
| <!-- TKOH -->
| {{Icon|checked}} <!-- suspension -->


|-
|-
| style="text-align: left" |
|
=== initServer.sqf ===
=== initServer.sqf ===
Executed only on server when mission is started. See [[Initialization Order]] for details about when exactly the script is executed.
Executed only on server when mission is started. See [[Initialisation Order]] for details about when exactly the script is executed.
| <!-- OFP -->
| <!-- OFP -->
| <!-- OFPR -->
| <!-- OFPR -->
Line 197: Line 242:
| <!-- A2 -->
| <!-- A2 -->
| <!-- A2OA -->
| <!-- A2OA -->
| <!-- A3 -->
| {{Icon|checked}} <!-- A3 -->
| <!-- TKOH -->
| <!-- TKOH -->
| {{Icon|checked}} <!-- suspension -->


|-
|-
| style="text-align: left" |
|
=== missionFlow.fsm ===
=== missionFlow.fsm ===
Executed on post-init when mission is started. See [[BIS_fnc_missionFlow]].
Executed on post-init when mission is started. See [[BIS_fnc_missionFlow]].
Line 209: Line 255:
| <!-- A2 -->
| <!-- A2 -->
| <!-- A2OA -->
| <!-- A2OA -->
| <!-- A3 -->
| {{Icon|checked}} <!-- A3 -->
| <!-- TKOH -->
| <!-- TKOH -->
| <!-- suspension -->


|-
|-
| style="text-align: left" |
|
=== onFlare.sqs ===
=== onFlare.sqs ===
Executed when a flare is lit after being fired from grenade launcher.
Executed when a flare is lit after being fired from grenade launcher.
<syntaxhighlight lang="cpp">params ["_colorRGB", "_shooter"];</syntaxhighlight>
<sqf>params ["_colorRGB", "_shooter", "_projectile", "_instigator"];</sqf>
* colorRGB: [[Color|Color (RGBA)]]
* colorRGB: [[Color|Color (RGBA)]]
* shooter: [[Object]]
* shooter: [[Object]]
* {{GVI|arma3|2.10|size= 0.75}} projectile: [[Object]] - the flare itself
* {{GVI|arma3|2.18|size= 0.75}} instigator: [[Object]] - shot instigator
|  <!-- OFP -->
|  <!-- OFP -->
| <!-- OFPR -->
| {{Icon|checked}} <!-- OFPR -->
| <!-- A1 -->
| {{Icon|checked}} <!-- A1 -->
| <!-- A2 -->
| {{Icon|checked}} <!-- A2 -->
| <!-- A2OA -->
| {{Icon|checked}} <!-- A2OA -->
| <!-- A3 -->
| {{Icon|checked}} <!-- A3 -->
| <!-- TKOH -->
| {{Icon|checked}} <!-- TKOH -->
| <!-- suspension -->


|-
|-
| style="text-align: left" |
|
=== onPlayerKilled.sqf ===
=== onPlayerKilled.sqf ===
Executed when player is [[Arma_3_Respawn#Files|killed]] in singleplayer or in multiplayer mission.
Executed when player is [[Arma 3: Respawn#Files|killed]] in singleplayer or in multiplayer mission.
<syntaxhighlight lang="cpp">params ["_oldUnit", "_killer", "_respawn", "_respawnDelay"];</syntaxhighlight>
<sqf>params ["_oldUnit", "_killer", "_respawn", "_respawnDelay"];</sqf>
* oldUnit: [[Object]]
* oldUnit: [[Object]]
* killer: [[Object]]
* killer: [[Object]]
Line 241: Line 291:
|  <!-- A2 -->
|  <!-- A2 -->
|  <!-- A2OA -->
|  <!-- A2OA -->
| <!-- A3 -->
| {{Icon|checked}} <!-- A3 -->
|  <!-- TKOH -->
|  <!-- TKOH -->
| {{Icon|checked}} <!-- suspension -->


|-
|-
| style="text-align: left" |
|
=== onPlayerKilled.sqs ===
=== onPlayerKilled.sqs ===
Executed when player is killed in singleplayer or in multiplayer mission with "NONE" [[Description.ext#respawn|respawn type]].
Executed when player is killed in singleplayer or in multiplayer mission with "NONE" [[Description.ext#respawn|respawn type]].
<syntaxhighlight lang="cpp">params ["_player", "_killer"];</syntaxhighlight>
<sqf>params ["_player", "_killer"];</sqf>
* player: [[Object]]
* player: [[Object]]
* killer: [[Object]]
* killer: [[Object]]
| <!-- OFP -->
| {{Icon|checked}} <!-- OFP -->
| <!-- OFPR -->
| {{Icon|checked}} <!-- OFPR -->
| <!-- A1 -->
| {{Icon|checked}} <!-- A1 -->
| <!-- A2 -->
| {{Icon|checked}} <!-- A2 -->
| <!-- A2OA -->
| {{Icon|checked}} <!-- A2OA -->
| <!-- A3 -->
| {{Icon|unchecked}} <!-- A3 -->
| <!-- TKOH -->
| {{Icon|checked}} <!-- TKOH -->
| <!-- suspension -->


|-
|-
| style="text-align: left" |
|
=== onPlayerRespawn.sqf ===
=== onPlayerRespawn.sqf ===
Executed locally when player [[Arma_3_Respawn#Files|respawns]] in a multiplayer mission. This event script will also fire at the beginning of a mission if [[Description.ext#respawnOnStart|respawnOnStart]] is 0 or 1, oldUnit will be [[objNull]] in this instance. This script will not fire at mission start if [[Description.ext#respawnOnStart|respawnOnStart]] equals -1.
Executed locally when player [[Arma 3: Respawn#Files|respawns]] in a multiplayer mission.
<syntaxhighlight lang="cpp">params ["_newUnit", "_oldUnit", "_respawn", "_respawnDelay"];</syntaxhighlight>
This event script will also fire at the beginning of a mission if [[Description.ext#respawnOnStart|respawnOnStart]] is 0 or 1, oldUnit will be [[objNull]] in this instance.
This script will not fire at mission start if [[Description.ext#respawnOnStart|respawnOnStart]] equals -1.
<sqf>params ["_newUnit", "_oldUnit", "_respawn", "_respawnDelay"];</sqf>
* newUnit: [[Object]]
* newUnit: [[Object]]
* oldUnit: [[Object]]
* oldUnit: [[Object]]
Line 273: Line 327:
|  <!-- A2 -->
|  <!-- A2 -->
|  <!-- A2OA -->
|  <!-- A2OA -->
| <!-- A3 -->
| {{Icon|checked}} <!-- A3 -->
|  <!-- TKOH -->
|  <!-- TKOH -->
| {{Icon|checked}} <!-- suspension -->


|-
|-
| style="text-align: left" |
|
=== onPlayerRespawn.sqs ===
=== onPlayerRespawn.sqs ===
Executed when player is killed in multiplayer mission with "INSTANT" or "BASE" [[Description.ext#respawn|respawn type]]. It will not work if ''dta\scripts\onPlayerRespawn.sqs'' does not exist.
Executed when player is killed in multiplayer mission with "INSTANT" or "BASE" [[Description.ext#respawn|respawn type]]. It will not work if ''dta\scripts\onPlayerRespawn.sqs'' does not exist.
<syntaxhighlight lang="cpp">params ["_player", "_killer", "_respawnDelay"];</syntaxhighlight>
<sqf>params ["_player", "_killer", "_respawnDelay"];</sqf>
* player: [[Object]]
* player: [[Object]]
* killer: [[Object]]
* killer: [[Object]]
* respawnDelay: [[Number]]
* respawnDelay: [[Number]]
| <!-- OFP -->
| <!-- OFP -->
| <!-- OFPR -->
| {{Icon|checked}} <!-- OFPR -->
| <!-- A1 -->
| <!-- A1 -->
| <!-- A2 -->
| <!-- A2 -->
Line 291: Line 346:
|  <!-- A3 -->
|  <!-- A3 -->
| <!-- TKOH -->
| <!-- TKOH -->
| <!-- suspension -->


|-
|-
| style="text-align: left" |
|
=== onPlayerRespawnAsSeagull.sqs ===
=== onPlayerRespawnAsSeagull.sqs ===
Executed when player is killed in multiplayer mission with "SEAGULL" [[Description.ext#respawn|respawn type]], or when the type is "GROUP" or "SIDE", but no remaining respawn slots are left. This script will replace the default respawn sequence.
Executed when player is killed in multiplayer mission with "SEAGULL" [[Description.ext#respawn|respawn type]], or when the type is "GROUP" or "SIDE", but no remaining respawn slots are left.
{{Feature|arma3 | <tt>playerRespawnSeagullScript.sqs</tt> in {{arma3}}.}}
This script will replace the default respawn sequence.
<syntaxhighlight lang="cpp">params ["_player", "_killer", "_seagull"];</syntaxhighlight>
{{Feature|arma3|{{hl|onPlayerRespawnAsSeagull.sqs}} was renamed to {{hl|{{Link|#playerRespawnSeagullScript.sqs}}}} in {{arma3}}.}}
<sqf>params ["_player", "_killer", "_seagull"];</sqf>
* player: [[Object]]
* player: [[Object]]
* killer: [[Object]]
* killer: [[Object]]
* seagull: [[Object]]
* seagull: [[Object]]
| <!-- OFP -->
| {{Icon|checked}} <!-- OFP -->
| <!-- OFPR -->
| {{Icon|checked}} <!-- OFPR -->
| <!-- A1 -->
| {{Icon|checked}} <!-- A1 -->
| <!-- A2 -->
| {{Icon|checked}} <!-- A2 -->
| <!-- A2OA -->
| {{Icon|checked}} <!-- A2OA -->
| {{Color|darkorange|}} <!-- A3 -->
| {{Icon|unchecked}} <!-- A3 -->
| <!-- TKOH -->
| {{Icon|checked}} <!-- TKOH -->
| <!-- suspension -->


|-
|-
| style="text-align: left" |
|
=== onPlayerRespawnOtherUnit.sqs ===
=== onPlayerRespawnOtherUnit.sqs ===
Executed when player is killed in multiplayer mission with "GROUP" or "SIDE" [[Description.ext#respawn|respawn type]]. This script will replace the default respawn sequence.
Executed when player is killed in multiplayer mission with "GROUP" or "SIDE" [[Description.ext#respawn|respawn type]]. This script will replace the default respawn sequence.
{{Feature|arma3|<tt>playerRespawnOtherUnit.sqs</tt> in {{arma3}}.}}
{{Feature|arma3|{{hl|onPlayerRespawnOtherUnit.sqs}} was renamed to {{hl|{{Link|#playerRespawnOtherUnit.sqs}}}} in {{arma3}}.}}
<syntaxhighlight lang="cpp">params ["_player", "_killer", "_newUnit"];</syntaxhighlight>
<sqf>params ["_player", "_killer", "_newUnit"];</sqf>
* player: [[Object]]
* player: [[Object]]
* killer: [[Object]]
* killer: [[Object]]
* newUnit: [[Object]]
* newUnit: [[Object]]
| <!-- OFP -->
| {{Icon|checked}} <!-- OFP -->
| <!-- OFPR -->
| {{Icon|checked}} <!-- OFPR -->
| <!-- A1 -->
| {{Icon|checked}} <!-- A1 -->
| <!-- A2 -->
| {{Icon|checked}} <!-- A2 -->
| <!-- A2OA -->
| {{Icon|checked}} <!-- A2OA -->
| {{Color|darkorange|}} <!-- A3 -->
| {{Icon|unchecked}} <!-- A3 -->
| <!-- TKOH -->
| {{Icon|checked}} <!-- TKOH -->
| <!-- suspension -->


|-
|-
| style="text-align: left" |
|
=== onPlayerResurrect.sqs ===
=== onPlayerResurrect.sqs ===
Executed when player is respawned in multiplayer mission with "INSTANT" or "BASE" [[Description.ext#respawn|respawn type]]. It will not work if ''dta\scripts\onPlayerResurrect.sqs'' does not exist.
Executed when player is respawned in multiplayer mission with "INSTANT" or "BASE" [[Description.ext#respawn|respawn type]]. It will not work if {{hl|dta\scripts\onPlayerResurrect.sqs}} does not exist.
{{Feature|arma3 | <tt>playerResurrectScript.sqs</tt> in {{arma3}}.}}
{{Feature|arma3|{{hl|onPlayerResurrect.sqs}} was renamed to {{hl|{{Link|#playerResurrectScript.sqs}}}} in {{arma3}}.}}
<syntaxhighlight lang="cpp">params ["_player"];</syntaxhighlight>
<sqf>params ["_player"];</sqf>
* player: [[Object]]
* player: [[Object]]
| <!-- OFP -->
| <!-- OFP -->
| <!-- OFPR -->
| {{Icon|checked}} <!-- OFPR -->
| <!-- A1 -->
| <!-- A1 -->
| <!-- A2 -->
| <!-- A2 -->
| <!-- A2OA -->
| <!-- A2OA -->
| {{Color|darkorange|✔}} <!-- A3 -->
| {{Icon|unchecked}} <!-- A3 -->
| <!-- TKOH -->
| <!-- TKOH -->
| <!-- suspension -->


|-
|-
| style="text-align: left" |
|
=== pauseOnLoad.sqf ===
=== pauseOnLoad.sqf ===
Executed when pause menu is activated.
Executed when pause menu is activated.


To make it work in MP or Arma 3, use <syntaxhighlight lang="cpp">onPauseScript = "pauseOnLoad.sqf";</syntaxhighlight> in [[Description.ext#onPauseScript|Description.ext]]
To make it work in MP or {{arma3}}, use <syntaxhighlight lang="cpp" inline>onPauseScript = "pauseOnLoad.sqf";</syntaxhighlight> in [[Description.ext#onPauseScript|Description.ext]].
<syntaxhighlight lang="cpp">params ["_pauseMenuDisplay"];</syntaxhighlight>
<sqf>params ["_pauseMenuDisplay"];</sqf>
* pauseMenuDisplay: [[Display]]
* pauseMenuDisplay: [[Display]]
|  <!-- OFP -->
|  <!-- OFP -->
|  <!-- OFPR -->
|  <!-- OFPR -->
|  <!-- A1 -->
|  <!-- A1 -->
| <!-- A2 -->
| {{Icon|checked}} <!-- A2 -->
| <!-- A2OA -->
| {{Icon|checked}} <!-- A2OA -->
|  <!-- A3 -->
|  <!-- A3 -->
| <!-- TKOH -->
| {{Icon|checked}} <!-- TKOH -->
| {{Icon|checked}} <!-- suspension -->


|-
|-
| style="text-align: left" |
|
=== playerKilledScript.sqs ===
=== playerKilledScript.sqs ===
Executed locally when player is killed in singleplayer or in multiplayer mission with "NONE" [[Description.ext#respawn|respawn type]]. Overrides default behavior of mission death screen in single player. Game may become unplayable if not scripted correctly. Avoid use if not experienced with this script.
Executed locally when player is killed in singleplayer or in multiplayer mission with "NONE" [[Description.ext#respawn|respawn type]].
<syntaxhighlight lang="cpp">params ["_player", "_killer"];</syntaxhighlight>
Overrides default behavior of mission death screen in single player. Game may become unplayable if not scripted correctly. Avoid use if not experienced with this script.
<sqf>params ["_player", "_killer"];</sqf>
* player: [[Object]]
* player: [[Object]]
* killer: [[Object]]
* killer: [[Object]]
| ? <!-- OFP --><!-- Untested -->
| {{Icon|unknown}} <!-- OFP --><!-- Untested -->
| ? <!-- OFPR --><!-- Untested -->
| {{Icon|unknown}} <!-- OFPR --><!-- Untested -->
| ? <!-- A1 --><!-- Untested -->
| {{Icon|unknown}} <!-- A1 --><!-- Untested -->
| ? <!-- A2 --><!-- Untested -->
| {{Icon|unknown}} <!-- A2 --><!-- Untested -->
| ? <!-- A2OA --><!-- Untested -->
| {{Icon|unknown}} <!-- A2OA --><!-- Untested -->
| <!-- A3 -->
| {{Icon|checked}} <!-- A3 -->
| ? <!-- TKOH --><!-- Untested -->
| {{Icon|unknown}} <!-- TKOH --><!-- Untested -->
| <!-- suspension -->


|-
|-
| style="text-align: left" |
|
=== playerRespawnScript.sqs ===
=== playerRespawnScript.sqs ===
Executed locally and immediately when player is killed in multiplayer mission with "BASE" or "INSTANT" [[Description.ext#respawn|respawn type]]. Overrides default behavior of multiplayer respawn. Game may become unplayable if not scripted correctly. Avoid use if not experienced with this script.
Executed locally and immediately when player is killed in multiplayer mission with "BASE" or "INSTANT" [[Description.ext#respawn|respawn type]].
<syntaxhighlight lang="cpp">params ["_player", "_killer", "_respawnDelay"];</syntaxhighlight>
Overrides default behavior of multiplayer respawn. Game may become unplayable if not scripted correctly. Avoid use if not experienced with this script.
<sqf>params ["_player", "_killer", "_respawnDelay"];</sqf>
* player: [[Object]]
* player: [[Object]]
* killer: [[Object]]
* killer: [[Object]]
* respawnDelay: [[Number]]
* respawnDelay: [[Number]]
| ? <!-- OFP --><!-- Untested -->
| {{Icon|unknown}} <!-- OFP --><!-- Untested -->
| ? <!-- OFPR --><!-- Untested -->
| {{Icon|unknown}} <!-- OFPR --><!-- Untested -->
| ? <!-- A1 --><!-- Untested -->
| {{Icon|unknown}} <!-- A1 --><!-- Untested -->
| ? <!-- A2 --><!-- Untested -->
| {{Icon|unknown}} <!-- A2 --><!-- Untested -->
| ? <!-- A2OA --><!-- Untested -->
| {{Icon|unknown}} <!-- A2OA --><!-- Untested -->
| <!-- A3 -->
| {{Icon|checked}} <!-- A3 -->
| ? <!-- TKOH --><!-- Untested -->
| {{Icon|unknown}} <!-- TKOH --><!-- Untested -->
| <!-- suspension -->
 
|-
|
=== playerRespawnSeagullScript.sqs ===
Executed when player is killed in multiplayer mission with "SEAGULL" [[Description.ext#respawn|respawn type]], or when the type is "GROUP" or "SIDE", but no remaining respawn slots are left.
This script will replace the default respawn sequence.
{{Feature|arma3|{{hl|{{Link|#onPlayerRespawnAsSeagull.sqs}}}} was renamed to {{hl|playerRespawnSeagullScript.sqs}} in {{arma3}}.}}
<sqf>params ["_player", "_killer", "_seagull"];</sqf>
* player: [[Object]]
* killer: [[Object]]
* seagull: [[Object]]
| {{Icon|unchecked}} <!-- OFP -->
| {{Icon|unchecked}} <!-- OFPR -->
| {{Icon|unchecked}} <!-- A1 -->
| {{Icon|unchecked}} <!-- A2 -->
| {{Icon|unchecked}} <!-- A2OA -->
| {{Icon|checked}} <!-- A3 -->
| {{Icon|unchecked}} <!-- TKOH -->
| <!-- suspension -->


|-
|-
| style="text-align: left" |
|
=== playerRespawnOtherUnit.sqs ===
Executed when player is killed in multiplayer mission with "GROUP" or "SIDE" [[Description.ext#respawn|respawn type]]. This script will replace the default respawn sequence.
{{Feature|arma3|{{hl|{{Link|#onPlayerRespawnOtherUnit.sqs}}}} was renamed to {{hl|playerRespawnOtherUnit.sqs}} in {{arma3}}.}}
<sqf>params ["_player", "_killer", "_newUnit"];</sqf>
* player: [[Object]]
* killer: [[Object]]
* newUnit: [[Object]]
| {{Icon|unchecked}} <!-- OFP -->
| {{Icon|unchecked}} <!-- OFPR -->
| {{Icon|unchecked}} <!-- A1 -->
| {{Icon|unchecked}} <!-- A2 -->
| {{Icon|unchecked}} <!-- A2OA -->
| {{Icon|checked}} <!-- A3 -->
| {{Icon|unchecked}} <!-- TKOH -->
| <!-- suspension -->
 
|-
|
=== playerResurrectScript.sqs ===
Executed when player is respawned in multiplayer mission with "INSTANT" or "BASE" [[Description.ext#respawn|respawn type]]. It will not work if {{hl|dta\scripts\onPlayerResurrect.sqs}} does not exist.
{{Feature|arma3|{{hl|{{Link|#onPlayerResurrect.sqs}}}} was renamed to {{hl|playerResurrectScript.sqs}} in {{arma3}}.}}
<sqf>params ["_player"];</sqf>
* player: [[Object]]
| {{Icon|unchecked}} <!-- OFP -->
| {{Icon|unchecked}} <!-- OFPR -->
| {{Icon|unchecked}} <!-- A1 -->
| {{Icon|unchecked}} <!-- A2 -->
| {{Icon|unchecked}} <!-- A2OA -->
| {{Icon|checked}} <!-- A3 -->
| {{Icon|unchecked}} <!-- TKOH -->
| <!-- suspension -->
 
 
 
|-
|
=== teamSwitchScript.sqs ===
=== teamSwitchScript.sqs ===
Executed ''after'' a [[Team Switch]] is done. '''Not''' triggered by [[selectPlayer]].
Executed ''after'' a [[Team Switch]] is done. '''Not''' triggered by [[selectPlayer]].
<syntaxhighlight lang="cpp">params ["_oldUnit", "_newUnit"];</syntaxhighlight>
<sqf>params ["_oldUnit", "_newUnit"];</sqf>
* oldUnit: [[Object]]
* oldUnit: [[Object]]
* newUnit: [[Object]]
* newUnit: [[Object]]
| <!-- OFP -->
| {{Icon|unchecked}} <!-- OFP -->
| <!-- OFPR -->
| <!-- OFPR -->
| <!-- A1 -->
| <!-- A1 -->
| <!-- A2 -->
| <!-- A2 -->
| <!-- A2OA -->
| <!-- A2OA -->
| <!-- A3 -->
| {{Icon|checked}} <!-- A3 -->
| <!-- TKOH -->
| <!-- TKOH -->
| <!-- suspension -->
|}
|}
{{Informative | Additional init scripts can be executed using functions with [[Functions Library (Arma 3)#Attributes|preInit or postInit]] attribute.}}
== Default scripts location ==
{| class="wikitable"
! Game !! Path
|-
| {{GVI|ofp|1.00}}
| <tt>DTA/scripts.pbo</tt>
|-
| {{GVI|arma1|1.00}}
| rowspan="3" | <tt>Ca.pbo/data/scripts</tt>
|-
| {{GVI|arma2|1.00}}
|-
| {{GVI|arma2oa|1.51}}
|-
| {{GVI|arma3|1.00}}
| <tt>functions_f.pbo/scripts</tt>
|-
| {{GVI|TKOH|1.00}}
| <tt>data_h.pbo/data/scripts</tt>
|}
== See also ==
* [[Script (File)]]
* [[Initialization Order]]
* [[SQF syntax]]
* [[SQS syntax]]
* [[BIS_fnc_missionFlow]]




[[Category: Event Handlers]]
[[Category: Event Handlers]]
[[Category: Scripting Topics]]
[[Category: Scripting Topics]]
[[Category: Mission Editor]]
[[Category: Mission Editing]]
[[Category: Operation Flashpoint: Editing]]
[[Category: ArmA: Editing]]
[[Category: Arma 2: Editing]]
[[Category: Arma 3: Editing]]
[[Category: Take On Helicopters: Editing]]

Latest revision as of 18:23, 10 March 2024

Default Scripts Location
Game Path
Logo A0.png1.00 DTA/scripts.pbo
Logo A1 black.png1.00 Ca.pbo/data/scripts
Logo A2.png1.00
A2 OA Logo.png1.50
Arma 3 logo black.png1.00 functions_f.pbo/scripts
tkoh logo small.png1.00 data_h.pbo/data/scripts

Event Scripts are scripts that are executed upon specific events. Not all event scripts are executed directly by the engine.

To use an Event Script, create a file of the given name in the mission directory.

init* scripts (on)Player* scripts Other Scripts


Available Scripts

File Present in Details
Logo A0.png1.00 ofpr version.gif1.75 Logo A1 black.png1.00 Logo A2.png1.00 A2 OA Logo.png1.50 Arma 3 logo black.png1.00 tkoh logo small.png1.00 Can suspend

exit.sqf

Executed when mission is finished (before debriefing screen). In Arma 3, see also "Ended" and "MPEnded" Mission Event Handlers.

params ["_endType"];

Checked Checked Checked Checked Checked

exit.sqs

Executed when mission is finished (before debriefing screen). In Arma 3, see also "Ended" and "MPEnded" Mission Event Handlers.

params ["_endType"];

Checked Checked Checked Checked Checked Checked

init.sqf

Executed when mission is started (before briefing screen).

Checked Checked Checked Checked Checked Checked

init.sqs

Executed when mission is started (before briefing screen).

Checked Checked Checked Checked Checked Checked Checked

init3DEN.sqf

Executed when loading a scenario in Eden Editor if the file is present. Useful for executing scenario-specific editor functionality.

Checked Unchecked

initIntro.sqf

Executed when intro, outro win or outro lose is started.

Arma 3
Functional in Arma 3 only for intro.
Checked Checked Checked Checked Checked Checked

initIntro.sqs

Executed when intro, outro win or outro lose is started.

Arma 3
Functional in Arma 3 only for intro.
Checked Checked Checked Checked Checked Checked

initJIPcompatible.sqf

Executed locally by Arma 2: Multiplayer Framework when a player joins mission (includes both mission start and JIP). Also executed locally on server at mission start.

Checked Checked

initPlayerLocal.sqf

Executed locally when player joins mission (includes both mission start and JIP). See Initialisation Order for details about when exactly the script is executed.

params ["_player", "_didJIP"];

Checked Checked

initPlayerServer.sqf

Executed only on server when a player joins mission (includes both mission start and JIP). See Initialisation Order for details about when exactly the script is executed.
This script relies on BIS_fnc_execVM and remoteExec. If CfgRemoteExec's class Functions is set to mode = 0 or 1, the script will never be executed. Therefore, initPlayerServer.sqf should be avoided - use this method instead.

params ["_playerUnit", "_didJIP"];

Checked Checked

initServer.sqf

Executed only on server when mission is started. See Initialisation Order for details about when exactly the script is executed.

Checked Checked

missionFlow.fsm

Executed on post-init when mission is started. See BIS_fnc_missionFlow.

Checked

onFlare.sqs

Executed when a flare is lit after being fired from grenade launcher.

params ["_colorRGB", "_shooter", "_projectile", "_instigator"];

Checked Checked Checked Checked Checked Checked

onPlayerKilled.sqf

Executed when player is killed in singleplayer or in multiplayer mission.

params ["_oldUnit", "_killer", "_respawn", "_respawnDelay"];

Checked Checked

onPlayerKilled.sqs

Executed when player is killed in singleplayer or in multiplayer mission with "NONE" respawn type.

params ["_player", "_killer"];

Checked Checked Checked Checked Checked Unchecked Checked

onPlayerRespawn.sqf

Executed locally when player respawns in a multiplayer mission. This event script will also fire at the beginning of a mission if respawnOnStart is 0 or 1, oldUnit will be objNull in this instance. This script will not fire at mission start if respawnOnStart equals -1.

params ["_newUnit", "_oldUnit", "_respawn", "_respawnDelay"];

Checked Checked

onPlayerRespawn.sqs

Executed when player is killed in multiplayer mission with "INSTANT" or "BASE" respawn type. It will not work if dta\scripts\onPlayerRespawn.sqs does not exist.

params ["_player", "_killer", "_respawnDelay"];

Checked

onPlayerRespawnAsSeagull.sqs

Executed when player is killed in multiplayer mission with "SEAGULL" respawn type, or when the type is "GROUP" or "SIDE", but no remaining respawn slots are left. This script will replace the default respawn sequence.

Arma 3
onPlayerRespawnAsSeagull.sqs was renamed to playerRespawnSeagullScript.sqs in Arma 3.

params ["_player", "_killer", "_seagull"];

Checked Checked Checked Checked Checked Unchecked Checked

onPlayerRespawnOtherUnit.sqs

Executed when player is killed in multiplayer mission with "GROUP" or "SIDE" respawn type. This script will replace the default respawn sequence.

Arma 3
onPlayerRespawnOtherUnit.sqs was renamed to playerRespawnOtherUnit.sqs in Arma 3.

params ["_player", "_killer", "_newUnit"];

Checked Checked Checked Checked Checked Unchecked Checked

onPlayerResurrect.sqs

Executed when player is respawned in multiplayer mission with "INSTANT" or "BASE" respawn type. It will not work if dta\scripts\onPlayerResurrect.sqs does not exist.

Arma 3
onPlayerResurrect.sqs was renamed to playerResurrectScript.sqs in Arma 3.

params ["_player"];

Checked Unchecked

pauseOnLoad.sqf

Executed when pause menu is activated.

To make it work in MP or Arma 3, use onPauseScript = "pauseOnLoad.sqf"; in Description.ext.

params ["_pauseMenuDisplay"];

Checked Checked Checked Checked

playerKilledScript.sqs

Executed locally when player is killed in singleplayer or in multiplayer mission with "NONE" respawn type. Overrides default behavior of mission death screen in single player. Game may become unplayable if not scripted correctly. Avoid use if not experienced with this script.

params ["_player", "_killer"];

Unknown Unknown Unknown Unknown Unknown Checked Unknown

playerRespawnScript.sqs

Executed locally and immediately when player is killed in multiplayer mission with "BASE" or "INSTANT" respawn type. Overrides default behavior of multiplayer respawn. Game may become unplayable if not scripted correctly. Avoid use if not experienced with this script.

params ["_player", "_killer", "_respawnDelay"];

Unknown Unknown Unknown Unknown Unknown Checked Unknown

playerRespawnSeagullScript.sqs

Executed when player is killed in multiplayer mission with "SEAGULL" respawn type, or when the type is "GROUP" or "SIDE", but no remaining respawn slots are left. This script will replace the default respawn sequence.

Arma 3
onPlayerRespawnAsSeagull.sqs was renamed to playerRespawnSeagullScript.sqs in Arma 3.

params ["_player", "_killer", "_seagull"];

Unchecked Unchecked Unchecked Unchecked Unchecked Checked Unchecked

playerRespawnOtherUnit.sqs

Executed when player is killed in multiplayer mission with "GROUP" or "SIDE" respawn type. This script will replace the default respawn sequence.

Arma 3
onPlayerRespawnOtherUnit.sqs was renamed to playerRespawnOtherUnit.sqs in Arma 3.

params ["_player", "_killer", "_newUnit"];

Unchecked Unchecked Unchecked Unchecked Unchecked Checked Unchecked

playerResurrectScript.sqs

Executed when player is respawned in multiplayer mission with "INSTANT" or "BASE" respawn type. It will not work if dta\scripts\onPlayerResurrect.sqs does not exist.

Arma 3
onPlayerResurrect.sqs was renamed to playerResurrectScript.sqs in Arma 3.

params ["_player"];

Unchecked Unchecked Unchecked Unchecked Unchecked Checked Unchecked


teamSwitchScript.sqs

Executed after a Team Switch is done. Not triggered by selectPlayer.

params ["_oldUnit", "_newUnit"];

Unchecked Checked