跳到正文

config.ymlattributes.yml

完整 config.yml

yaml
config-version: 1
language: zh_CN
combat-mode: AUTHORITATIVE
base-profile:
  player: player-default
  entity: entity-default
diagnostics:
  enabled: true
  summary-seconds: 60
默认允许值/范围说明
config-version1固定 1改动会拒绝加载。
languagezh_CNzh_CN当前没有其他语言包选择器。
combat-modeAUTHORITATIVE仅该值不存在“混合原版”开关。
base-profile.playerplayer-default小写 ID,1~64 字符玩家基础 Profile;必须在 attributes.yml 存在。
base-profile.entityentity-default同上且不同于 player普通实体基础 Profile。
diagnostics.enabledtrue布尔控制诊断采集;关闭会减少可观测性。
diagnostics.summary-seconds6010~3600聚合诊断摘要周期,秒。

Profile ID 正则是 [a-z0-9][a-z0-9._-]{0,63}。两个 Profile 不能相同。以上都可通过 /sa reload 候选校验后生效。

attributes.yml 顶层

yaml
config-version: 1
base-profiles:
  player-default:
    max_health: 100.0
  entity-default:
    max_health: 100.0
attributes: {}
规则
config-version固定 1。
base-profiles最多 32 个;每个值必须有限,引用的属性必须已定义。
attributes可为空;只允许覆盖内置/扩展定义的显示与默认字段,不能在这里凭空发明定义。

扩展加载后,其属性若缺少配置块会自动补入文件;已有块和注释应保留。扩展属性使用完整命名空间 ID。

每个属性块的全部键

yaml
attributes:
  physical_attack:
    enabled: true
    base-value: 10.0
    name: 物理攻击
    category: ATTACK
    unit: NUMBER
    description: 提高物理伤害的基础属性。
    order: 10
类型与范围作用
enabled布尔false 时忽略所有该属性来源,并从 GUI/PAPI/自动 Lore 规则隐藏;仍保留安全内置默认。
base-value有限数未被基础 Profile 覆盖时的基础值。
name1~64 字符显示名。
categoryATTACKDEFENSEACCURACY_CRITICALSUSTAINSURVIVALUTILITYCUSTOMGUI 分类。
unitNUMBERPERCENTRATING只决定呈现,不自动改变公式。
description1~256 字符GUI/文档说明。
order0~10000分类内排序。

只允许这七个键。一个字段缺失时回退到代码定义默认值;整个属性块缺失也会回退。

22 项内置默认

ID默认单位类别
physical_attack10NUMBERATTACK
spell_attack0NUMBERATTACK
attack_speed_bonus0PERCENTATTACK
true_damage0NUMBERATTACK
physical_defense0NUMBERDEFENSE
spell_defense0NUMBERDEFENSE
physical_penetration_rate0PERCENTATTACK
spell_penetration_rate0PERCENTATTACK
accuracy_rating100RATINGACCURACY_CRITICAL
evasion_rating0RATINGACCURACY_CRITICAL
critical_chance0PERCENTACCURACY_CRITICAL
critical_damage1.5PERCENTACCURACY_CRITICAL
critical_resistance0PERCENTACCURACY_CRITICAL
lifesteal_rating0RATINGSUSTAIN
reflection_rating0RATINGDEFENSE
healing_power0PERCENTSUSTAIN
received_healing_bonus0PERCENTSUSTAIN
max_health100NUMBERSURVIVAL
flat_health_regeneration0NUMBERSUSTAIN
percent_health_regeneration0PERCENTSUSTAIN
movement_speed_bonus0PERCENTUTILITY
block_strength0PERCENTDEFENSE

完整覆盖示例不需要重复 22 个块;只写要改的项:

yaml
config-version: 1
base-profiles:
  player-default:
    max_health: 200.0
  entity-default:
    max_health: 100.0
attributes:
  physical_attack:
    base-value: 12.0
    name: 物理攻击力
    description: 参与物理伤害计划。
  critical_chance:
    enabled: false

预期:其他字段和其他内置属性继续使用代码默认;暴击率来源被忽略并隐藏。执行 /sa reload 后用 /sa inspect <玩家> 验证。

unit 不是换算器

physical_attack 的 unit 改成 PERCENT 只改变显示,不会把计算变成百分比。operation 兼容性来自定义本身,不能用 YAML 绕过。

Minecraft 服务端插件使用与开发文档