Global properties

The following properties are in the root of the game flow document and control various pieces of global behaviour. Currently, the majority of this section remains distinct for each game.

TR1

Example structure

Show snippet
{
    "main_menu_picture": "data/titleh.png",
    "savegame_fmt_legacy": "saveati.%d",
    "savegame_fmt_bson": "save_tr1_%02d.dat",
    "demo_delay": 16,
    "water_color": [0.45, 1.0, 1.0],
    "fog_start": 22.0,
    "fog_end": 30.0,
    "injections": [
        "data/global_injection1.bin",
        "data/global_injection2.bin",
        // etc
    ],
    "convert_dropped_guns": false,
    "enforced_config": {
        "enable_save_crystals": false,
    },
    "hidden_config": [
        "enable_legal",
    ],
    "levels": [
        {
            "path": "data/gym.phd",
            // etc
        },
    ],
    "cutscenes": [
        {
            "path": "data/cut1.phd",
            // etc
        },
    ],
    "demos": [
        {
            "path": "data/gym.phd",
            // etc
        },
    ],
    "fmvs": [
        {"path": "data/snow.rpl"},
        // etc
    },
}

Reference

Property Type Description
convert_dropped_guns Boolean Forces guns dropped by enemies to be converted to the equivalent ammo if Lara already has the gun. See Item drops for full details.
demo_delay Double* The number of seconds to pass in the main menu before playing the demo.
fog_start Double The distance (in tiles) at which objects and the world start to fade into blackness.
  • The default value in OG TR1 is hardcoded to 12.
  • The default (disabled) value in TombATI is 72.
fog_end Double The distance (in tiles) at which objects and the world are clipped away.
  • The default value in OG TR1 is hardcoded to 20.
  • The default (disabled) value in TombATI is 80.
enable_killer_pushblocks Boolean If enabled, when a pushblock falls from the air and lands on Lara, it will kill her outright. Otherwise, Lara will clip on top of the block and survive.
enable_tr2_item_drops Boolean Forces enemies who are placed in the same position as pickup items to carry those items and drop them when killed, similar to TR2+. See Item drops for full details.
enforced_config String-to-object map This allows any regular game config setting to be overriden. See User configuration for full details.
hidden_config String array This allows any regular game config setting to be hidden from the ingame settings dialogs. See User configuration for full details.
injections String array Global data injection file paths. Individual levels will inherit these unless inherit_injections is set to false on those levels. See Injections for full details.
levels Object array* This is where the individual level details are defined - see Level properties for full details.
main_menu_picture String* Path to the main menu background image.
savegame_fmt_bson String* Path pattern to look for the savegame files.
savegame_fmt_legacy String* Path pattern to look for the old TombATI savegame files.
water_color Float array Water color (R, G, B) or `#RRGGBB`. 1.0 or `FF` means pass-through, 0.0 or `00` means completely black color. See this table for reference values.
ambient_tracks Integer array A list of music track IDs, which will be treated as ambient music. If Lara crosses a trigger for any of these, it will become the current looped track, and will persist on save/load.

* Required property.

TR2

Example structure

Show snippet
{
    // NOTE: bad changes to this file may result in crashes.
    // Lines starting with double slashes are comments and are ignored.

    "main_menu_picture": "data/images/title_eu.webp",
    "savegame_fmt_legacy": "savegame.%d",
    "savegame_fmt_bson": "save_tr2_%02d.dat",

    "cmd_init":           {"action": "exit_to_title"},
    "cmd_title":          {"action": "noop"},
    "cmd_death_in_demo":  {"action": "exit_to_title"},
    "cmd_death_in_game":  {"action": "noop"},
    "cmd_demo_interrupt": {"action": "exit_to_title"},
    "cmd_demo_end":       {"action": "exit_to_title"},

    "cheat_keys": true,
    "load_save_disabled": false,
    "play_any_level": false,
    "lockout_option_ring": false,
    "demo_version": false,
    "single_level": -1,

    "demo_delay": 30,
    "secret_track": 43,

    "title": {
        "path": "data/title.tr2",
        "music_track": 60,
        "sequence": [
            {"type": "display_picture", "path": "data/images/legal_eu.webp", "legal": true},
            {"type": "play_fmv", "fmv_id": 0},
            {"type": "play_fmv", "fmv_id": 1},
            {"type": "exit_to_title"},
        ],
    },

    "sfx_path": "data/main.sfx",
    "injections": [
        "data/injections/pda_model.bin",
        "data/injections/winston_model.bin",
        "data/injections/font.bin",
    ],

    "levels": [
        {
            "path": "data/gym.phd",
            // etc
        },
    ],

    "cutscenes": [
        {
            "path": "data/cut1.phd",
            // etc
        },
    ],

    "demos": [
        {
            "path": "data/gym.phd",
            // etc
        },
    ],

    "fmvs": [
        {"path": "data/snow.rpl"},
        // etc
    ],

    "enforced_config": {
        "enable_zbuffer": false,
    },
    "hidden_config": [
        "enable_save_crystals",
    ],
}

Reference

Property Type Description
cmd_init Object The command to run when the game is first launched. See Game flow commands for full details.
cmd_title The command to run when the main menu is to be shown.
cmd_death_in_game The command to run when Lara dies.
cmd_death_in_demo The command to run when Lara dies during a demo (not used in the original game).
cmd_demo_interrupt The command to run when the player interrupts a demo.
cmd_demo_end The command to run when a demo finishes playback.
cheat_keys Boolean Whether to enable original game cheats (the ones where Lara turns around three times).
load_save_disabled Boolean Whether to disable saving and loading the game.
play_any_level Boolean Whether to show a full list of all levels in place of the New Game passport page.
lockout_option_ring Boolean Whether to disallow the players to use control ring while ingame.
demo_version Boolean Legacy setting scheduled for removal at a later time.
single_level Integer Force the player to only play this one level.
demo_delay Double The number of seconds to pass in the main menu before playing the demo.
main_menu_picture String* Path to the main menu background image.
savegame_fmt_legacy String* Path pattern to look for the original savegame files.
secret_track Integer Music track to play when a secret is found. -1 to not play anything.
sfx_path String The path to the sound effects (.sfx) file to use in the game.
fog_start Double The distance (in tiles) at which objects and the world start to fade into blackness. The default value in OG TR2 is hardcoded to 12.
fog_end Double The distance (in tiles) at which objects and the world are clipped away. The default value in OG TR2 is hardcoded to 20.
water_color Float array or hex string Water color (R, G, B) or `#RRGGBB`. 1.0 or `FF` means pass-through, 0.0 or `00` means completely black color. See this table for reference values.
ambient_tracks Integer array A list of music track IDs, which will be treated as ambient music. If Lara crosses a trigger for any of these, it will become the current looped track, and will persist on save/load.