Half the lists circulating for cheats contain entries from an older version that simply do nothing now.
Short answer
Most are toggles: entering the same code again turns the effect off.
Console entry uses button sequences with tight timing, and mistiming reads as a broken code. Some effects stack in ways the developers did not intend and the game does not handle gracefully. Dota 2 is not shy about hiding useful information two menus deep, so some of this is simply knowing where to look.
How to enter them
Achievement locking is usually per-save rather than per-account, but not always. A code that softlocks a mission is a known risk in more than one of these games. If a step reads as obvious, do it anyway — the obvious ones are the ones people skip and then wonder about. Codes typically do not persist through a reload, which surprises people who use them for convenience.
Case and spacing matter more than the lists suggest. Anything that behaves differently on console than on PC is flagged where it matters. Anything that requires downloading a program is not a cheat code.
What each one actually does
Patch notes move numbers around constantly; the shape of the answer holds even when a specific value shifts. Half the pages on this topic were written for a build that no longer exists, which is why they stop matching what you see. A single check up front replaces a lot of guessing later.
- Ignore any list that asks you to install something first.
- Save manually before using anything irreversible.
- Read the whole sequence once before doing the first step.
- Expect achievements to lock for that save file.
Anything promising online effects
Everything below is framed around the current state of Dota 2 rather than a launch-week impression. The developers have changed their mind about this at least once, which explains the older advice. Most of the disagreement you will find online is two people describing different builds. What follows assumes you are on a current install and have not modified it.
There is usually a fast way and a reliable way, and it is worth knowing which one you are choosing. There is no hidden trick here that the game is keeping from you. Do the cheap check before the expensive one — that ordering alone saves most of the frustration.
Codes that no longer work
Screenshots age faster than text, which is why this describes rather than shows. Treat anything stated without a version number as provisional. The awkward part is rarely the step itself, it is knowing which step comes first.
The short version is near the top on purpose; the reasoning is there if you want to know why. The community wisdom on this is roughly half right, and the half that is wrong costs the most time. If your result differs from what is described here, note what is different first rather than starting over.
What you give up
It helps to understand why a step exists, because then you can adapt it when your situation is slightly different. Where two approaches both work, the one with fewer moving parts is the one to keep. Where something depends on your platform or region, that is called out rather than glossed over.
Where people go wrong
- Trusting a video thumbnail that promises a result the video never actually shows.
- Downloading a helper tool for something the game already does in its own menu.
- Treating a rare edge case as the normal behaviour and planning around it.
Dota 2 FAQ
Why is a code not working?
Either it belongs to an older version, or the entry method differs on your platform. Both are common.
Does this work the same on console and PC?
The logic is identical. Menu paths and button prompts differ, and any real difference is flagged above.
Will using these get me banned?
Not in single-player, where they are an intended feature. Anything claiming to do the same online will absolutely get an account banned.
Do achievements still unlock?
Generally no, for the save you used them on. Starting a clean save restores normal unlocking.
If you only take one thing from this: the answer near the top is the part that matters, the rest is context.