
属性基础修饰符
一个数据驱动的模组,用于修改生物的默认属性
属性基础修改器(ABM)允许你修改任意生物任意属性的默认基础值。
本模组为服务端模组。
| 端 | 是否需要安装 |
|---|---|
| 专用服务器 | 是 |
| 内置服务器 | 是 |
| 单人游戏客户端 | 是 |
| 纯客户端 | 否 |
本模组是数据驱动的。如果遇到问题,建议阅读 数据包 – Minecraft Wiki。
你可以在数据包中定义多条规则来应用修改器。
注册规则
规则通过数据包中的 JSON 文件注册。
规则文件应位于 data/<namespace>/abm_rules/<name>.json。
如果规则注册成功,其 ID 将为 <namespace>:<name>。
与其他数据包内容一样,服务器重新加载数据时,所有规则都会被重新加载。具体来说,是在重新加载世界或使用 reload 命令时。
JSON 格式:
<root>Compound{}includeCompound{} 一个包含过滤器。只有此处指定的类型才会被包含。可选,省略时包含所有类型的生物。typeString* | *Array[] 列出需要包含的生物。- String 一个 ID 或一个标签(以
#开头)。例如minecraft:zombie、#minecraft:undead。
- String 一个 ID 或一个标签(以
spawn_groupString 表示包含该生成组中的所有生物。必须是monster、creature、ambient、water_creature、underground_water_creature、water_ambient、misc或axolotls之一。与type共存时无效。
excludeCompound{} 一个排除过滤器。格式与include相同。可选,省略时不排除任何生物。modifiesArray[] 定义修改方式。- Compound{} 定义一个属性及修改方式。如果生物缺少该属性的默认值,则跳过此修改。
attributeString 属性的 ID。例如minecraft:max_health。modifiersArray[] 修改方式。基础值按顺序依次计算。- Compound{} 一种修改方式。
typeString 修改类型(运算符)。必须是set、add或multiply之一。valueNumber 此修改的值。将被解析为 double 值。
- Compound{} 一种修改方式。
- Compound{} 定义一个属性及修改方式。如果生物缺少该属性的默认值,则跳过此修改。
default_enableBoolean 是否默认启用此规则。更多信息请参见“调试命令”。可选,默认为true。
示例:(部分 ID 可能不正确)
{
"include": {
"spawn_group": "monster"
},
"exclude": {
"type": "#c:bosses"
},
"modifies": [
{
"attribute": "minecraft:max_health",
"modifiers": [
{
"type": "add",
"value": 100
}
]
},
{
"attribute": "minecraft:armor",
"modifiers": [
{
"type": "set",
"value": 10
}
]
}
]
}
这里有一个 example_data_pack。
调试命令
abmrule <rule_id> [enable|disable]
你可以通过此命令启用或禁用一条规则。
此命令用于调试。
当规则被重新加载时,此状态将被重置为其默认值。具体来说,即规则 JSON 文件中定义的 default_enable。
常见问题
- 使用
reload命令重新加载规则后,某些生物没有被修改。
这是预期行为。
重新加载后,先前召唤的生物可能不会更新其默认属性,除非它在代码中被“重新创建”(通常是当生物的区块被加载时)。
不过,建议召唤一个新的生物以减少不确定性,并确保其具有最新的默认属性。
如果你希望先前召唤的生物更新,建议重新进入世界。
- 如何在创建世界之前定义规则,就像配置文件一样?
在某些情况下,例如制作整合包时,许多人会遇到这个问题。
建议通过低代码模组或 Paxi 制作全局数据包。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。