Event Scripts: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Add scripts location and fixes)
m (changed params to one line)
Line 218: Line 218:
=== 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 [
<syntaxhighlight lang="cpp">params ["_oldUnit", "_killer", "_respawn", "_respawnDelay"];</syntaxhighlight>
"_oldUnit",
"_killer",
"_respawn",
"_respawnDelay"
];</syntaxhighlight>
* oldUnit: [[Object]]
* oldUnit: [[Object]]
* killer: [[Object]]
* killer: [[Object]]
Line 255: Line 250:
=== 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. 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.
<syntaxhighlight lang="cpp">params [
<syntaxhighlight lang="cpp">params ["_newUnit", "_oldUnit", "_respawn", "_respawnDelay"];</syntaxhighlight>
"_newUnit",
"_oldUnit",
"_respawn",
"_respawnDelay"
];</syntaxhighlight>
* newUnit: [[Object]]
* newUnit: [[Object]]
* oldUnit: [[Object]]
* oldUnit: [[Object]]
Line 277: Line 267:
=== 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 [
<syntaxhighlight lang="cpp">params ["_player", "_killer", "_respawnDelay"];</syntaxhighlight>
"_player",
"_killer",
"_respawnDelay"
];</syntaxhighlight>
* player: [[Object]]
* player: [[Object]]
* killer: [[Object]]
* killer: [[Object]]
Line 298: Line 284:
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. This script will replace the default respawn sequence.
{{Feature arma3 | <tt>playerRespawnSeagullScript.sqs</tt> in {{arma3}}.}}
{{Feature arma3 | <tt>playerRespawnSeagullScript.sqs</tt> in {{arma3}}.}}
<syntaxhighlight lang="cpp">params [
<syntaxhighlight lang="cpp">params ["_player", "_killer", "_seagull"];</syntaxhighlight>
"_player",
"_killer",
"_seagull"
];</syntaxhighlight>
* player: [[Object]]
* player: [[Object]]
* killer: [[Object]]
* killer: [[Object]]
Line 319: Line 301:
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|<tt>playerRespawnOtherUnit.sqs</tt> in {{arma3}}.}}
<syntaxhighlight lang="cpp">params [
<syntaxhighlight lang="cpp">params ["_player", "_killer", "_newUnit"];</syntaxhighlight>
"_player",
"_killer",
"_newUnit"
];</syntaxhighlight>
* player: [[Object]]
* player: [[Object]]
* killer: [[Object]]
* killer: [[Object]]
Line 385: Line 363:
=== 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]]. Overrides default behavior of multiplayer respawn. Game may become unplayable if not scripted correctly. Avoid use if not experienced with this script.
<syntaxhighlight lang="cpp">params [
<syntaxhighlight lang="cpp">params ["_player", "_killer", "_respawnDelay"];</syntaxhighlight>
"_player",
"_killer",
"_respawnDelay"
];</syntaxhighlight>
* player: [[Object]]
* player: [[Object]]
* killer: [[Object]]
* killer: [[Object]]
Line 405: Line 379:
=== 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 [
<syntaxhighlight lang="cpp">params ["_oldUnit", "_newUnit"];</syntaxhighlight>
"_oldUnit",
"_newUnit"
];</syntaxhighlight>
* oldUnit: [[Object]]
* oldUnit: [[Object]]
* newUnit: [[Object]]
* newUnit: [[Object]]

Revision as of 18:56, 6 July 2020


Event Scripts are scripts which 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
Logo A0.png1.00 ofpr version.gif1.75 -wrong parameter ("Arma") defined!-1.00 Logo A2.png1.00 A2 OA Logo.png1.50 Arma 3 logo black.png1.00 tkoh logo small.png1.00

exit.sqf

Executed when mission is finished (before debriefing screen). In Arma 3, "ended" mission event handler has the same functionality.

params ["_endType"];

exit.sqs

Executed when mission is finished (before debriefing screen). In Arma 3, "ended" mission event handler has the same functionality.

params ["_endType"];

init.sqf

Executed when mission is started (before briefing screen)

init.sqs

Executed when mission is started (before briefing screen)

init3DEN.sqf

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

initIntro.sqf

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

initIntro.sqs

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

initJIPcompatible.sqf

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

initPlayerLocal.sqf

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

params ["_player", "_didJIP"];

initPlayerServer.sqf

Executed only on server when a player joins mission (includes both mission start and JIP). See Initialization Order for details about when the script is exactly 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.

params ["_playerUnit", "_didJIP"];

initServer.sqf

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

onFlare.sqs

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

params ["_colorRGB", "_shooter"];

onPlayerKilled.sqf

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

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

onPlayerKilled.sqs

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

params ["_player", "_killer"];

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"];

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"];

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
playerRespawnSeagullScript.sqs in Arma 3.
params ["_player",	"_killer",	"_seagull"];

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
playerRespawnOtherUnit.sqs in Arma 3.
params ["_player",	"_killer",	"_newUnit"];

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
playerResurrectScript.sqs in Arma 3.
params ["_player"];

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"];

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"];
? ? ? ? ? ?

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"];
? ? ? ? ? ?

teamSwitchScript.sqs

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

params ["_oldUnit",	"_newUnit"];
Additional init scripts can be executed using functions with preInit or postInit attribute.


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.51
Arma 3 logo black.png1.00 functions_f.pbo/scripts
tkoh logo small.png1.00 data_h.pbo/data/scripts


See also