--- title: 物品功能函数 category: 文档 nav_order: 4 tags: - 稳定版 - 最后更新于版本1.18.10 mentions: - Ciosciaa - MedicalJewel105 - ThomasOrs toc_max_level: 1 --- # 物品功能函数 物品功能函数用于修改[战利品表](/wiki/loot/loot-tables)和[交易表](/wiki/loot/trade-tables)中物品的属性。 TODO 附魔前缀是否可以使用minecraft:/whatever格式? ## 功能函数说明 以下测试仅在交易表中进行 仅适用于战利品表和交易表 是以`function`和其他属性构成的对象... 均不支持Molang表达式 Java版特有的附加函数或属性均无效 所有函数名前都可以添加任意文本前缀和冒号,例如`minecraft:exploration_map`或`d1245436576u:fio2ejfoijfiowejf::::::exploration_map` ## 通用功能 以下基础功能适用于所有物品。 | 函数名 | 容器战利品 | 方块掉落 | 钓鱼 | 实体掉落 | 实体装备 | 交易表 | | -------------------- | ---------- | -------- | ------ | -------- | -------- | -------- | | `set_count` | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | | `set_name` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | `set_lore` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | `set_data` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | `random_block_state` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | `random_aux_value` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | `set_damage` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ### 数量设置 | 使用场景 | 是否可用 | | ------------------ | -------- | | 容器战利品 | ✅ | | 方块掉落 | ✅ | | 钓鱼 | ✅ | | 实体掉落 | ✅ | | 实体装备 | ✅ | | 交易表 | ❌ | ::: tip 注意 交易表使用[`"quantity"`属性](/wiki/loot/trade-tables#quantity)来设置物品数量。 ::: `set_count`函数用于设置物品数量。 ::: code-group ```json [数量函数] { "function": "set_count", "count": { "min": 2, "max": 4 } } ``` ::: `"count"`属性决定物品的产出数量,可以是整数或[范围对象](#)。设置的数量可以超过物品的堆叠上限,此时在容器中会占用多个槽位,掉落在地面时会分成多个物品堆。该属性默认值为`0`,因此必须显式设置。 ### 名称设置 | 使用场景 | 是否可用 | | ------------------ | -------- | | 容器战利品 | ✅ | | 方块掉落 | ✅ | | 钓鱼 | ✅ | | 实体掉落 | ✅ | | 实体装备 | ✅ | | 交易表 | ✅ | `set_name`函数用于设置物品名称。名称会显示在物品悬停提示中,玩家可以使用铁砧修改。 ::: code-group ```json [名称函数] { "function": "set_name", "name": "诅咒之弓" } ``` ::: `"name"`属性设置物品名称。默认显示为斜体,但支持格式代码,可以在开头添加`§r`重置为非斜体。不支持原始文本,可使用`\n`换行。 ### 描述文本 | 使用场景 | 是否可用 | | ------------------ | -------- | | 容器战利品 | ✅ | | 方块掉落 | ✅ | | 钓鱼 | ✅ | | 实体掉落 | ✅ | | 实体装备 | ✅ | | 交易表 | ✅ | `set_lore`函数设置物品的描述文本。 ::: code-group ```json [描述函数] { "function": "set_lore", "lore": [ "第一行描述", "第二行描述" ] } ``` ::: `"lore"`属性可以是字符串或字符串数组。每行支持格式代码但不支持本地化,每行的格式上下文独立。默认显示紫色斜体,可用`§r`重置。`\n`可在单行内换行并保持格式。 ### 数据值设置 | 使用场景 | 是否可用 | | ------------------ | -------- | | 容器战利品 | ✅ | | 方块掉落 | ✅ | | 钓鱼 | ✅ | | 实体掉落 | ✅ | | 实体装备 | ✅ | | 交易表 | ✅ | `set_data`设置物品的数据值,类似于`/give`命令的参数。对方块设置其数据值,对物品设置辅助值。注意不能设置物品耐久度,需使用[`durability`](#durability)。 ::: code-group ```json [数据函数] { "function": "set_data", "data": 2 } ``` ::: `"data"`属性可以是整数或范围对象,默认`0`。 整数形式: ```json "data": 1 ``` 范围对象形式: ```json "data": { "min": 0, "max": 5 } ``` ### 方块状态 | 使用场景 | 是否可用 | | ------------------ | -------- | | 容器战利品 | ✅ | | 方块掉落 | ✅ | | 钓鱼 | ✅ | | 实体掉落 | ✅ | | 实体装备 | ✅ | | 交易表 | ✅ | `random_block_state`设置方块的单个状态值。 ::: code-group ```json [方块状态函数] { "function": "random_block_state", "block_state": "wiki:color", "values": 3 } ``` ::: 设置方块的某个状态值 block_state 必需,方块状态名称字符串 values 可以是数字或min/max对象 默认为0... 否则无意义? ### 辅助值 | 使用场景 | 是否可用 | | ------------------ | -------- | | 容器战利品 | ✅ | | 方块掉落 | ✅ | | 钓鱼 | ✅ | | 实体掉落 | ✅ | | 实体装备 | ✅ | | 交易表 | ✅ | `random_aux_value` ::: code-group ```json [辅助值函数] { "function": "random_aux_value", "values": { "min": 2, "max": 4 } } ``` ::: 设置物品的辅助值 values 可以是整数或min/max对象 随机均匀选择 仅影响辅助值(如羊毛颜色而非工具耐久) 会覆盖标识符中的`:suffix`值(如`minecraft:wool:10`) 同样适用于方块数据 ### 耐久度 | 使用场景 | 是否可用 | | ------------------ | -------- | | 容器战利品 | ✅ | | 方块掉落 | ✅ | | 钓鱼 | ✅ | | 实体掉落 | ✅ | | 实体装备 | ✅ | | 交易表 | ✅ | `set_damage`设置物品耐久度。 ::: code-group ```json [耐久函数] { "function": "set_damage", "damage": { "min": 0.5, "max": 1 } } ``` ::: `"damage"`属性可以是数字或[范围对象](#),值域`0`到`1`,`0`表示完全损坏,`1`表示全新。 ## 物品专属功能 以下功能仅适用于特定物品。 | 函数名 | 容器战利品 | 方块掉落 | 钓鱼 | 实体掉落 | 实体装备 | 交易表 | | ------------------------ | ---------- | -------- | ------ | -------- | -------- | -------- | | `furnace_smelt` | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | | `set_book_contents` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | `exploration_map` | ✅ | ✅ | ✅ | ✅ | ✅ | ⚠️ | | `set_banner_details` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | `random_dye` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | `set_actor_id` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | `fill_container` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ### 熔炼物品 | 使用场景 | 是否可用 | | ------------------ | -------- | | 容器战利品 | ❌ | | 方块掉落 | ❌ | | 钓鱼 | ❌ | | 实体掉落 | ✅ | | 实体装备 | ❌ | | 交易表 | ❌ | `furnace_smelt` ::: code-group ```json [熔炼函数] { "function": "furnace_smelt" } ``` ::: 暗示实体必须在死亡时处于燃烧状态 即使移除条件检查,仍需要实体着火死亡才能触发 ### 书册内容 | 使用场景 | 是否可用 | | ------------------ | -------- | | 容器战利品 | ✅ | | 方块掉落 | ✅ | | 钓鱼 | ✅ | | 实体掉落 | ✅ | | 实体装备 | ✅ | | 交易表 | ✅ | `set_book_contents` ::: code-group ```json [书册函数] { "function": "set_book_contents", "title": "书名", "author": "作者", "pages": [ "第一页内容", "第二页内容" ] } ``` ::: 仅适用于`writable_book`和`written_book` author 作者名字符串 title 书名字符串 pages 字符串数组,每元素一页 最多50页,每页798字符 总字符限制12,800 使用`\n`换行(非`\\n`) 不支持制表符 支持颜色代码,每页格式独立 ### 探险地图 | 使用场景 | 是否可用 | | ------------------ | -------- | | 容器战利品 | ✅ | | 方块掉落 | ✅ | | 钓鱼 | ✅ | | 实体掉落 | ✅ | | 实体装备 | ✅ | | 交易表 | ✅ | `exploration_map` ::: code-group ```json [地图函数] { "function": "exploration_map", "destination": "village" } ``` ::: 交易表信息: destination 目前仅支持`monument`和`mansion` 其他类型(如沉船宝藏)会显示为"未知地图" 战利品表信息: 支持所有/locate定位点 需在对应维度 海底神殿和林地府邸会显示正确图标和名称 无效目标仍会显示基础地图轮廓 适用于所有获取方式 ### 旗帜类型 | 使用场景 | 是否可用 | | ------------------ | -------- | | 容器战利品 | ✅ | | 方块掉落 | ✅ | | 钓鱼 | ✅ | | 实体掉落 | ✅ | | 实体装备 | ✅ | | 交易表 | ✅ | `set_banner_details` ::: code-group ```json [旗帜函数] { "function": "set_banner_details" } ``` ::: 仅适用于`banner` type 只能是0或1 0为白色旗帜 1为灾厄旗帜 ### 随机染色 | 使用场景 | 是否可用 | | ------------------ | -------- | | 容器战利品 | ✅ | | 方块掉落 | ✅ | | 钓鱼 | ✅ | | 实体掉落 | ✅ | | 实体装备 | ✅ | | 交易表 | ✅ | `random_dye` ::: code-group ```json [染色函数] { "function": "random_dye" } ``` ::: 随机染色皮革装备或马铠 不适用于羊毛等方块 ### 刷怪蛋 | 使用场景 | 是否可用 | | ------------------ | -------- | | 容器战利品 | ✅ | | 方块掉落 | ✅ | | 钓鱼 | ✅ | | 实体掉落 | ✅ | | 实体装备 | ✅ | | 交易表 | ✅ | `set_actor_id` ::: code-group ```json [刷怪蛋函数] { "function": "set_actor_id" } ``` ::: 适用于刷怪蛋 id 生物标识符 交易表中默认为交易者实体类型 ### 容器内容 | 使用场景 | 是否可用 | | ------------------ | -------- | | 容器战利品 | ✅ | | 方块掉落 | ✅ | | 钓鱼 | ✅ | | 实体掉落 | ✅ | | 实体装备 | ✅ | | 交易表 | ✅ | `fill_container` ::: code-group ```json [容器函数] { "function": "fill_container" } ``` ::: 设置容器方块内容 loot_table 从行为包根目录开始的战利品表路径 必需,否则显示普通物品 不能指向当前战利品表 适用于所有获取方式 ## 附魔功能 | 函数名 | 容器战利品 | 方块掉落 | 钓鱼 | 实体掉落 | 实体装备 | 交易表 | | -------------------------- | ---------- | -------- | ------ | -------- | -------- | -------- | | `enchant_book_for_trading` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | `enchant_with_levels` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | `enchant_randomly` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | `enchant_random_gear` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | `specific_enchants` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ### 交易附魔书 | 使用场景 | 是否可用 | | ------------------ | -------- | | 容器战利品 | ✅ | | 方块掉落 | ✅ | | 钓鱼 | ✅ | | 实体掉落 | ✅ | | 实体装备 | ✅ | | 交易表 | ✅ | `enchant_book_for_trading` ::: code-group ```json [交易附魔函数] { "function": "enchant_book_for_trading" } ``` ::: 详见交易表文档 ### 等级附魔 | 使用场景 | 是否可用 | | ------------------ | -------- | | 容器战利品 | ✅ | | 方块掉落 | ✅ | | 钓鱼 | ✅ | | 实体掉落 | ✅ | | 实体装备 | ✅ | | 交易表 | ✅ | `enchant_with_levels`使用附魔台逻辑附魔物品,可选是否允许宝藏附魔。 ::: code-group ```json [等级附魔函数] { "function": "enchant_with_levels", "levels": { "min": 15, "max": 21 }, "treasure": true } ``` ::: 类似附魔台机制但不限于30级 99999级会产生包含几乎所有附魔的超强书 treasure 布尔值,默认false 开启宝藏附魔和诅咒附魔可能 levels 数字或min/max对象 默认0 负值视为0 ### 随机附魔 | 使用场景 | 是否可用 | | ------------------ | -------- | | 容器战利品 | ✅ | | 方块掉落 | ✅ | | 钓鱼 | ✅ | | 实体掉落 | ✅ | | 实体装备 | ✅ | | 交易表 | ✅ | `enchant_randomly` ::: code-group ```json [随机附魔函数] { "function": "enchant_randomly" } ``` ::: 随机选择附魔类型和等级 treasure 布尔值,默认false 开启宝藏附魔可能 ### 装备附魔 | 使用场景 | 是否可用 | | ------------------ | -------- | | 容器战利品 | ✅ | | 方块掉落 | ✅ | | 钓鱼 | ✅ | | 实体掉落 | ✅ | | 实体装备 | ✅ | | 交易表 | ✅ | `enchant_random_gear` ::: code-group ```json [装备附魔函数] { "function": "enchant_random_gear" } ``` ::: 类似enchant_randomly但不含宝藏附魔 适用于胡萝卜钓竿等非常规装备 chance 0到1的数字 默认0 决定是否附魔的概率 ### 指定附魔 | 使用场景 | 是否可用 | | ------------------ | -------- | | 容器战利品 | ✅ | | 方块掉落 | ✅ | | 钓鱼 | ✅ | | 实体掉落 | ✅ | | 实体装备 | ✅ | | 交易表 | ✅ | `specific_enchants` ::: code-group ```json [指定附魔函数] { "function": "specific_enchants" } ``` ::: 应用特定附魔组合 enchants 字符串数组或对象 字符串为附魔ID 对象格式: id 附魔标识符 level 可选,默认1 可以是数字或[min,max]数组 ## 外部因素 | 函数名 | 容器战利品 | 方块掉落 | 钓鱼 | 实体掉落 | 实体装备 | 交易表 | | --------------------------- | ---------- | -------- | ------ | -------- | -------- | -------- | | `looting_enchant` | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | | `explosion_decay` | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | | `set_data_from_color_index` | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | | `trader_material_type` | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ### 抢夺附魔 | 使用场景 | 是否可用 | | ------------------ | -------- | | 容器战利品 | ❌ | | 方块掉落 | ❌ | | 钓鱼 | ❌ | | 实体掉落 | ✅ | | 实体装备 | ❌ | | 交易表 | ❌ | `looting_enchant` ::: code-group ```json [抢夺函数] { "function": "looting_enchant", "count": { "min": 0, "max": 1 } } ``` ::: count可以是整数或min/max ### 爆炸衰减 | 使用场景 | 是否可用 | | ------------------ | -------- | | 容器战利品 | ❌ | | 方块掉落 | ✅ | | 钓鱼 | ❌ | | 实体掉落 | ❌ | | 实体装备 | ❌ | | 交易表 | ❌ | `explosion_decay` ::: code-group ```json [爆炸函数] { "function": "explosion_decay" } ``` ::: 默认总能存活。在爆炸中时,根据爆炸威力有概率不掉落 ### 实体颜色 | 使用场景 | 是否可用 | | ------------------ | -------- | | 容器战利品 | ❌ | | 方块掉落 | ❌ | | 钓鱼 | ❌ | | 实体掉落 | ❌ | | 实体装备 | ❌ | | 交易表 | ✅ | `set_data_from_color_index` ::: code-group ```json [颜色函数] { "function": "set_data_from_color_index" } ``` ::: 将方块数据值设置为实体`minecraft:color`组件的值 ### 交易者材料类型 | 使用场景 | 是否可用 | | ------------------ | -------- | | 容器战利品 | ❌ | | 方块掉落 | ❌ | | 钓鱼 | ❌ | | 实体掉落 | ❌ | | 实体装备 | ❌ | | 交易表 | ✅ | `trader_material_type` ::: code-group ```json [交易材料函数] { "function": "trader_material_type" } ``` ::: 仅限交易使用?可能也适用于某些战利品