预设

数据包预设

溺尸利维坦 Boss 战利品之剑预设

溺尸利维坦 Boss 战利品之剑预设现在是一套完整的 Boss 战利品工作流,而不再只是机器生成的一段单薄说明。它同时展示溺尸 Boss、DeathLootTable 路径、数据包奖励 JSON 以及经过验证的游戏内 Boss 结果,这样在遭遇进入实战地图之前就可以先完整复盘。当你需要一只配备水彩奖励之剑的海洋遭遇 Boss,同时希望召唤命令与奖励表始终保持在同一个 Project 上下文中时,就用这套预设。

预设结果

溺尸利维坦连接到 nbtforge:entities/drowned_leviathan,并奖励利维坦压制之剑。

输出

溺尸利维坦 Boss 与战利品包

# 1) Summon the boss. This entity points at the custom loot table.
/summon minecraft:drowned ~ ~ ~ {Tags:["nbtforge_boss","drowned_leviathan"],CustomName:{text:"Drowned Leviathan",color:"aqua",bold:true},CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"nbtforge:entities/drowned_leviathan",equipment:{mainhand:{id:"minecraft:diamond_sword",count:1,components:{"minecraft:custom_name":{text:"Leviathan Overpower Sword",color:"aqua",italic:false},"minecraft:enchantments":{"minecraft:sharpness":6}}},head:{id:"minecraft:turtle_helmet",count:1}}}
/attribute @e[tag=drowned_leviathan,limit=1,sort=nearest] minecraft:max_health base set 130
/attribute @e[tag=drowned_leviathan,limit=1,sort=nearest] minecraft:attack_damage base set 13
/data merge entity @e[tag=drowned_leviathan,limit=1,sort=nearest] {Health:130f}

# 2) Save this datapack file as data/nbtforge/loot_table/entities/drowned_leviathan.json
{
  "type": "minecraft:entity",
  "pools": [
    {
      "rolls": 1,
      "entries": [
        {
          "type": "minecraft:item",
          "name": "minecraft:diamond_sword",
          "weight": 1,
          "functions": [
            {
              "function": "minecraft:set_count",
              "count": 1
            },
            {
              "function": "minecraft:set_components",
              "components": {
                "minecraft:custom_name": {
                  "text": "Leviathan Overpower Sword",
                  "color": "aqua",
                  "italic": false
                },
                "minecraft:lore": [
                  {
                    "text": "Dropped by Drowned Leviathan",
                    "color": "gray",
                    "italic": false
                  },
                  {
                    "text": "Overpowered boss reward from NBTForge",
                    "color": "gold",
                    "italic": false
                  }
                ],
                "minecraft:enchantments": {
                  "minecraft:sharpness": 10,
                  "minecraft:unbreaking": 5,
                  "minecraft:fire_aspect": 2,
                  "minecraft:sweeping_edge": 3
                },
                "minecraft:attribute_modifiers": [
                  {
                    "id": "nbtforge:drowned_leviathan_power",
                    "type": "minecraft:attack_damage",
                    "amount": 12,
                    "operation": "add_value",
                    "slot": "mainhand"
                  }
                ],
                "minecraft:rarity": "epic",
                "minecraft:enchantment_glint_override": true,
                "minecraft:custom_data": {
                  "nbtforge_boss_drop": "drowned_leviathan",
                  "overpower": 1
                }
              }
            }
          ]
        }
      ]
    }
  ]
}

# 3) Optional quick test after /reload: spawn the reward without killing the boss.
/loot spawn ~ ~1 ~ loot nbtforge:entities/drowned_leviathan
Too long for Minecraft chat

The longest command line is 487 characters, 231 over the 256-character chat input limit. Pasting it into chat can truncate the line and make Minecraft report a syntax error even when the generated command is valid.

  • Use a Command Block: run /give @s command_block, place it, then paste this command into the block command field.
  • Use a .mcfunction for a reusable datapack: save the line without the leading slash at saves/<world>/datapacks/<pack>/data/<ns>/function/<name>.mcfunction with a minimal pack.mcmeta, run /reload, then run /function <ns>:<name>. Do not paste .mcfunction content into chat.

预设截图

溺尸利维坦以一只命名溺尸为起点,配有 Boss 标签、持久化标记和战斗数值调整。
战利品表路径为 nbtforge:entities/drowned_leviathan,与召唤命令中的 DeathLootTable 保持一致。
输出将召唤命令、数据包 JSON 路径和快速战利品测试集中放在一起。
在继续微调奖励之前,这张截图先验证溺尸利维坦确实出现在还原后的测试世界中。

构建预设

  1. 打开召唤 Workbench,并选择 drowned 作为 Boss 实体。
  2. 将可见的自定义名称设为 Drowned Leviathan,并保持名牌在竞技场 QA 中可见。
  3. 添加稳定的 boss 标签,让属性、清理和奖励逻辑都能精准锁定该实体。
  4. 把最大生命值设为 130,攻击力设为 13。
  5. 在 Boss 数据中加入 DeathLootTable:"nbtforge:entities/drowned_leviathan"。
  6. 打开 Data Pack,并创建 data/nbtforge/loot_table/entities/drowned_leviathan.json。
  7. 配置战利品表,使其掉落附带名称、描述文本 (lore)、附魔、稀有度和 custom_data 的利维坦压制之剑。
  8. 在复制任何一件工件之前,先将召唤命令与战利品 JSON 一起保存在 Project 中。
  9. 先对 Boss 召唤做冒烟测试,再用 `/loot spawn` 或竞技场击杀来测试战利品表。

Boss 实体与奖励表

溺尸利维坦分为两项独立的职责。召唤命令负责生成带有名称、标签、持久化、生命值、攻击力以及 DeathLootTable 引用的溺尸;而 data/nbtforge/loot_table/entities/drowned_leviathan.json 这份数据包文件则定义 Boss 死亡后玩家具体能获得什么。

把这两项职责分开能让预设更易于调试。如果 Boss 没有生成,先检查召唤的输出和实体语法;如果 Boss 生成了但什么都没掉落,则在改动实体命令之前,先核对命名空间、资源路径、数据包是否已重新加载以及战利品表 JSON。

Workbench 画廊正是围绕这条分界线来排版的。第一张图聚焦 Boss 身份,第二张图聚焦奖励资源,而输出截图则把两件工件放得足够近,这样 Project 条目就能完整保留两者之间的关联。

  • Boss ID:drowned
  • 战利品路径:nbtforge:entities/drowned_leviathan
  • 奖励物品:利维坦压制之剑

安全地测试遭遇

在调整完整战斗之前,先做一次干净的召唤测试。溺尸利维坦应在还原后的世界里以预期的名称和标签出现,截图应让 Boss 清晰可读,而不被旧怪物或上次截图遗留的特效干扰。

召唤稳定之后,再独立测试战利品表。一次快速的 `/loot spawn ~ ~1 ~ loot nbtforge:entities/<id>` 检查可以在涉及战斗逻辑之前,先证明 JSON 能正常产出奖励。然后再走最终的竞技场流程,让真正的 Boss 死亡去触发同一份资源。

不要同时调整生命值、伤害、效果、Boss 血条和战利品。每次只改一项,更新 Project 条目,然后测试复制出的工件。这样可以避免数据包路径出错被误判为实体问题,也能避免实体打字错误被误判为战利品故障。

  • 先做召唤测试。
  • 再做战利品 JSON 测试。
  • 最后做完整的竞技场击杀测试。

遭遇布置

当竞技场设置、Boss 血条、警告反馈和奖励表都保存在召唤命令附近时,溺尸利维坦的体验最理想。这能让审阅者在同一个位置就能检查遭遇是否启动、是否传达了危险、是否掉落预期物品以及是否能自行清理。

当预设进入正式内容阶段,可以把长命令搬进数据包函数,并让战利品表保持在同一个命名空间下。文章的输出之所以刻意写得很明确,就是为了让召唤命令和 JSON 路径在被复制进文件之前,仍然便于审核。

想看相邻的 Boss 战利品示例,可比较 烈焰皇帝火焰 Boss 战利品预设监守者回响 Boss 远古城市战利品预设 以及 Boss 掉落战利品表预设

FAQ

溺尸利维坦是如何掉落利维坦压制之剑的?

召唤命令将 DeathLootTable 设为 nbtforge:entities/drowned_leviathan;data/nbtforge/loot_table/entities/drowned_leviathan.json 这份数据包文件则把利维坦压制之剑定义为奖励。

可以把 Boss 命令直接粘到聊天里吗?

仅当生成出来的命令仍在聊天长度限制以内时才可以。Boss 命令通常应放进命令方块用于一次性测试,或放进数据包函数用于可重复使用的地图内容。

如果奖励没有掉落,应该先测试什么?

先用 `/loot spawn` 测试战利品表路径,然后确认 Boss 召唤仍然引用同一个 DeathLootTable id。大部分故障来自命名空间或资源路径不一致。

打开这个工作流

从相关 Data Pack 工作台开始,然后按你的世界调整预设字段。