Agent skill

Dota2 Unit

by XavierCHN in XavierCHN/x-template

Dota 2 自定义单位编写指南。适用于编写/修改单位 KV 配置文件(game/scripts/npc/customunits/)。触发词:单位、unit、creature、怪物、召唤物、建筑、塔、npc。

MITAuto-check passedDocuments & Office

Install Dota2 Unit

skills CLI
$ npx skills add XavierCHN/x-template --skill dota2-unit -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install XavierCHN/x-template dota2-unit --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/XavierCHN/x-template.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/dota2-unit .claude/skills/dota2-unit && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
dota2-unit
GitHub stars
216
Token cost
~2.4k tokens
SKILL.md length
618 words
Files
1
Skills in repo
6
Repo updated
First seen
Licence
MIT

At a glance

Dota 2 自定义单位编写指南。适用于编写/修改单位 KV 配置文件(game/scripts/npc/customunits/)。触发词:单位、unit、creature、怪物、召唤物、建筑、塔、npc。

  • Tasks that involve Excel spreadsheets
  • SKILL.md covers 核心原则, 文件结构, 工作流 and KV 键值参考, plus 1 more section
  • Calls npx

What it does

Dota2 Unit is an agent skill from XavierCHN/x-template. Dota 2 自定义单位编写指南。适用于编写/修改单位 KV 配置文件(game/scripts/npc/customunits/)。触发词:单位、unit、creature、怪物、召唤物、建筑、塔、npc。

Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Documents & Office, covering Excel spreadsheets. It works with Microsoft Excel. The repository describes itself as: DOTA2自定义游戏开发模板项目,使用typesscript和react开发; Xavier's DOTA 2 custom game template using typescript and react-panorama. The licence is MIT.

When your agent uses it

  • Tasks that involve Excel spreadsheets

Example prompts

  • “/dota2-unit”

Requirements

  • Node.js

What it can do on your machine

Read from SKILL.md and the folder at commit ba97b00. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npx, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Dota2 Unit loads about 2.4k tokens when it runs. Until then it costs about 30 tokens; SKILL.md has 618 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~30
When it runs · the whole SKILL.md, loaded when a task matches
~2.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from XavierCHN/x-template at commit ba97b00, republished under its MIT licence (© XavierCHN). 618 words, ~2,379 tokens.

Download SKILL.mdSave it as .claude/skills/dota2-unit/SKILL.md (or your agent's skills folder).
name
dota2-unit
description
Dota 2 自定义单位编写指南。适用于编写/修改单位 KV 配置文件(`game/scripts/npc/custom_units/`)。触发词:单位、unit、creature、怪物、召唤物、建筑、塔、npc。

为 DOTA2 自定义游戏项目编写 Dota 2 自定义单位。

核心原则

  1. 配置与代码分离:所有可能与前端共享或需要集中管理的配置、数值、常量(包括但不限于单位属性、技能、物品数据、游戏规则参数等),都必须放在 game/scripts/npc/ 下的 KV 文件中。禁止在 TSTL 代码或 UI 代码中硬编码任何可能变化的配置值。修改配置后需运行 npx gulp kv_2_js 刷新 JSON,保证前后端数据一致

文件结构

文件路径用途
单位 KVgame/scripts/npc/custom_units/<单位名>.txt单位 KV 键值对(手动创建的自定义单位)
KV 入口game/scripts/npc/npc_units_custom.txt引用 #base "custom_units.txt",自动生成部分由 Excel 管理
Excel 数据excels/单位表.xlsx自动生成 custom_units.txt(请勿修改)
单位逻辑game/scripts/src/abilities/<模块名>/<关联技能>.ts单位关联的技能逻辑(如召唤物技能),制作技能请使用 dota2-ability skill 的工作流
本地化game/resource/addon.csv单位名称

工作流

步骤 1:确认单位需求
  • 明确单位类型(生物/召唤物/建筑/塔/辅助单位)
  • 确认模型的来源路径
  • 确认单位需要的技能、属性、攻击方式
  • 确认单位是否需要自定义 TSTL 逻辑
步骤 2:编写 KV 配置

在 game/scripts/npc/custom_units/<单位名>.txt 中创建 KV 文件,或在 excels/单位表.xlsx 中添加行(由 Gulp 自动生成到 custom_units.txt)。

KV 文件必须在 npc_units_custom.txt 中通过 #base 引用后生效。

单位名必须以 npc_dota_ 开头。

KV 结构规则:单位名称必须在第一级,所有属性写在第二级的 {} 内:

kv
"npc_dota_unit_mymonster"
{
    "BaseClass"           "npc_dota_creature"
    "Model"               "models/heroes/earthshaker/earthshaker.vmdl"
    "MovementCapabilities" "DOTA_UNIT_CAP_MOVE_GROUND"
    "MovementSpeed"       "325"
    "StatusHealth"        "1000"
}
步骤 2b:编译 KV 到 JSON(必须执行)

修改 KV 文件后,必须运行以下命令将 KV 编译为 JSON,供前后端统一引用:

bash
# 编译所有 KV 文件为 JSON(输出到 panorama 和 src 两个目录)
npx gulp kv_2_js
# 或快捷命令(同时执行 sheet→kv 和 kv→js)
npx gulp jssync

编译后输出到:

  • content/panorama/src/json/ — 前端 Panorama 使用
  • game/scripts/src/json/ — 后端 TSTL 使用

前后端数据分离原则:

  • 所有游戏数值配置(属性、伤害、CD、范围等)写在 KV 文件中
  • 前后端都从编译后的 JSON 文件中读取同一份数据
  • 禁止在前端或后端代码中硬编码数值常量,避免数据不一致
步骤 3:编写关联的技能逻辑(如需要)

如果单位拥有自定义技能,在 game/scripts/src/abilities/<模块名>/ 中创建技能源码,按 dota2-ability skill 的工作流编写。

步骤 4:添加本地化

在 game/resource/addon.csv 中添加:

  • npc_dota_unit_<单位名> → 单位显示名
步骤 5:验证
  • 进入游戏测试单位属性、行为、技能

KV 键值参考

通用键
键名说明示例值
BaseClass基类npc_dota_creature / npc_dota_tower / npc_dota_creep_lane / npc_dota_building
Model模型路径models/heroes/earthshaker/earthshaker.vmdl
ModelScale模型缩放1.0
SoundSet声音集Hero_EarthShaker / Creep_Bad_Melee / Tower.Water
Level等级5
IsNeutralUnitType是否中立单位1
ConsideredHero是否视为英雄1
GameSoundsFile游戏声音文件soundevents/game_sounds_heroes/game_sounds_earthshaker.vsndevts
VoiceFile语音文件soundevents/voscripts/game_sounds_vo_earthshaker.vsndevts
碰撞与体积
键名说明示例值
BoundsHullName碰撞体大小DOTA_HULL_SIZE_HERO / DOTA_HULL_SIZE_SMALL / DOTA_HULL_SIZE_REGULAR / DOTA_HULL_SIZE_LARGE
RingRadius环半径70
HealthBarOffset血条偏移200
移动
键名说明示例值
MovementCapabilities移动能力DOTA_UNIT_CAP_MOVE_GROUND / DOTA_UNIT_CAP_MOVE_FLY / DOTA_UNIT_CAP_MOVE_NONE
MovementSpeed移动速度325
MovementTurnRate转身速率0.5
HasAggressiveStance攻击姿态0
技能
键名说明示例值
Ability1技能槽 1earthshaker_fissure
Ability2技能槽 2``
Ability3技能槽 3``
Ability4技能槽 4``
Ability5技能槽 5``
Ability6技能槽 6(额外)``
Ability7技能槽 7(额外)``
Ability8技能槽 8(额外)``
护甲与抗性
键名说明示例值
ArmorPhysical物理护甲5
MagicalResistance魔法抗性0 / 25
攻击
键名说明示例值
AttackCapabilities攻击能力DOTA_UNIT_CAP_MELEE_ATTACK / DOTA_UNIT_CAP_RANGED_ATTACK / DOTA_UNIT_CAP_NO_ATTACK
AttackDamageMin最小攻击力50
AttackDamageMax最大攻击力60
AttackDamageType攻击伤害类型DAMAGE_TYPE_ArmorPhysical
AttackRate攻击速率1.5
AttackAnimationPoint攻击动画点0.3
AttackAcquisitionRange攻击获取范围600
AttackRange攻击范围130 / 500
ProjectileModel弹道模型particles/base_attacks/ranged_badguy.vpcf
ProjectileSpeed弹道速度900
属性
键名说明示例值
AttributePrimary主属性DOTA_ATTRIBUTE_STRENGTH / DOTA_ATTRIBUTE_AGILITY / DOTA_ATTRIBUTE_INTELLECT / DOTA_ATTRIBUTE_ALL
AttributeBaseStrength基础力量21
AttributeStrengthGain力量成长1.6
AttributeBaseAgility基础敏捷24
AttributeAgilityGain敏捷成长2.8
AttributeBaseIntelligence基础智力12
AttributeIntelligenceGain智力成长1.8
状态
键名说明示例值
StatusHealth基础生命值500
StatusHealthRegen生命回复2
StatusMana基础魔法值100
StatusManaRegen魔法回复0.75
StatusStartingMana初始魔法0
赏金
键名说明示例值
BountyXP经验赏金22
BountyGoldMin最小金钱赏金19
BountyGoldMax最大金钱赏金25
视野
键名说明示例值
VisionDaytimeRange白天视野1800
VisionNighttimeRange夜晚视野800
队伍
键名说明示例值
TeamName队伍DOTA_TEAM_GOODGUYS / DOTA_TEAM_BADGUYS / DOTA_TEAM_NEUTRALS
CombatClassAttack攻击战斗类DOTA_COMBAT_CLASS_ATTACK_HERO / DOTA_COMBAT_CLASS_ATTACK_BASIC
CombatClassDefend防御战斗类DOTA_COMBAT_CLASS_DEFEND_HERO / DOTA_COMBAT_CLASS_DEFEND_BASIC
UnitRelationshipClass单位关系类DOTA_NPC_UNIT_RELATIONSHIP_TYPE_DEFAULT / DOTA_NPC_UNIT_RELATIONSHIP_TYPE_HERO
Show full SKILL.md (243 more words)Show less
装饰与外观
键名说明示例值
HasInventory是否有物品栏1
Creature生物配置(子键:AttachWearables、DefaultState 等)
AttachWearables装饰品(子键:"1" { "ItemDef" "123" })
particle_folder粒子文件夹particles/units/heroes/hero_earthshaker
skin皮肤0
wearable装饰(子键)
OverrideWearableClass覆盖装饰类dota_item_wearable
其他键
键名说明示例值
SelectionGroup选择组1
SelectOnSpawn生成时选中1
MinimapIcon小地图图标minimap_icon_tower
MinimapIconSize小地图图标大小1000
WakesNeutrals唤醒中立生物1
UnitLabel单位标签custom
UnitToAbilityMap单位到技能映射(子键)
ScaleSet缩放集0
PathfindingSearchDepthScale寻路深度缩放1
ProjectileCollisionSize弹道碰撞大小50
precache预缓存(子键:particle、soundfile、model)
AttackCapabilities 常量
常量说明
DOTA_UNIT_CAP_NO_ATTACK无攻击能力
DOTA_UNIT_CAP_MELEE_ATTACK近战攻击
DOTA_UNIT_CAP_RANGED_ATTACK远程攻击
MovementCapabilities 常量
常量说明
DOTA_UNIT_CAP_MOVE_NONE不可移动
DOTA_UNIT_CAP_MOVE_GROUND地面移动
DOTA_UNIT_CAP_MOVE_FLY飞行移动
BoundsHullName 常量
常量说明
DOTA_HULL_SIZE_SMALL小碰撞体(小兵)
DOTA_HULL_SIZE_REGULAR普通碰撞体
DOTA_HULL_SIZE_HERO英雄碰撞体
DOTA_HULL_SIZE_LARGE大碰撞体
DOTA_HULL_SIZE_BUILDING建筑碰撞体
TeamName 常量
常量说明
DOTA_TEAM_GOODGUYS天辉
DOTA_TEAM_BADGUYS夜魇
DOTA_TEAM_NEUTRALS中立
CombatClass 常量
常量说明
DOTA_COMBAT_CLASS_ATTACK_HERO英雄攻击
DOTA_COMBAT_CLASS_ATTACK_BASIC基础攻击
DOTA_COMBAT_CLASS_ATTACK_PIERCE穿透攻击
DOTA_COMBAT_CLASS_ATTACK_SIEGE攻城攻击
DOTA_COMBAT_CLASS_DEFEND_HERO英雄防御
DOTA_COMBAT_CLASS_DEFEND_BASIC基础防御
DOTA_COMBAT_CLASS_DEFEND_SOFT软甲防御
DOTA_COMBAT_CLASS_DEFEND_STRUCTURE建筑防御
UnitRelationshipClass 常量
常量说明
DOTA_NPC_UNIT_RELATIONSHIP_TYPE_DEFAULT默认
DOTA_NPC_UNIT_RELATIONSHIP_TYPE_HERO英雄
DOTA_NPC_UNIT_RELATIONSHIP_TYPE_BARRACKS兵营
DOTA_NPC_UNIT_RELATIONSHIP_TYPE_BUILDING建筑

TSTL 编程

如果单位拥有自定义技能,技能逻辑按 dota2-ability skill 工作流编写。

单位可以拥有 vscript 文件,用于规定单位的行为,或者用于制作AI: 具体函数需要使用诸如:

Object.assign(getfenv(), {
    Spawn: callback
});

这样的方式方法注册到单位的脚本文件中

单位创建 API
API用途
CreateUnitByName(unitName, location, bFindClearSpace, hNpcOwner, hPlayerOwner)创建单位
unit.Kill(hAbility, hAttacker)杀死单位
unit.RemoveSelf()移除单位
unit.SetTeam(teamNumber)设置队伍
unit.SetOwner(hPlayer)设置所有者
unit.SetControllableByPlayer(playerID, bControllable)设置可控制
unit.AddAbility(abilityName)添加技能
unit.RemoveAbility(abilityName)移除技能
unit.SetHealth(value)设置生命值
unit.SetMaxHealth(value)设置最大生命值
unit.SetMana(value)设置魔法值
unit.SetBaseMoveSpeed(speed)设置移动速度
unit.SetAcquisitionRange(range)设置攻击获取范围
unit.SetAttackCapability(capability)设置攻击能力
unit.SetMoveCapability(capability)设置移动能力
unit.AddNewModifier(caster, ability, modifierName, kv)添加 modifier
单位查询 API
API用途
unit.GetTeamNumber()获取队伍号
unit.GetOrigin()获取位置
unit.GetAbsOrigin()获取绝对位置
unit.GetHealth()获取生命值
unit.GetMaxHealth()获取最大生命值
unit.GetMana()获取魔法值
unit.GetBaseMoveSpeed()获取移动速度
unit.GetAttackDamage()获取攻击力
unit.GetArmor()获取护甲
unit.GetMagicalArmorValue()获取魔抗
unit.IsAlive()是否存活
unit.IsHero()是否英雄
unit.IsCreature()是否生物
unit.IsBuilding()是否建筑
unit.IsAncient()是否远古
unit.IsBoss()是否 Boss
unit.IsNeutralUnitType()是否中立
unit.HasAbility(abilityName)是否有技能
unit.FindAbilityByName(abilityName)查找技能
unit.GetUnitName()获取单位名

© XavierCHN, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/dota2-unit of XavierCHN/x-template.

Open the folder on GitHubat commit ba97b00

Compare with similar skills

Dota2 Unit next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Dota2 Unit compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Dota2 Unit this skillXavierCHN/x-template216—~2.4kAutomated safety check: PassMIT
MarkitdownImCa0/just-laws78114 repos~3.2kAutomated safety check: NotesMIT
Data Table Managern8n-io/n8n207k—~2.3kAutomated safety check: PassCustom licence
Docx4jplutext/docx4j2.4k—~2.5kAutomated safety check: PassNone
Instrument Data To Allotropeaws-samples/amazon-bedrock-agents-healthcare-lifesciences2742 repos~2.7kAutomated safety check: PassApache-2.0
Cyber Pptcrazyykhllc-bit/CyberPPT1.8k—~10kAutomated safety check: PassMIT

Similar skills

  • Markitdown

    ImCa0/just-laws

    Convert files and office documents to Markdown. An agent skill from ImCa0/just-laws.

    781 GitHub starsUsed in 14 repos~3.2k tokens
    Documents & OfficeAuto-check: notes
  • Official

    Load before calling data-tables or parse-file. An agent skill from n8n-io/n8n.

    207k GitHub stars~2.3k tokensUpdated today
    Documents & OfficeAuto-check passed
  • Docx4j

    plutext/docx4j

    A skill your agent uses when writing Java code that creates, reads or edits Word (.docx), PowerPoint (.pptx) or Excel (.xlsx) files with docx4j — including generating documents, editing existing…

    2.4k GitHub stars~2.5k tokensUpdated yesterday
    Documents & OfficeAuto-check passed
  • Instrument Data To Allotrope

    aws-samples/amazon-bedrock-agents-healthcare-lifesciences

    Official

    Convert laboratory instrument output files (PDF, CSV, Excel, TXT) to Allotrope Simple Model (ASM) JSON format or flattened 2D CSV.

    274 GitHub starsUsed in 2 repos~2.7k tokens
    Documents & OfficeAuto-check passed
  • Cyber Ppt

    crazyykhllc-bit/CyberPPT

    当用户需要把 DOCX、PDF、TXT、XLSX、研究报告、业务材料或原始数据转成高密度、可编辑、咨询风格 PPTX 时使用;也适用于需要 SCR 论证、视觉风格探索、详细图表和渲染质检的 PPT。

    1.8k GitHub stars~10k tokensUpdated 2 mo ago
    Documents & OfficeAuto-check passed
  • Markit

    shift-labs-ai/markit

    Convert files and URLs to Markdown. An agent skill from shift-labs-ai/markit.

    1.3k GitHub stars~299 tokensUpdated 1 mo ago
    Documents & OfficeAuto-check passed

More from XavierCHN/x-template

  • Dota2 Localization

    XavierCHN/x-template

    为 DOTA2自定义游戏 项目生成 Dota 2 本地化文本(addon.csv)。触发词:本地化、翻译、loc、i18n、addon.csv、文本、tooltip、多语言。Use when user asks to generate localization entries for abilities/units/items/modifiers, translate Chinese to…

    216 GitHub stars~567 tokensUpdated 4 mo ago
    Auto-check passed
  • Dota2 Game Logic

    XavierCHN/x-template

    DOTA2 自定义游戏服务端逻辑开发指南。触发词:游戏逻辑、服务端、server、game mode、游戏模式、GameRules、modifier、timer、lua、TSTL。Use when user asks to create or modify DOTA2 custom game server-side logic, game mode configuration…

    216 GitHub stars~2.7k tokensUpdated 4 mo ago
    Auto-check passed
  • Dota2 UI

    XavierCHN/x-template

    DOTA2 自定义游戏 UI(Panorama)开发指南。触发词:UI、界面、面板、panorama、frontend、前端、HUD、layout、xml、css、样式。Use when user asks to create or modify DOTA2 custom game UI panels, React components, CSS styles, layout XML…

    216 GitHub stars~5.5k tokensUpdated 4 mo ago
    Auto-check passed
  • Dota2 Ability

    XavierCHN/x-template

    Dota 2 自定义技能编写指南。触发词:技能、ability、spell、被动、主动. An agent skill from XavierCHN/x-template.

    216 GitHub stars~3.2k tokensUpdated 4 mo ago
    Auto-check passed
  • Dota2 Item

    XavierCHN/x-template

    Dota 2 自定义物品编写指南。触发词:物品、item、装备、道具、配方、recipe、合成. An agent skill from XavierCHN/x-template.

    216 GitHub stars~1.7k tokensUpdated 4 mo ago
    Auto-check passed

Works with

Questions about Dota2 Unit

What does Dota2 Unit do?

Dota 2 自定义单位编写指南。适用于编写/修改单位 KV 配置文件(game/scripts/npc/customunits/)。触发词:单位、unit、creature、怪物、召唤物、建筑、塔、npc。. Dota2 Unit is an agent skill from XavierCHN/x-template.

When should I use Dota2 Unit?

Dota2 Unit fits situations like: tasks that involve Excel spreadsheets.

How do I install Dota2 Unit in Claude Code?

Run `npx skills add XavierCHN/x-template --skill dota2-unit -a claude-code`. Or copy the skill folder (.agents/skills/dota2-unit in XavierCHN/x-template) into .claude/skills/dota2-unit in your project. Claude Code loads it when a task matches its description.

How do I install Dota2 Unit in Codex?

Run `npx skills add XavierCHN/x-template --skill dota2-unit -a codex`. Or copy the skill folder (.agents/skills/dota2-unit in XavierCHN/x-template) into .agents/skills/dota2-unit in your project. Codex loads it when a task matches its description.

Can I use Dota2 Unit in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add XavierCHN/x-template --skill dota2-unit -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dota2-unit, .gemini/skills/dota2-unit, .github/skills/dota2-unit and .opencode/skills/dota2-unit in your project.

What does Dota2 Unit need to run?

Going by SKILL.md and its folder, Dota2 Unit needs the command-line tools its instructions call (npx). Our summary lists: Node.js.

Does Dota2 Unit access the network?

SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Dota2 Unit safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Dota2 Unit use?

Dota2 Unit is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Dota2 Unit use?

About 2.4k tokens (SKILL.md is roughly 9.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Dota2 Unit?

Skills that share tags, products or a category with Dota2 Unit: Markitdown (ImCa0/just-laws, 781 stars), Data Table Manager (n8n-io/n8n, 207k stars), Docx4j (plutext/docx4j, 2.4k stars) and Instrument Data To Allotrope (aws-samples/amazon-bedrock-agents-healthcare-lifesciences, 274 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Dota2 Unit?

XavierCHN (a GitHub user) maintains it in XavierCHN/x-template, which has 216 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on May 23, 2026.

Source: XavierCHN/x-template on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.