Стандартный путь Dota 2
Базовая папка Steam-установки:
C:\Program Files (x86)\Steam\steamapps\common\dota 2 beta\game\dota\
Внутри лежат подпапки: maps, scripts, cfg. По умолчанию пользователю туда писать нечего — Dota 2 запускает только подписанные Valve файлы.
Custom Game (Workshop)
Если ты разрабатываешь свою карту для Workshop, рабочая директория:
...\dota 2 beta\game\dota_addons\your_mod\scripts\vscripts\
Файлы с расширением .lua исполняются движком при загрузке матча. Подгружаются через require() или автоматически по соглашению об именах (например, addon_game_mode.lua).
После добавления файла перезапусти Tools (DotaToolGame), иначе движок не подхватит новые скрипты.
Addon-режим разработчика
Для тестов addon-режима без Workshop:
- Открой Steam → Library → Tools → запусти Dota 2 Workshop Tools.
- В DotaToolGame создай новый addon — папка появится в
game\dota_addons\. - Загружай .lua сюда. Hot-reload работает через консольную команду
script_reload.
Для подключения отладки используй VSCode с расширением Dota Lua. Console-вывод через print() в Tools-окне.
Umbrella — облачные конфиги
Сторонний софт Umbrella устроен иначе. Никаких .lua-файлов в папке игры:
- Все настройки модулей (мапхак, скрипты, бинды) хранятся в облаке на серверах Umbrella.
- Загрузка конфига — через интерфейс Loader → Cloud → Add By Code.
- На диске игры — пусто. Anti-cheat сканер не находит подозрительных файлов.
Готовые пресеты с биндами на любого героя — на странице CFG. Импорт по коду в один клик.
Это принципиальная разница: классические читы (типа AHK-скриптов) кладут .lua или .cfg в директорию игры — Valve легко детектит через сканер. Umbrella работает через ин-мемори инжект без следа на диске.
Файл не виден — что делать
- Проверь расширение. Windows скрывает .lua у файлов — может быть
script.lua.txt. Включи показ расширений в Folder Options. - Кодировка UTF-8 без BOM. Сохраняй в Notepad++ или VSCode с указанием UTF-8. BOM ломает парсер.
- Права на запись. Папка
Program Filesтребует прав администратора. Перенеси папку игры на пользовательский диск или используй Tools. - Имя файла на латинице. Кириллица в названиях скриптов вызывает проблемы у Lua-движка.
- Перезапуск Tools. Не все hot-reload работают мгновенно — иногда нужно полностью выйти из DotaToolGame.
FAQ
Можно ли запустить .lua в обычной (не addon) Dota 2?
Нет. Стандартный клиент Dota 2 исполняет только подписанные Valve скрипты. Для своих .lua используй Workshop Tools или addon-режим.
Где хранятся бинды клавиш для способностей?
Внутри Dota 2: Settings → Hotkeys. Сохраняются в облаке Steam, привязаны к аккаунту. На диске — в зашифрованном виде в userdata\STEAMID\570\local\cfg\.
Что такое addon_game_mode.lua?
Обязательный entry-файл для любой кастомной игры. Содержит инициализацию режима, регистрацию событий, спавн юнитов. Без него Workshop не примет твою карту.
Umbrella поддерживает .lua-скрипты?
Нет. Вся логика модулей встроена в ядро софта. Пользовательские bind'ы делаются через визуальный Combo Builder, без написания кода.