Skip to content

KubeJS Reload and Editor zh

hp-1e edited this page Oct 25, 2026 · 1 revision

English | 中文

重载与编辑器

基础文件仍然是 config/skill_atlas/atlas.json。Skill Atlas 先读取基础文件,集成再把脚本覆盖应用到它的副本上,完整校验后交给本体的 revision、计点索引、退款和同步流程。

重载

  • /reload 替换完 KubeJS 监听器后,会在下一个服务端 tick 统一重建一次图谱。
  • /skillatlas reload 直接用已经加载的监听器重建图谱,不会重新执行 KubeJS 脚本。
  • 每次重建都从基础文件重新叠加,重复重载不会重复追加节点。
  • 无效的覆盖不会替换之前的有效图谱。本体的 loadFailed 状态和错误信息会如实同步,失败的重载不会被当作成功。
  • 从脚本中删除节点后重载,会按本体规则截断等级并退还实际付款。删除点数池并不会清除所有玩家同名池的历史数据。
  • KubeJS 脚本出错仍需修复后重新 /reload,旧的 Rhino 对象无法完整回滚脚本上下文。

游戏内编辑器

  • 脚本确实修改了图谱时,整个游戏内图谱编辑器会暂时变为只读,防止编辑结果与脚本覆盖冲突。这不是按字段锁定。请修改基础 JSON 或 server_scripts 后重载。
  • 自定义条件和奖励声明也会锁定编辑器,即使它们来自基础 JSON,因为原生编辑器不了解这些字段的结构。
  • 本体保存时写回基础图谱,不会把脚本结果固化进 atlas.json。玩家进度仍按本体原有格式保存。

附属数据

集成的声明保存在图谱的 skill_atlas_kubejs 字段中,随 toJson / fromJson / copy 和完整同步保留。

  • getNode(id).kubejs 可以查看某个节点的声明;json(patch) 中的 kubejs 可以替换节点或单个等级的声明。
  • 节点或等级上每种声明列表最多 32 条,单条最多 16 KiB,全部声明合计最多 256 KiB。节点和等级的引用必须有效。
  • data 只接受普通 JSON,最多嵌套 32 层,递归校验预算为 8192 步。函数、循环引用和非有限数会被直接拒绝。
  • 外部行为绑定保存在同一字段的 $acquisitions 下,getPool(id).kubejs 返回类型、配置、名称、说明和单位。
  • 绑定后的点数池底层保留一个合法的 playtime 方法,只用来承载原生阈值和上限。自然计点会跳过自定义池,所以它们不会每秒自动计点。

互斥组是原生字段(choice_group)。在基础 JSON 或游戏内编辑器中设置互斥组不会锁定编辑器。

尚未开放

离线玩家进度修改、任意客户端玩家写入和逐帧绘制尚未开放。

集成不修改已经发生的原版行为,不提供跳过校验的正常学习方法,不暴露可写的付款账本,也不承诺回滚其他模组已执行的命令、经济和物品副作用。

Clone this wiki locally