---
name: "Arma 3: Scripted Event Handlers"
type: topic
aliases: ["Arma 3: Event Handlers/ScriptedEventHandlers"]
source: https://community.bistudio.com/wiki/Arma_3:_Scripted_Event_Handlers
revid: 378628
updated: 2026-05-15T10:43:40Z
---

# Arma 3: Scripted Event Handlers

Scripted Event Handlers are triggered by some of BI's modules and functions. When triggered any code registered for one of these events via [BIS_fnc_addScriptedEventHandler](../functions/BIS_fnc_addScriptedEventHandler.md) will be executed.
All the events exists as variables within a namespace, whether this is one of the main [Namespace](../topics/Namespace.md)s like [missionNamespace](../commands/missionNamespace.md) or [uiNamespace](../commands/uiNamespace.md) or it could be a specific namespace like a [Group](../topics/Group.md) or [Object](../topics/Object.md) etc.
The event also has a set of parameters passed to the executed code.
You can even implement your own scripted eventHandlers by using [BIS_fnc_callScriptedEventHandler](../functions/BIS_fnc_callScriptedEventHandler.md).
For all other available Event Handlers, see [Arma 3: Event Handlers](../topics/Event_Handlers.md).

### Functions

- [BIS_fnc_addScriptedEventHandler](../functions/BIS_fnc_addScriptedEventHandler.md)
- [BIS_fnc_removeScriptedEventHandler](../functions/BIS_fnc_removeScriptedEventHandler.md)
- [BIS_fnc_removeAllScriptedEventHandlers](../functions/BIS_fnc_removeAllScriptedEventHandlers.md)
- [BIS_fnc_callScriptedEventHandler](../functions/BIS_fnc_callScriptedEventHandler.md)

### Examples

#### Subscribe

```sqf
[missionNamespace, "localPlayerNearFourArmedRobot", {
    hint "Hello there";
}] call BIS_fnc_addScriptedEventHandler;
```

```sqf
[missionNamespace, "arsenalOpened", {
    hint "Player opened the Arsenal"; // hint message to the player when he opens the Arsenal
}] call BIS_fnc_addScriptedEventHandler;
```

#### Trigger

```sqf
waitUntil { sleep 1; player distance _GG < 10 };
[missionNamespace, "localPlayerNearFourArmedRobot", [player, _GG]] call BIS_fnc_callScriptedEventHandler;
```

### Events

This is a list of all available scripted events that exist through BI's functions and modules.
Each event is listed under the system that calls them whether this be a specific function or a module. List last updated for Arma 3 v2.10

| Event namespace | Event name | Event passed parameters |
|---|---|---|
| #### EG Spectator Display |  |  |
| ```sqf<br>missionNamespace<br>``` | "RscDisplayEGSpectator_OnCursorObjectFocused" | ```sqf<br>params ["_object"];<br>``` |
| ```sqf<br>missionNamespace<br>``` | "RscDisplayEGSpectator_OnCursorObjectUnfocused" | ```sqf<br>params ["_object"];<br>``` |
| ```sqf<br>missionNamespace<br>``` | "RscDisplayEGSpectator_OnFocusChanged" | ```sqf<br>params ["_newFocus"];<br>``` |
| ```sqf<br>missionNamespace<br>``` | "RscDisplayEGSpectator_OnUiVisibilityChanged" | ```sqf<br>params ["_isVisible"];<br>``` |
| ```sqf<br>missionNamespace<br>``` | "RscDisplayEGSpectator_MapStateChanged" | ```sqf<br>params ["_isMapVisible"];<br>``` |
| #### Player opens pause menu |  |  |
| ```sqf<br>missionNamespace<br>``` | "OnGameInterrupt" | ```sqf<br>params ["_display"];<br>``` |
| #### Player exits Game Options menu |  |  |
| ```sqf<br>missionNamespace<br>``` | "OnGameOptionsExited" Arma 3 v2.02 | ```sqf<br>params ["_okButtonPressed"];<br>``` |
| #### Probing Beam (enoch) |  |  |
| ```sqf<br>missionNamespace<br>``` | "probingStarted" | ```sqf<br>params ["_cursorTarget", "_data"];<br>``` |
| ```sqf<br>missionNamespace<br>``` | "probingEnded" | ```sqf<br>params ["_data", "_isEnded"];<br>``` |
| #### Respawn Display |  |  |
| ```sqf<br>missionNamespace<br>``` | "RscDisplayRespawnKeyDown" | ```sqf<br>params ["_display", "_keyCode", "_shift", "_ctrl", "_alt"];<br>``` |
| #### Saving of the game, scripted or manual |  |  |
| ```sqf<br>missionNamespace<br>``` | "OnSaveGame" | N/A |
| #### [teamSwitchedScript.sqs](../topics/Event_Scripts.md#teamswitchedscript-sqs) |  |  |
| ```sqf<br>missionNamespace<br>``` | "teamSwitched" | ```sqf<br>params ["_originalUnit", "_switchToUnit"];<br>``` |
| #### [BIS_fnc_addScriptedEventHandler](../functions/BIS_fnc_addScriptedEventHandler.md) |  |  |
| ```sqf<br>missionNamespace<br>``` | "ScriptedEventHandlerAdded" | ```sqf<br>params ["_namespace", "_name", "_handlerID"];<br>``` |
| #### [BIS_fnc_animateFlag](../functions/BIS_fnc_animateFlag.md) |  |  |
| ```sqf<br>_flag<br>``` | "FlagAnimationDone" | ```sqf<br>params ["_flag", "_phaseEnd"];<br>``` |
| #### [BIS_fnc_arsenal](../functions/BIS_fnc_arsenal.md) |  |  |
| ```sqf<br>missionNamespace<br>``` | "arsenalPreOpen" Arma 3 v2.08 Fires just before Arsenal display is created | ```sqf<br>params ["_missionDisplay", "_center"];<br>``` |
| ```sqf<br>missionNamespace<br>``` | "arsenalOpened" | ```sqf<br>params ["_display", "_toggleSpace"];<br>```<br>- _toggleSpace: [Boolean](../topics/Boolean.md) - `uiNamespace getVariable ["bis_fnc_arsenal_toggleSpace", false]];` |
| ```sqf<br>missionNamespace<br>``` | "arsenalClosed" | ```sqf<br>params ["_displayNull", "_toggleSpace"];<br>```<br>- _toggleSpace: [Boolean](../topics/Boolean.md) - `uiNamespace getVariable ["bis_fnc_arsenal_toggleSpace", false]];` |
| #### [BIS_fnc_bleedTickets](../functions/BIS_fnc_bleedTickets.md) |  |  |
| ```sqf<br>missionNamespace<br>``` | "dominantSideChanged" | ```sqf<br>params ["_dominantSide", "_dominantSideOld", "_sides"];<br>``` |
| #### [BIS_fnc_EGSpectatorCamera](../functions/BIS_fnc_EGSpectatorCamera.md) |  |  |
| ```sqf<br>missionNamespace<br>``` | "EGSpectator_OnCameraModeChanged" | ```sqf<br>params ["_newMode"];<br>``` |
| #### [BIS_fnc_garage](../functions/BIS_fnc_garage.md) |  |  |
| ```sqf<br>missionNamespace<br>``` | "garageOpened" | ```sqf<br>params ["_display", "_toggleSpace"];<br>``` |
| ```sqf<br>missionNamespace<br>``` | "garageClosed" | ```sqf<br>params ["_displayNull", "_toggleSpace"];<br>```<br>- _toggleSpace: [Boolean](../topics/Boolean.md) - `uiNamespace getVariable ["bis_fnc_arsenal_toggleSpace", false]];` |
| #### [BIS_fnc_initDisplay](../functions/BIS_fnc_initDisplay.md) (Arma 3 v2.04) |  |  |
| ```sqf<br>missionNamespace<br>``` | "OnDisplayRegistered" | ```sqf<br>params ["_display", "_class"];<br>``` |
| ```sqf<br>missionNamespace<br>``` | "OnDisplayUnregistered" | ```sqf<br>params ["_display", "_class"];<br>``` |
| #### [BIS_fnc_initInspectable](../functions/BIS_fnc_initInspectable.md) |  |  |
| ```sqf<br>missionNamespace<br>``` | "objectInspected" | ```sqf<br>params ["_object", "_texture", "_text", "_sound", "_textureRatio"];<br>```<br>any data, shown as used by the Leaflets system |
| #### [BIS_fnc_initIntelObject](../functions/BIS_fnc_initIntelObject.md) |  |  |
| _object | "intelObjectFound" | ```sqf<br>params ["_object", "_foundBy"];<br>``` |
| ```sqf<br>_curator<br>``` | "intelObjectFound" | ```sqf<br>params ["_curator", "_foundBy", "_object"];<br>``` |
| #### [BIS_fnc_kbTellLocal](../functions/BIS_fnc_kbTellLocal.md) |  |  |
| ```sqf<br>missionNamespace<br>``` | "BIS_fnc_kbTellLocal_played" | ```sqf<br>params ["_from", "_to", "_sentence", "_channel"];<br>``` |
| #### [BIS_fnc_packStaticWeapon](../functions/BIS_fnc_packStaticWeapon.md) |  |  |
| ```sqf<br>_group<br>``` | "StaticWeaponPacked" | ```sqf<br>params ["_group", "_leader", "_gunner", "_assistant", "_weaponBag", "_baseBag"];<br>``` |
| #### [BIS_fnc_playVideo](../functions/BIS_fnc_playVideo.md) |  |  |
| ```sqf<br>missionNamespace<br>``` | "BIS_fnc_playVideo_started" | ```sqf<br>params ["_video"];<br>``` |
| ```sqf<br>missionNamespace<br>``` | "BIS_fnc_playVideo_stopped" | ```sqf<br>params ["_video"];<br>``` |
| #### BIS_fnc_priorityQueue* system |  |  |
| ```sqf<br>missionNamespace<br>``` | "BIS_onQueue%1Pop" where %1 is ID returned from [BIS_fnc_priorityQueue_Init](../functions/BIS_fnc_priorityQueue_Init.md) | ```sqf<br>params ["_handle"];<br>``` |
| ```sqf<br>missionNamespace<br>``` | "BIS_onQueue%1Push" where %1 is ID returned from [BIS_fnc_priorityQueue_Init](../functions/BIS_fnc_priorityQueue_Init.md) | ```sqf<br>params ["_handle"];<br>``` |
| #### [BIS_fnc_removeAllScriptedEventHandlers](../functions/BIS_fnc_removeAllScriptedEventHandlers.md) |  |  |
| ```sqf<br>missionNamespace<br>``` | "ScriptedEventHandlerRemoved" | ```sqf<br>params ["_namespace", "_name", "_handlerID"];<br>``` |
| #### [BIS_fnc_removeScriptedEventHandler](../functions/BIS_fnc_removeScriptedEventHandler.md) |  |  |
| ```sqf<br>missionNamespace<br>``` | "ScriptedEventHandlerRemoved" | ```sqf<br>params ["_namespace", "_name", "_handlerID"];<br>``` |
| #### [BIS_fnc_respawnTickets](../functions/BIS_fnc_respawnTickets.md) |  |  |
| ```sqf<br>missionNamespace<br>``` | "respawnTicketsExhausted" | ```sqf<br>params ["_target"];<br>``` |
| #### [BIS_fnc_unpackStaticWeapon](../functions/BIS_fnc_unpackStaticWeapon.md) |  |  |
| ```sqf<br>_group<br>``` | "StaticWeaponUnpacked" | ```sqf<br>params ["_group", "_leader", "_gunner", "_assistant", "_weapon"];<br>``` |
| #### Structures |  |  |
| ```sqf<br>missionNamespace<br>``` | "StructureDamaged" Arma 3 v2.22 | ```sqf<br>params ["_structure", "_shot", "_position", "_velocity", "_ammo", "_explosive", "_indirectHit", "_invArmor", "_explPow", "_damage"];<br>``` |
| ```sqf<br>missionNamespace<br>``` | "StructureDestroyed" Arma 3 v2.22 | ```sqf<br>params ["_structure", "_killer", "_instigator", "_useEffects", "_shot", "_real"];<br>``` |
| #### Module Curator RemoteControl |  |  |
| ```sqf<br>_curator<br>``` | "curatorObjectRemoteControlled" | ```sqf<br>params ["_curator", "_player", "_unit", "_isRemoteControlled"];<br>```<br>- _isRemoteControlled is [true](../commands/true.md) when entering remote control, [false](../commands/false.md) when exiting |
| #### Module End Game |  |  |
| ```sqf<br>missionNamespace<br>``` | "EndGame_OnStageChanged" | ```sqf<br>params ["_stage", "_side"];<br>``` |
| ```sqf<br>missionNamespace<br>``` | "EndGame_OnStartGameObjectiveCompleted" | ```sqf<br>params ["_side"];<br>``` |
| ```sqf<br>missionNamespace<br>``` | "EndGame_OnObjectiveStateChanged" | ```sqf<br>params ["_objective", "_side", "_newState"];<br>``` |
| ```sqf<br>missionNamespace<br>``` | "EndGame_OnObjectiveCompleted" | ```sqf<br>params ["_objective"];<br>``` |
| ```sqf<br>missionNamespace<br>``` | "EndGame_OnObjectiveEnded" | ```sqf<br>params ["_objective"];<br>``` |
| ```sqf<br>missionNamespace<br>``` | "EndGame_OnDownloadCompleted" | ```sqf<br>params ["_side", "_isUpload"];<br>``` |
| ```sqf<br>missionNamespace<br>``` | "EndGame_Ended" | ```sqf<br>params ["_winnerSide", "_loserSide", "_isDraw"];<br>``` |
| ```sqf<br>missionNamespace<br>``` | "onUploadStateChanged" | ```sqf<br>params ["_side"]; // can be nil<br>``` |
| ```sqf<br>missionNamespace<br>``` | "onPickupInfoChanged" | ```sqf<br>params ["_BIS_hvt_pickupInfo"];<br>``` |
| #### Module Game Master (Zeus) |  |  |
| ```sqf<br>_curator<br>``` | "curatorGroupPlaced" | ```sqf<br>params ["_group"];<br>``` |
| ```sqf<br>_curator<br>``` | "curatorObjectPlaced" | ```sqf<br>params ["_object"];<br>``` |
| ```sqf<br>_curator<br>``` | "curatorUnitAssigned" | ```sqf<br>params ["_curator", "_player"];<br>``` |
| #### Module Rich Curve Key |  |  |
| _curKey | "reached" | ```sqf<br>params ["_curKey"];<br>``` |
| #### Module Sector |  |  |
| ```sqf<br>_sector<br>``` | "ownerChanged" | ```sqf<br>params ["_sector", "_owner", "_ownerOld"];<br>``` |
| #### Module Spawn AI: Sector Tactic |  |  |
| ```sqf<br>missionNamespace<br>``` | "bis_groundSupport_groupSpawned" | ```sqf<br>params ["_bis_groundSupport_groupSpawned", "_group", "_side"];<br>``` |
| ```sqf<br>missionNamespace<br>``` | "bis_groundSupport_wiped" | ```sqf<br>params ["_bis_groundSupport_wiped", "_group"];<br>``` |
| ```sqf<br>missionNamespace<br>``` | "bis_groundSupport_inEnemySector" | ```sqf<br>params ["_bis_groundSupport_inEnemySector", "_group"];<br>``` |
| ```sqf<br>missionNamespace<br>``` | "bis_groundSupport_destinationReached" | ```sqf<br>params ["_bis_groundSupport_destinationReached", "_group"];<br>``` |
| ```sqf<br>missionNamespace<br>``` | "bis_groundSupport_groupTypeChanged" | ```sqf<br>params ["_bis_groundSupport_groupTypeChanged", "_group", "_type", "_currentType"];<br>``` |
| ```sqf<br>missionNamespace<br>``` | "bis_groundSupport_decimated" | ```sqf<br>params ["_bis_groundSupport_decimated", "_group"];<br>``` |
| ```sqf<br>missionNamespace<br>``` | "bis_groundSupport_farFromDestination" | ```sqf<br>params ["_bis_groundSupport_farFromDestination", "_group"];<br>``` |
| ```sqf<br>missionNamespace<br>``` | "bis_groundSupport_needTransport" | ```sqf<br>params ["_bis_groundSupport_needTransport", "_group"];<br>``` |
| ```sqf<br>missionNamespace<br>``` | "bis_groundSupport_joined" | ```sqf<br>params ["_bis_groundSupport_joined", "_group", "_transportGroup"];<br>``` |
| ```sqf<br>missionNamespace<br>``` | "bis_groundSupport_closeToDestination" | ```sqf<br>params ["_bis_groundSupport_closeToDestination", "_group"];<br>``` |
| ```sqf<br>missionNamespace<br>``` | "bis_groundSupport_needEvac" | ```sqf<br>params ["_bis_groundSupport_needEvac", "_group"];<br>``` |
| ```sqf<br>missionNamespace<br>``` | "bis_groundSupport_needAmmo" | ```sqf<br>params ["_bis_groundSupport_needAmmo", "_group"];<br>``` |
| ```sqf<br>missionNamespace<br>``` | "bis_groundSupport_needSupport" | ```sqf<br>params ["_bis_groundSupport_needSupport", "_group", "_reportedVehicle"];<br>``` |
| ```sqf<br>missionNamespace<br>``` | "bis_groundSupport_boarded" | ```sqf<br>params ["_bis_groundSupport_boarded", "_group", "_transport"];<br>``` |
| ```sqf<br>missionNamespace<br>``` | "bis_groundSupport_transportStarted" | ```sqf<br>params ["_bis_groundSupport_transportStarted", "_group", "_transport"];<br>``` |
| ```sqf<br>missionNamespace<br>``` | "bis_groundSupport_transportEnded" | ```sqf<br>params ["_bis_groundSupport_transportEnded", "_group", "_transport"];<br>``` |
| ```sqf<br>missionNamespace<br>``` | "bis_groundSupport_transportAborted" | ```sqf<br>params ["_bis_groundSupport_transportAborted", "_group", "_transport"];<br>``` |
| ```sqf<br>missionNamespace<br>``` | "bis_groundSupport_disembarked" | ```sqf<br>params ["_bis_groundSupport_disembarked", "_group", "_transport"];<br>``` |
| #### Module Timeline |  |  |
| ```sqf<br>_timeline<br>``` | "finished" | ```sqf<br>params ["_timeline"];<br>``` |
| ```sqf<br>_timeline<br>``` | "played" | N/A |
| ```sqf<br>_timeline<br>``` | "looped" | ```sqf<br>params ["_timeline"];<br>``` |
| #### Module Trident |  |  |
| ```sqf<br>missionNamespace<br>``` | "BIS_fnc_moduleTrident_updated" | ```sqf<br>params ["_sideA", "_sideB", "_areFriendly"];<br>``` |
| #### Module Vehicle Respawn |  |  |
| ```sqf<br>missionNamespace<br>``` | "respawn" | ```sqf<br>params ["_newVeh", "_veh"];<br>``` |
| #### Spectrum Analyzer Device |  |  |
| ```sqf<br>missionNamespace<br>``` | "SpectrumAnalyzerOpened" | ```sqf<br>params ["_display"];<br>``` |
| ```sqf<br>missionNamespace<br>``` | "SpectrumAnalyzerClosed" | ```sqf<br>params ["_display"];<br>``` |

### Arma 3 Contact Events

> [!NOTE]
> This content is exclusive to the Arma 3 Contact Expansion.

- "antennaAdded"
- "antennaDeleted"
- "arsenalPreOpen"
- "behaviourChanged"
- "currentSignalChanged"
- "dangerZoneEntered"
- "dangerZoneExited"
- "diaryRecordSet"
- "dominantSideChanged"
- "gravitPulseHit"
- "gravitPulseRewarded"
- "handleCombat"
- "handleWarningShot"
- "moveToModelSpaceCompleted"
- "puzzleReset"
- "puzzleStepCompleted"
- "puzzleTerminated"
- "refresh"
- "respawnTicketsExhausted"
- "rotationChanged"
- "signalEnded"
- "signalScanned"
- "signalStartedPassive"
- "siteSpawned"
- "taskSet"
- "translationChanged"
- "transmittingEnded"
- "transmittingStarted"
- "wpPatrolEnded"
- "wpPatrolStarted"

<sub>Source: [BI Community Wiki — Arma 3: Scripted Event Handlers](https://community.bistudio.com/wiki/Arma_3:_Scripted_Event_Handlers) (revision 378628).</sub>
