这是由 Dota 2 自定义地图开发手册 确定性导出的最小 Dota 2 自定义地图项目模板。它提供 Lua 入口、示例技能与 Modifier、KV 配置、Panorama HUD,以及初始化和静态检查脚本。
Verification status: script-tested. 模板已通过自动化静态检查,但尚未在当前 Dota 2 Workshop Tools 中完成地图构建和游戏内运行验证。
点击 GitHub 页面上的 Use this template,选择 Create a new repository,然后克隆新仓库。不要在本模板仓库中直接开发自己的地图。
在新仓库根目录运行:
powershell -NoProfile -ExecutionPolicy Bypass -File ./scripts/initialize-addon.ps1 `
-AddonName "my_custom_game"内部名必须以小写字母开头,只包含小写字母、数字和下划线,长度为 3 到 64 个字符。初始化脚本将:
- 替换模板中的
__ADDON_NAME__。 - 写入
.addon-name,防止重复初始化。 - 自动运行静态检查。
- 在检查失败时恢复本次修改。
先在 Dota 2 Workshop Tools 中创建或确认同名 Addon。模板目录对应关系:
仓库/game/ -> <DOTA_ROOT>/game/dota_addons/my_custom_game/
仓库/content/ -> <DOTA_ROOT>/content/dota_addons/my_custom_game/
首次合入前先比较现有目录,不要覆盖未提交的 Hammer 地图、工具配置或资源。<DOTA_ROOT> 是 Steam 中 Dota 2 的实际安装目录,不要直接照抄其他机器的盘符。
powershell -NoProfile -ExecutionPolicy Bypass -File ./scripts/check-addon.ps1 `
-GameAddonPath ./game `
-ContentAddonPath ./content检查通过后,继续在 Hammer 中创建和构建地图,并在 Dota 2 中验证 Lua、KV、Panorama、重连和多人行为。
game/
|-- scripts/vscripts/addon_game_mode.lua
|-- scripts/vscripts/abilities/template_damage.lua
|-- scripts/vscripts/modifiers/modifier_template_slow.lua
`-- scripts/npc/npc_abilities_custom.txt
content/
`-- panorama/
|-- layout/custom_game/custom_ui_manifest.xml
|-- layout/custom_game/template_hud.xml
|-- styles/custom_game/template_hud.css
`-- scripts/custom_game/template_hud.js
scripts/
|-- initialize-addon.ps1
`-- check-addon.ps1
模板故意不包含:
- Hammer 地图和编译产物。
- 本地化根文件和玩家可见示例文本。
- Workshop 发布配置或 Workshop Item 身份。
- Valve 游戏资源。
这些内容依赖当前 Workshop Tools 生成结果和你的项目设计,不能由静态模板安全预设。
- 完整开发手册:dota2-map-development-guide
- 零基础学习路线:新手导航.md
- 详细使用方法:使用说明.md
- 必须由人执行的操作:人工操作清单.md
- 运行验证清单:实机验证手册.md
- 问题与改进建议:GitHub Issues
模板由手册仓库单向导出。模板缺陷应在手册仓库修复,再通过发布流程同步;不要在生成仓库中维护分叉版本。
模板代码采用 MIT License。Dota 与 Dota 2 的商标、游戏资源及其他 Valve 内容不包含在本授权中。