属性块

属性块

从配置文件重写任何实体(包括玩家)的默认属性。全部41项,而不仅仅是生命值和伤害。可按实体、按标签或全局进行设置、乘算或加算。服务器端。

属性状态

通过配置文件重写任何实体(包括玩家)的默认属性。

Minecraft 26.2 暴露了 41 种属性:生命值、伤害、移动速度、重力、摩擦力、空气阻力、弹性、步进高度、安全摔落距离、追踪范围、交互范围等。但它没有提供任何方法来改变实体初始拥有的属性。/attribute 命令只能影响已经存在的实体,而下一次生成的僵尸又恢复为原版属性。

Statblock 在源头修补这些值。它们在实体构建时被整合进去,因此可以在保存、区块重载和生物装备时保持不变。


它的不同之处

  • 所有属性。 不是固定四个的列表。而是你实例中注册的所有属性,包括其他模组添加的属性。
  • 也包括玩家。 二十颗心是默认值,不是铁律。从服务器端改变玩家的生命值、触及距离、步进高度或重力——无需任何人安装任何东西。
  • 三种目标方式。 单个实体 ID、实体类型标签,或一次性全部匹配。
  • 设置、乘算或加算。 40"x1.5""150%""+8"
  • 授予实体原本没有的属性。 给牛攻击伤害,给苦力怕跳跃强度。
  • 服务端。 可在专用服务器、单人游戏和整合包中运行。
  • 不依赖 Fabric API。 只有一个 32 KB 的 jar 文件,无需其他任何东西。

配置

config/statblock.json,在首次启动时生成。空的 overrides 块不会改变任何内容,因此在您明确指定之前,安装它不会影响您的世界。

{
  "enabled": true,
  "writeReferenceFile": true,
  "overrides": {
    "*": { "step_height": 1.0 },
    "#minecraft:skeletons": { "follow_range": "+16" },
    "minecraft:player": { "max_health": 40, "block_interaction_range": "+2" },
    "minecraft:zombie": {
      "max_health": 40,
      "movement_speed": "x1.3",
      "gravity": 0.04
    }
  }
}

允许使用 // 注释。

区块键

匹配目标
minecraft:zombie 该特定实体类型
minecraft:player 玩家
#minecraft:skeletons 该标签中的所有实体类型
* 所有拥有属性的实体

应用顺序为通配符 → 标签 → 精确 ID,因此最具体的区块优先。通配符的值仍然适用于有自己专属区块的实体,只要该区块没有指定相同的属性。

写法 含义
40 将基础值设为 40
"x1.5" 乘以原版基础值
"150%" 同上,以百分比表示
"+8" 加上 8
"-8" 减去 8

数字/字符串的区分是故意的:裸露的 -8 值设为负八,而 "-8" 表示减去八。

结果会被限制在每个属性自身的范围内,因此 "max_health": -5 不会产生无法生成的实体。为实体指定其通常没有的属性将授予该属性,并从该属性自身的默认值开始。

给整合包作者

config/statblock/*.json 中的任何内容都会按文件名顺序合并到 statblock.json 之上。将您的整合包文件放在那里,服务器拥有者自己的编辑内容将保持不变——任何一方在更新时都不会覆盖另一方。

您不必记住属性名称

每次启动时,Statblock 都会写入 config/statblock-reference.txt:包含您实例中注册的每个属性及其默认值,包括其他模组添加的属性。没有人应该去猜测落后速度背后的属性叫做 air_drag_modifier

minecraft: 命名空间可以省略——max_healthminecraft:max_health 是相同的。如果拼写错误,日志会告诉您最接近的匹配项,而不是静默地忽略该行。


命令

所有命令都需要权限等级 2。

命令 功能
/statblock reload 重新读取配置
/statblock list 列出所有已配置的区块及其匹配目标
/statblock dump <entity> 显示一个实体类型的旧值 → 新值,支持 Tab 补全

重载会影响此后生成的实体。世界中已存在的实体将保留其构建时的值——这是原版存储属性的方式,不是模组可以绕过的。


示例

更难的夜晚,无需难度模组

"#minecraft:undead": { "max_health": "150%", "follow_range": "+16" }

低重力世界

"*": { "gravity": 0.02, "safe_fall_distance": 20 }

更强的玩家,服务端生效

"minecraft:player": {
  "max_health": 40,
  "block_interaction_range": "+2",
  "safe_fall_distance": "+6"
}

为您的整合包制作一个 BOSS 生物

"minecraft:zombified_piglin": {
  "max_health": 100,
  "attack_damage": "x2",
  "knockback_resistance": 1.0
}

要求

  • Minecraft 26.2
  • Fabric Loader 0.19.3 或更新版本
  • Java 25

客户端可选。不会向客户端发送任何内容,也不会渲染任何内容。


整合包

可自由包含在任何整合包中,无论是公开还是私密。无需署名,但感谢您的认可。