Skip to main content
This guide is for contributors who want to modify the game’s source code — adding abilities, fixing bugs, or working on the Panorama UI. If you only want to play, see the quickstart instead.
Prerequisites
  • Dota 2 installed via Steam
  • Node.js v14 or higher
  • Git
  • A Windows machine (the launch script targets dota2.exe in the win64 directory)
1

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.
2

Install dependencies and link the addon

Run npm install from the repository root:
This installs the project’s dev dependencies and automatically runs scripts/install.js via the postinstall hook. The install script:
  1. Locates your Dota 2 installation using Steam’s app registry
  2. Moves the src/game and src/content directories into Dota’s dota_addons folder
  3. Creates symbolic links (junctions on Windows) back to those locations so edits in your working directory are immediately reflected in Dota
You will see output similar to:
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.
If scripts/install.js finds a dota_addons/legends_of_dota_redux directory that is already linked to a different path, it will throw an error rather than overwrite it. Remove or unlink the existing directory before re-running.
3

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:
  1. Resolves your Dota 2 installation path via Steam
  2. Starts dota2.exe with the -tools and -addon legends_of_dota_redux flags
Dota 2 opens in tools mode with the Redux addon active. From here you can use the Dota Workshop Tools to test map changes, run the game locally, and iterate on scripts without publishing to the Workshop.
Tools mode enables the in-game Lua console, hot-reloading for Panorama files, and access to the asset editor. Use dota_launch_custom_game legends_of_dota_redux dota in the console to start a local lobby.

Project structure

Familiarise yourself with the key directories before making changes:

Key scripts

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:
To format files manually:

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.