Skip to content

物品组件

本页面镜像自
BedrockWiki

根据原始项目协议授权。本文经过AI翻译处理,如有内容遗漏,可以提交PR进行补充。

格式版本 & 最低引擎版本 1.20.50

创建自定义物品时使用最新格式版本可获得最新功能和改进。本wiki旨在分享自定义物品的最新信息,当前目标格式版本为1.20.50

应用组件

物品组件用于修改物品在游戏中的外观和功能。这些组件应添加在minecraft:itemcomponents子项中。

json
{
    "format_version": "1.20.50",
    "minecraft:item": {
        "description": {
            "identifier": "wiki:custom_item",
            "menu_category": {
                "category": "items"
            }
        },
        "components": {
            "minecraft:icon": {
                "texture": "custom_item"
            }
        }
    }
}

允许副手

决定物品是否可以放入物品栏的副手槽位。

json
"minecraft:allow_off_hand": {
    "value": true
}

方块放置器

将物品设置为可放置方块的种植者组件。具有此组件的物品在使用时会放置指定方块。

json
"minecraft:block_placer":{ 
    "block": "seeds",
    "use_on": [
        "dirt",
        "grass"
    ]
}

创造模式可破坏

决定在创造模式下挥动物品时是否会破坏方块。

json
"minecraft:can_destroy_in_creative": {
    "value": true
}

冷却时间

设置物品的冷却时间。使用物品后,在组件指定的'duration'持续时间内无法再次使用。

json
"minecraft:cooldown":{
    "category" : "attack",
    "duration" : 0.2
}

伤害值

决定物品攻击时造成的额外伤害量。

json
"minecraft:damage": {
    "value": 10
}

挖掘工具

允许创作者设定物品挖掘特定方块的速度。

json
"minecraft:digger": {
	"use_efficiency": true,
	"destroy_speeds": [
		{
			"block": {
				"tags": "q.any_tag('stone', 'metal')" // 注意并非所有方块都有标签,可能需要列举多个方块
			},
			"speed": 6
		}
	]
}

显示名称

设置物品在Minecraft基岩版中的显示名称。此组件也可通过引用本地化文件中的键值来获取名称。

示例

json
"minecraft:display_name":{
    "value": "secret_weapon"
}

使用本地化键示例

json
"minecraft:display_name":{
    "value": "item.snowball.name"
}

耐久度

设置物品在损坏前可承受的伤害量,并允许物品在铁砧、砂轮或工作台进行修复。

json
"minecraft:durability":{
    "damage_chance": {
        "min": 10,
        "max": 50
    },
    "max_durability": 36
}

可附魔

决定可应用于物品的附魔类型。并非所有附魔都会对所有物品组件生效。

json
"minecraft:enchantable": {
	"slot": "bow",
	"value": 10
}

可附魔槽位

注意:"all"槽位允许像附魔书一样应用任何附魔

槽位名称
armor_feet
armor_torso
armor_head
armor_legs
axe
bow
cosmetic_head
crossbow
elytra
fishing_rod
flintsteel
hoe
pickaxe
shears
shield
shovel
sword
all

实体放置器

允许物品在世界中放置实体。在1.19.80及以上版本中,此组件还可设置刷怪笼生成的生物类型。

json
"minecraft:entity_placer":{
    "entity": "minecraft:spider",
    "dispense_on": ["minecraft:web"],
    "use_on": ["minecraft:web"]
}

食物

将物品设置为可食用组件,允许玩家食用。

TIP

minecraft:food必须与minecraft:use_modifiers组件配合使用才能正常工作。

json
"minecraft:food":{
    "can_always_eat": false,
    "nutrition" : 3,
    "effects" : [
        {
            "name": "poison",
            "chance": 1.0,
            "duration": 5,
            "amplifier": 0
        }
    ],
    "saturation_modifier": "normal",
    "using_converts_to": "bowl"
}

燃料

允许此物品作为熔炉燃料用于"烹饪"其他物品。

json
"minecraft:fuel":{
    "duration": 3.0
}

附魔光效

决定物品是否显示附魔光效。

json
"minecraft:glint": false

手持装备

决定物品在手中是否像工具一样渲染。

json
"minecraft:hand_equipped": {
    "value": true
}

悬停文本颜色

决定鼠标悬停时物品名称的显示颜色。

json
"minecraft:hover_text_color": "green"

图标

设置物品图标组件。决定物品在UI和其他位置的显示图标。

json
"minecraft:icon":{
    "texture": "oak_slab"
}

交互按钮

布尔值或字符串,决定是否在触控界面显示交互按钮及按钮文本。设为'true'时将使用默认"使用物品"文本。

json
"minecraft:interact_button": "使用这个自定义物品" // 可以是字符串或布尔值

液体剪切

决定物品使用时是否与液体方块互动。

json
"minecraft:liquid_clipped": {
    "value": true
}

最大堆叠数

决定物品的最大堆叠数量。

json
"minecraft:max_stack_size": {
    "value": 64
}

投射物

使物品可像箭矢一样发射。具有minecraft:projectile的物品可从发射器发射,或作为具有minecraft:shooter组件的物品的弹药。此组件也用于设置带有minecraft:throwable组件的物品生成的实体。

json
"minecraft:projectile":{
    "minimum_critical_power": 1.25,
    "projectile_entity": "arrow"
}

唱片

用于唱片物品播放音乐。

json
"minecraft:record": {
    "comparator_signal": 1,
    "duration": 5,
    "sound_event": "ambient.tame"
}

可用音效

可用的音效列表请参考此处

可修复

定义可用于修复该物品的材料及每次修复恢复的耐久度。每个条目需定义可修复材料列表(items)和可选修复量(repair_amount)。

json
"minecraft:repairable":{
    "on_repaired": "minecraft:celebrate",
    "repair_items": ["anvil"]
}

发射器

使物品可像弓或弩一样发射投射物。必须与minecraft:use_modifiers组件配合使用。

TIP

minecraft:shooter使用的弹药必须具有minecraft:projectile组件才能正常工作。

json
"minecraft:shooter": {
    "ammunition": [
        {
            "item": "custom_projectile",
            "use_offhand": true,
            "search_inventory": true,
            "use_in_creative": true
        }
    ],
    "max_draw_duration": 1.0,
    "scale_power_by_draw_duration": true,
    "charge_on_draw": false
}

应消失

决定漂浮在世界的物品是否会自动消失。

json
"minecraft:should_despawn": {
    "value": true
}

按数据堆叠

决定具有不同辅助值的相同物品是否可以堆叠。此组件也定义漂浮物品是否可以合并。

json
"minecraft:stacked_by_data": {
    "value": true
}

标签

决定物品包含哪些标签。

json
"minecraft:tags": {
    "tags": [
        "custom_tag"
    ]
}

可投掷

设置可投掷物品组件。

json
"minecraft:throwable":{
    "do_swing_animation" : false,
    "launch_power_scale" : 1.0,
    "max_draw_duration" : 0.0,
    "max_launch_power" : 1.0,
    "min_draw_duration" : 0.0,
    "scale_power_by_draw_duration" : false
}

使用动画

决定使用物品时播放的动画类型。

json
"minecraft:use_animation": "eat"

使用修饰符

决定与Shooter、Throwable或Food等组件配合使用时的物品使用时长。

json
"minecraft:use_modifiers": {
    "use_duration": 1.6,
    "movement_modifier": 0.35
}

可穿戴

设置可穿戴物品组件。

json
"minecraft:wearable":{
    "dispensable" : true,
    "slot": "slot.chest"
}

可用槽位

槽位名称
slot.weapon.mainhand
slot.weapon.offhand
slot.armor.head
slot.armor.chest
slot.armor.legs
slot.armor.feet
slot.hotbar
slot.inventory
slot.enderchest
slot.saddle
slot.armor
slot.chest
slot.equippable