制作自动排列的信息栏
字体与图片 → 局部 Layout → Row 与 Item → 全局 Stack
本页制作“时间 + 任务”一行。任务隐藏时,时间自动居中。使用字体教程中的 tutorial_font;已有字体时可替换示例 ID,本例不需要图片。可视化操作见信息栏编辑教程。

上图是默认主题,下面的练习是纯文字,先验证排列,再加背景和图标。
文件结构
tutorial_stack.yml
settings.yml
tutorial.yml
准备两块局部 Layout
defaults:
font: tutorial_font
tutorial_time:
text:
y: 20
value: '&f{{ date as "HH:mm" }}'
tutorial_quest:
text:
y: 20
value: "&e{{ get quest_name }}"这两个 Layout 不写屏幕锚点,也不用加入 HUD。Stack 会负责它们的位置和显示。
创建一行 Row
tutorial_row:
order: 50
empty: collapse
horizontal:
align: center
gap: 8
items:
time:
layout: tutorial_time
refresh: 20
quest:
layout: tutorial_quest
condition: |
perm tutorial.quest
refresh: 20
variables:
quest_name: "寻找遗迹"两个 Item 分别引用一个 Layout,变量属于该 Item。条件写在 quest Item 上,才能隐藏整项并触发重排。
确认唯一全局设置
Xerr 只读取一份 core/display/stack/settings.yml。确认其中 enabled: true,保持原有位置即可。
Row 可以拆到 rows 下任意子目录,但不要为每个 Row 再创建 settings.yml。
打包并观察
执行 /xerr pack 并加载新包。有 tutorial.quest 权限时显示两项;没有权限时只显示时间,并自动靠向中间。
若需要固定验证隐藏状态,可把 Item 的条件临时改成 false,执行 /xerr reload。不要仅删除文字内容来代替隐藏 Item。
空行是否占位
empty: collapse 在整行为空时让后面的 Row 补位。reserve 保留这一行原有的槽位。
加入图片或文字背景
先登记图片或背景模板,再加入对应的局部 Layout。Stack 会测量图片、文字和背景的联合边界,不会把重叠背景当作额外重复宽度。
特殊装饰不应影响占位时,设置 affect-bounds: false。普通配置先不用手写 bounds。
全部全局、Row、Item 和 BossBar 接管字段见Stack 参考。