---
name: "Arma 3: Steam Game Recording"
type: topic
source: https://community.bistudio.com/wiki/Arma_3:_Steam_Game_Recording
revid: 376706
updated: 2025-11-10T09:42:53Z
---

# Arma 3: Steam Game Recording

Arma 3 v2.20

Arma 3 supports the [Steam Timeline](https://partner.steamgames.com/doc/features/timeline) feature as part of [Steam Game Recording](https://store.steampowered.com/gamerecording).

The game has implemented timeline events for:

- Various events in general gameplay
- [Arma 3: Time Trials](../topics/Time_Trials.md)
- [Arma 3: Firing Drills](../topics/Firing_Drills.md)
- [Arma 3: Invaders](../topics/Invaders.md)

Scenarios and mods are able to also trigger (custom) events! This is primarily done via the [steamGameRecordingEvent](../commands/steamGameRecordingEvent.md) script command.

### Events

Event configs can be in Mission description.ext or mod config. The description.ext takes priority.
In mod config's the events are in "SteamManagerConfig >> GameRecording".
In description.ext the events are in "SteamGameRecording"

Adding custom events in a mod config:

```cpp
class SteamManagerConfig
{
    class GameRecording
    {
        class YourEvent //Class name referenced in the event trigger by script
        {
            scope = 2; //Accessor scope (2: public)
            title = "Your Event"; //Title text
            description = "Your event has triggered at %1."; //Description text (possibly with parameters)
            icon = "a3_steam_x"; //Icon from the list below
            priority = 100; //Priority relative to other events near the same time (0 - 1000)
            clipPriority = 2; //1: None, 2: Standard, 3: Featured
        };
    };
};
```

Disabling default Events in a mission description.ext:

```cpp
class SteamGameRecording
{
    class UnitKilled
    {
        scope = 0; //Accessor scope (0: private)
    };
    class VehicleKilled
    {
        scope = 0;
    };
};
```

### Special Utilities

While [steamGameRecordingEvent](../commands/steamGameRecordingEvent.md) is primarily used to trigger events defined in configs, it can also be used for triggering special utilities. These can mark game phases, set phase tags / attributes, and more. Explore the scripts and FSMs for the content listed above for inspiration (UI_F, Modules_F_Beta and Modules_F_Kart). Here are various examples to help get started:

```sqf
steamGameRecordingEvent ["StartGamePhase", "Your Game Phase ID"]; //Start a game phase, separately presented in the clip listing
```

```sqf
steamGameRecordingEvent ["EndGamePhase"]; //End a game phase
```

```sqf
steamGameRecordingEvent ["SetGamePhaseTag", "TagName", "TagGroup", "a3_steam_x"]; //Apply a tag with associated icon in the current game phase
```

```sqf
steamGameRecordingEvent ["SetGamePhaseAttribute", "AttributeName", "AttributeGroup"]; //Apply an attribute in the current game phase
```

```sqf
steamGameRecordingEvent ["SetTooltip", "TooltipText"(, StartOffset)]; //Apply a tooltip to the timeline
```

```sqf
steamGameRecordingEvent ["ClearTooltip"(, StartOffset)]; //Clear tooltip from the timeline
```

### Icons

While Steam itself has a [set of icons available](https://partner.steamgames.com/doc/features/timeline), Arma 3 has a (larger) set available as well.
This includes a duplication of the Steam set, which are better visually consistent with the rest of the icons (prefixed with "a3_**steam**_", see list below).

| Icon ID | Preview |
|---|---|
| *a3_aow* |  |
| *a3_grenade_throw* |  |
| *a3_armad* |  |
| *a3_explosive_trigger* |  |
| *a3_arsenal* |  |
| *a3_revive* |  |
| *a3_heal* |  |
| *a3_respawn* |  |
| *a3_icon* |  |
| *a3_curator* |  |
| *a3_kart* |  |
| *a3_heli* |  |
| *a3_mark* |  |
| *a3_expansion* |  |
| *a3_jets* |  |
| *a3_argo* |  |
| *a3_orange* |  |
| *a3_tacops* |  |
| *a3_tank* |  |
| *a3_enoch* |  |
| *a3_dlc* |  |
| *a3c_gm* |  |
| *a3c_vn* |  |
| *a3c_csla* |  |
| *a3c_ws* |  |
| *a3c_spe* |  |
| *a3c_rf* |  |
| *a3c_ef* |  |
| *a3_artillery* |  |
| *a3_radio* |  |
| *a3_supply_drop* |  |
| *a3_camera* |  |
| *a3_task_success* |  |
| *a3_task_failure* |  |
| *a3_challenge_timer* |  |
| *a3_challenge_cp* |  |
| *a3_challenge_target* |  |
| *a3_challenge_finish* |  |
| *a3_challenge_bronze* |  |
| *a3_challenge_no_bronze* |  |
| *a3_challenge_silver* |  |
| *a3_challenge_no_silver* |  |
| *a3_challenge_gold* |  |
| *a3_challenge_no_gold* |  |
| *a3_challenge_no_special* |  |
| *a3_invaders* |  |
| *a3_zeus* |  |
| *a3_rank_captain* |  |
| *a3_rank_colonel* |  |
| *a3_rank_corporal* |  |
| *a3_rank_general* |  |
| *a3_rank_lieutenant* |  |
| *a3_rank_major* |  |
| *a3_rank_private* |  |
| *a3_rank_sergeant* |  |
| *a3_reload* |  |
| *a3_inventory* |  |
| *a3_take* |  |
| *a3_vehicle_driver* |  |
| *a3_vehicle_passenger* |  |
| *a3_vehicle_commander* |  |
| *a3_vehicle_gunner* |  |
| *a3_vehicle_pilot* |  |
| *a3_eject* |  |
| *a3_steam_achievement* |  |
| *a3_steam_attack* |  |
| *a3_steam_bolt* |  |
| *a3_steam_bookmark* |  |
| *a3_steam_bug* |  |
| *a3_steam_cart* |  |
| *a3_steam_caution* |  |
| *a3_steam_chat* |  |
| *a3_steam_checkmark* |  |
| *a3_steam_chest* |  |
| *a3_steam_circle* |  |
| *a3_steam_combat* |  |
| *a3_steam_completed* |  |
| *a3_steam_crown* |  |
| *a3_steam_death* |  |
| *a3_steam_defend* |  |
| *a3_steam_diamond* |  |
| *a3_steam_edit* |  |
| *a3_steam_effect* |  |
| *a3_steam_explosion* |  |
| *a3_steam_fix* |  |
| *a3_steam_flag* |  |
| *a3_steam_gem* |  |
| *a3_steam_group* |  |
| *a3_steam_heart* |  |
| *a3_steam_info* |  |
| *a3_steam_invalid* |  |
| *a3_steam_marker* |  |
| *a3_steam_minus* |  |
| *a3_steam_pair* |  |
| *a3_steam_person* |  |
| *a3_steam_plus* |  |
| *a3_steam_purchase* |  |
| *a3_steam_question* |  |
| *a3_steam_ribbon* |  |
| *a3_steam_screenshot* |  |
| *a3_steam_scroll* |  |
| *a3_steam_square* |  |
| *a3_steam_star* |  |
| *a3_steam_starburst* |  |
| *a3_steam_timer* |  |
| *a3_steam_transfer* |  |
| *a3_steam_triangle* |  |
| *a3_steam_trophy* |  |
| *a3_steam_view* |  |
| *a3_steam_x* |  |

<sub>Source: [BI Community Wiki — Arma 3: Steam Game Recording](https://community.bistudio.com/wiki/Arma_3:_Steam_Game_Recording) (revision 376706).</sub>
