PassiveSTJS 是一个面向 Forge 1.20.1 的 Passive Skill Tree KubeJS 附属模组。
它主要暴露四层脚本能力:
StartupEvents.registry('skilltree:...')用来注册带 serializer 的 PST 类型。PassiveSTJSEvents.skillTreeContent(...)用来生成和修改技能树内容。PassiveSkillTreeJS绑定用来读写运行时玩家、技能树、技能与物品状态。event.recipes.skilltree.workbench_item_bonus()用来编写 PST 工作台 socket 配方。
脚本位置
不同能力要放在正确的 KubeJS 目录里:
kubejs/startup_scripts/用于StartupEvents.registry('skilltree:...')kubejs/server_scripts/用于PassiveSTJSEvents.skillTreeContent(...)、运行时 helper 和 recipe 注册kubejs/client_scripts/用于ClientEvents.lang(...),提供标题、描述、tooltip 片段与工作台文本
主要入口
公开事件与绑定入口包括:
PassiveSTJSEvents.skillTreeContent(event => { ... })PassiveSkillTreeJS.player(player)PassiveSkillTreeJS.skill(id)PassiveSkillTreeJS.tree(id)PassiveSkillTreeJS.item(stack)
内容事件会把生成的数据写进 KubeJS 的虚拟 datapack,并在事件结束后同步到 PST 运行时缓存。
启动注册家族
PassiveSTJS 为这些 PST serializer 家族安装了 StartupEvents.registry(...) 支持:
skilltree:skill_bonusesskilltree:skill_bonus_multipliersskilltree:living_conditionsskilltree:damage_conditionsskilltree:item_conditionsskilltree:enchantment_conditionsskilltree:event_listenersskilltree:numeric_value_providersskilltree:skill_requirementsskilltree:item_bonuses
在 skillTreeContent 里,event.registries() 会暴露同一套真实 PST 注册表视图。
类型化编写
这个模组为脚本和配方里常用的 PST 路径提供了 typed id 与 enum。仓库里的示例也按这套风格编写:
- typed tree 与 skill id
- bonus、listener、requirement、condition、item bonus 的 typed registry id
- equipment type、texture、frame type、logic enum、effect id、attribute id、item id、tag id、potion id
只要 Probe 或生成类型可用,这就是推荐的作者写法。
文档地图
- 启动注册集成 说明如何注册带 serializer 的 PST 自定义类型
- 服务端内容事件 说明如何增删改技能树与技能
- 运行时 Helper 说明如何在运行时操作玩家、技能树、技能与物品 helper
- 工作台配方
说明如何通过 RecipeJS 编写
skilltree:workbench_item_bonus - 配置
说明
passivestjs-common.toml的公开开关 - 示例 说明仓库里每个样例文件分别覆盖哪一块 API
版本说明
- Minecraft:
1.20.1 - Forge:
47.4.18 - KubeJS:
2001.6.5-build.22 - 共享配置:
config/passivestjs-common.toml