Скрипты в Dota 2 живут в конфиг-файлах (.cfg) и запускаются через консоль командой exec. Важно не только “где лежит файл”, но и что именно внутри: alias и bind должны быть прописаны корректно, а консоль должна быть включена.

Ниже - нормальный, рабочий порядок действий: как включить консоль, куда класть cfg, как запустить скрипт один раз и как сделать автозагрузку при старте игры.

Что считается “скриптом” в Dota 2

Обычно под “скриптом” подразумевают cfg-файл с:
- alias - именованные заготовки команд
- bind - привязка кнопок/клавиш к командам или alias

То есть активация чаще всего выглядит так:
- вы включаете консоль
- запускаете файл: exec имя_файла.cfg

Шаг 1. Включите консоль в Dota 2

  1. Откройте Steam
  2. Зайдите в библиотеку
  3. ПКМ по Dota 2 → Свойства
  4. В Установить параметры запуска добавьте: -console
  5. Запустите игру
  6. Откройте консоль клавишей ~ (тильда)

Если ~ не открывает консоль, переназначьте клавишу в настройках клавиатуры игры (иногда тильда занята).

Шаг 2. Найдите папку конфигов Dota 2

Файлы cfg обычно кладут в папку игры по пути вида:

...\Steam\steamapps\common\dota 2 beta\game\dota\cfg\

Точный путь может отличаться по названию папки “beta”, но логика одинаковая: вам нужна именно директория ...\dota\cfg\.

Шаг 3. Подготовьте cfg-файл (важные правила)

  1. Файл должен быть с расширением .cfg
  2. Код должен быть без “лишних” русских символов в командах движка
  3. Порядок выполнения важен: если вы сначала делаете bind, а потом определяете alias, часть bind может не сработать так, как вы ожидаете

Типичный минимальный пример, который стоит проверить первым:

alias test "dota_health_per_vertical_marker 120"
bind "F6" "test"

Смысл: вы описали alias, затем bind привязал клавишу F6 к команде через этот alias.

Шаг 4. Активируйте скрипт вручную (exec в консоли)

Когда игра запущена и консоль работает:

  1. Откройте консоль
  2. Выполните команду:
exec invoker.cfg

Где invoker.cfg - имя вашего файла в папке cfg.

Проверьте, что имя файла совпадает буква-в-букву, включая регистр (на практике чаще всего не критично, но лучше не рисковать).

Частая ошибка: “Unknown command”

Если в консоли видно что-то вроде Unknown command, обычно причина одна из этих:
- вы запустили не тот файл (имя отличается)
- файл лежит не в той папке
- в файле есть опечатка в alias/bind
- команда внутри файла не поддерживается текущей версией игры
- файл не успел загрузиться (например, вы вызвали bind, а alias определён позже)

Шаг 5. Автозагрузка при старте игры (autoexec.cfg)

Если вы хотите, чтобы скрипт включался сам при запуске, есть два подхода.

Вариант A: добавить exec в autoexec.cfg

Создайте (или используйте существующий) autoexec.cfg в папке cfg, например:

...\dota\cfg\autoexec.cfg

И поместите туда строку запуска:

exec invoker.cfg

Тогда при старте игры autoexec.cfg подтянет остальные cfg.

Вариант B: запускать файл через параметры запуска

Иногда удобнее в Steam-параметрах запуска сразу указать +exec ....

Суть такая: игра получит команду exec ещё на старте.

Как не наступить на “грабли” с несколькими cfg

Если у вас несколько файлов и они трогают одни и те же кнопки, побеждает тот конфиг, который загружен последним.

Проще говоря:
- первый cfg привязал bind на одну клавишу
- второй cfg привязал её же
- после загрузки второго итог - его bind

Это нормальное поведение движка, поэтому часто делают отдельные файлы “под роль” и подгружают их по ситуации.

Мини-шпаргалка по коду: alias и bind

alias

Создаёт “шаблон” команды под именем.

Пример:

alias mycombo "dota_ability_execute 0;dota_ability_execute 1"

bind

Привязывает клавишу к выполнению команды/alias.

Пример:

bind "F5" "mycombo"

Если вы видите, что bind “не работает”, чаще всего проблема в том, что alias не определился или файл не был загружен.

Проверка, что скрипт реально активировался

  1. После exec откройте консоль и попробуйте нажать назначенную клавишу
  2. Если в alias или bind есть команды, которые меняют HUD/поведение, вы сразу увидите эффект
  3. Если ничего не меняется, проверьте:
  4. файл лежит в нужной папке cfg
  5. имя файла в exec написано правильно
  6. в cfg нет синтаксических ошибок

Коротко о безопасности и ограничениях

  • Команды для читов требуют sv_cheats 1 и обычно предназначены для тренировок или режимов, где это разрешено.
  • В рейтинге/официальных режимах использование несоответствующих команд может привести к наказаниям, так что используйте alias и bind для удобства только в рамках правил.

Полезные источники (чтобы сверить команды и синтаксис)

  • Valve Developer Wiki по scripting и cfg/командам: https://developer.valvesoftware.com/wiki/Ru/Dota_2_Workshop_Tools/Scripting/Getting_Started
  • Справочник по консольным командам Dota 2 (много, но помогает сверять названия): https://dota2.fandom.com/ru/wiki/Список_консольных_команд

Итоговый рецепт (самый рабочий)

Цель Что сделать
Включить возможность запускать скрипт Добавить -console в параметры запуска и открыть консоль ~
Запустить один конкретный скрипт В консоли выполнить exec имя_файла.cfg
Запускать всегда при старте Создать autoexec.cfg и положить туда exec имя_файла.cfg
Разобраться, почему bind не работает Проверить загрузку файла и корректность alias/bind, а также точность пути

Если сделать всё по этому порядку, exec будет находить ваш cfg, alias будет определён, а bind начнёт выполнять нужные команды именно так, как вы задумали.