创建 EliteMobs 内容
EliteMobs 用 YAML 定义 Boss、物品、任务等内容,用 Lua 编写能力、NPC 脚本和原生行为。请将文件放到 plugins/EliteMobs/ 下对应的内容文件夹。
内容类型
本概览介绍八种主要内容,以及下文列出的辅助定义和脚本:
- 自定义 Boss —— 创建拥有自定义技能、装备和能力的独特精英怪
- 自定义物品 —— 设计带有附魔的自定义武器、盔甲和物品
- 自定义任务 —— 构建带有目标和奖励的任务链
- 自定义事件 —— 设置定时或触发式的 Boss 事件
- 自定义 NPC —— 添加任务发布者、商店和可交互 NPC
- 宝箱 —— 放置带有自定义奖励和拟态机制的战利品箱
- 竞技场 —— 设计带有 Boss 遭遇战的基于波次的战斗挑战
- 虫洞 —— 创建在不同位置之间的传送门
每种内容类型都有自己的配置文件夹和字段结构。
快速上手
创建 YAML 内容定义的步骤:
- 创建一个扩展名为 .yml 的 YAML 文件
- 使用 lowercase_with_underscores.yml 格式为其命名
- 将其放入相应的文件夹
- 使用 YAML 字段配置内容
- 重载 EliteMobs 或重启服务器
文件位置
每种内容类型都存储在它自己的文件夹中:
- 自定义 Boss:~/plugins/EliteMobs/custombosses/
- 自定义物品:~/plugins/EliteMobs/customitems/
- 自定义任务:~/plugins/EliteMobs/customquests/
- 自定义事件:~/plugins/EliteMobs/customevents/
- 自定义 NPC:~/plugins/EliteMobs/npcs/
- 宝箱:~/plugins/EliteMobs/customtreasurechests/
- 竞技场:~/plugins/EliteMobs/customarenas/
- 虫洞:~/plugins/EliteMobs/wormholes/
辅助内容还有以下文件夹:
- 技能:~/plugins/EliteMobs/powers/
- 自定义生成:~/plugins/EliteMobs/customspawns/
- NPC Lua 脚本:~/plugins/EliteMobs/npc_scripts/
- 原生 Lua 行为:~/plugins/EliteMobs/behaviors/
- 交通路线:~/plugins/EliteMobs/transport_routes/
- 飞行网络:~/plugins/EliteMobs/transport_networks/
- 附魔定义和 Lua:~/plugins/EliteMobs/enchantments/
- 地下城包:~/plugins/EliteMobs/content_packages/
- 实例世界模板:~/plugins/EliteMobs/world_blueprints/
内容包一级的 scripts/ 文件夹属于 FreeMinecraftModels,不是 EliteMobs 的 NPC 或行为脚本文件夹。参阅内容包文件夹路由。
内容创建工具
WebApp(推荐初学者使用)
EliteMobs WebApp 提供生成配置的可视化界面。请将输出与对应内容类型的最新参考文档核对;新字段和 Lua 脚本可能需要手动编辑。
手动 YAML 配置
对于高级用户,可以手动创建 YAML 文件,以完全掌控所有可用的字段和选项。
YAML 文件格式
YAML 内容定义遵循以下规则。Lua 能力、NPC 脚本和行为使用独立的 .lua 文件:
- 缩进使用空格,而非制表符
- 以颜色代码开头的字符串要加引号;单引号适合保留字面文本
- 列表使用连字符格式或方括号格式
isEnabled控制 YAML 定义是否启用。默认值取决于内容类型和预制定义;新文件请明确设置,并查阅对应参考文档- 文件名应使用 lowercase_with_underscores.yml 格式
有关详细的 YAML 语法帮助,请参阅 配置文件指南。
内容类型概览
自定义 Boss
自定义 Boss 是拥有增强能力、自定义装备和特殊技能的精英怪。Boss 系统支持 60 多个配置字段,包括:
- 实体类型和等级
- 生命值和伤害倍率
- 装备(盔甲和武器)
- 精英技能和能力
- 战利品表和掉落物
- 生成 / 死亡消息和命令
- 多阶段机制
- 自定义模型和伪装
基础 Boss 示例:
isEnabled: true
entityType: ZOMBIE
name: '&e Test Boss'
level: dynamic
healthMultiplier: 2.0
damageMultiplier: 0.5
helmet: GOLDEN_HELMET
chestplate: IRON_CHESTPLATE
mainHand: GOLDEN_AXE
powers:
- invulnerability_knockback.lua
spawnMessage: A test boss has been spawned!
deathMessage: A test boss has been slain by $players!
自定义物品
自定义物品可创建带有自定义附魔和效果的武器、盔甲和工具。功能包括:
- 材质类型
- 显示名称和说明文字(lore)
- 附魔列表
- 药水效果
- 自定义模型 ID
- 掉落权重和缩放
- 等级和灵魂绑定设置
基础物品示例:
isEnabled: true
material: DIAMOND_SWORD
name: '&4Legendary Blade'
lore:
- '&7A powerful weapon'
- '&7forged in dragon fire'
enchantments:
- DAMAGE_ALL,5
- FIRE_ASPECT,2
level: 10
soulbound: true
自定义任务
自定义任务为玩家定义目标和完成奖励。功能包括:
- 任务目标和类型
- 奖励(物品、金钱、权限)
- 接受 / 完成对白
- NPC 交付要求
- 任务锁定计时器
- 追踪和音效
自定义事件
自定义事件根据时间、几率或其他条件触发 Boss 生成。功能包括:
- 事件类型和 Boss 列表
- 触发几率和权重
- 开始 / 结束消息和命令
- 冷却计时器(本地和全局)
- 最少玩家数量
- 事件持续时间
自定义 NPC
自定义 NPC 为任务、商店和竞技场提供可交互角色。功能包括:
- NPC 名称、角色身份和职业
- 生成位置
- 对白(问候语、对白、告别语)
- 交互类型
- 任务和竞技场引用
- 自定义模型和伪装
- NPC Lua 钩子和巡逻路线
宝箱
宝箱提供战利品,可配置补货时间和拟态机制。功能包括:
- 宝箱类型和朝向
- 位置坐标
- 战利品表
- 补货计时器
- 拟态几率和 Boss 列表
- 单人掉落或按玩家分别掉落的团队掉落方式
竞技场
竞技场提供包含 Boss 的波次战斗。功能包括:
- 竞技场边界(corner1、corner2)
- 波次数量和延迟
- Boss 列表和生成点
- 奖励和玩家数量限制
- 竞技场消息
- 间歇波次
虫洞
虫洞在两个位置之间创建传送门。功能包括:
- 两个位置端点
- 每个位置的显示文本
- 视觉样式和粒子颜色
- 硬币花费和权限
- 致盲效果和大小倍率
- 两个端点可选的实体模型
- 打开飞行网络菜单的飞行传送门
- 复制到每个实例化地下城中的实例化虫洞
常见模式
引用内容
各内容类型之间使用文件名相互引用:
- 在 Boss 中引用技能: power_name.lua(旧式的
power_name.yml引用会被自动解析到同名的.lua技能) - 在战利品中引用物品:
filename: item_name.yml(关于几率、数量等,请参阅 战利品表 格式) - 在事件中引用 Boss: boss_filename.yml
- 在 NPC 中引用任务: quest_filename.yml
复用定义
自定义 Boss、NPC 和运输路线文件可以通过 extends: base_file.yml 以同类型的另一个文件为基础,只覆盖不同的键。放置位置和 isEnabled 永远不会被继承。完整规则请参阅复用另一个 Boss 文件和复用另一个 NPC 文件。
占位符
占位符取决于读取它的字段,并非所有消息都会进行全局替换:
$players- Boss 死亡公告中参与攻击者的显示名称$distance-locationMessage中到被追踪 Boss 的距离$eventBossLevel- Boss 名称中带格式的等级;预览时等级未知可能显示?
颜色代码
名称和消息可以使用 Minecraft 颜色代码。如果文本以颜色代码开头,请用引号包住整个字符串。单引号会保留反斜杠的字面含义;YAML 双引号也有效。
标准 Minecraft 颜色代码:
- &0 - 黑色
- &1 - 深蓝色
- &2 - 深绿色
- &3 - 深青色
- &4 - 深红色
- &5 - 深紫色
- &6 - 金色
- &7 - 灰色
- &8 - 深灰色
- &9 - 蓝色
- &a - 绿色
- &b - 青色
- &c - 红色
- &d - 浅紫色
- &e - 黄色
- &f - 白色
格式化代码:
- &l - 粗体
- &m - 删除线
- &n - 下划线
- &o - 斜体
- &r - 重置
精英能力系统
EliteMobs 提供 71 种精英能力。其中 68 种是 Lua 文件(*.lua),只有 bonus_coins.yml、custom_summon.yml 和 elite_script.yml 仍然基于 YAML。能力在 Boss 配置中通过文件名引用,而旧式的 .yml 引用会自动解析为同名的 .lua 能力。参见创建能力。
能力分类
能力所属的分类就是它的 powerType,它同时决定了自然精英怪能否随机获得该能力。
攻击型(Offensive):
arrow_fireworks、arrow_rain、attack_arrow、attack_fire、attack_fireball、attack_freeze、attack_gravity、attack_lightning、attack_poison、attack_push、attack_vacuum、attack_wither、fireworks_barrage、lightning_bolts、taze
防御型(Defensive):
invulnerability_arrow、invulnerability_fall_damage、invulnerability_fire、invulnerability_fireworks、invulnerability_knockback、shield_wall
杂项(Miscellaneous):
attack_blinding、attack_confusing、attack_weakness、attack_web、bonus_loot、channel_healing、corpse、frost_walker、ground_pound、implosion、invisibility、moonwalk、movement_speed、taunt
主要能力(锁定实体类型):
MAJOR_ZOMBIE:zombie_bloat、zombie_friends、zombie_necronomicon、zombie_parentsMAJOR_SKELETON:bullet_hell、skeleton_pillar、skeleton_tracking_arrowMAJOR_BLAZE:firestorm、flame_pyreMAJOR_ENDERMAN:plasma_blasterMAJOR_GHAST:tracking_fireball
独特能力(仅在 Boss 按名称明确要求时才会生效):
death_slice、flamethrower、frost_cone、gold_explosion、gold_shotgun、hyper_loot、meteor_shower、photon_ray、spirit_walk、summon_embers、summon_the_returned、thunderstorm,以及十种末影龙能力:ender_dragon_aimed_fireball、ender_dragon_arrow_bombardment、ender_dragon_disco_fireballs、ender_dragon_empowered_lightning、ender_dragon_ender_fireball_bombardment、ender_dragon_endermite_bombardment、ender_dragon_fireball_bombardment、ender_dragon_potion_bombardment、ender_dragon_shockwave、ender_dragon_tornado
仍为 YAML:
bonus_coins.yml、custom_summon.yml(增援系统)、elite_script.yml
能力通过 powers 列表字段添加到 Boss 上:
powers:
- invulnerability_knockback.lua
- flame_pyre.lua
- spirit_walk.lua
进阶功能
多阶段 Boss
Boss 可以拥有多个阶段,每个阶段使用独立的配置文件。使用 phases 字段引用阶段 Boss 文件,并使用 phaseSpawnLocation 设置阶段转换发生的位置。
精英脚本(Elite Scripts)
EliteScript 提供事件驱动的动作、条件和冷却。YAML 版本使用 Boss 的 eliteScript 字段;Lua 能力是独立的 .lua 文件,由 powers 引用。参阅创建能力。
自定义模型
Boss 和 NPC 的实体模型使用 customModel。物品使用专属字段,包括 customModelV2、equipmentModelID 和 fmmItemModel;参阅自定义物品。实体模型与物品模型分别配置。
Boss 装备
Boss 装备字段接受 Minecraft 材质名称,不会加载自定义物品文件或其 EliteMobs 属性:
helmet: DIAMOND_HELMET
chestplate: IRON_CHESTPLATE
leggings: LEATHER_LEGGINGS
boots: CHAINMAIL_BOOTS
mainHand: GOLDEN_AXE
offHand: SHIELD
命令执行
Boss 可以在特定事件时执行命令:
- onSpawnCommands - 在 Boss 生成时执行
- onDeathCommands - 在 Boss 被击败时执行
- onCombatEnterCommands - 在战斗开始时执行
- onCombatLeaveCommands - 在战斗结束时执行
Boss 消息
自定义 Boss 公告:
- spawnMessage - 在 Boss 生成时广播
- deathMessage - 在 Boss 被击败时广播(支持 $players 占位符)
- escapeMessage - 在 Boss 逃脱时广播
- locationMessage - 显示到 Boss 的距离(支持 $distance 占位符)
- deathMessages - 有攻击者记录时,在 Boss 死亡后按顺序发送的多行文本;非空列表优先于 deathMessage,并非随机选取
announcementPriority(0–3)控制公告投递、追踪和 DiscordSRV 转发。死亡公告在 0 时发送给记录的攻击者;正优先级向全服广播,3 还通过已配置的 DiscordSRV 集成转发。生成公告和追踪有各自的规则。
区域 Boss
区域 Boss 使用 isRegionalBoss 字段,可以拥有牵引半径、生成限制和方块状态变化:
- leashRadius - 距离生成点的最大距离
- onSpawnBlockStates - Boss 生成时的方块变化
- onRemoveBlockStates - Boss 被击败时的方块变化;普通卸载、消失和重置不会应用击败后的状态
自动职业战利品
职业战利品提供与等级和玩家职业匹配的奖励。遭遇战品级和难度预算可独立于 Boss 生命与伤害调整奖励品质。自定义物品系列可提供作者指定的名称、材质、说明和模型。
战利品配置
控制 Boss 掉落物:
dropsEliteMobsLoot- 启用常规生成战利品和金币的处理路径(默认true);不是自定义或职业战利品的总开关dropsVanillaLoot- 启用原版掉落(默认true)dropsRandomLoot- 在常规掉落路径内启用随机生成战利品(默认true)uniqueLootList- 作者指定的掉落条目,与这些生成掉落开关分开处理classLoot- 单独控制自动职业战利品;仍受其全局设置和资格条件约束
示例:
uniqueLootList:
- filename=custom_sword.yml:chance=1.0
- filename=rare_helmet.yml:chance=0.05:amount=1
旧式简写 custom_sword.yml:1 仍然可以被解析,但冒号后面的数字是掉落几率(1 = 100%),而不是数量。数量请使用 amount=。完整选项请参阅战利品表。
预制内容
EliteMobs 附带了大多数内容类型的预制配置,并在首次启动时把它们直接写入常规内容文件夹 —— 磁盘上并不存在单独的 /premade/ 文件夹。生成出来的这些文件(Boss 在 custombosses/、物品在 customitems/、NPC 在 npcs/,以此类推)都是普通的 YAML,可以作为你自己内容的可用示例。
插件也附带预制内容包定义;其地下城世界和额外内容通过 /em setup 下载并安装。参阅地下城打包器。
获取帮助
- 查看侧边栏以获取具体的内容创建指南
- 访问 EliteMobs Discord 获取社区支持
- 查阅 GitHub 仓库 获取源代码示例