Dota 2 中 .lua 文件该放哪里 —— 脚本、配置、addon 的路径
配置 · 阅读 3 分钟

Dota 2 中 .lua 文件该放哪里

.lua 脚本的文件夹取决于你在用什么:创意工坊自定义地图、开发者 addon 模式,还是像 Umbrella 这样的第三方软件。我们按顺序来梳理。

dota 2 lua 放哪里 dota 脚本文件夹 addon dota 2 script_addon cfg dota 2 路径

Dota 2 标准路径

Steam 安装的基础文件夹:

C:\Program Files (x86)\Steam\steamapps\common\dota 2 beta\game\dota\

其中包含子文件夹:maps、scripts、cfg。默认情况下用户没有什么可以往里写 —— Dota 2 只执行 Valve 签名的文件。

自定义游戏(创意工坊)

如果你在开发自己的创意工坊地图,工作目录是:

...\dota 2 beta\game\dota_addons\your_mod\scripts\vscripts\

带 .lua 扩展名的文件会在比赛加载时由引擎执行。它们通过 require() 加载,或按命名约定自动加载(例如 addon_game_mode.lua)。

添加文件后请重启 Tools(DotaToolGame),否则引擎不会识别新脚本。

开发者 addon 模式

无需创意工坊即可测试 addon 模式:

  1. 打开 Steam → 库 → 工具 → 启动 Dota 2 Workshop Tools。
  2. 在 DotaToolGame 中创建一个新 addon —— 文件夹会出现在 game\dota_addons\ 中。
  3. 在这里加载 .lua 文件。热重载通过控制台命令 script_reload 实现。

调试集成请使用搭配 Dota Lua 扩展的 VSCode。通过 print() 将控制台输出打印到 Tools 窗口。

Umbrella —— 云端配置

第三方软件 Umbrella 的工作方式不同。游戏文件夹里没有 .lua 文件:

  • 所有模块设置(maphack、脚本、绑定)都存储在云端的 Umbrella 服务器上。
  • 配置加载 —— 通过 Loader 界面 → Cloud → Add By Code。
  • 磁盘上的游戏文件夹 —— 空的。反作弊扫描器找不到任何可疑文件。

为每个英雄准备好绑定的现成预设 —— 在 CFG 页面。凭代码一键导入。

i

这是一个根本性的区别:传统作弊(例如 AHK 脚本)会把 .lua 或 .cfg 文件放到游戏目录里 —— Valve 通过扫描器很容易检测到它们。Umbrella 通过内存注入工作,磁盘上不留痕迹。

找不到文件 —— 怎么办

  • 检查扩展名。Windows 会隐藏 .lua 扩展名 —— 你的文件实际可能是 script.lua.txt。在文件夹选项中启用文件扩展名显示。
  • 编码:UTF-8 不带 BOM。用 Notepad++ 或 VSCode 保存并指定 UTF-8。BOM 会破坏解析器。
  • 写入权限。Program Files 文件夹需要管理员权限。把游戏文件夹移到用户盘,或使用 Tools。
  • 文件名仅用拉丁字符。脚本名中的非拉丁字符会导致 Lua 引擎出问题。
  • 重启 Tools。并非所有热重载都是即时的 —— 有时需要完全退出 DotaToolGame。

常见问题

能在普通(非 addon)Dota 2 里运行 .lua 吗?

不能。标准 Dota 2 客户端只执行 Valve 签名的脚本。自定义 .lua 请用 Workshop Tools 或 addon 模式。

技能快捷键绑定存在哪里?

在 Dota 2 内部:设置 → 快捷键。保存在 Steam 云端,与账号绑定。磁盘上 —— 以加密形式存于 userdata\STEAMID\570\local\cfg\。

addon_game_mode.lua 是什么?

任何自定义游戏的必备入口文件。它包含模式初始化、事件注册和单位生成。没有它,创意工坊不会接受你的地图。

Umbrella 支持 .lua 脚本吗?

不支持。所有模块逻辑都内置于软件核心。自定义绑定通过可视化的 Combo Builder 制作 —— 无需编写代码。