Registry
The registry (not to be confused with the Windows registry) consists of what the official modding documentation refers to as "nodes", which are key and value pairs where both are strings.
Registry nodes are not to be confused with commands, which follow the same naming conventions but are handled entirely separately.
All registry values are strings, but there are helper functions to convert to/from other types. If there is a single intended type for a value, I'll label it as one of the following: string, boolean, integer, float, or empty string value.
Underlined text in description terms are placeholders and should be replaced as described in the description details.
Nodes
"Non-engine" means it is only ever get or set by Lua scripts, and never by the engine.
game.break
- Added in 0.9.6 (8498817).
game.break.size
- Added in 0.9.6 (8498817).
game.break.x
- Added in 0.9.6 (8498817).
game.break.y
- Added in 0.9.6 (8498817).
game.break.z
- Added in 0.9.6 (8498817).
game.brokenvoxels
-
Number of destroyed voxels. Integer. Small bodies despawning do not count toward this. Breaking off a chunk of something will not consider that chunk destroyed; only actually removing the voxels well cause them to be count.
Added in 0.5.0 (5943727).
game.canquickload
game.cctv.hits
-
How close you are to being detected by a light with the
cctv
tag. Integer. Range 0 to 10.
Removed in 0.5.0 (5943727).
game.cpu.threads
-
Number of CPU threads. Integer.
Removed in 0.4.5 (5748542).
game.deploy
- Always set to
1
. Boolean. If falsy, the main menu and hub computer scripts will try to display additional developer only controls, but the script that contains them (data/ui/debug.lua
) has its contents stripped in all known builds—except 0.3.0 (perftest), which doesn't use a separate file.
game.destroyed
-
Number of destroyed voxels. Integer. Obsoleted by
game.brokenvoxels
.
Removed in 0.4.5 (5748542).
game.disableinput
- Added in 0.4.5 (5748542).
game.disableinteract
- Added in 0.9.3 (8199301).
game.disablemap
- Added in 0.6.1 (6279809).
game.disablepause
- Added in 0.6.1 (6279809).
game.explosion.strength
- Added in 0.7.0 (6551167).
game.explosion.x
- Added in 0.7.0 (6551167).
game.explosion.y
- Added in 0.7.0 (6551167).
game.explosion.z
- Added in 0.7.0 (6551167).
game.fire.maxcount
- Added in 0.8.0 (7458793).
game.fire.spread
- Added in 0.8.0 (7458793).
game.graphics.bindless
-
Whether or not the GPU supports bindless textures. String. Can be either
Enabled
or Disabled
.
Removed in 0.4.5 (5748542).
game.graphics.card
-
Name of OpenGL renderer, i.e.
glGetString(GL_RENDERER)
. String.
Removed in 0.4.5 (5748542).
game.graphics.fps
-
Current frames per second. Integer. Only exists if in level.
Removed in 0.4.5 (5748542).
game.graphics.fpsavg
-
Average frames per second since level was entered. Integer.
Removed in 0.4.5 (5748542).
game.graphics.height
-
Height of viewport in pixels. Integer.
Removed in 0.4.5 (5748542).
game.graphics.vendor
-
Name of OpenGL implementation vendor, i.e.
glGetString(GL_VENDOR)
. String.
Removed in 0.4.5 (5748542).
game.graphics.width
-
Width of viewport in pixels. Integer.
Removed in 0.4.5 (5748542).
game.input.crouch
- Added in 0.7.1 (6627985).
game.input.curdevice
-
String. Can be either
mouse
or gamepad
.
Added in 0.9.4 (8273165).
game.input.down
- Added in 0.4.6 (5777578).
game.input.flashlight
- Added in 0.7.1 (6627985).
game.input.grab
- Added in 0.7.1 (6627985).
game.input.handbrake
- Added in 0.7.1 (6627985).
game.input.interact
- Added in 0.7.1 (6627985).
game.input.jump
- Added in 0.7.1 (6627985).
game.input.left
- Added in 0.4.6 (5777578).
game.input.lmb
- Added in 0.9.4 (8273165).
game.input.locktool
- Added in 0.7.0 (6551167).
game.input.map
- Added in 0.7.1 (6627985).
game.input.mmb
- Added in 0.9.4 (8273165).
game.input.mousex
- Added in 0.9.4 (8273165).
game.input.mousey
- Added in 0.9.4 (8273165).
game.input.pause
- Added in 0.7.1 (6627985).
game.input.right
- Added in 0.4.6 (5777578).
game.input.rmb
- Added in 0.9.4 (8273165).
game.input.scroll_down
- Added in 0.9.4 (8273165).
game.input.scroll_up
- Added in 0.9.4 (8273165).
game.input.up
- Added in 0.4.6 (5777578).
game.input.usetool
- Added in 0.7.1 (6627985).
game.input.vehicle_action
- Added in 0.9.4 (8273165).
game.input.vehicle_lower
- Added in 0.9.4 (8273165).
game.input.vehicle_raise
- Added in 0.9.4 (8273165).
game.ksiva
-
Some kind of unique identifier for your game session relating to Saber Interactive's analytics (
hydra5-x64.dll
). String. Unused.
Added in 1.3.0 (10148769).
game.largeui
- Added in 1.1.0 (8942147).
game.levelid
game.levelpath
game.loading.alpha
game.loading.text
game.map.enabled
game.map.fade
game.map.focus
game.mod
- Added in 0.5.0 (5943727).
game.mod.description
- Added in 0.5.0 (5943727).
game.mod.title
- Added in 0.5.0 (5943727).
game.music.volume
- Added in 0.9.0 (7801522).
game.music.lowpass
- Added in 1.3.0 (10148769).
game.path
game.path.alpha
game.path.current.x
game.path.current.y
game.path.current.z
game.path.length
game.path.loaded
game.path.pos
game.path.recording
game.paused
game.player.cangrab
game.player.caninteract
game.player.caninteract.x
- Removed in 0.5.0 (5943727).
game.player.caninteract.y
- Removed in 0.5.0 (5943727).
game.player.caninteract.z
- Removed in 0.5.0 (5943727).
game.player.caninteractvehicle
- Removed in 0.5.0 (5943727).
game.player.canusetool
game.player.disableinput
- Added in 0.9.0 (7801522).
game.player.grabbing
game.player.health
game.player.hit
- Added in 1.1.0 (8942147).
game.player.idling
game.player.interactive
- Added in 0.5.0 (5943727).
game.player.pickdesc
- Removed in 0.5.0 (5943727).
game.player.picking
game.player.picktarget
- Removed in 0.5.0 (5943727).
game.player.pickvehicle
- Removed in 0.5.0 (5943727).
game.player.steroid
- Added in 0.9.0 (7801522).
game.player.throwing
game.player.tool
game.player.tool.scope
- Added in 0.9.0 (7801522).
game.player.toolselect
- Added in 0.8.0 (7458793).
game.player.usescreen
game.player.usevehicle
game.restarted
- Added in 0.4.5 (5748542), removed in 0.5.0 (5943727).
game.saveerror
- Added in 0.4.6 (5777578).
game.savegamepath
- Added in 0.7.3 (6911672).
game.screenshot
- Added in 0.7.0 (6551167).
game.screenshot.bloom
- Added in 0.7.0 (6551167).
game.screenshot.dof.max
- Added in 0.7.0 (6551167).
game.screenshot.dof.min
- Added in 0.7.0 (6551167).
game.screenshot.dof.scale
- Added in 0.7.0 (6551167).
game.screenshot.exposure
- Added in 0.7.0 (6551167).
game.screenshot.tool
- Added in 0.7.0 (6551167).
game.simtime
- Removed in 0.4.5 (5748542).
game.steam.active
- Added in 1.2.0 (9734688).
game.steam.hascontroller
- Added in 0.7.1 (6627985).
game.steamdeck
- Added in 0.9.4 (8273165).
game.tool
game.tool.count
- Removed in 0.6.1 (6279809).
game.vehicle.health
game.vehicle.interactive
- Added in 0.5.0 (5943727).
game.version
game.version.patch
- Added in 0.5.5 (6205729).
game.workshop
- Added in 0.6.1 (6279809).
game.workshop.publish
- Added in 0.7.0 (6551167).
hud.aimdot
-
Whether to display the crosshair. Boolean. Non-engine.
Added in 0.7.0 (6551167).
hud.disable
- Added in 0.6.1 (6279809).
hud.hasnotification
- Added in 0.4.5 (5748542). Non-engine.
hud.notification
- Added in 0.4.5 (5748542). Non-engine until 0.7.0 (6551167).
level.campaign
- Added in 0.7.3 (6911672).
level.interactinfo
- Removed in 0.5.0 (5943727).
level.sandbox
- Added in 0.7.1 (6627985). Non-engine.
level.spawn
- Added in 0.9.3 (8199301). Non-engine.
level.unlimitedammo
- Added in 0.7.1 (6627985). Non-engine.
map.description
-
If this exists, it will be used in place of the mission description on the map. String. Non-engine.
Added in 1.3.0 (10148769).
map.description2
-
If this exists, it will be used in place of the mission subdescription on the map. String. Non-engine.
Added in 1.3.0 (10148769).
map.security.description
-
If this exists, it will be used in place of the security description on the map. String. Non-engine.
Added in 1.3.0 (10148769).
map.security.title
-
If this exists, it will be used in place of the security name on the map. String. Non-engine.
Added in 1.3.0 (10148769).
map.title
-
If this exists, it will be used in place of the mission name on the map. String. Non-engine.
Added in 1.3.0 (10148769).
mods.available
-
Empty string value; exists only to be a parent to a node for every mod. The key is the mod ID, and the value is an empty string as they also only exist to be parents to other nodes.
A mod ID starting with
builtin-
is a "built-in" mod in mods/
in the game folder.
A mod ID starting with local-
is a "local" mod in Teardown/mods/
in your Documents.
A mod ID starting with steam-
is a Steam Workshop mod. The numbers after steam-
are the ID of the mod; you can append it to the end of this URL to be brought to its Steam Workshop page.
Added in 0.5.0 (5943727).
mods.available.id.active
- Whether or not the mod is enabled. Boolean. (TODO: When was this added?)
mods.available.id.author
- The author of the mod as specified in
info.txt
. String. Empty string if not specified. (TODO: When was this added?)
mods.available.id.description
- The description of the mod as specified in
info.txt
. String. Empty string if not specified. (TODO: What if it's too long or malformed? When was this added?)
mods.available.id.listname
- The human readable name of the mod. String. The name of the mod folder if it's a local mod, or the name of the mod specified in
info.txt
if it's a built-in mod or Workshop mod (or an empty string if none is specified). (TODO: When was this added?)
mods.available.id.local
- Whether or not the mod is a local mod. Boolean. (TODO: When was this added?)
mods.available.id.name
- The name of the mod as specified in
info.txt
. String. Empty string if not specified. (TODO: When was this added?)
mods.available.id.options
- Whether or not the mod has options or not, i.e. whether it has an
options.lua
file. Boolean. (TODO: When was this added?)
mods.available.id.override
- Whether or not the mod is a global mod and will have an enable/disable button in the mod manager. Boolean. Should be truthy if the mod has a
main.lua
file and is not playable. (TODO: When was this added?)
mods.available.id.path
- The absolute path to the mod folder. String. Only used for local mods. (TODO: What about non-local mods? When was this added?)
mods.available.id.playable
- Whether or not this mod should have a "Play" button. Boolean. Should be truthy if the mod has a
main.xml
file. (TODO: When was this added?)
mods.available.id.showbold
- Whether or not this mod has been interacted with since the last time it was updated. Boolean. Causes the mod name to appear in bold in the mod manager if truthy. Only applicable for Steam Workshop mods. (TODO: When was this added?)
mods.available.id.steamtime
- When the mod was last updated. Integer. 0 if the mod is not a Workshop mod. (TODO: When was this added?)
mods.available.id.subscribetime
- When the mod was last subscribed to by the player. Integer. Garbage vaguely near the current time if not a Workshop mod. (TODO: When was this added?)
mods.available.id.tags
- The tags of the mod as specified in
info.txt
in human readable form. String. Tags are concatenated together with ", " between in the order: "Global" or "Content" (mutually exclusive), "Map", "Gameplay", "Asset", "Vehicle", "Tool". Custom tags are ignored. (TODO: When was this added?)
mods.available.id.timestamp
- When the mod was last updated as a human readable time. String. Format is "YYYY-MM-DD hh:mm:ss". Empty string if not a Workshop mod. (TODO: When was this added?)
mods.pending.id
-
"id" is not the mod ID like for
mods.available.id
, but rather the Steam Workshop ID. Empty string value; exists only to be a parent to other nodes. Used by data/ui/promo.lua
to allow subscribing to
Added in 1.2.0 (9734688).
mods.pending.id.downloading
-
Whether or not the mod is being downloaded by Steam. Boolean. There is a brief gap between subscribing to a mod and it starting to download, even if subscribing was done in-game.
Added in 1.2.0 (9734688).
mods.pending.id.installed
-
Whether or not the mod has been fully downloaded by Steam. Boolean. There is a brief gap between
mods.pending.id.downloading
becoming falsy and this becoming truthy after the mod is done downloading.
Added in 1.2.0 (9734688).
mods.publish.id
-
The Workshop ID of the mod about to be published. String? 0 if the mod has not already been published to the Steam Workshop.
Added in 0.6.1 (6279809).
mods.publish.message
-
Error message if publishing failed. String.
Added in 0.6.1 (6279809).
mods.publish.progress
-
Progress of publishing mod. Float. From range 0 to 1. Used by
data/ui/menu.lua
which clamps to range 0.1 to 0.9.
Added in 0.6.1 (6279809).
mods.publish.state
-
String. Valid values are:
done
- The mod was successfully published to the Steam Workshop. The
mods.publishend
command is intended to be run after this. (TODO: What happens if you try to publish another mod without ending the previous one?)
failed
- Similar to
ready
in that one can try to publish.
ready
- The mod can be published to the Steam Workshop. The
mods.publishupload
command can be used to start uploading the mod.
uploading
- The mod is currently being uploaded to the Steam Workshop by the engine. Can be cancelled with the
mods.publishcancel
command. Progress can be read from mods.publish.progress
.
Added in 0.6.1 (6279809).
mods.publish.visibility
-
Integer. 0 is public, 1 is friends only, 2 is private, and 3 is unlisted. A -1 value is referenced in the code but its purpose is unclear.
Added in 0.6.1 (6279809).
mods.subscribestate.id
- Has never existed. Obsoleted by
mods.pending.id
. Empty string value. Would have been used by data/ui/promo.lua
as evidenced by commented out code.
mods.subscribestate.id.downloading
- Has never existed. Obsoleted by
mods.pending.id.downloading
. Boolean. Would have been used by data/ui/promo.lua
as evidenced by commented out code.
mods.subscribestate.id.installed
- Has never existed. Obsoleted by
mods.pending.id.installed
. Boolean. Would have been used by data/ui/promo.lua
as evidenced by commented out code.
options.audio.ambiencevolume
- Integer. Defaults to 100. Intended range is 0 to 100. Only appears in options menu if
game.deploy
is falsy. (since 0.4.5 (5748542)).
-
Whether to play music on the main menu. Integer. 1 is enabled, 0 is disabled.
Added in 0.9.0 (7801522).
options.audio.musicvolume
- Volume of music as percentage. Integer. Defaults to 100. Intended range is 0 to 100.
options.audio.soundvolume
- Volume of audio (excluding music) as percentage. Integer. Defaults to 100. Intended range is 0 to 100.
options.display.mode
- Whether to be in windowed mode or fullscreen. Integer. 0 is exclusive fullscreen, 1 is windowed, 2 is borderless windowed.
options.display.resolution
- Which resolution preset to use. Integer. Varies depending on screen resolution and display mode. Must be 0 in borderless windowed. Will never be negative. Use
GetDisplayResolution
to get resolution for given display mode and preset index. Use GetDisplayResolutionCount
to get number of presets for given display mode (including 0).
options.game.campaign.ammo
-
Amount of ammo to add to all tools as a percentage multiplier. Integer. Non-engine. Intended values are 50, 100, -1 (special value that means tool will have no ammo at all), or 0.
Added in 0.7.3 (6911672). Non-engine.
options.game.campaign.health
-
Amount of health to add to max health as a percentage. Integer. Non-engine. Intended values are 50, 100, -50, or 0.
Added in 0.7.3 (6911672). Non-engine.
options.game.campaign.time
-
Amount of time in seconds to add to timer after alarm goes off in missions. Integer. Non-engine. Intended values are 15, 30, 60, -10, -20, or 0.
Added in 0.7.3 (6911672). Non-engine.
options.game.missionskipping
-
Whether the option to skip missions on the terminal and mission fail screens should appear. Integer. 1 is enabled, 0 is disabled.
Added in 0.7.3 (6911672). Non-engine.
options.game.sandbox.unlocklevels
-
Whether all sandbox levels should be available, or only unlocked sandbox levels should be available. Integer. 1 is enabled, 0 is disabled.
Added in 0.7.3 (6911672). Non-engine.
options.game.sandbox.unlocktools
-
Whether all tools should always be available in sandbox, or whether only unlocked tools should be available. Integer. 1 is enabled, 0 is disabled.
Added in 0.7.3 (6911672). Non-engine.
options.game.spawn
-
Whether the spawn menu should always be accessible, or only be accessible in sandbox mode. Integer. 1 is enabled, 0 is disabled.
Added in 0.7.3 (6911672). Non-engine.
options.gfx.barrel
- Whether barrel distortion should be used. Integer. 1 is enabled, 0 is disabled.
options.gfx.dof
- Whether depth of field should be used. Integer. 1 is enabled, 0 is disabled.
options.gfx.fov
- Field of view in degrees. Integer. Defaults to 90. Intended range is 60 to 120.
options.gfx.gamma
- Gamma correction. Integer. Lower makes the scene darker, higher makes the scene brighter. Defaults to 100. Intended range is 50 to 150.
options.gfx.motionblur
- Whether motion blur should be used. Integer. 1 is enabled, 0 is disabled.
options.gfx.quality
- Render quality. Integer. High is 1, low is 2, medium is 3.
options.gfx.renderscale
- Render scale as a percentage. Integer. Intended values are 100, 75, or 50, but higher values work. Lower values not tested.
options.gfx.vsync
- Whether vertical synchronization should be used. Integer. 0 is disabled, 1 is "every frame", 2 is "every other frame". -1 is adaptive (since 0.7.1 (6627985)).
options.input.headbob
- Percentage for how much the camera should tilt in response to player movement, and screen shaking on swing/gunshot. Does not affect shake on explosion. Integer. Defaults to 0. Intended range is 0 to 100.
options.input.invert
- Whether to invert vertical look movement. Integer. 1 is enabled, 0 is disabled.
options.input.keymap.backward
- Added in 0.7.1 (6627985).
options.input.keymap.crouch
- Added in 0.7.1 (6627985).
options.input.keymap.flashlight
- Added in 0.7.1 (6627985).
options.input.keymap.forward
- Added in 0.7.1 (6627985).
options.input.keymap.interact
- Added in 0.7.1 (6627985).
options.input.keymap.jump
- Added in 0.7.1 (6627985).
options.input.keymap.left
- Added in 0.7.1 (6627985).
options.input.keymap.right
- Added in 0.7.1 (6627985).
options.input.sensitivity
- Mouse sensitivity percentage multiplier. Integer. Defaults to 100. Intended range is 25 (50 before 0.5.4 (6109598)) to 200.
options.input.smoothing
- Mouse smoothing percentage. Integer. Defaults to 0. Intended range is 0 to 100.
options.input.toolsway
-
Whether tool models should sway and move in response to player movement. Integer. 1 is enabled, 0 is disabled.
Added in 0.9.3 (8199301).
promo.available
- Added in 1.1.0 (8942147).
promo.groups
- Added in 1.1.0 (8942147).
savegame.cash
- Added in 0.4.5 (5748542). Non-engine.
savegame.challenge
- Added in 0.4.5 (5748542). Non-engine.
savegame.hint.targetlocation
- Added in 0.5.2 (6001321). Non-engine.
savegame.hub
- Added in 0.5.2 (6001321). Non-engine.
savegame.lastcompleted
- Added in 0.5.2 (6001321). Non-engine.
savegame.legalnoticeshown
- Added in 1.2.0 (9734688). Non-engine.
savegame.message
- Added in 0.5.2 (6001321). Non-engine.
savegame.mission
- Added in 0.5.2 (6001321). Non-engine.
savegame.promoclosed
- Added in 1.2.0 (9734688). Non-engine.
savegame.promoupdated
- Added in 1.2.0 (9734688).
savegame.reward
- Added in 0.5.2 (6001321). Non-engine.
savegame.spawn.shortcut
- Added in 0.9.3 (8199301). Non-engine.
savegame.startcount
- Added in 1.2.0 (9734688). Non-engine.
savegame.stats.brokentreadmills
- Added in 1.1.0 (8942378). Non-engine.
savegame.stats.brokenvoxels
- Added in 1.1.0 (8942378). Non-engine.
savegame.stats.skeetfullscore
- Added in 1.1.0 (8942378). Non-engine.
savegame.tool
- Added in 0.4.5 (5748542). Non-engine.
savegame.valuable
- Added in 0.4.5 (5748542). Non-engine.