Skip to content

Command reference ​

Press backquote/tilde to open the browser console. Run help for the commands registered in the current composition and help <command> for its usage and subcommands.

This page is organized by task rather than generated from source. Engine commands are discovered from src/engine/console/commands/; the FPS module adds commands from src/games/fps/console/commands/. Commands marked dev require developer 1: without it the console answers Command 'x' requires developer mode and leaves them out of completion.

Setup and help ​

CommandPurpose
help [command]List commands or show one command's usage and subcommands
developer [0|1]Turn developer mode on or off (alias dev)
versionShow the build version (alias ver)
clearClear console output (alias cls)
echo <text>Print text
exec <filename>Run a config file through the virtual filesystem
quitExit the CLI or desktop app (aliases exit, q)
writeconsoleWrite the console log to a file (alias condump)

Maps and BSP inspection ​

CommandPurpose
map <name> [gametype] devBrowser gameplay launch through the registered launcher
map list|current|reload|unload devGameplay-map operations
training_demo <map> [name] [gametype] devLaunch a map on a server that stays in warmup and records every tick of your play, for bots to learn a movement route from
training_demo stop devLeave the training server; it saves public/data/demos/training/<map>_<name>.shagdemo
bsp load|unload <name>Parse an indexed BSP for inspection, or drop it
bsp render [all|poly|patch|mesh]Build inspection geometry
bsp info|faces|entities|textures|worldspawnInspect parsed data
bsp clusters|lightmaps|lightgrid|requiredInspect visibility, lightmaps and dependencies
bsp loadrequired|preload|loadtexturesLoad dependent archives and textures
bsp applytextures|applylightmaps|clearApply or drop inspection materials
bsp sky info|apply|toggle|remove|debugInspect and manage BSP sky
bsp fog info|apply|clearInspect and manage BSP fog volumes
bsp collision pointShow contents at the active camera
bsp traceTrace a ray through the collision world
bsp doorInspect door and mover entities
pvs on|off|status|clusterPVS diagnostics

map needs a gameplay launcher, which the browser composition registers and cli:game does not; use bsp load there.

training_demo records one trick per demo: do it, then training_demo stop. A name that already exists gets _2, _3 and so on rather than being overwritten.

Camera and position ​

CommandPurpose
camera mode <isometric|iso|fps|freefly|follow|sidescroll>Select a built-in controller
camera fov <degrees>Get or set FOV
camera pos / camera infoInspect camera
pos [copy]Show or copy position (aliases position, getpos)
teleport <x> <y> <z> devMove the camera (aliases tp, goto)
freefly_speed [value] devGet or set freefly speed
freefly_collision [0|1]Turn freefly collision on or off
freefly_collision mode [native|bsp]Select the collision path
freefly_collision test|draw|clearProbe and visualise collision geometry
freefly_collision clipviz|clipdump|cliptraceInspect clip brushes

PK3 and shaders ​

CommandPurpose
pk3 list devList indexed packages
pk3 index devRebuild the runtime index
pk3 find <exact-path> devFind the owning archive
pk3 stats devShow package/file/shader/map counts
shader load|countLoad or count parsed shaders
shader list [filter]List parsed shader names
shader info [name]Inspect a shader or the aimed surface
shader surfaceSnapshot aimed mesh layers, depth/alpha state and texture UV transforms
shader resolve <name>Show resolved material flags
shader deps <name>Trace archive dependencies
shader aim <0|1>Highlight aimed surfaces
shader anim play|pause|resume|speed|statusDrive shader animation
shader glow|blendmode|lightmap|toggle|clearInspect and override stage behaviour

Cvars and rendering ​

CommandPurpose
<cvar> [value]Get or set a registered cvar directly
set <cvar> <value>Explicit setter
toggle <cvar>Toggle a boolean cvar, or flip a numeric one between 0 and 1
reset <cvar> / resetallRestore defaults
cvarlist [filter]List cvars
cvarexportCopy modified cvars
render list|reset|export|apply devRender-variable group operations
pp <effect> [value] devPost-processing control
show_fps [0|1|on|off]FPS counter (default on; saved preference)
cl_showspeed <0|1>Movement speed readout (default on)
perf capture [seconds]Performance capture and summary
export <all|cvars|camera|fx>Copy current state as config text
settings export|import|listCopy/import cvars through the clipboard, or list modified values
screenshot [filename]Save a screenshot

A numeric cvar refuses text: r_bloom abc fails and leaves the value alone rather than reading the typo as zero. A number outside the cvar's range is clamped, not refused.

settings import reports accepted settings and rejected line numbers. Unknown, read-only and invalid entries are not counted as imported; valid entries still apply. Blank lines and // or # comments are ignored. Exports quote and escape string values; simple name value and name "value" configs remain supported.

World, lighting and weather ​

CommandPurpose
light <subcommand> devDynamic light control
arealight [<image-url>|off]Area light from an image
shadow on|off|quality [value] devShadow control
godrays [sun|here|off]Volumetric light shafts
skybox load|clear|info [name] devSkybox control
fog devShow the world fog: its source (map or cvars), distance, start, colour, height band, sun, sky tint and sky height
r_fog 0|1World fog from the map's worldspawn on or off (saved)
r_fog_distance <d> devFog ~95% opaque at d; above 0 the r_fog_* cvars replace the map's fog, on any map
r_fog_color "r g b", r_fog_mindist <d> devOverride colour (default 0.75 grey) and start distance (-1 keeps the map's)
r_fog_height_clear <y>, r_fog_height_full <y> devHeight band (99999 / -99999 keep the map's)
r_fog_sun_dir "x y z", r_fog_sun_color "r g b [exp]", r_fog_sun_inscatter <i>, r_fog_sky_blend <0|1> devSun glow and sky horizon tint (-1 or empty keeps the map's)
daynight on|off|noon|midnight|sunrise|sunset|start|stop|info devDay/night cycle
daynight time <0-1>, daynight cycle <minutes> devSet the time of day, or the length of a full cycle
weather rain|snow|clear|fog|thunder|status [intensity]Weather
wind on|off|strength|direction [value]Wind
debris leaves|trash|dust|mixed|off|density|size|speedAmbient debris
time [subcommand]Time of day
texture <subcommand> devTexture inspection

Player state and cheats ​

CommandPurpose
god devToggle invulnerability
noclip devToggle movement through geometry
giveweapon <weapon_id|all> [amount]Give a weapon and ammunition
cl_wep_resetReset client weapon state
weapon <subcommand>Weapon inspection
spectator [0|1]Enter or leave spectator
timescale [value] devScale simulation speed
gravity [value] devMovement gravity shortcut
spawn [index] devMove to a spawn point
spawnmodel <model> [scale] [x y z] [angle] devSpawn a model
spawn_pickable_entity <entity_id> devSpawn a pickup
name [newname]Show or change the account name

Physics and diagnostics ​

CommandPurpose
physics init|on|off|gravity|debug|info devHavok scene-physics control
debug wireframe|bounds|player|info devDebug toggles and a scene summary
stats [detailed]Runtime statistics
mem [subcommand] devMemory statistics
inspect devInspect the aimed scene object
entity list|info|count devInspect entities
scene [subcommand]Scene queries
dump_scene [filter] devDump the Babylon scene graph
console_debug [0|1] devConsole diagnostics
editor [open|close|status|return] devOpen the SHAGGED four-view brush editor from the lobby; return comes back from a playtest. See SHAGGED Editor
animtest load|play|list|stop|dispose devAnimation harness
game info|load|switch|reloadGame module control
hud <subcommand> / ui <subcommand>HUD and UI control
audio <subcommand>Audio control

Networking and FPS game commands ​

Engine: join, nettest <subcommand>, binarytest <subcommand>.

The FPS module adds connect, disconnect, loadout, demo, demolist, demoplay, timedemo, netsim (network condition simulation), pickup_audit dev, camera_audit dev and water.

text
connect localhost:7777
disconnect
cl_netgraph 2
CommandPurpose
demolist [filter]List recorded demos
demo <number|filename>Load a demo
demoplayPlay the loaded demo
demoplay cinematic <minutes>Play a highlight reel of the given length
demoplay hud on|off|toggleShow or hide the demo overlays
demoplay analyzePrint the highlight analysis
demoplay stopStop playback, or cancel a demo that is still loading

A demo download is abandoned after 60 seconds without data, or after 15 minutes in total. The Demos menu offers Cancel during the transfer and Try again after an error, and a demo is fully validated before its playback replaces a live session.

For offline renderer benchmarking, see the timedemo guide. Game commands change independently of engine commands, so help in the running build is the final word.

Key bindings ​

CommandPurpose
bindList every bound key
bind <key>Show what one key runs
bind <key> <command>Bind a key to a console command
unbind <key>Remove one binding
unbind allRemove every binding
text
bind f screenshot
bind 5 "giveweapon all"
bind ` clear
unbind f

A key is written the way you would say it — f, 5, f5, space, esc, up, ` — or as the browser's own key code, KeyF. Bindings persist per browser.

This is separate from the action map in Settings → Controls. An action binding says what a key means while it is held — Jump, Fire, Crouch — and a command binding runs a console command once, on the press. A key can carry both: binding space to a command does not stop it being Jump.

A bound key stays quiet while a text field has the keyboard, while the console is open, and when Ctrl, Alt or Meta is held, so it never steals a browser or operating-system shortcut.

Released under the MIT License.