物品组件
格式与最低引擎版本 1.21.70
创建自定义物品时使用最新格式版本可获得最新功能和改进。本wiki旨在分享关于自定义物品的最新信息,当前目标格式版本为1.21.70。
应用组件
物品组件用于改变物品在世界中的外观和功能。它们被应用在minecraft:item的components子项中。
{
"format_version": "1.21.70",
"minecraft:item": {
"description": {
"identifier": "wiki:custom_item",
"menu_category": {
"category": "items"
}
},
"components": {
"minecraft:icon": {
"textures": {
"default": "wiki:custom_item"
}
}
}
}
}组件列表
允许副手
决定物品是否可以放置在物品栏的副手槽位中。
类型:布尔值
"minecraft:allow_off_hand": {
"value": true
}方块放置器
方块放置器物品组件。具有此组件的物品在使用时会放置一个方块。在格式版本1.20.10中从实验性功能中移除。
在生存模式下使用时,物品会被消耗。
类型:对象
block: 字符串/对象- 定义将被放置的方块。
replace_block_item: 布尔值- 了解更多关于替换方块物品的信息请点击这里。
use_on: 数组- 包含此物品可以使用的方块的方块描述符列表。如果留空,则允许所有方块。有关使用行为的更多信息,请参阅自定义物品使用优先级。
- 这也适用于创造模式。
"minecraft:block_placer": {
"block": "wiki:custom_block",
"use_on": [
"minecraft:dirt",
"wiki:custom_dirt"
]
}捆绑包交互
启用物品上的捆绑包界面和功能。 物品必须具有minecraft:storage_item组件才能使此组件生效。
在格式版本1.21.40及更高版本中从实验性功能Bundles中移除。
类型:对象
num_viewable_slots: 整数 (1-64)- 定义从捆绑包顶部可访问的最大物品堆叠数。
- 槽位从工具提示的底部开始,从右到左填充行。
"minecraft:bundle_interaction": {
"num_viewable_slots": 12
}创造模式可破坏
决定物品在挥动时是否会在创造模式下破坏方块。
类型:布尔值
"minecraft:can_destroy_in_creative": {
"value": true
}可堆肥
允许此物品用于堆肥桶中。
类型:对象
composting_chance: 浮点数 (0-100)- 堆肥等级增加的百分比概率。
在格式版本1.21.60及更高版本中从实验性功能Upcoming Creator Features中移除。
"minecraft:compostable": {
"composting_chance": 50 // 50%的概率增加堆肥等级
}冷却时间
组件的冷却时间。使用后,指定“冷却类别”中的所有物品将在组件定义的时间内无法使用。在格式版本1.20.10中从实验性功能中移除。
需要minecraft:use_modifiers。
类型:对象
category: 字符串- 此物品的冷却类型。
duration: 浮点数- 具有匹配类别的物品在冷却后再次可用所需的时间(以秒为单位)。
- 如果此值为负数,则物品将无法使用。
"minecraft:cooldown": {
"category": "attack",
"duration": 0.2
}自定义组件
自定义组件是一种新的方式,将JSON中方块和物品的配置与脚本的强大功能直接且有针对性地连接起来。这一新概念允许在方块和物品之间组合和重用脚本功能,同时确保脚本仅针对特定的方块和物品运行。
在1.21.10.23中添加。需要format_version: "1.21.10"或更高版本。
类型:数组
"minecraft:custom_components": [
"wiki:custom_components"
]伤害
决定物品在攻击时造成的额外伤害。注意,此值必须为正数。
实体实际受到的伤害为value + 1,因为根据文档“额外伤害”是由于手/物品默认有1点伤害。 伤害值为value % 256。 使用有符号16位整数。2的补码创建负范围。 [32768-65536] - 被视为负数。给予物品的值将为(-32768-0)。因此负范围为[256*(256x+128) - 256*(256(x+1))),其中x为任意数字。
https://bugs.mojang.com/browse/MCPE-180073
类型:整数
"minecraft:damage": {
"value": 10
}伤害吸收
使物品能够吸收原本会对其穿戴者造成的伤害。为此,物品需要具有耐久度组件并装备在护甲槽中。
类型:对象
absorbable_causes: 数组- 可以被物品吸收的伤害原因列表(如
entity_attack和magma)。
- 可以被物品吸收的伤害原因列表(如
"minecraft:damage_absorption": {
"absorbable_causes": ["all"]
}挖掘器
决定物品挖掘特定方块的速度。
类型:对象
destroy_speeds: 对象 - 要挖掘的方块列表,以及相应的挖掘速度。block: 字符串/对象 - 物品将破坏的方块。tags: 字符串- Molang查询
speed: 整数- 方块将被破坏的速度。
- 可以为负数。如果为负,物品将无法破坏该方块。
use_efficiency: 布尔值- 决定物品是否应受到
efficiency附魔的影响。 - 似乎不起作用。
- 决定物品是否应受到
"minecraft:digger": {
"use_efficiency": true,
"destroy_speeds": [
{
"block": {
"tags": "q.any_tag('stone', 'metal')" // 注意并非所有方块都有标签;可能需要列出许多方块
},
"speed": 6
}
]
}显示名称
定义显示物品名称时显示的文本,例如悬停文本。在格式版本1.20.0中从实验性功能中移除。
不支持换行转义字符
类型:字符串
示例
"minecraft:display_name": {
"value": "secret_weapon"
}使用本地化键的示例
"minecraft:display_name": {
"value": "item.snowball.name"
}耐久度
决定物品在损坏前可以承受的伤害量,并允许物品在合成中组合。在格式版本1.20.0中从实验性功能中移除。
耐久度在挖掘方块时不会隐式损坏自身。必须通过ScriptAPI处理。然而,在攻击生物时会隐式损坏自身。 每次攻击生物会减少2点耐久度。这与武器的原版属性不匹配,但与工具的原版属性匹配。
当与minercraft:wearable一起使用时,用物品攻击生物不会减少2点耐久度。相反,当装备并受到实体攻击时,它会隐式减少1点耐久度。这与原版属性匹配。
https://bugs.mojang.com/browse/MCPE-180112
类型:对象
damage_chance: 对象 - 伤害几率是此物品失去耐久度的百分比几率。默认设置为100。定义为具有最小和最大值的整数范围。min: 整数- 耐久度受到伤害的最小几率。范围:[0, 100]。
max: 整数- 耐久度受到伤害的最大几率。范围:[0, 100]。
max_durability: 整数- 最大耐久度是此物品在损坏前可以承受的伤害量。这是一个必需参数,最小值为0。
- 使用有符号16位整数。2的补码创建负范围。
[32768-65536]- 被视为负数。给予物品的值将为(-32768-0)。因此负范围为[256*(256x+128) - 256*(256(x+1))),其中x为任意数字。 - https://bugs.mojang.com/browse/MCPE-180112
伤害几率
用于计算耐久度几率。
- 无耐久 - 100%的时间,无论范围如何
- 耐久 I - 范围的50%
- 耐久 II - 范围的33%
- 耐久 III - 范围的25%
最大值不能大于最小值
"minecraft:durability": {
"damage_chance": {
"min": 0,
"max": 100
},
"max_durability": 100
}耐久度传感器
使物品在受到伤害时发出效果。
类型:对象
durability_thresholds: 数组- 物品定义耐久度阈值,以及达到每个阈值时发出的效果。
- 当满足多个阈值时,仅考虑应用伤害后耐久度最低的阈值。
耐久度阈值
类型:对象
durability: 整数- 当物品耐久度值小于或等于此值时,将发出效果。
particle_type: 字符串- 达到阈值时发出的粒子效果。
sound_event: 字符串- 达到阈值时发出的声音效果。
"minecraft:durability_sensor": {
"durability_thresholds": [
{
"durability": 100,
"particle_type": "minecraft:explosion_manual",
"sound_event": "blast"
},
{
"durability": 5,
"sound_event": "raid.horn"
}
]
}可染色
允许物品被炼药锅中的水染色。染色后,物品将显示minecraft:icon组件中定义的dyed纹理,而不是default。
类型:对象
default_color: 字符串- 玩家染色前使用的可选默认颜色。
"minecraft:dyeable": {
"default_color": "#ffffff"
}可附魔
决定可以应用于物品的附魔。并非所有附魔对所有物品组件都有效。
https://bugs.mojang.com/browse/MCPE-180331
类型:对象
slot: 字符串- 可以应用的附魔(例如,使用
bow将允许此物品像弓一样被附魔)。 - 必需字段。
- 可以应用的附魔(例如,使用
value: 整数- 附魔的值(最小为0)。
- 必需字段
- 值为
value % 256
槽位
- armor_feet
- armor_torso
- armor_head
- armor_legs
- axe
- bow
- cosmetic_head
- crossbow
- elytra
- fishing_rod
- flintsteel
- hoe
- pickaxe
- shears
- shield
- shovel
- sword
- all
附魔能力值
决定物品的附魔能力,影响潜在附魔的质量和数量。较高的值会增加获得更强大附魔的几率。下表详细列出了不同材料的附魔能力分数,展示了它们获得附魔的能力。
| 材料 | 护甲附魔能力 | 剑/工具附魔能力 |
|---|---|---|
| 木头 | N/A | 15 |
| 皮革 | 15 | N/A |
| 石头 | N/A | 5 |
| 锁链 | 12 | N/A |
| 铁 | 9 | 14 |
| 金 | 25 | 22 |
| 钻石 | 10 | 10 |
| 海龟壳 | 9 | N/A |
| 下界合金 | 15 | 15 |
| 其他 | 1 | 1 |
有关附魔能力及其对游戏影响的深入探讨,请参阅非官方Minecraft Wiki上的附魔机制。
"minecraft:enchantable": {
"slot": "sword",
"value": 10
}实体放置器
允许物品将指定的实体放置到世界中。在格式版本1.20.0中从实验性功能中移除。
类型:对象
dispense_on: 数组- 包含此物品可以投掷到的方块的方块描述符列表。如果留空,则允许所有方块。
- 发射器的嘴必须指向一个空气方块或此数组中定义的方块。如果是空气方块,游戏会检查下方的方块是否匹配此数组中定义的方块。
entity: 字符串- 要放置在世界中的实体。
use_on: 数组- 包含此物品可以使用的方块的方块描述符列表。如果留空,则允许所有方块。有关使用行为的更多信息,请参阅自定义物品使用优先级。
"minecraft:entity_placer": {
"entity": "minecraft:spider",
"dispense_on": [
"minecraft:dirt"
],
"use_on": [
"minecraft:dirt"
]
}食物
当物品具有食物组件时,玩家可以食用它。必须具有minecraft:use_modifiers组件才能正常工作。
在第三人称中会隐式播放进食动画。第一人称需要minecraft:use_animation。
类型:对象
can_always_eat: 布尔值- 如果为
true,你可以随时食用此物品(即使不饿)。
- 如果为
nutrition: 整数- 使用物品时添加到角色营养的值。
- 可以为负数。
- 最大值为32位整数限制。
saturation_modifier: 浮点数- 饱和度修饰符用于应用饱和度增益时的公式:
(nutrition * saturation_modifier * 2)。 - 值必须大于0。
- 饱和度修饰符用于应用饱和度增益时的公式:
using_converts_to: 字符串- 使用时,转换为由此字段中的字符串指定的物品。
"minecraft:food": {
"can_always_eat": false,
"nutrition": 3,
"saturation_modifier": 0.6,
"using_converts_to": "bowl"
}燃料
允许物品用作熔炉中的燃料来“烹饪”其他物品。在格式版本1.20.0中从实验性功能中移除。
最大值为107374180(含)。这个数字的原因是当转换为刻时,它达到了32位整数限制。
类型:对象
duration: 浮点数- 此燃料烹饪物品的时间(以秒为单位)。最小值:0.05。
"minecraft:fuel": {
"duration": 3.0
}闪光
决定物品是否具有附魔闪光渲染效果。
类型:布尔值
"minecraft:glint": {
"value": false
}手持装备
决定物品在手中时是否像工具一样渲染。
类型:布尔值
"minecraft:hand_equipped": {
"value": true
}悬停文本颜色
决定悬停在物品上时物品名称的颜色。
有效颜色可以在这里找到:https://minecraft.wiki/w/Formatting_codes#Color_codes
类型:字符串
"minecraft:hover_text_color": "minecoin_gold"图标
决定物品在UI和其他地方的代表图标。在格式版本1.20.10中从实验性功能中移除。
类型:对象
textures: 对象 - 此映射包含可用于物品图标的不同纹理。default将包含实际的图标纹理。可以在此指定盔甲修剪纹理和调色板。图标纹理是与纹理文件关联的resource_pack/textures/item_texture.json -> texture_data对象中的键。default: 字符串- 用于物品的实际

