我的世界NBT命令标签
此特性为Java版独有。
在13w36a快照之后,NBT标签(亦称数据标签)可以在/give
和/summon
等命令用作设定物品、生物和方块实体的高级数据。同时,它也可以给你的命令系统添加不少乐子!
基本知识
基础
在开始学习NBT命令标签之前,你应当对这些概念有一些基本的了解:
格式
NBT,正如其名,它是通过一个个标签来储存和读取数据的。一个标签由标签名称和数值两部分组成,两者用冒号:
隔开。例如foo:1
就是一个标签。
标签名称应当仅出现字母a-z
,A-Z
、数字0˜9
和下划线_
。标签名称中不允许出现空格[注 1]、中文或是特殊符号,且对大小写敏感。例如,Tag:1
、tag:1
和TAG:1
是三个不同的标签。a_Tag_name
是一个合法的标签名称,而a tag name
或tag&com
则不是。
多个标签需要使用逗号,
隔开。例如foo:1,bar:2
。
请注意:本文中所提到的标点符号均为半角符号,即英文输入法输入的符号。他们要比中文输入法输入的全角符号更窄更小。
一串标签应该被包裹在一对花括号{}
中,才能被称之为NBT。例如{foo:1,bar:2}
就是一串NBT。在命令中所使用的NBT标签都需要被花括号括起来。
数据类型
NBT可以储存多种多样类型的数据,例如整数、实数、字符串、甚至是另一串NBT。不同的数据类型会有不同的表示数据的方法。这个表格列出了所有的数据类型:
类型名称 | 英文名 | 描述和格式 | 示例 |
---|---|---|---|
整型 | Int | 储存一个整数。数值范围为-2147483648~2147483647。无特定格式,可以直接填写数值。 | tag:123 |
短整型 | Short | 储存一个绝对值较小的整数。数值范围为-32768~32767。需要在数值后面加上一个字母s 。 |
smallNum:5s |
字节型 | Byte | 储存一个绝对值极小的整数。数值范围为-128~127。有时也用于储存一个布尔型数据(一种非真即假的数据类型)。需要在数值后面加上一个字母b 。 |
good:1b |
长整型 | Long | 储存一个绝对值极大的整数。数值范围为-2ˆ63~2ˆ63-1。需要在数值后面加上一个字母L 注意:使用 l (字母L的小写,而不是字母i的大写)也是可以的。 |
bigNum:123456789L |
单精度浮点型 | Float | 储存一个小数。使用IEEE754标准中的单精度32位形式。需要在数值后面加上一个字母f 注意:小数点并非必要,但是建议填写此类型的数值时始终带上小数点。 |
scale:1.2f |
双精度浮点型 | Double | 能够储存比单精度浮点型更精确、绝对值更大的小数。使用IEEE754标准中的双精度64位形式。需要在数值后面加上一个字母d 注意:小数点并非必要,但是建议填写此类型的数值时始终带上小数点。 |
foo:123.456789d |
字符串 | String | 储存一段文字,大小上限为32767字节。可以含有中文、空格和特殊字符。以UTF-8编码。文字需要用双引号"" 或单引号'' 括起来。 |
message:”你好!” |
复合标签 | Compound | 包含一段独立的NBT标签。别忘了用花括号{} 括起来。 |
pack:{ver:1,num:2} |
列表 | List | 使同一个标签可以储存多个数据。每个数据的类型都相同。如果数据类型是 复合标签,则每个复合标签中所有子标签的标签名称都要一致。数据需要用方括号[] 括起来,多个数据间用逗号隔开。 对于储存多个 整型、 字节型和 长整型类型数据的标签,请见下方的 整型数组、 字节型数组和 长整型数组。 |
names:[“Mike”,”Jane”,”Bob”] |
整型数组 | Int Array | 类似于 列表,用于储存多个 整型数据。需要用方括号括起来,并以I; 开头,随后即为多个用逗号分隔的 整型数据。 |
number:[I;1,2,3,4,5] |
字节型数组 | Byte Array | 类似于 列表,用于储存多个 字节型数据。需要用方括号括起来,并以B; 开头,随后即为多个用逗号分隔的 字节型数据(不需要带上b )。 |
number:[B;1,2,3,4,5] |
长整型数组 | Long Array | 类似于 列表,用于储存多个 长整型数据。需要用方括号括起来,并以L; 开头,随后即为多个用逗号分隔的 长整型数据(不需要带上l )。 |
number:[L;12345678,87654321,10000000] |
应用示范
下文即将列出一些表格,来说明各个物品、实体和方块实体所含有的标签及其含义。例如:
标签名称 | 描述 | 允许值 |
---|---|---|
SkullOwner | 用来获得指定名称玩家皮肤的头颅。皮肤的来源取决于当前玩家使用的验证服务器和是否联网,这意味着离线登录或未联网游戏将不能加载皮肤。 | 玩家名称(纯文本字符串) |
那么你应当这样使用它:
/give @s minecraft:player_head{SkullOwner:"Steve"}
就可以获得玩家名称为Steve的皮肤的头颅。
这里只是一个示范,你可以自行更改标签的值。
易错点
- 在数值后面乱写或不写数值类型字母可能会导致错误,虽然对于部分 短整型、 字节型和 长整型即使在数值后面不写上表示其数值类型的字母,命令在执行时也会自动补全上数值类型,少数标签比如下面提到的 lvl和 Amplifier甚至能识别任何一种数值类型。任何时候写任何数值时带上正确数值类型总是没错的。
- 单词String除了可以指 字符串型数据标签,有时也是线物品的英文名。
- 如果一段已经使用双引号
""
括起来的 字符串内还需要使用双引号(无论是用来括起另一个 字符串标签还是只是作为文本信息出现),则需要在内层的每一个双引号前加上反斜杠\
转义,反斜杠数为前一层反斜杠数的2倍+1。同样,这也意味着要作为文本信息显示的反斜杠本身也需要用\
去转义。 - 字节型数据并非储存一个字符。
- 整型数组, 字节型数组和 长整型数组的开头是一个大写字母后跟一个分号
;
而不是冒号:
。这一点可能会在Minecraft字体中难以分辨。 - 再次强调:NBT中使用的标点符号均为半角符号,即英文输入法输入的符号,而非中文输入法输入的全角符号!
小提示
掌握这些小技巧,可以让你在学习和使用数据标签中事半功倍:
- 玩家可以通过使用
/data
命令以快速获得实体或方块实体的数据而无需使用外部编辑器。请参阅命令/data以获得更多信息。
- 将准星对准一个实体或者方块后使用F3+I组合键能够将该实体或方块的全部数据复制到剪贴板。
- 对于下文提到的物品的“命名空间ID”,你可以使用F3+H组合键来打开高级物品信息显示框,再在物品栏中将鼠标悬停到任意物品上,你就可以在提示框中查看到对应物品的命名空间ID。其他信息还包括工具的耐久值以及NBT标签的数量。
- 对于方块的“命名空间ID”,你可以按下F3打开调试面板,就可以在右侧看到所指向方块的命名空间ID。其他信息还包括此方块的方块状态和此方块所加入的标签。
- 魔咒、实体和状态效果的命名空间ID可以在wiki上的相应页面查找到。
物品
这些标签能够用在 /give
、/replaceitem
和 /clear
等有关物品操作的命令里。
这些标签只能用在物品上。对于实体形式的掉落物所用的标签,请见下文。
标签名称 | 描述 | 容许有的子标签 | 必须有的子标签 | 格式 |
---|---|---|---|---|
Enchantments | 表示物品所拥有的附魔的一个由 复合标签组成的列表,每一个 复合标签里都分别有字符串标签 id表示相应魔咒的命名空间ID,和 lvl标签表示此魔咒的等级。使用命令施加的魔咒可以忽略魔咒之间的冲突和等级限制。 | id, lvl | 所有 | {Enchantments:[{id:”魔咒ID”,lvl:#魔咒等级},{id:”魔咒ID”,lvl:#魔咒等级}…(以此类推)]} |
display | 控制物品的自定义显示信息(名称、描述、皮革盔甲的颜色等等)。 | Name, color, Lore | 至少一个 | {display:{Name:”物品名称的JSON文本”,color:”颜色代码”,Lore:[“第一行”,”第二行(如此类推)”]}} |
AttributeModifiers | 能够为生物以及物品增加属性修饰符。参见属性页面。 | Operation, Amount, UUID, Slot, AttributeName, Name | 所有 | {AttributeModifiers:[{Operation:#,Amount:#,UUID:[I;#,#,#,#],Slot:#,AttributeName:”#”,Name:”#”}]} |
CanPlaceOn | 用于控制在冒险模式中的玩家能够在哪些方块上使用此物品。列表中的每一项都是表示方块的命名空间ID。或者也可以使用# 开头,后面加上方块标签的名称,用于表示指定标签内的所有方块。生存模式和创造模式的玩家将不受影响。 |
(方块的命名空间ID或是# 开头的标签名称) |
至少有一项 | {CanPlaceOn:[“方块的命名空间ID或是# 开头的标签名称”]} |
CanDestroy | 和CanPlaceOn类似。用于控制在冒险模式中的玩家能够使用此物品破坏哪些方块。列表中的每一项都是表示方块的命名空间ID。或者也可以使用# 开头,后面加上方块标签的名称,用于表示指定标签内的所有方块。生存模式和创造模式的玩家将不受影响。注意:此标签仅提供了类似于在在生存模式中破坏方块的可能性,一些本来在生存模式中就无法被破坏的方块(例如基岩)依然无法被破坏,且不会影响方块被破坏后试图产生掉落物时的工具检查(例如使用可破坏石头的木斧来破坏石头,你将不会获得任何东西)。 |
(方块的命名空间ID或是# 开头的标签名称) |
至少有一项 | {CanDestroy:[“方块的命名空间ID或是# 开头的标签名称”]} |
BlockEntityTag | 用于储存方块实体在方块形式下的数据标签。若物品形式的方块实体被放下,其此标签内的数据就会被复制到方块实体的根标签下。 | 不同的方块实体都有不同的子标签,详见下文。 | BlockEntityTag:{/方块实体数据/} | |
BlockStateTag | 用于储存带方块状态的方块在方块形式下的方块状态。若物品形式的方块被放下,其此标签内的内容就会被复制到方块的方块状态下。 | 大多数不同的方块都有不同的方块状态,详见方块状态。 | BlockStateTag:{/方块状态/} |
标签名称 | 描述 | 允许值 |
---|---|---|
Unbreakable | 其值为1时,令工具的耐久度不会下降。 | 0/1(表示false/true) |
SkullOwner | 用来获得指定名称玩家皮肤的头颅。皮肤的来源取决于当前玩家使用的验证服务器和是否联网,这意味着离线登录或未联网游戏将不能加载皮肤。 | 玩家名称(纯文本字符串) |
HideFlags | 用作隐藏物品的某些资料,比如附魔、能否破坏、能放在的方块等。1=附魔;2=属性修饰符;4=无法破坏;8=能破坏的方块;16=能放在的方块;32=其他,比如药水效果;63=所有资料,除了物品名称和介绍。 如果要隐藏多种信息,你只需要把那些标签的数值加起来。比如你想把附魔和属性修饰符的资料隐藏,你需要写3(即1+2)。 | 1~63的整数 |
generation | 用来分辨成书是“原作”(值为0)、“原作的副本”(值为1)、“副本的副本”(值为2)还是“破烂不堪”(值为3)。值大于1将导致成书无法被复制。 | 0~3的任意整数 |
以下这个表格对之前的子标签提供更多细节。
标签名称 | 描述 | 母标签 | 允许值 |
---|---|---|---|
id | 魔咒的命名空间ID。请查看附魔页面来查询对应魔咒的命名空间ID。 | Enchantments(的一项) | 魔咒类型的命名空间ID(纯文本字符串) |
lvl | 决定魔咒的等级。1至10的等级会正常的显示,但是任何其他的等级会显示“enchantment.level.等级”。其原因为游戏缺少对应的翻译字符串,魔咒仍能正常工作。 | Enchantments(的一项) | 数据类型所允许的任何整数 |
Name | 物品的显示名称,必须是原始JSON文本。如果是容器的方块(比如箱子和发射器),它们视窗里的名字并不会因而改变。默认的不带效果的文本将会显示为斜体。如果是用在命令方块上,它执行命令时的名字会改变(能够以/say 看见)。 |
display | 原始JSON文本 |
Lore | 在物品名称底下的文字,必须是原始JSON文本。默认的不带效果的文本将会显示为紫色斜体。 | display | 每一项为原始JSON文本字符串 |
color | 转化为十进制的RGB颜色码,控制皮革盔甲所染的颜色。可用红色RGB数值(0~255)乘65536,加上绿色RGB数值乘256,再加上蓝色RGB数值,得到此标签的数值。你也可以使用网上的转换器,这里提供了一些:
RGB 换为十六进制: http://www.yellowpipe.com/yis/tools/hex-to-rgb/color-converter.php 十六进制转为十进制: http://www.statman.info/conversions/hexadecimal.html |
display | 数据类型所允许的任意数值 |
Operation | 决定属性修饰符的运算模式。0为增加(X+Amount),1为按基加倍(X*(1+Amount)),2为加倍(X*(1+Amount))。1和2的区别是,当存在多个Amount时,1会按照X*(1+Amount1+Amount2)的形式运算,而2会按照X*(1+Amount1)*(1+Amount2)的形式运算。 | AttributeModifiers(的一项) | 0˜2的任意整数 |
Amount | 决定属性修饰符的数值。 | AttributeModifiers(的一项) | 数据类型所允许的任意数值 |
AttributeName | 决定属性修饰符所应用的属性。注:请不要和 Name混淆。 | AttributeModifiers(的一项) | 属性的命名空间ID(纯文本字符串) |
Name | 属性修饰符的名称,用于内部的区分和识别。注:请不要和 AttributeName混淆。 | AttributeModifiers(的一项) | 任意文本 |
Slot | 决定物品处在什么栏位时,属性修饰符才会生效。如果没有定义此项,属性修饰符将对所有栏位生效。 | AttributeModifiers(的一项) | “mainhand”(主手)、”offhand”(副手)、”head”(头上)、”chest”(身上)、”legs”(腿上)、”feet”(脚上)的任意一项 |
UUID | 属性修饰符的UUID,用于区分不同的属性修饰符。注:请不要和实体的UUID混淆,它不会修改实体的UUID。 | AttributeModifiers(的一项) | 数组,包含四个数值,每一项都是UUID相应部分的32位数值。 |
例子
获取一个名称为“极好的剑”、拥有附魔锋利6和耐久2,且无法破坏的金剑。
/give @s minecraft:golden_sword{display:{Name:'["极好的剑"]'},Enchantments:[{id:"minecraft:sharpness",lvl:6s},{id:"minecraft:unbreaking",lvl:2s}],Unbreakable:1b}
获得的金剑的效果
点拨
- 注意对应类型标签中表达数据的方式。例如,使用引号来包裹字符串;在短整型(short)数据后加上s、在字节型(byte)数据后加上b等等。
- 所有在命令中使用的标点符号都是半角符号,即英文输入法下输入的符号。
- 对于原始JSON文本字符串,使用单引号(
''
)而不是一般的双引号(""
)包裹它们会更加省事,因为这可以减少一层转义。
- NBT标签所带来的魔咒可以突破一般附魔等级的上限。
- 在输入任何命名空间ID时,带上命名空间
minecraft:
永远是个好习惯(除了属性)。虽然这看起来会让命令变得冗长且没必要,但是可以避免极少情况下的意外错误。
获取一个穿在身上时提供20( × 10)点盔甲值的鞘翅。
/give @s minecraft:elytra{AttributeModifiers:[{AttributeName:"generic.armor",Operation:0b,Amount:20f,Slot:"chest",Name:"Armor",UUID:[I;1,2,3,4]}]}
获得的鞘翅的效果
鞘翅穿在身上时的效果
两者的作用完全一样。
点拨
- 习惯上,属性的命名空间ID省略命名空间
minecraft:
。
- Name可以是任何不受限制的字符串。
- UUID可以是任何值,但请避免在多个属性修饰符中使用相同的UUID。
物品共通标签
数据标签中经常有地方需要表达一个物品。例如生物手持的物品、村民买入的项目、容器中的一个物品等等。它们都使用同一种表达方式,你只需要将此表中的标签都塞进一个 复合标签里。
标签名称 | 描述 | 允许值 |
---|---|---|
id | 物品的命名空间ID。 | 纯文本字符串 |
Count | 一组物品的数量。最大值取决于物品的种类,例如工具最高只能为1;末影珍珠、鸡蛋、雪球最高只能为16;其他的物品和方块一般都可以为64。 | 正整数,上限取决于物品种类 |
Slot | 物品所在的栏位编号。可能不存在。在大多数容器(除了熔炉、高炉、烟熏炉和酿造台)中,容器的每一个格子都从左至右、从上到下依次编号(从0开始数);玩家的物品栏有特定的编号方式;熔炉、高炉和烟熏炉中,0代表原料,1代表燃料,2代表成品;酿造台中,0~2分别为三个药水槽、3为材料槽、4为燃料槽。 | 数据类型所允许的任意整数 |
tag | 物品本身所带的NBT标签。详见上文。大多数物品中可以省略。 | 物品所拥有的NBT标签 |
生成缩略图出错:无法将缩略图保存到目标地点
玩家物品栏各个栏位的编号
自定义状态效果
这些标签用于自定义药水(包括喷溅药水和滞留药水)和药箭(包括它们以弹射物形式发射出去的实体)的状态效果。它同样适用于定义实体拥有的状态效果和区域效果云生效时的状态效果。
标签名称 | 描述 | 母标签 | 允许值或子标签 |
---|---|---|---|
CustomPotionEffects | 决定自定义状态效果的一个由 复合标签组成的列表,每一个 复合标签里都有定义该状态效果的标签,见下。 | 无(处于根标签) | Id, Duration, Amplifier, Ambient, ShowParticles和 ShowIcon |
Id | 决定状态效果的ID。详见状态效果#数据值。 | CustomPotionEffects(的一项) | 0˜32的整数 |
Duration | 状态效果所持续的时长,单位为刻。 | CustomPotionEffects(的一项) | 数据类型所允许的任意数值 |
Amplifier | 状态效果的增倍。它会比实际的效果等级小1。设为0或更小的值时效果和设为0一样。 | CustomPotionEffects(的一项) | 数据类型所允许的任意数值 |
Ambient | 决定状态效果是否由信标施加。若为1,状态效果的粒子将会显示为半透明,且图标会加上青色的边框。 | CustomPotionEffects(的一项) | 1/0(是/否) |
ShowParticles | 状态效果是否会显示粒子效果。 | CustomPotionEffects(的一项) | 1/0(是/否) |
ShowIcon | 状态效果是否会显示图标。 | CustomPotionEffects(的一项) | 1/0(是/否) |
CustomPotionColor | 决定该药水显示的颜色和药水作用时的粒子效果的颜色。为一个转化为十进制的RGB颜色码。可用红色RGB数值(0~255)乘65536,加上绿色RGB数值乘256,再加上蓝色RGB数值,得到此标签的数值。注意:负数会被显示为白色。 | 无(处于根标签) | 数据类型所允许的任意数值 |
Potion | 该药水的状态效果,默认为空。会影响得到的药水的名称。 | 无(处于根标签) | 默认药水效果的名称,纯文本字符串。 |
实体
这些标签是用在/summon
命令生成实体或是/data
命令来更改实体的数据标签。
标签名称 | 描述 | 容许有的子标签 | 必须有的子标签 | 格式 |
---|---|---|---|---|
TileEntityData | 供下落的方块使用。如果下落的方块是一个方块实体,则用此标签储存其方块实体的数据。当下落的方块转化为方块实体后,其此标签内的数据就会被复制到方块实体的根标签中。 | 不同的方块实体有不同的子标签,详见下文。 | TileEntityData:{/方块实体数据/} | |
BlockState | 供下落的方块使用。 Name子标签用于指定方块的类型, Properties用于设置方块状态。后者为方块状态的键与值的配对(用”:”分割键和值而不是”=”,多个配对间用”,”隔开)。 | Name, Properties | Name | BlockState:{Name:”方块命名空间ID”,Properties:{<键>:<值>,<键>:<值>…}} |
ActiveEffects | 设定生物所拥有的药水效果。其为一个列表,每一项都表示一种状态效果,子标签格式与 CustomPotionEffects完全相同。注意:如果那个效果和属性有关,比如速度,就需要同时更改实体的属性修饰符,否则状态效果将无效。 | Id, Duration, Amplifier, Ambient, ShowParticles, ShowIcon | 所有 | ActiveEffects:[{Id:#,Duration:#,Amplifier:#,Ambient:#,ShowParticles:#,ShowIcon:#}…] |
Passengers | 设定正在骑乘本实体的实体。若列表中有多项,则会按照顺序、一个骑在另一个上。注意:这个标签不能被/data 更改,通常只会在使用/summon 中。若要修改骑乘者的数据,请直接在命令中指向该实体。 |
不同的实体有不同的数据标签,但 id是必须的,用于决定实体的类型。 | id | Passengers:[{/实体信息/},{/实体信息/}…(以此类推)] |
Attributes | 设置实体的属性基值和修饰符,详情请见属性 。 | AttributeName, Base, Modifiers | AttributeName, Base | {Attributes:[{AttributeName:”属性名”,Base:#基值,Modifiers:[{/一个修饰符/},{/一个修饰符/}…] |
标签名称 | 描述 | 允许值 |
---|---|---|
SaddleItem | 以物品共通标签设置马背上所装备的鞍物品。一般情况下 id只能为”minecraft:saddle”, Count只能为1。 | 物品共通标签 |
Saddle | 控制猪或炽足兽的背上是否装备了鞍。 | 1/0(是/否) |
HandItems | 由两项物品共通标签组成的列表,应用于实体手上所拿的物品。第一项表示主手,第二项表示副手。可以填写留空项表示该手未拿任何物品。注意:此标签不适用于部分实体,例如牛。 | 物品共通标签(每一项,不带 Slot) |
ArmorItems | 由四项物品共通标签组成的列表,应用于实体所穿戴的盔甲/物品。四项依次表示脚部、腿部、胸部和头部的物品。可以填写留空项表示该栏位未装备任何物品。注意:此标签不适用于部分实体,且各个栏位(除头部)会限制可穿戴的物品。 | 物品共通标签(每一项,不带 Slot) |
Motion | 定义实体的速度[注 2]。其为一个由三个 双精度浮点型数据组成的列表,分别表示向东面(X轴正方向)、上面(Y轴正方向)和南面(Z轴正方向)的运动速度。 | 三个 双精度浮点型数据组成的列表,可以是任意数值。注意:填写的大于10.0d 或小于-10.0d 的值会被视为0.0d 。[需要更多信息] |
power | 定义投掷物实体(火球、小火球和凋灵之首)的加速度。其为一个由三个 双精度浮点型数据组成的列表,分别表示向东面(X轴正方向)、上面(Y轴正方向)和南面(Z轴正方向)的加速度。其值会每刻增加进Motion 。 |
三个 双精度浮点型数据组成的列表,可以是任意数值。 |
NoAI | 使生物失去AI。这将导致他们不会自主运动或做出特殊行为,但仍然会受到伤害并死亡。 | 1/0(是/否) |
NoGravity | 控制实体是否受重力影响。 | 1/0(是/否) |
Invulnerable | 设定该实体是否无敌。注意:这里的“无敌”并非绝对意义上的保证该实体永不受任何伤害,由创造模式玩家发起的攻击(近战、发射出的弹射物如箭或三叉戟、直接或经其射出的着火的箭点燃的TNT等)、虚空和/kill 仍然能对该实体造成伤害。此外,虽然除此之外的所有攻击行为都会对此标签值被设定为1 的实体无效(弹射物则会被直接弹开),该实体依然能被爆炸推动。注意:对于存在需要使用攻击键进行交互的实体(如从物品展示框上取下物品),将此标签值设定为 1 会导致不为创造模式的玩家无法与其进行该交互行为。 |
1/0(是/否) |
PersistenceRequired | 设定生物是否不会被清除。有关清除的信息详见清除。注意:一些原本不会被清除的生物在此标签值被设置成0 之后将可以被自然清除,比如被命名牌命名后的敌对生物。但是如果一个生物其所属的类别原本就不会被清除(比如Boss生物),那么即使此标签值设置为0 也不会导致其被自然清除。 |
1/0(是/否) |
Silent | 设定实体是否始终保持安静。设置为1 会让该实体不发出任何声音。 |
1/0(是/否) |
Fire | 实体被火所灼烧的剩余时间。负数表示实体能在火中不被伤害的时间。设定成-32767可让实体免疫火;设定成32767可让实体永远燃烧。 | 数据类型所允许的任意数值 |
Health | 实体的生命值。超过上限的生命值依然会保留,但如果生命值超过了上限,任何治疗都将不会起作用。 | 数据类型所允许的任意数值 |
Variant | 改变马的变异种类。不设置或设置不正确的变异会生成普通的白色马。关于马的变种列表,详见马的变种。 | 数据类型所允许的任意数值 |
Size | 改变一个史莱姆、岩浆怪或幻翼的大小。比0小则生成0大小。性能警告:越大的实体会造成越严重的游戏卡顿问题,尤其是Size大于32的实体。 | 数据类型所允许的任意数值 |
Time | 应用于下落的方块。表示实体已存在的刻数,大于600(即正常情况下的30秒后)时实体将会被删除。设为负数会使实体永不删除。用于/summon 时推荐设为1。 |
数据类型所允许的任意数值 |
DropItem | 用于下落的方块。当下落的方块落在一个除空气和楼梯外的非实体方块上时,是否会掉落为物品形式。 | 1/0(是/否) |
Fuse | 设定点燃的TNT距离爆炸还剩多长时间,单位为刻。也可用于设定苦力怕在点燃时的爆炸引信时长。设为0或更小的值会导致它们立即爆炸。 | 数据类型所允许的任意数值 |
ExplosionPower | 设置火球的爆炸威力。默认情况按1计算。性能警告:过大威力的火球在爆炸时会产生大量的运算和掉落物,导致游戏卡顿、卡死或崩溃。 | 数据类型所允许的任意数值 |
ExplosionRadius | 确定一个苦力怕的爆炸半径。默认情况为3。性能警告:过大威力的苦力怕在爆炸时会产生大量的运算和掉落物,导致游戏卡顿、卡死或崩溃。 | 数据类型所允许的任意数值 |
powered | 决定苦力怕是否为闪电苦力怕。 | 1/0(是/否) |
HandDropChances | 决定实体手上的物品在其死亡时的掉落概率。由两项 float组成,第一项应用于主手,第二项应用于副手。0为不可能掉落,1为一定掉落。 | 0˜1的浮点数(两项组成的列表) |
ArmorDropChances | 决定实体身上穿戴的物品在其死亡时的掉落概率。由四项 float组成,依次应用于脚部、腿部、胸部和头部。0为不可能掉落,1为一定掉落。 | 0˜1的浮点数(四项组成的列表) |
下表为上面所提到的子标签提供更多细节:
标签名称 | 描述 | 母标签 | 允许值 |
---|---|---|---|
Modifiers | 为实体添加一个属性修饰符。 | Attributes(的一项) | 格式参见上文。 |
例子
召唤一个下落中的草方块。
下落的草方块
/summon minecraft:falling_block ~ ~ ~ {BlockState:{Name:"minecraft:grass_block"},Time:1}
点拨
- 下落的方块可以是任意方块,包括那些游戏机制中不受重力影响的方块,但是技术性方块会在下落过程中迅速消失。
- 将 Time设为1永远是最推荐的。
召唤一只蝙蝠,上面骑着一只手持木棍、头戴皮革帽子的骷髅。
一只手持木棍、头戴皮革帽子,骑着蝙蝠的骷髅
/summon minecraft:bat ~ ~ ~ {Passengers:[{id:"minecraft:skeleton",ArmorItems:[{},{},{},{id:"minecraft:leather_helmet",Count:1b}],HandItems:[{id:"minecraft:stick",Count:1b}]}]}
点拨
- 不要惧怕长的NBT标签!看起来它们很复杂,其实只要细心分辨,每一个标签都是你所熟悉的(如果你有认真学习本页面)。
- 在物品通用标签中,不要省略 Count标签,即使是数量为1的物品。
生成一只生命上限为100( × 50)的僵尸。
/summon minecraft:zombie ~ ~ ~ {Attributes:[{Name:"generic.max_health",Base:100f}],Health:100f}
点拨
- 你也可以使用属性修饰符,但是那样会更加繁琐。
- 生命上限和生命值没有直接联系,修改了生命上限的实体在生成时的生命值仍然是默认值。你可以一同使用 Health标签来修改实体的生命值。
掉落物品
这些标签用于掉落物形式(即实体)的物品。对于在物品中使用的NBT标签,请参见上文。
标签名称 | 描述 | 允许值 |
---|---|---|
Item | 一个物品共通标签(不带 Slot),以指定掉落的物品。 | 物品共通标签 |
PickupDelay | 用于设置捡起物品延迟的刻。设置成32767将使物品无法捡起。玩家丢出的物品将默认带有60刻的延迟。 | 数据类型所允许的任意数值 |
Age | 记录物品存在的时间,同时控制物品的消失。每一个游戏刻此标签的值都会加1,当达到6000后(即正常情况下的5分钟)物品将会消失。设置成-32768将会使物品永不消失。 | 数据类型所允许的任意数值 |
例子
生成一个无法被捡起的钻石剑掉落物。
/summon minecraft:item ~ ~ ~ {Item:{id:"minecraft:diamond_sword",Count:1b},PickupDelay:32767s}
村民和流浪商人
这些标签用于生成村民和流浪商人。
标签名称 | 描述 | 母标签 | 允许值或子标签 |
---|---|---|---|
Offers | 用于自定义村民或流浪商人的交易功能。目前其子标签只有 Recipes用以指定交易项目。 | 无(处于根标签) | Recipes |
VillagerData | 用于自定义村民的职业功能。(在流浪商人身上是不必要的) | 无(处于根标签) | profession, level和 type |
Gossips | 用于自定义村民交流的言论。其为一个列表,每一项都表示一条言论。(在流浪商人身上是不必要的) | 无(处于根标签) | Type, Value, Target |
Xp | 村民当前的经验值总和,当经验大于升级所需经验时,村民将在下一次交易后升级,解锁新交易并更换徽章。(在流浪商人身上是不必要的) | 无(处于根标签) | 数据类型所允许的任意数值 |
LastRestock | 村民最后一次补货之后的时间。(在流浪商人身上是不必要的) | 无(处于根标签) | 数据类型所允许的任意数值 |
Recipes | 用于指定村民或流浪商人的交易项目。 | Offers | 此标签的子标签过多,详细格式请见下方。 |
buy | 村民买入的物品,使用物品共通标签表达。 | Recipes(的一项) | 物品共通标签 |
buyB | 可能不存在。村民或流浪商人买入的第二种物品,使用物品共通标签表达。注意:此标签可以独自存在,并非必须搭配 buy标签。由于所有影响价格的标签都不会对此标签生效,这可以用来制造一个无论发生什么情况价格都不会有任何变动的交易。 | Recipes(的一项) | 物品共通标签 |
sell | 村民或流浪商人出售的物品,使用物品共通标签表达。 | Recipes(的一项) | 物品共通标签 |
rewardExp | 此交易是否会给予玩家经验。 | Recipes(的一项) | 1/0(是/否) |
uses | 此交易已进行的次数。如果达到 maxUses,则此交易将不可用。村民可以通过补货来将此值清零。 | Recipes(的一项) | 正整数 |
maxUses | 此交易单次补货的最大的可用次数。 | Recipes(的一项) | 正整数 |
xp | 此交易可以提供的经验。需要在 rewardExp启用时才可激活。 | Recipes(的一项) | 数据类型所允许的任意数值 |
priceMultiplier | 此交易的调节价格倍数(仅应用于第一项买入物品,即 buy),会影响因言论强度(见 Value)或价格调节(见 demand)导致的价格变化。 | Recipes(的一项) | 数据类型所允许的任意数值 |
demand | 此交易的调节价格(仅应用于第一项买入物品,即 buy),价格会加上此值与 priceMultiplier与原价的乘积(向下取整)。当村民重新补货后此值会刷新。注意:虽然允许填入任意数值,但是如果此值与 priceMultiplier最终的乘积是负数,价格并不会受到影响。 | Recipes(的一项) | 数据类型所允许的任意数值 |
specialPrice | 此交易的优惠价格(仅应用于第一项买入物品,即 buy),价格会加上此值。与 demand不同的是,村民补货不会影响此值。(在流浪商人身上是不必要的)注意:所以想降价的话,请把这个值设置为负数。 | Recipes(的一项) | 数据类型所允许的任意数值 |
level | 村民当前的等级,默认为1。1~5分别对应新手、学徒、老手、专家、大师。小于1会生成为1级,大于5时村民会佩戴大师的徽章,但是交易界面没有“大师”字样。等级提升时会自然解锁新等级对应的交易,即使已经用 Offers自定义了交易。(在流浪商人身上是不必要的) | VillagerData | 数据类型所允许的任意数值 |
profession | 村民的职业,未定义时默认生成为minecraft:none (失业)。注意:如果此标签为none ,交易页面将无法正常打开。
(在流浪商人身上是不必要的) |
VillagerData | 村民职业的命名空间ID(纯文本字符串) |
type | 村民的种类,未定义时默认生成为minecraft:plains (平原)。(在流浪商人身上是不必要的) |
VillagerData | 村民种类的命名空间ID(纯文本字符串) |
Type | 村民的言论类型。不同的言论类型会影响玩家交易的最终价格,或者村民生成铁傀儡的行为。注意:major_negative 会导致铁傀儡对引发该言论的玩家敌对,具体取决于 Value(不小于20)。
(在流浪商人身上是不必要的) |
Gossips(的一项) | major_negative ,minor_negative ,minor_positive ,major_positive ,trading 或golem 中的一项 |
Value | 言论的强度,数值越高表示强度越大。会在村民交谈时传播。影响言论产生的价格变化和铁傀儡对玩家的敌意。注意:对每一个玩家,其言论导致的价格变化按如下规则计算:最终价格 = 原价 – ( Type为major_positive 时的 Value值的5倍 + Type为minor_positive 时的 Value值的1倍 + Type为trading 时的 Value值的1倍 – Type为minor_negative 时的 Value值的1倍 – Type为major_negative 时的 Value值的5倍)与 priceMultiplier的值的乘积(向下取整)。
(在流浪商人身上是不必要的) |
Gossips(的一项) | 数据类型所允许的任意数值 |
Target | 引发此言论的对象的UUID,用于区分言论的引发者。(在流浪商人身上是不必要的) | Gossips(的一项) | 数组,包含四个数值,每一项都是UUID相应部分的32位数值 |
盔甲架
这些标签被使用于召唤盔甲架时。
标签名称 | 描述 | 允许值或子标签 |
---|---|---|
ShowArms | 控制盔甲架是否显示手臂。 | 1/0(是/否) |
NoBasePlate | 控制盔甲架是否隐藏底盘。 | 1/0(是/否) |
Small | 控制盔甲架是否为小型。 | 1/0(是/否) |
Marker | 决定盔甲架是否会隐藏其碰撞箱。这意味着除非使用命令,否则将无法与其互动。注意:这同时也会导致该盔甲架无视重力,且不会受到伤害,类似{Invulnerable:1b,NoGravity:1b} )。 |
1/0(是/否) |
Pose | 改变盔甲架各个身体部分的姿势和旋转角度。子标签有 Head, Body, LeftArm, RightArm, LeftLeg, RightLeg,每一个都是由三个 浮点数组成的列表。三个数值分别表示前后旋转、左右旋转和自身扭转的角度。注意: LeftArm和 RightArm只有在 ShowArms启用时才会显示。 | Head, Body, LeftArm, RightArm, LeftLeg, RightLeg |
Invisible | 决定盔甲架是否可见。注意:通过这种方式变得不可见的盔甲架的碰撞箱不会显示,也不会受到伤害(类似{Invulnerable:1b} )。但是其他行为与普通盔甲架相同。 |
1/0(是/否) |
DisabledSlots | 用于禁用盔甲架某个部位的某个交互行为。1、2、4、8、16分别代表手部、脚部、腿部、身体和头部,将数值*1会禁用从此部位放置或替换物品,*256会禁用从此部位移除或替换物品,*65536会禁用在此部位放置物品。如果需要同时禁用多个部位的多种交互行为,则输入这些数值的和。比如,输入7967 或2039583 会导致盔甲架所有部位的所有交互行为均被禁用,类似{Marker:1b} 。注意:输入无法通过上述过程计算出来的正数值(比如32 )是允许的,但是不产生任何影响。输入负数值也会禁用某个或某些部位的交互行为,比如-1 就会直接禁用所有的交互行为[需要测试]。 |
数据类型所允许的任意数值 |
例子
生成一只跳舞的盔甲架,同时带着一个苦力怕的头和一套皮革盔甲。
跳舞的苦力怕盔甲架
/summon minecraft:armor_stand ~ ~1 ~ {ShowArms:1b,Pose:{RightArm:[-135.0f,0.0f,0.0f],Head:[-15.0f,20.0f,0.0f],LeftArm:[-130.0f,0.0f,0.0f],RightLeg:[-115.0f,30.0f,0.0f],Body:[0.0f,20.0f,0.0f]},ArmorItems:[{id:"minecraft:leather_boots",Count:1b},{id:"minecraft:leather_leggings",Count:1b},{id:"minecraft:leather_chestplate",Count:1b},{id:"minecraft:creeper_head",Count:1b}]}
注意:由于聊天栏的长度限制,过长的命令可能无法在聊天栏中输入。你可以使用命令方块来突破此限制。
点拨
- HandItems和 ArmorItems标签在盔甲架上同样可用。
- 使用 Pose时,如果要使用手臂的样式,别忘了将 ShowArms设为1。
猪灵和疣猪兽
这些标签用于生成猪灵或疣猪兽。
标签名称 | 描述 | 允许值 |
---|---|---|
TimeInOverworld | 猪灵或疣猪兽在主世界或末路之地的停留时间,如果该值大于300 ,它们将分别转变为僵尸猪灵或僵尸疣猪兽。注意:这个标签在下界无效。 |
数据类型所允许的任意数值 |
IsImmuneToZombification | 是否阻止猪灵或疣猪兽僵尸化。如果设置为1 ,猪灵或疣猪兽将不会转变为僵尸猪灵或僵尸疣猪兽,且它们的TimeInOverworld 将始终是0。注意:这也会使得它们不再有类似治愈中的僵尸村民那样的“抖动”的动作。 |
1/0(是/否) |
CannotHunt | 猪灵是否会攻击疣猪兽。如果设置为1 ,这只猪灵将不会攻击疣猪兽。 |
1/0(是/否) |
CannotBeHunted | 疣猪兽是否会被猪灵攻击。如果设置为1 ,猪灵将不会攻击这只疣猪兽。 |
1/0(是/否) |
海龟
这些标签被用于生成海龟。
标签名称 | 描述 | 允许值 |
---|---|---|
HomePosX | 海龟“出生地”的X坐标。这个值也是海龟将要产卵时将会回到的地方。 | 数据类型所允许的任意数值 |
HomePosY | 海龟“出生地”的Y坐标。这个值也是海龟将要产卵时将会回到的地方。 | 数据类型所允许的任意数值 |
HomePosZ | 海龟“出生地”的Z坐标。这个值也是海龟将要产卵时将会回到的地方。 | 数据类型所允许的任意数值 |
HasEgg | 确定海龟是否要产卵。这也将决定海龟是否尝试返回到出生地。 | 1/0(是/否) |
区域效果云
这些标签被用于生成区域效果云。
标签名称 | 描述 | 允许值 |
---|---|---|
Age | 区域效果云已经存在的时间,单位为刻,默认为0 。当此值大于Duration 和WaitTime 之和时,区域效果云消散。注意:这里的“存在时间”是从区域效果云这个实体生成出来的那一刻开始计算的,即使此时这个区域效果云还处在“等待”状态。 |
数据类型所允许的任意数值 |
Color | 区域效果云的粒子效果的颜色。十进制的RGB颜色码,与显示属性使用了相同的颜色格式,可用红色RGB数值乘65536,加上绿色RGB数值乘256,再加上蓝色RGB数值计算得出。默认为0 。 |
数据类型所允许的任意数值 |
Duration | 区域效果云允许的最大存在时间,单位为刻,默认为0 。注意:这里的“最大存在时间”是区域云“有效”(即具有为其范围内的生物施加状态效果的能力)的时间。 |
数据类型所允许的任意数值 |
ReapplicationDelay | 区域效果云每次“生效”(即对处于其范围内的生物施加状态效果)的时间间隔,单位为刻,默认为0 。 |
数据类型所允许的任意数值 |
WaitTime | 区域效果云在“有效”前的“等待”时间,单位为刻,默认为0 。处于“等待”状态的区域效果云不会对其范围内的生物施加任何状态效果,并且只在中心处显示粒子效果。 |
数据类型所允许的任意数值 |
DurationOnUse | 区域效果云每次“生效”后Duration 的增加量,单位为刻每生物每次,默认为0 。性能警告:设置成正数有可能导致此区域效果云消散所需时间大幅延长。 |
数据类型所允许的任意数值 |
Owner | 区域效果云创造者的UUID,用于组成UUID以区分不同的创造者。这主要影响被药水云伤害到的生物对此伤害的来源的检测。可以不存在。 | 数组,包含四个数值,每一项都是UUID相应部分的32位数值 |
Radius | 区域效果云的半径,默认为0.0f 。决定区域效果云处于“有效”状态时的有效半径,只有在这个值的范围内的实体才会被施加状态效果。注意:区域效果云的碰撞箱会受到这个标签的影响,其边长始终是这个标签的值,即使区域效果云此时仍处在“等待”状态,视觉上甚至看不到区域效果云的存在。性能警告:过大的半径可能产生严重的卡顿。 |
数据类型所允许的任意数值 |
RadiusOnUse | 区域效果云每次“生效”后Radius 的增加量,单位为米每生物每次,默认为0.0f 。性能警告:设置成正数有可能导致此区域效果云在极短的时间内以极高的速度膨胀并带来大量运算量,从而产生严重的卡顿。 |
数据类型所允许的任意数值 |
RadiusPerTick | 区域效果云处于“有效”状态时Radius 的自然增加量,单位为米/刻。设置为负数则药水云会自然收缩,就像滞留药水创造出来的那样。性能警告:设置成正数有可能导致此区域效果云在消散前膨胀至一个较大范围,从而产生严重的卡顿。 |
数据类型所允许的任意数值 |
Particle | 区域效果云的粒子效果,默认为minecraft:entity_effect 。 |
Particle:”<粒子名称> <粒子参数(若需要)>”,格式与/particle 完全相同。 |
Potion | 区域效果云在“生效”时施加的状态效果。默认为空。注意:如果此标签和 Effects均为空,那么此区域效果云将始终不会对生物“生效”,这意味着所有需要区域效果云“生效”才会发挥作用的标签如 DurationOnUse和 RadiusOnUse将无法发挥作用。 | 默认药水效果的名称,纯文本字符串。 |
Effects | 用于自定义区域效果云“生效”时施加的状态效果的一个由 复合标签组成的列表,每一个 复合标签里都有定义该状态效果的标签。默认为空。 | 子标签格式与 CustomPotionEffects相同。见教程/NBT命令标签#自定义状态效果 |
例子
生成一个满足以下条件的区域效果云:
- 最大存在时间1分钟,但生成后需等待3秒后才开始有效;
- 初始半径20米,每刻自然缩减0.05米;
- 每隔4秒为范围内的所有生物施加类似信标提供的力量II效果,时长16秒,且每对一个生物生效一次,自身半径增加4.9米,最大存在时间减少1秒;
- 粒子效果显示为破坏金块时的粒子效果。
生成的区域效果云和其生效时施加的状态效果,为便于观察区域效果云的形状已显示碰撞箱
/summon minecraft:area_effect_cloud ~ ~ ~ {Duration:1200,WaitTime:60,Age:0,DurationOnUse:-20,Radius:20.0f,RadiusOnUse:4.9f,RadiusPerTick:-0.05f,ReapplicationDelay:80,Effects:[{Id:5b,Amplifier:1b,Duration:320,Ambient:1b}],Particle:"minecraft:block minecraft:gold_block"}
再次警告:不要轻易将 DurationOnUse、 RadiusOnUse和 RadiusPerTick均设置为正数,特别是数值较大的正数,除非你有把握在区域效果云失控前清除它。如果确有需求,在一个新存档里进行测试并在旁边准备一个写有/kill @e[type=area_effect_cloud]
的命令方块是推荐的。
烟花火箭
这些标签用于生成烟花火箭。但是其中的一些标签也用于定义物品形式的烟花火箭或者烟火之星。
标签名称 | 描述 | 母标签 | 允许值或子标签 |
---|---|---|---|
Life | 烟花火箭已经飞行的时间,单位为刻,默认为0 。当这个值不小于LifeTime 时,烟花火箭爆炸。 |
无(处于根标签) | 数据类型所允许的任意数值 |
LifeTime | 烟花火箭距离爆炸的时间,单位为刻,默认值通过Flight (见下)计算得出,公式为 时间 = ((Flight + 1) * 10 + random(0 to 5) + random(0 to 6))。 |
无(处于根标签) | 数据类型所允许的任意数值 |
ShotAtAngle | 烟花火箭是否由弩射出,默认为0 。注意:如果需要让烟花火箭按照预设的Motion 飞行,则设置为1 。 |
无(处于根标签) | 1/0(是/否) |
FireworksItem | 烟花火箭的物品标签。 | 无(处于根标签) | id、 Count和 tag |
id | 烟花火箭的物品ID。 | FireworksItem | minecraft:firework_rocket |
Count | 烟花火箭的物品数量。通常情况下应该为1b 。 |
FireworksItem | 数据类型所允许的任意数值 |
tag | 烟花火箭的物品标签,目前只有 Fireworks一个子标签。 | FireworksItem | Fireworks |
Fireworks | 烟花火箭的标签,用于定义烟花火箭的飞行状态和爆炸效果。注意:此标签及其所有子标签也适用于物品形式的烟花火箭。 | tag | Flight和 Explosions |
Flight | 烟花火箭的飞行的时间,单位为“火药”(即表现为和在工作台上合成烟花火箭时所用的火药数相等),默认为0b 。注意:这个标签的取值范围比工作台大得多,但是如果为-2b 或更小的值,烟花火箭基本不会飞行。 |
Fireworks | 数据类型所允许的任意数值 |
Explosions | 烟花火箭的爆炸效果。其为一个列表,每一项都表示一种爆炸效果。注意:此标签及其所有子标签也适用于烟火之星。 注意:对于烟花火箭,这个列表每增加一项,就相当于在工作台上合成时增加了一个烟火之星,这会提高烟花火箭的爆炸伤害。 |
Fireworks | Flicker、 Trail、 Type、 Colors和 FadeColors |
Flicker | 烟花火箭爆炸时是否由闪烁效果,与合成烟火之星时加入了荧石粉的效果相同,默认为0b 。 |
Explosions(的一项) | 1/0(是/否) |
Trail | 烟花火箭飞行时是否有拖曳痕迹,与合成烟火之星时加入了钻石的效果相同,默认为0b 。 |
Explosions(的一项) | 1/0(是/否) |
Type | 烟花火箭爆炸时的形态,与合成烟火之星时加入了对应的物品的效果相同,默认为0b 。注意:其他数据类型允许的值是允许的,但是会被处理为0b 。 |
Explosions(的一项) | 0b (小型球状)、1b (大型球状,加入火焰弹)、2b (星形,加入金粒)、3b (苦力怕头,加入任何头颅)、4b (爆裂型,加入羽毛) |
Colors | 烟花火箭爆炸时粒子效果的颜色,数组的每一项均采用一个十进制的RGB颜色码定义一个颜色,与显示属性使用了相同的颜色格式,可用红色RGB数值乘65536,加上绿色RGB数值乘256,再加上蓝色RGB数值计算得出。默认为0 。注意:这意味着,一个仅定义了一个爆炸效果的烟花火箭爆炸时是完全可能有多个颜色同时出现的。 |
Explosions(的一项) | 数据类型所允许的任意数值 |
FadeColors | 烟花火箭爆炸后渐变的颜色,与 Colors格式相同 | Explosions(的一项) | 数据类型所允许的任意数值 |
方块
这些标签用于/setblock
或/fill
命令放置方块或是/data
命令更改方块实体的数据标签。
命令方块
这些标签被用于放置或修改命令方块、连锁型命令方块或循环型命令方块
标签名称 | 描述 | 格式或允许值 |
---|---|---|
Command | 命令方块里写入的命令,默认为空。命令里包含的引号"" 或者反斜杠\ 需要转义。 |
{Command:"一条完整的命令"} |
auto | 命令方块是否为“保持开启”模式,默认为0b 。 |
1/0(是/否) |
CustomName | 命令方块的名字,必须是原始JSON文本。默认不存在。如果定义了名字,以命令方块作为命令执行者时,/say 和/tell 等命令在聊天栏显示的内容开头的[@] 会被替换为定义的名字。 |
{CustomName:'{"text":"名字"}'} |
例子
放置一个保持开启的循环型命令方块,并让这个方块包含一条目的为“将自己所在位置的方块改变为条件制约且保持开启的连锁型命令方块”的指令。 /setblock ~ ~ ~ repeating_command_block{auto:1b,Command:"/setblock ~ ~ ~ chain_command_block[conditional=true]{auto:1b}"}
注意
- 命令方块的“条件制约”模式并不是一个NBT标签,而只是一个方块状态,这一点可以从上面使用的括号的差异上看出来。
容器
这些标签被用于放置或修改大多数容器方块,但是同样也适用于使用/summon
生成或使用/data
更改的运输矿车和漏斗矿车。
标签名称 | 描述 | 格式或允许值 |
---|---|---|
CustomName | 打开容器后在其界面上方看到容器的名字,必须是原始JSON文本。默认不存在。 | {CustomName:'{"text":"名字"}'} |
Lock | 纯文本字符串,用于给容器上锁,默认不存在。如果定义了此标签,容器将只能在主手持有名字与标签中定义的名字完全相同的物品时开启。注意:这个标签比较的其实是容器的Lock 和手持物品的Name 两个标签内的“名字”的文本是否一致,而不是物品名字或者存档id是否一致。换句话说,在简体中文语言下拿着一把从没有改过名字的钻石剑是无法打开写有标签{Lock:"钻石剑"} 的容器的。 |
{Lock:"开启容器的物品的名字"} |
Items | 一个由 复合标签组成的列表,每一个 复合标签里都分别有一个完整的物品共通标签,以指定容器内指定槽位的物品。 | 见物品共通标签 |
LootTable | 决定容器在第一次发生互动(开启、破坏、与漏斗交互等)后容器里生成的战利品,默认不存在。只适用于箱子、陷阱箱、运输矿车、漏斗、漏斗矿车、发射器、投掷器和潜影箱。详见战利品表。注意:定义此标签后,用于定义容器原有内容物的Items 将会被删除,所有内容物都会丢失。 |
{LootTable:"战利品表的命名空间ID值"} ,详见战利品表#数据包。 |
LootTableSeed | 决定生成战利品表时使用的种子,默认为空,只在定义了LootTable 时有效。此项为空或者是0 时将使用随机的种子。注意:这个标签在机制上类似于生成世界的种子,这意味着只要这个标签值一样,同一个战利品表始终会得到完全相同的战利品,连位置都不会变。 |
数据类型所允许的任意数值 |
信标
这些标签被用于放置或修改信标。
标签名称 | 描述 | 允许值 |
---|---|---|
Primary | 用于设置信标的主效果,默认为0 。信标将提供等级为 I 级的此标签定义的状态效果。注意:即使信标等级并不够该效果所需的等级,此标签依然会正常工作,这甚至包括原本只能在辅助效果中选择到的生命恢复。 |
0 (无效果)、1 (速度)、3 (急迫)、5 (力量)、8 (跳跃提升)、10 (生命恢复)或11 (抗性提升)中的一个。 |
Secondary | 用于设置信标的辅助效果,默认为0 。如果此辅助效果与Primary 定义的主效果一致,那么信标将把主效果提供的效果的等级提升至 II 级,否则信标将额外提供等级为 I 级的辅助效果。注意:如果信标等级不够4级,此标签无效。 |
0 (无效果)、1 (速度)、3 (急迫)、5 (力量)、8 (跳跃提升)、10 (生命恢复)或11 (抗性提升)中的一个。 |
注意:如果所填写的状态效果的id不在上述列举的范围内,信标并不会提供该状态效果,而是会将该值改为0[注 3]。
点拨
- 你可以将
Primary
和Secondary
同时设置为10
来使一个4级信标提供 生命恢复II 的状态效果。
刷怪笼
这些标签用于放置或修改刷怪笼,但是同样也对刷怪笼矿车有效。
标签名称 | 描述 | 母标签 | 允许值或子标签 |
---|---|---|---|
SpawnCount | 刷怪笼每次生成时的最大尝试生成次数。也可理解为刷怪笼每个生成周期最多能生成的实体数。默认为4s 。 |
无(处于根标签) | 数据类型所允许的任意数值 |
SpawnRange | 刷怪笼每次生成时的尝试生成的实体的范围。默认为4s 。注意:与通常所理解的不同,这个“范围”实际上是一个长方体。这个长方体的计算方法是以刷怪笼所在位置的西北下角(即xzy坐标最小的那个点)为中心,其边界为x±R、y±1、z±R(R为SpawnRange 的值),从而得到一个2R*3*2R的空间。这也意味着这个标签填入负数值和填入为其相反数的正数值没有区别。 |
无(处于根标签) | 数据类型所允许的任意数值 |
RequiredPlayerRange | 刷怪笼开始工作(表现为出现火焰粒子效果和刷怪笼内的实体开始旋转)时所需的玩家与刷怪笼的最小距离。刷怪笼会每刻检测一次是否有玩家进入范围。默认为16s 。注意:旁观模式玩家不会被检测。 |
无(处于根标签) | 数据类型所允许的任意数值 |
MaxNearbyEntities | 刷怪笼每次生成时允许的附近最大实体数。默认为6s 。注意:刷怪笼只会检测范围内与下一次将要生成的实体(储存于 SpawnData,见下)id相同的实体的数量,范围为一个以刷怪笼自身为中心的2R*8*2R为棱长的柱体区域(R为SpawnRange 的值)。注意这个检测实际上检测的是实体的碰撞箱而不是实体的位置,只要碰撞箱有一部分在这个区域内即判定该实体在附近。如果附近的实体数大于这个值,刷怪笼将不会生成实体。 |
无(处于根标签) | 数据类型所允许的任意数值 |
MinSpawnDelay | 刷怪笼每次成功生成实体后距离下次生成的所需的最小时间,单位为刻。默认为200s 。注意:填入负数会被视为0s 。 |
无(处于根标签) | 数据类型所允许的任意数值 |
MaxSpawnDelay | 刷怪笼每次成功生成实体后距离下次生成的所需的最大时间,单位为刻。默认为800s 。注意:如果这个值比MinSpawnDelay 还小,那么会被视为与MinSpawnDelay 相等。 |
无(处于根标签) | 数据类型所允许的任意数值 |
Delay | 刷怪笼距离下次生成的所剩余的时间,单位为刻,为0s 时会开始尝试生成实体(见刷怪笼#机制。会在每次成功生成实体后刷新(即在MinSpawnDelay 到MaxSpawnDelay 之间随机选择一个数填入)。如果玩家与刷怪笼的距离不大于RequiredPlayerRange ,则每刻减少1。默认为0s 。 |
无(处于根标签) | 数据类型所允许的任意数值 |
SpawnData | 刷怪笼下一次将要生成的实体的标签。默认为{Spawndata:{id:"minecraft:pig"}} 。注意:刷怪笼会在每次成功生成实体后从 SpawnPotentials中选择一项覆盖此标签。 |
无(处于根标签) | id和该实体id所拥有的所有标签 |
SpawnPotentials | 一个由 复合标签组成的列表,每一个 复合标签里都分别有一个列表,用于定义刷怪笼将可能生成的一个实体的信息。 | 无(处于根标签) | Entity、 Weight |
Entity | 刷怪笼将要生成的一个实体的标签,和Spawndata 格式相同。默认为{Entity:{id:"minecraft:pig"}} 。 |
SpawnPotentials(的一项) | id和该实体id所拥有的所有标签 |
Weight | 该实体被选为下一个将要被生成的实体的概率的权重。默认为1 。注意:Weight对概率的算法是,该实体被选中的概率=该实体的Weight 值/所有Weight 值之和。警告:如果填入小于 1 的值,会导致游戏崩溃。 |
SpawnPotentials(的一项) | 正整数 |
id | 刷怪笼下一次将要生成的实体的id。默认为minecraft:"pig" 。 |
SpawnData或 Entity | 实体的命名空间ID |
注释
- ↑ 在最初Notch介绍NBT格式时,是可以含有带空格的标签名称的,甚至在Notch提供的例子中也出现了带有空格的标签名称。尽管如此,现如今Minecraft并不会解析带有空格的标签名称。
- ↑ 虽然被称为“速度”,但是有的时候它的值和实际速度并不一致,这一点频繁出现在玩家身上。
- ↑ 在最初信标加入这两个标签时,它其实支持所有允许的状态效果id。然而,这一特性在1.9被悄悄去掉了。这意味着如果游戏版本在1.8,是真的能得到一座持续对周围所有玩家提供 瞬间伤害II 的信标塔的。