Arma 3 Scripting

Arma 3: Steam Game Recording

Topic · Markdown · JSON · original wiki page

Arma 3 v2.20

Arma 3 supports the Steam Timeline feature as part of Steam Game Recording.

The game has implemented timeline events for:

Scenarios and mods are able to also trigger (custom) events! This is primarily done via the steamGameRecordingEvent 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:

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:

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

Special Utilities

While steamGameRecordingEvent 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:

steamGameRecordingEvent ["StartGamePhase", "Your Game Phase ID"]; //Start a game phase, separately presented in the clip listing
steamGameRecordingEvent ["EndGamePhase"]; //End a game phase
steamGameRecordingEvent ["SetGamePhaseTag", "TagName", "TagGroup", "a3_steam_x"]; //Apply a tag with associated icon in the current game phase
steamGameRecordingEvent ["SetGamePhaseAttribute", "AttributeName", "AttributeGroup"]; //Apply an attribute in the current game phase
steamGameRecordingEvent ["SetTooltip", "TooltipText"(, StartOffset)]; //Apply a tooltip to the timeline
steamGameRecordingEvent ["ClearTooltip"(, StartOffset)]; //Clear tooltip from the timeline

Icons

While Steam itself has a set of icons available, 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