Minecraft Wiki

除另有声明,转载时均必须注明出处若簡繁轉換出錯,請以遊戲內為準请勇于扩充与修正内容有兴趣逛逛我们的微博沟通交流,欢迎到社区专页需要协助,请在告示板留言

了解更多

Minecraft Wiki
注册
Advertisement
Disambig gray  本文章介绍的是NBT标签的实际用法。关于NBT文件格式,请见“NBT格式”。关于NBT以及JSON的语法和用法,请见“教程/NBT与JSON”。
Information icon
此特性为Java版独有。
Clock
此条目需要更新。

条目中某些信息已经不符合当前版本情况。

在13w36a快照之后,NBT标签可以在/give/summon等命令用作设定物品、生物和方块实体的高级数据。同时,它也可以给你的命令系统添加不少乐趣!

基本知识[]

基础[]

在开始学习NBT命令标签之前,你应当对这些概念有一些基本的了解:

格式[]

NBT,正如其名,它是通过一个个标签来储存和读取数据的。一个标签由标签名称数值两部分组成,两者用冒号:隔开。例如foo:1就是一个标签。

标签名称应当仅出现字母a-z,A-Z、数字0˜9和下划线_。标签名称中不允许出现空格[注 1]、中文或是特殊符号,且对大小写敏感。例如,Tag:1tag:1TAG:1是三个不同的标签。a_Tag_name是一个合法的标签名称,而a tag nametag&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。(不区分大小写)

bigNum:123456789L
单精度浮点型
Float
储存一个小数。使用IEEE754标准中的单精度32位形式。

需要在数值后面加上一个字母f。(不区分大小写)
注意:小数点并非必要,但是建议填写此类型的数值时始终带上小数点。

scale:1.2f
双精度浮点型
Double
能够储存比单精度浮点型更精确、绝对值更大的小数。使用IEEE754标准中的双精度64位形式。

需要在数值后面加上一个字母d。(不区分大小写)
注意:小数点并非必要,但是建议填写此类型的数值时始终带上小数点。

foo:123.456789d
字符串
String
储存一段文字,大小上限为32767字节。可以含有中文、空格和特殊字符。以UTF-8编码。

文字需要用双引号""或单引号''[注 2]括起来。

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除了可以指 字符串型NBT标签,有时也是线物品的英文名
  • 如果一段已经使用双引号""括起来的 字符串内还需要使用双引号(无论是用来括起另一个 字符串标签还是只是作为文本信息出现),则需要在内层的每一个双引号前加上反斜杠\转义,反斜杠数为前一层反斜杠数的2倍+1。同样,这也意味着要作为文本信息显示的反斜杠本身也需要用\去转义。
  •  字节型数据并非储存一个字符
  •  整型数组 字节型数组 长整型数组的开头是一个大写字母后跟一个分号;而不是冒号:。这一点可能会在Minecraft字体中难以分辨。
  • 再次强调:NBT中使用的标点符号均为半角符号,即英文输入法输入的符号,而非中文输入法输入的全角符号

小提示[]

掌握这些小技巧,可以让你在学习和使用NBT标签中事半功倍:

  • 玩家可以通过使用/data命令以快速获得实体或方块实体的数据而无需使用外部编辑器。请参阅命令/data以获得更多信息。
  • 将准星对准一个实体或者方块后使用F3+I组合键能够将该实体或方块的全部数据复制到剪贴板。
  • 对于下文提到的物品的“命名空间ID”,你可以使用F3+H组合键来打开高级物品信息显示框,再在物品栏中将鼠标悬停到任意物品上,你就可以在提示框中查看到对应物品的命名空间ID。其他信息还包括工具的耐久值以及NBT标签的数量。
  • 对于方块的“命名空间ID”,你可以按下F3打开调试面板,就可以在右侧看到所指向方块的命名空间ID。其他信息还包括此方块的方块状态和此方块所加入的标签
  • 基岩版可使用第三方编辑器编辑存档的NBT内容。

物品[]

这些标签能够用在 /give/item/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:[{AttributeName:"#",Name:"#",Amount:#,Operation:#,UUID:[I;#,#,#,#],Slot:#},{AttributeName:"#"......(以此类推)}]}
 CanPlaceOn 用于控制在冒险模式中的玩家能够在哪些方块上使用此物品。列表中的每一项都是表示方块的命名空间ID。或者也可以使用#开头,后面加上方块标签的名称,用于表示指定标签内的所有方块。生存模式和创造模式的玩家将不受影响。 (方块的命名空间ID或是#开头的标签名称) 至少有一项 {CanPlaceOn:["方块的命名空间ID或是#开头的标签名称"]}
 CanDestroy 和CanPlaceOn类似。用于控制在冒险模式中的玩家能够使用此物品破坏哪些方块。列表中的每一项都是表示方块的命名空间ID。或者也可以使用#开头,后面加上方块标签的名称,用于表示指定标签内的所有方块。生存模式和创造模式的玩家将不受影响。

注意:此标签仅提供了类似于在在生存模式中破坏方块的可能性,一些本来在生存模式中就无法被破坏的方块(例如基岩)依然无法被破坏,且不会影响方块被破坏后试图产生掉落物时的工具检查(例如使用可破坏石头的木斧来破坏石头,你将不会获得任何东西)。

(方块的命名空间ID或是#开头的标签名称) 至少有一项 {CanDestroy:["方块的命名空间ID或是#开头的标签名称"]}
 BlockEntityTag 用于储存方块实体在方块形式下的NBT标签。若物品形式的方块实体被放下,其此标签内的数据就会被复制到方块实体的根标签下。 不同的方块实体都有不同的子标签,详见下文。 BlockEntityTag:{/方块实体数据/}
 BlockStateTag 用于储存带方块状态的方块在方块形式下的方块状态。若物品形式的方块被放下,其此标签内的内容就会被复制到方块的方块状态下。 大多数不同的方块都有不同的方块状态,详见方块状态 BlockStateTag:{/方块状态/}
标签名称 描述 允许值
 Unbreakable 其值为1时,令工具的耐久度不会下降。 0/1(表示false/true)
 SkullOwner 用来获得指定名称玩家皮肤的头颅。皮肤的来源取决于当前玩家使用的验证服务器和是否联网,这意味着离线登录或未联网游戏将不能加载皮肤。 玩家名称(纯文本字符串)
 HideFlags 用作隐藏物品的某些资料,比如附魔、能否损坏、能放在的方块等。

1=附魔;2=属性修饰符;4=无法损坏;8=能破坏的方块;16=能放在的方块;32=其他,比如药水效果;64=皮革盔甲染色信息;128=盔甲纹饰的工具提示;255=所有资料,除了物品名称和介绍。 如果要隐藏多种信息,你只需要把那些标签的数值加起来。比如你想把附魔和属性修饰符的资料隐藏,你需要写3(即1+2)。

1~255的整数
 generation 用来分辨成书是“原作”(值为0)、“原作的副本”(值为1)、“副本的副本”(值为2)还是“破烂不堪”(值为3)。值大于1将导致成书无法被复制。 0~3的任意整数
 Damage 用于表示工具的损坏程度,钻石剑耐久为1561,则给予一把Damage为1的钻石剑会获得一把耐久为1560的钻石剑。 任意整数

以下这个表格对之前的子标签提供更多细节。

标签名称 描述 母标签 允许值
 id 魔咒的命名空间ID。请查看附魔页面来查询对应魔咒的命名空间ID。  Enchantments(的一项) 魔咒类型的命名空间ID(纯文本字符串)
 lvl 决定魔咒的等级。1至10的等级会正常显示,不超过255级会显示为“enchantment.level.等级”,超过255级则显示为“enchantment.level.255”。其原因为游戏缺少对应的翻译字符串,魔咒仍能正常工作,但255级以上的魔咒按255级计算。  Enchantments(的一项) 1~32767的整数
 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}
   
Golden sword for nbt tutorial

获得的金剑的效果

点拨

  • 注意对应类型标签中表达数据的方式。例如,使用引号来包裹字符串;在短整型(short)数据后加上s、在字节型(byte)数据后加上b等等。
  • 所有在命令中使用的标点符号都是半角符号,即英文输入法下输入的符号。
  • 对于原始JSON文本字符串,使用单引号'')而不是一般的双引号"")包裹它们会更加省事,因为这可以减少一层转义。
  • NBT标签所带来的魔咒可以突破一般附魔等级的上限。
  • 在输入任何命名空间ID时,带上命名空间minecraft:永远是个好习惯(除了属性)。虽然这看起来会让命令变得冗长且没必要,但是可以避免极少情况下的意外错误。

获取一个穿在身上时提供20(Armor × 10)点盔甲值的鞘翅。

 /give @s minecraft:elytra{AttributeModifiers:[{AttributeName:"generic.armor",Operation:0,Amount:20d,Slot:"chest",Name:"Armor",UUID:[I;1,2,3,4]}]}
 
Elytra for nbt tutorial

获得的鞘翅的效果

Elytra on body for nbt tutorial

鞘翅穿在身上时的效果

两者的作用完全一样。

点拨

  • 习惯上,属性的命名空间ID省略命名空间minecraft:
  •  Name可以是任何不受限制的字符串。

 UUID可以是任何值,但请避免在多个属性修饰符中使用相同的UUID。


物品共通标签[]

NBT标签中经常有地方需要表达一个物品。例如生物手持的物品、村民买入的项目、容器中的一个物品等等。它们都使用同一种表达方式,你只需要将此表中的标签都塞进一个 复合标签里。

标签名称 描述 允许值
 id 物品的命名空间ID。 纯文本字符串

 Count

一组物品的数量。最大值取决于物品的种类,例如工具最高只能为1;末影珍珠、鸡蛋、雪球最高只能为16;其他的物品和方块一般都可以为64。 正整数,上限取决于物品种类
 Slot 物品所在的槽位编号。可能不存在。在大多数容器(除了熔炉高炉烟熏炉酿造台)中,容器的每一个格子都从左至右、从上到下依次编号(从0开始数);玩家的物品栏有特定的编号方式;熔炉、高炉和烟熏炉中,0代表原料,1代表燃料,2代表成品;酿造台中,0~2分别为三个药水槽、3为材料槽、4为燃料槽。 数据类型所允许的任意整数
 tag 物品本身所带的NBT标签。详见上文。

大多数物品中可以省略。

物品所拥有的NBT标签
Items slot number

玩家物品栏各个槽位的编号


自定义状态效果[]

这些标签用于自定义药水(包括喷溅药水滞留药水)和药箭(包括它们以弹射物形式发射出去的实体)的状态效果。它同样适用于定义实体拥有的状态效果和区域效果云生效时的状态效果。

标签名称 描述 母标签 允许值或子标签
 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命令来更改实体的NBT标签。

标签名称 描述 容许有的子标签 必须有的子标签 格式
 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中。若要修改骑乘者的数据,请直接在命令中指向该实体。

不同的实体有不同的NBT标签,但 id是必须的,用于决定实体的类型。  id Passengers:[{/实体信息/},{/实体信息/}...(以此类推)]
 Attributes 设置实体的属性基值和修饰符,详情请见属性  Name Base Modifiers  Name Base {Attributes:[{Name:"属性名",Base:#基值,Modifiers:[{/一个修饰符/},{/一个修饰符/}...]
标签名称 描述 允许值
 SaddleItem 物品共通标签设置马背上所装备的鞍物品。一般情况下 id只能为"minecraft:saddle", Count只能为1。 物品共通标签
 Saddle 控制炽足兽的背上是否装备了鞍。 1/0(是/否)
 HandItems 由两项物品共通标签组成的列表,应用于实体手上所拿的物品。第一项表示主手,第二项表示副手。可以填写留空项表示该手未拿任何物品。

注意:此标签不适用于部分实体,例如牛。

物品共通标签(每一项,不带 Slot
 ArmorItems 由四项物品共通标签组成的列表,应用于实体所穿戴的盔甲/物品。四项依次表示脚部、腿部、胸部和头部的物品。可以填写留空项表示该槽位未装备任何物品。

注意:此标签不适用于部分实体,且各个槽位(除头部)会限制可穿戴的物品。

物品共通标签(每一项,不带 Slot
 Motion 定义实体的速度[注 3]。其为一个由三个 双精度浮点型数据组成的列表,分别表示向东面(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可让实体永远燃烧。 数据类型所允许的任意数值
 HasVisualFire 拥有此标签的实体看起来已着火,但实际上未着火。 1/0(是/否)
 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的浮点数(四项组成的列表)
 Age 决定生物已成年的刻数,每刻数值+1。若为负数,则会在大于0时转变为成年生物。 数据类型所允许的任意数值

下表为上面所提到的子标签提供更多细节:

标签名称 描述 母标签 允许值
 Modifiers 为实体添加一个属性修饰符。  Attributes(的一项) 格式参见上文

例子[]


召唤一个下落中的草方块

Falling block for nbt tutorial

下落的草方块

  /summon minecraft:falling_block ~ ~ ~ {BlockState:{Name:"minecraft:grass_block"},Time:1}
  

点拨

  • 下落的方块可以是任意方块,包括那些游戏机制中不受重力影响的方块,但是技术性方块会在下落过程中迅速消失。
  •  Time设为1永远是最推荐的。

召唤一只蝙蝠,上面骑着一只手持木棍、头戴皮革帽子的骷髅

Skeleton on bat for nbt tutorial

一只手持木棍、头戴皮革帽子,骑着蝙蝠的骷髅

  /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将使物品无法捡起。

玩家丢出的物品将默认带有40刻的延迟。

数据类型所允许的任意数值
 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,tradinggolem中的一项
 Value 言论的强度,数值越高表示强度越大。会在村民交谈时传播。影响言论产生的价格变化和铁傀儡对玩家的敌意。

注意:对每一个玩家,其言论导致的价格变化按如下规则计算:最终价格 = 原价 -  Typemajor_positive时的 Value值的5倍 +  Typeminor_positive时的 Value值的1倍 +  Typetrading时的 Value值的1倍 -  Typeminor_negative时的 Value值的1倍 -  Typemajor_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、32分别代表主手、脚部、腿部、身体、头部和副手,将数值*1会禁用从此部位放置或替换物品,*256会禁用从此部位移除或替换物品,*65536会禁用在此部位放置物品。如果需要同时禁用多个部位的多种交互行为,则输入这些数值的和。比如,输入161914144896会导致盔甲架所有部位的所有交互行为均被禁用,类似{Marker:1b}

注意:输入无法通过上述过程计算出来的正数值(比如64)是允许的,但是不产生任何影响。输入负数值也会禁用某个或某些部位的交互行为,比如-1就会直接禁用所有的交互行为[需要测试]

数据类型所允许的任意数值

例子[]

生成一只跳舞的盔甲架,同时带着一个苦力怕的头和一套皮革盔甲。

Dancing creeper armor stand for nbt tutorial

跳舞的苦力怕盔甲架

/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。当此值大于DurationWaitTime之和时,区域效果云消散。

注意:这里的“存在时间”是从区域效果云这个实体生成出来的那一刻开始计算的,即使此时这个区域效果云还处在“等待”状态。

数据类型所允许的任意数值
 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秒;
  • 粒子效果显示为破坏金块时的粒子效果。
Area effect cloud for nbt tutorial

生成的区域效果云和其生效时施加的状态效果,为便于观察区域效果云的形状已显示碰撞箱

/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

注意:这个标签的取值范围比工作台大得多,最大是127b,更大的值将会变为-128 + 其与128的差,结果大于-1的将强制变为-1,比如128变为-128,200变为-56,512变为-1。如果值为-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命令更改方块实体的NBT标签。

命令方块[]

这些标签被用于放置或修改命令方块、连锁型命令方块或循环型命令方块

标签名称 描述 格式或允许值
 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 用于设置信标的主效果,默认为-1。信标将提供等级为 I 级的此标签定义的状态效果。

注意:即使信标等级并不够该效果所需的等级,此标签依然会正常工作,这甚至包括原本只能在辅助效果中选择到的生命恢复。

-1(无效果)、1迅捷)、3急迫)、5力量)、8跳跃提升)、10生命恢复)或11抗性提升)中的一个。
 Secondary 用于设置信标的辅助效果,默认为-1。如果此辅助效果与Primary定义的主效果一致,那么信标将把主效果提供的效果的等级提升至 II 级,否则信标将额外提供等级为 I 级的辅助效果。

注意:如果信标等级不够4级,此标签无效。

-1(无效果)、1迅捷)、3急迫)、5力量)、8跳跃提升)、10生命恢复)或11抗性提升)中的一个。

注意:如果所填写的状态效果的id不在上述列举的范围内,信标并不会提供该状态效果,而是会将该值改为-1[注 4]

点拨

  • 你可以将PrimarySecondary同时设置为10来使一个4级信标提供 生命恢复II 的状态效果。

刷怪笼[]

这些标签用于放置或修改刷怪笼,但是同样也对刷怪笼矿车有效。

标签名称 描述 母标签 允许值或子标签
 SpawnCount 刷怪笼每次生成时的最大尝试生成次数。也可理解为刷怪笼每个生成周期最多能生成的实体数。默认为4s 无(处于根标签) 数据类型所允许的任意数值
 SpawnRange 刷怪笼每次生成时的尝试生成的实体的范围。默认为4s

注意:与通常所理解的不同,这个“范围”实际上是一个长方体。这个长方体的计算方法是以刷怪笼所在位置的西北下角(即XYZ坐标最小的那个点)为中心,其边界为X±R、Y±1、Z±R(RSpawnRange的值),从而得到一个2R*3*2R的空间。这也意味着这个标签填入负数值和填入为其相反数的正数值没有区别。

无(处于根标签) 数据类型所允许的任意数值
 RequiredPlayerRange 刷怪笼开始工作(表现为出现火焰粒子效果和刷怪笼内的实体开始旋转)时所需的玩家与刷怪笼的最小距离。刷怪笼会每刻检测一次是否有玩家进入范围。默认为16s

注意:旁观模式玩家不会被检测。

无(处于根标签) 数据类型所允许的任意数值
 MaxNearbyEntities 刷怪笼每次生成时允许的附近最大实体数。默认为6s

注意:刷怪笼只会检测范围内与下一次将要生成的实体(储存于 SpawnData,见下)id相同的实体的数量,范围为一个以刷怪笼自身为中心的2R*8*2R为棱长的柱体区域(RSpawnRange的值)。注意这个检测实际上检测的是实体的碰撞箱而不是实体的位置,只要碰撞箱有一部分在这个区域内即判定该实体在附近。如果附近的实体数大于这个值,刷怪笼将不会生成实体。

无(处于根标签) 数据类型所允许的任意数值
 MinSpawnDelay 刷怪笼每次成功生成实体后距离下次生成的所需的最小时间,单位为刻。默认为200s

注意:填入负数会被视为0s

无(处于根标签) 数据类型所允许的任意数值
 MaxSpawnDelay 刷怪笼每次成功生成实体后距离下次生成的所需的最大时间,单位为刻。默认为800s

注意:如果这个值比MinSpawnDelay还小,那么会被视为与MinSpawnDelay相等。

无(处于根标签) 数据类型所允许的任意数值
 Delay 刷怪笼距离下次生成的所剩余的时间,单位为刻,为0s时会开始尝试生成实体(见刷怪笼#机制。会在每次成功生成实体后刷新(即在MinSpawnDelayMaxSpawnDelay之间随机选择一个数填入)。如果玩家与刷怪笼的距离不大于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

以下是一些示例:

自定义实体[]

比如带有钻石剑锁链头盔僵尸

/setblock ~ ~1 ~ spawner{SpawnData:{entity:{id:"zombie",HandItems:[{id:"diamond_sword",Count:1},{}],ArmorItems:[{},{},{},{id:"minecraft:chain_helmet",Count:1}]}}}

如你所见,自定义实体NBT需要被置于SpawnData下的entity复合标签。

刷怪笼生成参数[]

你可以把猪、牛或鸡的刷怪笼放置于村庄的屠夫家的后院,以便创造永恒的肉类来源,例如:/setblock ~1 ~-1 ~0 spawner{MaxNearbyEntities:10,RequiredPlayerRange:16,SpawnCount:6,SpawnRange:2,MinSpawnDelay:50,MaxSpawnDelay:200,SpawnData:{entity:{id:"minecraft:pig",Passengers:[{id:"chicken"}]}}}

此命令会放置生成“骑猪鸡”刷怪笼,不过这不重要。注意前面的SNBT:MaxNearbyEntities:10,RequiredPlayerRange:16,SpawnCount:6,SpawnRange:2,MinSpawnDelay:50,MaxSpawnDelay:200

这个SNBT描述的前2个NBT键值对MaxNearbyEntities:10RequiredPlayerRange:16必须成对使用。本例中的参数需要16格范围内存在玩家,附近相同实体数少于10时才会生成实体。下一个是SpawnCount:6,顾名思义,其代表单次生成的数量,此处为6个。SpawnRange:2指定了生成的范围,是一个长方体区域,详见上。MinSpawnDelay:50MaxSpawnDelay:200也是成对使用的,此处的参数会使每次生成间隔50~200游戏刻

SpawnPotentials标签[]

我们可以在刷怪笼中使用SpawnPotentials标签来生成多种实体。当计时器重置时(生成前一个生物的后一秒钟),它会随机选择一个标签进行生成。由于这些NBT包含多个生物,所以描述它们的SNBT往往是相当长的。以下是一个示例命令,看起来十分“赏心悦目”:

这个命令的NBT部分特别长,因为它实际上是6个独立的生物。其中有:

  • SpawnPotentials标签前:最前面的部分,出现一次之后就不会再出现了。如果希望它再次出现,你需要将之再次包含在SpawnPotentials的部分中。这一生物是一个穿着蓝色染色皮革裤子、绿色染色皮革外套,拿着一把满耐久木剑的僵尸。
  • 一只与上述内容几乎相同的僵尸,唯一的不同是这只僵尸的木剑耐久度只有3。
  • 接下来一只看起来像个忍者。它是一只骷髅,但拿着一把铁剑。它所有的盔甲都染上了忍者般的黑色。带剑的骷髅能比僵尸更快地缩短与你的距离,所以要小心。
  • 一只有石剑和锁链盔甲的僵尸。其盔甲上附有保护II。
  • 接下来是有一把金剑,一身金盔甲,头上套着一个南瓜,并且着了火的僵尸。南瓜上附有保护II和火焰保护X,不顾一切地试着站起来并威胁玩家超过5秒。虽然这是有效的,不过如果玩家选择远离,南瓜头先生就会被烧死。
  • 有铁剑和铁盔甲的僵尸。剑上附有锋利II,盔甲上附有保护II。
  • 最后一只生物,一只假Herobrine,拥有附魔等级很高的钻石盔甲(附有火焰保护IV和掉落保护IV的钻石靴子,穿着附有爆炸保护IV的钻石裤子,附有保护IV的钻石胸甲,以及保护IV、火焰保护IV,爆炸保护IV和水下呼吸III的盔甲)以及一把附有锋利IV,击退IV,节肢杀手IV,抢夺III和耐久III的钻石镐。除此之外,它还获得了CustomNameVisible(设置为1表示true),CustomName,以及PersistenceRequired(设置为1表示yes)。最后一个属性将阻止它消失,虽然它可以被正常手段所杀死(如果你能击败这一身钻石套和IV级附魔的话)。幸运的是,它比较少见(见下文)。

除了那个忍者,这里一共有5种不同的剑和盔甲。注意weight标签,其需要在每个SpawnPotentials中的entityNBT后使用。这决定了该生物被选中并生成的概率。具体的数字没有什么意义,有意义的只是数字之间的比例。例如,如果你想让所有预置生物等概率生成,则可以将每个weight都设置为1,将它们全部改成8也没有什么不同(它们之间的比例仍然是相同的),但是将除了某一个之外的所有其他weight更改为8则会使其中1/8的可能性与其余的1/8相同。在这个NBT中,默认值是4,而忍者只有2(使它被选中的可能性减半),而那只假Herobrine只有1。

注释[]

  1. 在最初Notch介绍NBT格式时,是可以含有带空格的标签名称的,甚至在Notch提供的例子中也出现了带有空格的标签名称。尽管如此,现如今Minecraft并不会解析带有空格的标签名称。
  2. 双引号与单引号的用途: 与大多代码语言相同,如果必要情况下,字符串内包含(能传递有效信息的,比如"It's nice.")单引号,则为了避免出现引号将字符串划分开的情况,采用双引号囊括。相反,如果字符串内出现双引号,则采用单引号囊括。
  3. 虽然被称为“速度”,但是有的时候它的值和实际速度并不一致,这一点频繁出现在玩家身上。
  4. 在最初信标加入这两个标签时,它其实支持所有允许的状态效果id。然而,这一特性在1.9被悄悄去掉了。这意味着如果游戏版本在1.8,是真的能得到一座持续对周围所有玩家提供 瞬间伤害II 的信标塔的。

语言

Advertisement