--- layout: wiki title: ACE3 Events System description: Event handlers in ACE3 are implemented through our event system. They should be used to trigger or allow triggering of specific functionality. group: development parent: wiki order: 3 --- ## 1. Event Handlers Event handlers in ACE3 are implemented through our event system. They should be used to trigger or allow triggering of specific functionality. The commands are listed below. * `[eventName, eventCodeBlock] call ace_common_fnc_addEventHandler`
adds an event handler with the event name and returns the event handler id. * `[eventName, args] call ace_common_fnc_globalEvent`
calls an event with the listed args on all machines, the local machine, and the server. * `[eventName, args] call ace_common_fnc_serverEvent`
calls an event just on the server computer (dedicated or self-hosted). * `[eventName, targetObject(s), args] call ace_common_fnc_targetEvent`
calls an event just on the targeted object or list of objects. * `[eventName, args] call ace_common_fnc_localEvent`
calls an event just on the local machine, useful for inter-module events. Events can be removed or cleared with the following commands. * `[eventName, eventHandlerId] call ace_common_fnc_removeEventHandler`
will remove a specific event handler of the event name, using the ID returned from `ace_common_fnc_addEventHandler`. * `[eventName] call ace_common_fnc_removeAllEventHandlers`
will remove all event handlers for that type of event. ### 1.1 Synchronized Events * `[eventName, eventCodeBlock, ttlNumberOrCodeBlock] call ace_common_fnc_addSyncedEventHandler`
adds a globally synchronized event handler which will expire events after the provided TTL, or the code returns true. * `[eventName] call ace_common_fnc_removeSyncedEventHandler`
will remove a specific event handler of the event name, using the ID returned from `ace_common_fnc_addSyncedEventHandler`. * * `[eventName, args, ttlNumberOrCodeBlock] call ace_common_fnc_syncedEvent`
calls a global synchronized event, which will also be run on JIP players unless it has expired; event will expire after the provided TTL, or the code returns true. ### 1.2 Pattern: ```c++ // tapper machine ["tapShoulder", [_target], [otherArguments]] call EFUNC(common,targetEvent); // target machine XEH_preInit.sqf PREP(onTapShoulder); ["tapShoulder", FUNC(onTapShoulder) ] call EFUNC(common,addEventHandler); ``` ### 1.3 Listenable Event List:
Event Key Description Source(s) Passed Parameter(s) (_this) Locality
"playerChanged" `player` changed (zeus/respawn) common [_newPlayer, _oldPlayer] local
"PlayerJIP" Player was a JIP player, and `player` object is now created. common [_player] local
"playerInventoryChanged" Inventory changed common getAllGear-Array local
"playerVisionModeChanged" Vision mode changed (e.g. NVG on) common [_unit, _newVisionMode] local
"inventoryDisplayChanged" Inventory display opened/closed common [_unit, _isOpen] local
"zeusDisplayChanged" Zeus display opened/closed common [_unit, _isOpen] local
"cameraViewChanged" Camera view changed common [_unit, _newCameraView] local
"playerVehicleChanged" Player vehicle changed common [_unit, _newVehicle] local
"playerTurretChanged" Player turret changed common [_unit, _newTurretIndexArray] local
"infoDisplayChanged" On info box change (e.g. entering and leaving a vehicle) common [_display, _type] local
"inventoryDisplayLoaded" On opening the inventory display common [_display] local
"mapDisplayLoaded" On loading the map (briefing and mission start) common [_display, _mapType] local
"interactionMenuOpened" Interaction Menu Opened interaction local
"killedByFriendly" On TK/Civilian Killed respawn local
"drawing_requestMarkers" Request Drawing Markers map target
"drawing_sendbackMarkers" Send Drawing Markers map target
"drawing_addLineMarker" Line Drawn map global
"drawing_removeLineMarker" Line Deleted map global
"flashbangExplosion" Flashbang Goes Bang grenades target
### 1.4 Callable Event List:
Event Key Description Parameters Owner Locality
"ace_fcs_forceChange" force FCS updates fcs fcs local