This mod adds various debugging commands to the console. See below for all commands plus explanation.
Harb, iDeathHD and 's reimplementation of Morris1927's RoR2Cheats. Derived with permission.
Also adds autocompletion for arguments and networked commands giving their information to the right people to the console. Read here to see how you can use the autocompletion feature for your own mod.
Track update progress, get support and suggest new features over at the DebugToolkit discord.
Some vanilla console functions you might not know:
ctrl+alt+~
.help {command}
may be used to get help for a specific commandfind {term}
can be used to find commands with that term.max_messages {nr}
changes how much scroll back the console has. We auto change this to 100 for you if it's on default.Mods recommended for combined use:
You may contact us at any time through issues on GitHub, the dedicated discord server or through the Risk of Rain 2 modding Discord found at the top of the Thunderstore website.
Verbiage:
{needed}
, (choose one)
, and [optional]
.:
. Any preceeding optional arguments from the one entered become necessary, but empty double quotes can be used as a placeholder for the default value. If an optional argument is required from a dedicated server, it will be preceeded by *
.list_
commands for options and which result would take precedence if there are multiple matches.Commands:
next_stage [specific_stage]
. If no stage is entered, the next stage in progression is selected.force_family_event
list_directorcards
. next_boss {director_card} [count:1] [elite:None]
fixed_time [time]
. If no time is supplied, prints the current time to console.next_wave
force_wave [wave_prefab]
. If no input is supplied, prints all available options and clears any previous selection.set_run_waves_cleared {wave}
add_portal {portal ('blue'|'celestial'|'gold'|'green'|'void'|'all')}
.charge_zone {charge}
. The value is a float between 0 and 100.seed [new_seed]
. Use 0
to specify the game should generate its own seed. If used without argument, it's equivalent to the vanilla run_get_seed
.set_artifact {artifact (artifact|'all')} [enable (0|1)]
. If enable isn't supplied, it will toggle the artifact's current state. However, it is required when using "all".kill_all [team:Monster]
.true_kill *[player:<self>]
respawn *[player:<self>]
teleport_on_cursor
time_scale [time_scale]
. If no argument is supplied, gives the current timescale.post_sound_event {sound_event (event_name|event_id)}
List Commands:
list_
commands support filtering. A number for the unique index or any string for partial matching.next_boss
command.Dump Commands:
dump_state *[target (player|'pinged'):<self>]
Buff Commands:
give_buff {buff} [count:1] [duration:0] *[target (player|'pinged'):<self>]
give_dot {dot} [count:1] *[target (player|'pinged'):<self>] *[attacker (player|'pinged'):<self>]
remove_buff {buff} [count:1] [timed (0|1):0/false] *[target (player|'pinged'):<self>]
remove_buff_stacks {buff} [timed (0|1):0/false] *[target (player|'pinged'):<self>]
remove_all_buffs [timed (0|1):0/false] *[target (player|'pinged'):<self>]
remove_dot {dot} [count:1] *[target (player|'pinged'):<self>]
remove_dot_stacks {dot} *[target (player|'pinged'):<self>]
remove_all_dot *[target (player|'pinged'):<self>]
Note: The game does not protect against negative buff stacks, which can lead to unintended behaviors. Gaining a timed buff gives a permanent stack which is taken away upon expiration. give_buff bleed 5 10; remove_buff_stacks bleed
will lead to -5 bleed stacks when the timed buff expires. Having a DoT active is also similar to a timed buff.
Item Commands:
remove_item
: give_item {item} [count:1] *[target (player|'pinged'|'evolution'|'simulacrum'|'voidfields'|'devotion'):<self>]
random_items {count} [droptable (droptable|'all'):'all'] *[target (player|'pinged'|'evolution'|'simulacrum'|'voidfields'|'devotion'):<self>]
give_equip {(equip|'random')} *[target (player|'pinged'|'evolution'|'simulacrum'|'voidfields'|'devotion'):<self>]
give_money {amount} [target ('all'|player):'all']
give_lunar [amount:1]
give_item
: remove_item {item} [count:1] *[target (player|'pinged'|'evolution'|'simulacrum'|'voidfields'|'devotion'):<self>]
remove_item_stacks {item} *[target (player|'pinged'|'evolution'|'simulacrum'|'voidfields'|'devotion'):<self>]
remove_all_items *[target (player|'pinged'|'evolution'|'simulacrum'|'voidfields'|'devotion'):<self>]
remove_equip *[target (player|'pinged'|'evolution'|'simulacrum'|'voidfields'|'devotion'):<self>]
restock_equip [count:1] *[target (player|'pinged'|'evolution'|'simulacrum'|'voidfields'|'devotion'):<self>]
create_pickup {object (item|equip|'lunarcoin'|'voidcoin')} [search ('item'|'equip'|'both'):'both'] *[player:<self>]
create_potential [droptable (droptable|'all'):'all'] [count:3] *[player:<self>]
Note: Some commands support a weighted item selection, referred to as droptable. The syntax for it is <itemtier:weight tokens separated by comma>
. The weight should be a positive float and is an optional argument with a default value of 1.0. If a comma or decimal point is used, the whole argument must be surrounded in double quotes. The keyword all
uses all available item tiers with a default weight. For example, any of the following are valid inputs: tier1
, "tier1:5,tier2,tier3:0.4"
, all
.
Spawn Commands:
(spawn_interactable|spawn_interactible) {interactable}
spawn_portal {portal ('artifact'|'blue'|'celestial'|'deepvoid'|'gold'|'green'|'null'|'void')}
.spawn_ai {ai} [count:1] [elite:None] [braindead (0|1):0/false] [team:Monster]
.spawn_as {body} *[player:<self>]
spawn_body {body}
change_team {team} *[player:<self>]
.Profile Commands:
prevent_profile_writing [flag (0|1)]
. If no argument is supplied, prints the current state. Disabled by default.Cheat Commands:
NonLethal
for all players. AKA: you can't die.Bind Commands:
dt_bind {key} {<consolecommands seperated by ;>}
dt_bind_delete {key}
dt_bind_reload
Server Related Commands:
kick - Kicks the specified Player Name/ID from the game.
ban - Session bans the specified Player Name/ID from the game.
perm_enable - Enable or disable the permission system.
perm_mod - Change the permission level of the specified PlayerID/Username with the specified Permission Level.
Reload Commands:
sv_time_transmit_interval [time]
run_scene_override [scene]
stage1_pod [(0|1)]
run_set_stages_cleared {stage_count}
. This obsoletes stage_clear_count
from previous RoR2Cheats versions.team_set_level {team} {level}
. This obsoletes give_exp
from previous RoR2Cheats versions.loadout_set_skill_variant {body_name} {skill_slot_index} {skill_variant_index}
. Note that this does not use the loose bodymatching from custom commands.next_stage
, doesn't have our cool autocomplete features, and doesn't advance the stage count, but can advance menus. set_scene {scene}
midgame
lategame