Cheats

Cheats can be used in practice games to test various settings. Cheats can be enable in lobbies in the settings. This setting allows players to use various chat commands and grants shared control over bot heroes.

Besides this, the player can also enable cheats via the console with the sv_cheats 1 command. A lot of console commands require this command before working, even when the player turned cheats on in the lobby settings. A list of console commands can be found here.

Cheat Commands
When enabling cheats through the lobby settings, the players are able to use these chat commands. All of these commands also have a console command equivalent, which are only usable once the host enabled sv_cheats.

Item names
These are used with the -item and -givebots chat commands or the dota_create_item and dota_bot_give_item console commands. Every item has an internal name in the game files. In order to create items, these internal names have to be used, and not the ingame item name. The item's whole internal name has to be fully typed out for the game to be able to recognize it, including every underscore.

Examples:
 * -item item_blink
 * -givebots item_arcane_boots
 * dota_create_item item_greater_crit
 * dota_bot_give_item item_demon_edge

Items in grey fields have internal names which do not match their ingame name.

Upgraded items

 * 1 Every item upgrade has a recipe listed in the game, even when the items' recipes do not use a recipe scroll.
 * 2 If no number is entered after the name, the game will automatically create level 1 version.

Unit names
These are used with the -createhero chat command or the dota_create_unit console command. Just like with creating items, in order to create heroes or units, their internal file names have to be used. Using their actual ingame name does not work (unless it can be used as a syntax as explained below).

Syntax
Unlike with creating items, the game does recognize syntaxes, allowing the user to shorten the command. The full command for creating heroes would be for example:


 * -createhero npc_dota_hero_clinkz
 * dota_create_unit npc_dota_hero_lina enemy

In these cases, the "npc_dota_hero_" part can be left out. The following commands are also valid:


 * -createhero clinkz
 * dota_create_unit lina enemy

Additionally, the entirety of the hero's name need not be added if it is sufficiently long enough to identify the hero. For example, all of the following commands will spawn an allied Anti-Mage unit:


 * -createhero npc_dota_hero_antimage
 * -createhero antimage
 * -createhero an

The parameter need not necessarily be the beginning of their name either. The command,


 * -createhero mage

will also spawn an Anti-Mage, just as how the commands,


 * -createhero pain
 * -createhero bringer
 * -createhero zor

will spawn Queen of Pain, Doom, and Razor units respectively.

The same applies to all non-hero units which can be created. The commands


 * -createhero npc_dota_neutral_mud_golem
 * -createhero npc_dota_eidolon

can be shortened to


 * -createhero mud
 * -createhero eidolon

to spawn a Mud Golem or an Eidolon. However, if a syntax matches to a hero and a non-hero unit, the game will prioritize the hero. For example -createhero troll will always create the hero Troll Warlord and never any of the neutral troll creeps, even though the troll syntax are used by them all.

Hero names
Most of the heroes' internal name matches their ingame name. Some however rather match their old, alpha or beta names.

Heroes in grey fields have internal names which do not match their ingame name. Heroes in dark grey are disabled.

Unit names
These are the internal names of non-hero units. This also includes buildings, wards and dummy units used by spells.