Rust debug, profiling and other console commands
Quick answer: these are the Rust console commands for debugging, profiling, testing and every command not on the other pages. Type one in the server console or over RCON, or in the F1 console in game when you are an admin on that server. This list comes straight from a Rust dedicated server (Rust build 26431843, read 2026-11-06), and it is refreshed after every Rust update.
Admins means the player must be an owner or moderator on the server; Server console and RCON commands cannot be typed by a player at all. The common admin commands, the global commands (kick, ban, teleport) and the Oxide commands are on Rust admin commands. The other groups: Server, player and item commands, World, event and vehicle commands, F1 client commands.
analytics
Section titled “analytics”| Command | Who can run it | What it does |
|---|---|---|
analytics.resetstats | Admins | |
analytics.stats | Admins | |
analytics.tablestats | Admins | |
analytics.uploaderstats | Admins |
basesculpture
Section titled “basesculpture”| Command | Who can run it | What it does |
|---|---|---|
basesculpture.applyrandomshapes | Admins | |
basesculpture.listsavedsculptures | Admins | Lists all locally saved sculpture files in the sculpture save directory |
basesculpture.loadsculpture | Admins | Loads a .sculpt file by name and applies it to the sculpture entity the local player is currently looking at |
basesculpture.printcrc | Admins | |
basesculpture.savesculpture | Admins | Saves the sculpture the local player is currently looking at to a .sculpt file with the given name in the sculpture save directory |
copypaste
Section titled “copypaste”| Command | Who can run it | What it does |
|---|---|---|
copypaste.copybox_sv | Admins | Server-side handler that copies all entities within the specified bounding box (center + size) into a named paste file; called from copybox client command |
copypaste.copybuilding_sv | Admins | Server-side handler that copies all entities belonging to the building the player is looking at into a named paste file; called from the copybuilding client command |
copypaste.copyradius_sv | Admins | Server-side handler that copies all entities within the specified radius around a position into a named paste file; called from the copyradius client command |
copypaste.download_paste_sv | Admins | Downloads a paste file stored on the server (legacy server-side storage) by name and sends its entity data to the requesting client for local storage |
copypaste.killbox_sv | Admins | Server-side handler that destroys all entities within the current selection bounds that match the active paste filter options (NPCs, vehicles, deployables etc.) |
copypaste.list_pastes_sv | Admins | Lists all paste files stored in the legacy server-side copypaste directory and prints their names to the console |
copypaste.printselection_sv | Admins | Server-side handler that prints the names of all entities within the current selection bounds; used to preview what would be included in a copy operation |
copypaste.undopaste_sv | Admins | Undoes the most recent paste operation for the calling player by destroying all entities that were spawned in that paste; replies with ‘History empty’ if nothing to undo |
| Command | Who can run it | What it does |
|---|---|---|
debug.addmonumentblockergrace <minutes> (optional: <range>) | Admins | Adds the given number of minutes to the decay grace period timer of the monument blocker closest to you, making it start decaying that much sooner. Negative values rewind the timer |
debug.applybuildingblockrandomisation | Admins | Sets the visual variant index on the building block the calling player is looking at; useful for testing block randomisation visuals |
debug.applypuzzleresettime | Admins | Applies a debug reset time in seconds to all PuzzleReset objects in the scene, shortening their timers for rapid testing |
debug.bench_io | Admins | Spawn lots of IO entities to lag the server |
debug.breakheld | Admins | Break the current held object |
debug.breakheld_almost | Admins | Almost break the current held object |
debug.breakitem | Admins | Break all the items in your inventory whose name match the passed string |
debug.breakshield | Admins | Breaks the currently held shield |
debug.clearplayermodifiers | Admins | Removes all active modifiers (buffs/debuffs) from the calling player; useful for resetting modifier state during testing |
debug.cleartutorialforplayer | Admins | If a player ends up stuck on a tutorial for any reason this will clear the island and reset the player (will also kill player) |
debug.completemission | Admins | Completes all incomplete objectives in the calling player active mission, triggering the mission completion flow |
debug.completemissionstage | Admins | |
debug.completetutorial | Admins | Immediately completes the calling player tutorial by triggering the island completion callback; bypasses normal progression |
debug.console_print_color | Admins | Prints a message to the server console using the specified ConsoleColor index; useful for testing coloured console output |
debug.console_spam | Admins | Logs a configurable number of test messages of a given length; used to stress-test console/logging performance and measure output speed |
debug.conveyorstrictmodereport | Admins | Prints the world position of every industrial conveyor running in strict mode; helps locate conveyors that are blocking item flow |
debug.deleteentitiesbyshortname <shortname> (optional: <radius>) | Admins | Delete entities with the given short prefab name |
debug.deleteentitybyid | Admins | Delete entities by id. Supports multiple arguments |
debug.drink | Admins | Adds a specified amount of hydration to the calling player at a configurable rate; useful for quickly testing thirst-related mechanics |
debug.dropworlditems | Admins | Drops a specified number of the given item short name as world entities from just in front of the calling player; useful for item physics testing |
debug.eat | Admins | Adds a specified amount of calories to the calling player at a configurable rate; useful for quickly testing hunger-related mechanics |
debug.emptytankermodule | Admins | emptyTankerModule - Clears the contents of the tanker module(s) of the modular car you’re looking at |
debug.enable_player_movement | Admins | Sends a client RPC to the target player enabling or disabling their movement controls; admin only; useful for testing freeze/lock mechanics |
debug.fillmounts | Admins | fillmounts <radius> - Spawns and mounts a player on every mount point in radius |
debug.filltankermodule | Admins | fillTankerModule <item> - Fills the tanker module(s) of the modular car you’re looking at with the given liquid (e.g. water, water.salt, crude.oil) |
debug.findgap | Admins | Find how large of a gap there is. <maxDistance> <stepsize> <maxSize> <layer> |
debug.flushgroup | Admins | Takes you in and out of your current network group, causing you to delete and then download all entities in your PVS again |
debug.foodspoilingdeducttimehours | Admins | Deducts the given number of hours from all spoilable food on the server |
debug.foodspoilinginventoryhours | Admins | Applies the given number of hours to all food in the players inventory |
debug.foodspoilingspoilall | Admins | Spoils all food on the server |
debug.forcechickensspawnegg | Admins | Forces all chickens within a given radius of the calling player to immediately spawn an egg; useful for testing egg drop and collection logic |
debug.heal | Admins | To disable revival if player is downed, pass in --no-recover as the first argument. |
debug.hurt | Admins | Deals a specified amount of bullet damage to the calling player; optionally targets a named bone to test per-bone hit reactions |
debug.invis | Admins | Make admin invisible |
debug.print_topologies | Admins | Prints out the topologies at your position |
debug.printgrouplayer | Admins | Prints the network visibility layer (overworld, tunnel, underwater, etc.) at the calling player position; helps debug layer-based network group assignment |
debug.printgroups | Admins | Logs all server entity network group IDs and prefab names to the console; useful for debugging network visibility and group assignment |
debug.printmonumentblocker | Admins | Prints the health and decay state of the monument blocker closest to you. Optional argument: search range in metres (default 100) |
debug.printqueues | Admins | Prints a table of all ObjectWorkQueue instances showing name, total items processed, current queue length, and cumulative execution time |
debug.puzzlereset | Admins | Reset all puzzles. Optionally provide a number to only reset puzzles within a radius. |
debug.puzzleresetinfo | Admins | Prints detailed debug info about the PuzzleReset the calling player is currently inside, including timer state and dependency status |
debug.quittutorial | Any player | |
debug.refillvitals | Admins | Refills the vital of a target player. eg. debug.refillsvital jim - leave blank to target yourself, can take multiple players at once. Will revive players if they are injured. To disable this, pass in --no-recover as the first argument. |
debug.refillvitalsall | Admins | Refills the vitals of all active players on the server. Will revive players if they are injured. To disable this, pass in --no-recover as the first argument. |
debug.refrigeratedinventoryhours | Admins | Adds the given number of refrigerated hours to all food in the players inventory, so things like milk skimming can be tested without waiting |
debug.removeoverlappingstaticspawnpoints | Admins | Scans all static respawn areas and kills any whose centre is within 1 metre of another, eliminating duplicate spawn points |
debug.renderinfo | Admins | Generates and logs a render info report showing draw calls, batch counts, triangle counts, and shadow caster counts for the current frame |
debug.repair_inventory | Admins | Repair all items in inventory |
debug.resetsleepingbagtimers | Admins | Resets all sleeping bag respawn cooldown timers for the calling player, allowing immediate re-use of all their bags |
debug.respawnvinetreesinradius | Admins | Respawns vine trees from their stumps within a given radius of the calling player; reports how many were respawned versus blocked by players |
debug.setdamage | Admins | Deals enough bullet damage to bring the calling player or a named target to the specified health value |
debug.setfood | Admins | Sets the calling player or a named target player calorie level to the specified value directly |
debug.sethealth | Admins | Sets the calling player or a named target player health to the specified value; useful for testing low-health or death scenarios |
debug.setmaxhealth | Admins | Overrides the maximum health of the calling player or a named target; pass 0 to reset to the default value |
debug.setradiation | Admins | Sets the calling player or a named target player radiation level to the specified value directly |
debug.setthrowable | Admins | 0 = can’t throw, 1 = can throw & melee, 2 = only throwable |
debug.setunloadablecarfillpercent | Admins | Sets the ore fill percentage on all unloadable train cars within 3 metres of the calling player; updates both inventory amounts and visual ore level |
debug.setwater | Admins | Sets the calling player or a named target player hydration level to the specified value directly |
debug.spawn_all_deployables | Admins | Spawns one of every deployable in a grid |
debug.spawnovenstresstest | Admins | Spawns a 100x10 grid of lit furnaces loaded with wood and metal ore near the calling player; used to stress-test the oven cooking system |
debug.spawnparachutetester | Admins | Spawns a clone of the calling player at a configurable height with a parachute deployed and their belt and wear inventories copied |
debug.stall | Admins | Stalls the main thread for the given duration in seconds (clamped 0-1); admin-only; used to test timeout handling and watchdog systems |
debug.starttutorial | Any player | Begin the tutorial sequence. |
debug.test_custom_vitals | Admins | Sends a configurable number of test custom vital entries to the calling player client for a given duration; used to verify custom vitals UI rendering |
debug.testerror | Admins | Logs a test error and exception for testing error display. |
debug.testtutorialcinematic | Admins | Triggers the tutorial island ending cinematic for the calling player; spawns a kayak at the designated mount point and mounts the player to it |
debug.tutorialstatus | Admins | Prints a table of all active tutorial islands showing index, network group ID, assigned player name, duration, and connection state |
debug.vineswinginghighlight | Admins | Sends a highlight RPC to every VineMountable on the server targeting the calling player; used for visually debugging vine placement |
debug.vineswingingreport | Admins | Prints a summary table of all VineSwingingTree and VineMountable entities on the server, including average destination count per mountable |
navstress
Section titled “navstress”| Command | Who can run it | What it does |
|---|---|---|
navstress.bench | Admins | Run the full benchmark suite: args agentCount (default 200) |
navstress.benchresults | Admins | Print the last benchmark results |
navstress.build_env | Admins | Build the synthetic stress field: args centerX centerZ halfExtent (defaults -140 140 50) |
navstress.chase | Admins | Chase a sliding virtual target: args targetSpeed setDestinationHz |
navstress.clear | Admins | Despawn dummies and remove the field |
navstress.envreport | Admins | Print the last environment build report |
navstress.idle | Admins | Stop giving destinations and reset paths |
navstress.killforeign | Admins | Kill every NPC with a RustNavMeshAgent that is not a navstress dummy |
navstress.rebuildstorm | Admins | Async tile rebuilds under the field: args rebuildsPerSecond (0 stops) |
navstress.refcompare | Admins | Replay the scenario and compare against a recording: args name |
navstress.refrecord | Admins | Record the reference trajectory scenario: args name |
navstress.refresults | Admins | Print the last refpath result |
navstress.setmode | Admins | Flip all dummies between steering and normal mode without respawning |
navstress.spawn | Admins | Spawn stripped wolves: args count mode(steering|normal) canSwim canOpenDoors |
navstress.stats | Admins | Print and reset tick statistics |
navstress.wander | Admins | Random destinations forever: args intervalSeconds unreachableFraction |
physics
Section titled “physics”| Command | Who can run it | What it does |
|---|---|---|
physics.getbounds | Admins | Prints the combined world-space bounding box of the entity the calling admin is looking at; useful for verifying collider extents |
physics.print_colliders_per_cell | Admins | Prints a sorted table of physics cells and how many colliders each contains; helps identify areas with excessive collider density causing physics slowdowns |
physics.print_colliders_per_prefab | Admins | Prints a sorted table of prefab names and their collider counts; identifies prefabs with unusually high collider counts for optimisation |
physics.setbounds | Admins | (center vec3) (extents vec3) |
| Command | Who can run it | What it does |
|---|---|---|
pool.clear_assets | Admins | Clears all cached entries from the asset pool matching the optional name filter |
pool.clear_memory | Admins | Clears all entries from the object memory pool matching the optional name filter; freed pooled objects are garbage collected |
pool.clear_prefabs | Admins | Clears all cached prefab instances from the prefab pool matching the optional filter, across client, server, and generic pools |
pool.debug_mem_start | Admins | Start tracking objects from memory pool. Call _stop when done. Use * to explicitly request all types(super expensive!) |
pool.debug_mem_stop | Admins | Stop tracking objects from memory pool & log abnormalities. Accepts max number of logs |
pool.export_prefabs | Admins | Exports the current prefab pool contents to a prefabs.csv file listing pool ID, prefab short name, and instance count |
pool.fill_prefabs | Admins | Pre-warms the prefab pool by instantiating and pooling prefabs matching the optional filter up to the given count override |
pool.print_arraypool | Admins | Prints a usage report for the BaseNetwork and ProtocolParser array pools, showing bucket sizes, capacities, and hit/miss stats |
pool.print_assets | Admins | Prints a table of all asset pool entries showing asset type, current pooled count, and pool capacity |
pool.print_memory | Admins | Prints a table of all object pool entries showing type, capacity, active count, peak usage, hit/miss counts, and spill counts; supports --json |
pool.print_prefabs | Admins | Prints a table of all prefab pool entries showing prefab name, miss count, current count, target capacity, and push/pop counts; supports --json |
pool.reset_max_pool_counter | Admins | Resets the peak-usage high-water-mark counter for all pools, allowing fresh measurement of maximum pool demand |
profile
Section titled “profile”| Command | Who can run it | What it does |
|---|---|---|
profile.countsyncmoveentities | Admins | Counts and prints all entities that use synchronous movement updates grouped by prefab, helping identify expensive per-frame entity movers |
profile.dump_profile_recorders | Admins | Dumps all available Unity Profiler recorder handles to CSV format showing name, category, unit type, and flags; useful for discovering available performance metrics |
profile.flush_analytics | Admins | Flushes any buffered analytics events immediately to the analytics backend rather than waiting for the next scheduled flush |
profile.perfsnapshot | Admins | profile.perfsnapshot [delay=15, int] [name=‘Profile’, str, no extension, max 32chars] [frames=10, int, max 10] [debug=false, dumps a binary snapshot as well] Will produce a JSON perf snapshot of <frames> that can be viewed in Perfetto or similar tools |
profile.perfsnapshot_stream | Admins | profile.perfsnapshot_stream [name=‘Profile’, str, no extension, max 32chars] [MainCap=32, int, max 256, buffer size for Main thread in Megabytes] [WorkerCap=8, int, max 256, buffer size for each Worker thread in Megabytes] [debug=false, dumps a binary snapshot as well] Will stream <mainCap>MB worth of data and generate a JSON snapshot that can be viewed in Perfetto or similar tools |
profile.resetexportinterval | Admins | Resets the profiler export interval timer, causing the next export to happen after a full ExportIntervalS from now |
profile.start | Admins | Starts recording a Unity Profiler binary log to a timestamped file in the profile/ folder; requires ENABLE_PROFILER build flag |
profile.stop | Admins | Stops the active Unity Profiler binary log recording and finalises the file |
profile.stopwatchingallocs | Admins | Stops tracking of allocations |
profile.watchallocs | Admins | Params: [Name = ‘Allocs’] [maxStackDepth = 16]. Starts tracking of allocs, dumping a [Name].json.gz record once conditions are met |
More commands
Section titled “More commands”Groups with only a few entries, in one list.
| Command | Who can run it | What it does |
|---|---|---|
basemission.profilenextmissionsvalidstateworkqueue | Admins | Generate a performance capture containing the next run of updateMissionValidStateWorkQueue |
birdflock.interest | Admins | Adds a bird interest point where you are looking. Args: crow|seagull, duration in seconds (default 300), priority (default 0). |
birdflock.startle | Admins | Startles every bird flock within the given radius (default 300) of where you are looking, sending them fleeing away from it. |
boombox.clearradiobyuser | Admins | Clears all radio station data set by the given Steam64 ID from all deployed and held boomboxes on the server |
camerarenderermanager.pool_stats | Admins | Prints pool statistics for the camera renderer manager including active renderer count, pooled task count, and task creation/return counters |
cassette.clearcassettes | Admins | Clears the saved audio recording from all cassette items currently on the server; returns count of cassettes cleared |
cassette.clearcassettesbyuser | Admins | Clears saved audio from all cassettes created by the given Steam64 ID; returns count of cassettes cleared |
cinematicentity.hideobjects | Admins | Hides cinematic entities by group (0= none, 1= lights, 2= BGs, 3= props, 4= misc) |
clawmarkspawner.showclawmarks | Admins | |
communityentity.pietest | Admins | |
communityentity.pietest_next | Admins | |
communityentity.pietest_prev | Admins | |
ddraw.ddrawother | Admins | Sends a ddraw.text debug draw command to a specific player by Steam ID or name; allows admins to display debug text overlays on another player screen |
gc.alloc | Admins | Allocates a byte array of the given size (default 1 MB) as a GC pressure test; useful for profiling memory allocation throughput |
gc.collect | Admins | Triggers an immediate full managed garbage collection pass; useful after large allocations for memory profiling |
gc.unload | Admins | Calls Resources.UnloadUnusedAssets() to unload assets no longer referenced by any object, freeing RAM and VRAM |
growableentity.growall | Admins | Server admin: forces all growable entities within 6m of the calling player to advance to their next growth stage instantly |
growableentity.killall | Admins | Server admin: kills all growable entities within 6m of the calling player, removing them from the planter |
hexagongridgenerator.generategrid <gridSize> 5 <tileSpacing> 1.35 | Admins | <gridSize> 5 <tileSpacing> 1.35 |
hierarchy.cd | Admins | Changes the current hierarchy context to the named child GameObject, similar to the Unix cd command; allows drilling into nested scene objects |
hierarchy.del | Admins | Deletes the named GameObject from the scene hierarchy; use with caution as this permanently removes the object |
hierarchy.ls | Admins | Lists all GameObjects in the current hierarchy context, similar to the Unix ls command; used for navigating the scene hierarchy from the console |
manifest.printmanifest | Admins | Prints the Facepunch application manifest in a formatted summary showing app name, version, and platform details |
manifest.printmanifestraw | Admins | Prints the raw contents of the Facepunch manifest file as an unformatted string |
memsnap.full | Admins | Takes a full Unity Memory Profiler snapshot capturing all managed, native, and graphics memory and saves it as a timestamped .snap file in profile/memory/ |
memsnap.managed | Admins | Takes a Unity Memory Profiler snapshot capturing managed (C#) heap allocations and saves it as a timestamped .snap file in the profile/memory/ folder |
memsnap.native | Admins | Takes a Unity Memory Profiler snapshot capturing native (C++) heap allocations and saves it as a timestamped .snap file in the profile/memory/ folder |
meta.add | Admins | add <convar> <amount> - adds amount to convar |
metaldetectorsource.servercountsources | Admins | |
networkprofiler.packet_capture | Admins | networkprofiler.packet_capture [max size(in MB), min(1), max(10000), float] [max duration(in seconds), min(1), max(3600), float] |
networkprofiler.serverprofile | Admins | networkprofiler.serverprofile [time to profile(in seconds), min(0.1), max(1000), float] |
networkprofiler.stop_packet_capture | Admins | networkprofiler.stop_packet_capture - ends the running packet capture early |
render.print_global_entities | Admins | Print off count of global building entities on the server |
render.tree_entities | Admins | Print off count of trees to ensure server sent them all |
seagullgroup.land | Admins | Lands every flying seagull group within the given radius (default 300) of where you are looking, each on its nearest free land point. |
seagullgroup.landat | Admins | Lands the flying seagull group nearest where you are looking, within the given radius (default 300), on the free land point nearest it. |
seagullgroup.startle | Admins | Startles every landed seagull group within the given radius (default 100) of where you are looking. |
serverocclusion.occlusionvalidategroups | Admins | Validates that all server occlusion network groups are correctly mapped to their occlusion data; reports any inconsistencies found |
serverocclusion.serverocclusiondebug | Admins | Tests occlusion visibility between two positions |
telephonemanager.printallphones | Admins | Prints a table of all registered telephone entities showing their number, directory name, and world position |
triggerbase.clearexcludelayers | Admins | Removes the exclude layer configuration from all registered TriggerBase instances, resetting them to detect all layers |
triggerbase.setexcludelayers | Admins | Applies the configured exclude layer mask to all registered TriggerBase instances to filter out unwanted layer detections |
vddraw.setisrecording | Admins | Toggles or explicitly sets VDDraw recording state; when enabled starts capturing DDraw commands for replay; when disabled stops recording |
voice.togglevoicerangeboost | Admins | Enabled/disables voice range boost for a player eg. ToggleVoiceRangeBoost sam 1 |
watertreatmentflowratebroadcast.force_flow_rate | Admins | Force the water treatment flow rate per minute. Pass no argument to release the override and return to pressure-derived state. |
watertreatmentflowratebroadcast.get_num_broadcasters | Admins | |
watertreatmentflowratebroadcast.get_num_listeners | Admins | |
watertreatmentwatertank.debug_wtp_pressure | Admins | |
watertreatmentwatertank.force_pressure | Admins |
