Clone the repository
Clone the Legends of Dota Redux source from GitHub:The repository contains both the game source (
src/) and the build tooling (scripts/) needed to link your working directory into Dota 2.Install dependencies and link the addon
Run This installs the project’s dev dependencies and automatically runs
npm install from the repository root:scripts/install.js via the postinstall hook. The install script:- Locates your Dota 2 installation using Steam’s app registry
- Moves the
src/gameandsrc/contentdirectories into Dota’sdota_addonsfolder - Creates symbolic links (junctions on Windows) back to those locations so edits in your working directory are immediately reflected in Dota
If the script prints
No Dota 2 installation found. Addon linking is skipped., it could not locate Dota via Steam. Make sure Dota 2 is installed and Steam is present on your system before running npm install.Launch Dota 2 in tools mode
Once the addon is linked, start Dota 2 with the custom game loaded in tools (development) mode:This runs
scripts/launch.js, which:- Resolves your Dota 2 installation path via Steam
- Starts
dota2.exewith the-toolsand-addon legends_of_dota_reduxflags
Project structure
Familiarise yourself with the key directories before making changes:| Path | Contents |
|---|---|
src/game/scripts/vscripts/ | Server-side Lua scripts (game logic, pregame, ingame) |
src/game/scripts/npc/ | KV data files for abilities, items, and units |
src/content/ | Panorama UI files (TypeScript/CSS/XML) |
scripts/ | Node.js build and setup scripts |
Key scripts
| Script | Purpose |
|---|---|
scripts/install.js | Links src/game and src/content into the Dota addon directory |
scripts/launch.js | Starts Dota 2 with -tools -addon legends_of_dota_redux |
scripts/utils.js | Shared helpers — resolves the addon name from package.json and finds the Steam Dota path |
Code quality
The project uses Prettier to enforce consistent formatting. A pre-commit hook runs Prettier automatically on staged files via Husky. To check formatting across the entire codebase without committing:Next steps
Adding abilities
Learn how to write a new custom ability and register it with the Redux ability system.
VScripts overview
Understand the Lua scripting layer — which files do what and how they interact.
Contributing guidelines
Read the contribution workflow before opening a pull request.
Credits
Meet the developers and contributors behind Redux.

