内容工作室

内容工作室

用于配方、战利品表、村民和流浪商人交易以及物品提示信息的可视化内容创作环境。它专为整合包作者和服务器管理员设计,让他们无需手动编辑每个数据文件即可管理内容。

该项目围绕游戏内管理功能设计。当某个功能会更改共享的游戏数据或服务器规则时,服务器保持权威地位;仅客户端展示类功能则保留在客户端本地。配置界面使用 KineticCore 的 UI 和配置基础设施。

主要功能

  • 针对支持的 vanilla 处理类型进行可视化配方创建、编辑、预览和移除。
  • 为实体、方块和战利品表容器进行战利品编辑,支持加权池和移除规则。
  • 村民职业/等级交易编辑以及流浪商人交易控制。
  • 支持 NBT 感知的物品提示规则,具有普通、Shift 和 Alt 展示模式。
  • 通过 KineticCore 进行搜索、过滤、物品返回/检查和预览工作流。
  • 可选的 JEI、EMI 和 REI 互操作性,用于物品/配方发现。

依赖项

类型 依赖项
必需 Forge 47.4.0+
必需 KineticCore 26.9.8+
可选 JEI 15.20+
可选 EMI
可选 Roughly Enough Items (REI)

访问与配置

  • 使用配置的 F6 入口打开 KineticCore 配置中心,并选择 Content Studio。
  • 服务器拥有的设置由服务器保存,并在功能需要客户端感知时同步。
  • 仅客户端的展示设置保留在本地。
  • 各个功能区域在下方记录各自的数据/配置路径。
  • 搜索、列表选择、物品/实体检查、提示以及返回/导航控件在可用时复用 KineticCore UI 组件。

详细功能参考

配方编辑器

概述

配方编辑器 提供用于创建、编辑、预览和移除配方的游戏内工作流。服务器管理员和模组包作者可以可视化地管理支持的配方类型,而无需手动在 JSON 中维护每个配方。

配方编辑器使用 数据包驱动、服务器应用 的工作流。自定义配方和移除规则存储在 KineticCore 的专用数据包目录中,并通过 Minecraft 的服务器数据包重载流程应用。

数据文件:

config/kineticcore/datapack/data/contentstudio/recipe_bundle.json

该文件同时包含:

  • recipes:由配方编辑器创建和管理的自定义配方。
  • removals:配方移除规则。

功能

可视化配方编辑

支持的配方类型:

  • 工作台
  • 熔炉
  • 高炉
  • 烟熏炉
  • 锻造台
  • 切石机

编辑器使用可视化物品槽进行配方输入和输出,并提供物品搜索、标签成分、NBT 编辑和输出数量控制。

工作台配方可以在 有序 和 无序 模式之间切换。

物品与标签

配方输入可以使用普通物品或物品标签。

标签成分使用以 # 开头的完整 ID,例如:

#forge:ingots/iron
#minecraft:planks

纸仅在编辑器内作为标签成分的视觉占位符。实际配方仍使用对应的物品标签。

物品搜索支持本地化名称、物品 ID、@modid 和 #tagid 查询。

NBT 匹配

输入成分支持三种 NBT 匹配模式:

  • 无:匹配物品类型,不验证 NBT。
  • 弱:物品必须包含所需 NBT,但可以包含额外 NBT。
  • 强:物品的 NBT 必须与配置的 NBT 完全匹配。

提供 NBT 编辑器,可直接编辑所需数据。

支持输出 NBT 的配方类型可以选择在结果物品上保留配置的 NBT。

托管的自定义配方

自定义配方管理屏幕可以:

  • 浏览由配方编辑器管理的配方。
  • 预览输入和输出。
  • 编辑现有配方。
  • 删除现有配方。
  • 从服务器刷新配方记录。
  • 显示无效配方数据以供修复。

可识别的无效槽位会以错误占位符显示,以便在编辑器中进行替换,而不是静默隐藏损坏的配方。

当保存其他配方时,仍需要保留的未解析配置条目会尽可能保留,从而减少可视化编辑期间的意外数据丢失。

配方移除管理器

移除管理器按输出物品浏览服务器配方目录,并支持移除单个配方或配方组。

支持的移除模式:

  • RECIPE_ID:移除一个精确的配方 ID。
  • OUTPUT:按输出物品移除配方。
  • MOD:按来源模组移除配方。
  • TAG:按物品标签移除配方。
  • TYPE:按配方类型移除配方。
基于物品的浏览

物品列表可以按物品名称、ID、模组或标签搜索。选择一个物品会在右侧显示其服务器配方。

配方轮廓显示当前状态:

  • 黄色:已选择的配方。
  • 蓝色:悬停的配方。
  • 红色:已被移除规则禁用。
  • 绿色:当前有效。

详细状态信息通过悬停提示显示,而不是永久占用列表空间。

点击配方 ID 只会 选择 该配方。内置详细预览通过 预览配方 按钮显式打开。

批量移除范围

移除范围菜单提供对以下内容的快速访问:

  • @Mod
  • #Tag
  • 配方类型

这些选项用于创建或调整批量移除规则。

未保存的移除编辑可以还原。保存会将规则写入 recipe_bundle.json,并重载服务器数据包,以便更改立即生效。

配方预览

配方编辑器包含自己的配方预览屏幕,用于显示所选配方的输入、输出和基本配方信息。

它还提供与以下项的可选集成:

  • JEI
  • EMI
  • REI

这些配方查看器在运行时都不是必需的。

当只有一个受支持的查看器可用时,配方查看器按钮会直接打开它。当安装了多个查看器时,配方编辑器会提供一个选择菜单。

当 JEI 可用时,配方编辑器可以在支持的情况下精确打开所选配方。EMI 和 REI 用于打开所选物品的配方结果。

未安装任何外部配方查看器时,配方编辑器的内置编辑、预览和移除功能仍然可用。

配方规则

工作台
  • 支持有序和无序配方。
  • 最多 9 个输入槽。
  • 输出数量范围:1-64。
  • 支持输出 NBT。
锻造
  • 需要模板、基础物品和添加物品输入。
  • 三种输入都是必需的。
  • 当前不会保留输出 NBT。
熔炉
  • 单一输入。
  • 烹饪时间:200 tick。
  • 经验:0。
高炉
  • 单一输入。
  • 烹饪时间:100 tick。
  • 经验:0。
烟熏炉
  • 单一输入。
  • 烹饪时间:100 tick。
  • 经验:0。
切石机
  • 单一输入。
  • 可配置输出数量。

保存工作流

创建、编辑或删除自定义配方时,首先将更改写入:

config/kineticcore/datapack/data/contentstudio/recipe_bundle.json

为避免在一系列编辑期间反复重载所有服务器数据包,自定义配方更改会先保存,然后在 完整配方编辑流程关闭后 通过一次数据包重载应用。

配方移除规则保存到同一数据文件,并在保存移除更改时立即触发服务器数据包重载。

在服务器启动或数据包重载期间,配方编辑器会读取 recipe_bundle.json,并将其自定义配方和移除规则应用到最终服务器配方集。

权限

配方编辑器是服务器管理功能。

打开编辑器以及修改、删除或应用配方数据需要 Minecraft 权限等级 2 或更高。

打开配方编辑器

配方编辑器向 KineticCore 注册一个由服务器管理的配置页面。

从 KineticCore 的配置界面打开 配方编辑器 页面以进入配方中心。

从源码构建

当前源码项目使用:

  • ForgeGradle 6.0.24
  • 官方映射
  • Forge 47.4.0+ 工具链

默认本地依赖目录:

D:/IDEA_Caches/libs

对于源码编译,该目录必须包含被 localMod() 识别的 KineticCore 和 JEI JAR。JEI 在源码项目中是 compileOnly 依赖项,并且在运行时仍然是可选的。

默认构建输出目录:

D:/NEWMODS

生成的模组文件名:

contentstudio-<version>.jar

功能参考

配置详情

项目 描述
配方编辑器 配方创建、编辑、移除和待处理更改存储在专用配方编辑器数据包中。更改在编辑器关闭后通过服务器数据包重载应用。
打开配方编辑器 打开配方中心以创建、编辑或移除支持的配方类型。空输入、空输出和未经授权的保存会被拒绝。

GUI 与编辑器

项目 描述
无 制作时不检查 NBT 数据。
弱匹配 检查关键 NBT(例如附魔、药水)。
强匹配 严格 NBT 比较(必须完全相同)。
开启 输出物品将保留当前 NBT 数据。
关闭 输出物品将没有 NBT 数据。
选择 %s 以移除 点击下方条目将其添加到移除列表。

可编辑选项

  • 模组 ID
  • 配方 ID
  • 输出物品
  • 物品标签
  • 配方类型
  • 无序
  • 有序
  • 无
  • 弱匹配
  • 强匹配
  • 所有物品
  • 物品栏
  • 已装备
  • 全部
  • 左键:清空槽位
  • 弱
  • 物品必须拥有所有必需 NBT,但可以有额外 NBT。
  • 强
  • 物品 NBT 必须完全匹配。
  • 制作时不检查任何 NBT 数据。
  • 启用
  • 输出将具有指定 NBT。
  • 禁用
  • 输出将是纯 vanilla 物品。

数据路径

主要配置/数据路径:

  • config/kineticcore/datapack/data/contentstudio/recipe_bundle.json

战利品编辑器

概述

战利品编辑器 是此项目的可视化战利品表编辑模块。它编辑服务器加载的实体、方块和容器战利品表,并将自定义覆盖存储在专用配置文件中。

主要功能

  • 实体战利品表编辑器。
  • 方块战利品表编辑器。
  • 箱子/容器战利品表编辑器。
  • 可视化战利品池和条目管理。
  • 掷骰、数量、权重和条件战利品数据。
  • 运行时覆盖应用到服务器战利品表。
  • 全局箱子追加规则。
  • 全局箱子物品移除规则。
  • 全局箱子规则的战利品表排除列表。
  • 服务器权威的保存和重载流程。

配置

config/kineticcore/loot_overrides.json

功能参考

配置详情

项目 描述
战利品编辑器 战利品覆盖规则通过每种目标类型的专用编辑器管理;读取和保存时会检查服务器权限。
编辑实体战利品 编辑实体战利品表、池、条件、概率和覆盖规则。
编辑方块战利品 编辑方块战利品表和覆盖规则。保存的更改遵循编辑器资源重载流程。
编辑容器战利品 编辑箱子和结构容器使用的战利品表。服务器会验证目标和保存权限。

GUI 与编辑器

项目 描述
确认重置 这会恢复当前战利品表并丢弃未保存的更改。
删除整个池? 此池中的所有奖励、条件和函数也会被删除。
全局战利品移除 此处的规则会阻止匹配物品出现在每个战利品箱子的最终输出中;右键点击规则以移除它。
全局排除 点击左侧的战利品表以排除它;右键点击已排除条目以移除它。

可编辑选项

  • 覆盖模式
  • 追加模式
  • 匹配规则
  • 物品 ID
  • 仅 NBT
  • 模糊 NBT
  • 精确 NBT
  • ID 匹配
  • 仅匹配物品 ID 并忽略 NBT。
  • 仅当生成的物品堆叠具有任何 NBT 时,匹配相同物品 ID。
  • 当物品的 NBT 包含所有配置的 NBT 条件时,匹配相同物品 ID。
  • 仅当物品的完整 NBT 与配置的 NBT 完全相等时,匹配相同物品 ID。
  • 匹配:%s
  • NBT 条件已保存

数据路径

主要配置/数据路径:

  • config/kineticcore/loot_overrides.json

交易编辑器

概述

交易编辑器 是此项目的村民行为优化和交易管理模块。它减少密集交易大厅中不必要的 AI 工作,同时提供可配置的跟随行为、交易等级保护,以及面向村民和流浪商人的可视化交易编辑器。

主要功能

  • 可配置的村民 AI 检查间隔。
  • 被困村民检测,以停止无意义的寻路。
  • 在交易升级计时器期间保留最小商人更新。
  • 基于物品的村民跟随。
  • 可视化跟随物品编辑器。
  • 基于职业和等级的村民交易编辑器。
  • 流浪商人支持。
  • 添加、替换等级、替换全部和禁用等级交易模式。
  • 每个职业等级可配置的报价数量。
  • vanilla 交易的启用/禁用和权重控制。
  • 完整自定义报价参数,包括两个输入、输出、NBT、使用次数、XP、倍率、需求、特殊价格、补货和权重。
  • 服务器权威持久化和运行时交易池发布。

配置

config/kineticcore/villager.toml

功能参考

配置详情

项目 描述
启用物品跟随 启用后,村民会跟随手持特定物品(如绿宝石)的玩家,类似动物的行为。
跟随物品列表 打开可视化诱饵物品编辑器。通过物品选择器直接添加物品,预览其图标,并右键点击物品以移除它。
村民 AI 检查间隔(秒) 村民 AI 和寻路检查之间的时间。默认值为 5 秒;最小值为 0.05 秒。
交易升级保护 启用后,被脑叶切除的村民在交易升级期间仍会执行最小更新,防止交易大厅村民升级极慢。
村民 在此直接编辑村民 AI 检查频率、交易升级保护和手持物品跟随。使用专用交易编辑器来管理职业、NBT、使用次数、XP、补货和 vanilla 交易覆盖。
打开村民交易编辑器 编辑职业/等级规则、自定义买入/卖出物品和 NBT、使用次数、XP、价格倍率、补货、权重和 vanilla 交易覆盖。服务器在打开和保存时会重新检查权限等级 2。
行为 此部分仅包含服务器端村民行为和性能设置。交易规则、诱饵物品和交易覆盖分组在下方村民编辑器中。
村民编辑器 此部分分组使用专用 GUI 的村民设置。诱饵物品使用 KineticCore 的共享物品列表编辑器,而交易规则继续使用完整交易编辑器。

GUI 与编辑器

项目 描述
返回 返回上一屏幕。这不会自动保存。如果希望更改生效,请先点击保存。
清除 清除交易内容搜索
搜索交易 按物品名称、物品 ID、NBT、数量、等级、权重、最大使用次数或 XP 搜索当前职业的交易。
买入 a A 输入 1 数量:玩家必须支付多少个第一输入物品。范围:1~64。
买入 b B 输入 2 数量:玩家必须支付多少个第二输入物品。使用 0 禁用第二输入。
卖出 奖励数量:玩家交易后获得多少个物品。范围:1~64。
需求 此交易的当前需求值。它会与价格倍率一起影响最终价格。
清除当前 清除当前:编辑单个交易时,仅清除当前右侧编辑器内容。
它不会清除整个等级或职业。
删除 删除所选交易。Vanilla 交易会被禁用;自定义交易会被移除。
保存 保存右侧显示的交易。如果选择了 vanilla 交易并且其内容已更改,则会转换为自定义交易。
添加交易 添加交易:保存当前等级设置,然后跳转到新的单交易编辑器。
箭头 展开 / 折叠:仅点击此小箭头以展开或折叠当前等级交易列表。
清空等级 清空等级:移除此等级的自定义交易,并从主列表中移除所有 vanilla 默认交易。
已移除的 vanilla 交易可以通过在已移除预览中右键点击来恢复。
行 等级行:左键点击为此等级创建新交易;右键点击以清空此等级中的所有交易;点击左侧小箭头以展开或折叠此等级。
最大使用次数 此交易在需要补货之前可以完成的最大次数。
nbt 编辑此物品槽的 NBT。普通物品请留空。
选取数量 选取数量:此等级将从交易池中选择多少个交易。例如,2 表示只会出现 2 个加权交易。
价格倍率 控制需求对交易价格的影响强度。设置为 0 以忽略基于需求的价格变化。
职业 点击搜索框选择职业,或输入职业名称
搜索职业 点击以显示所有村民职业建议。选择职业后,左侧列表会显示该职业的所有 vanilla 和自定义交易。
重置职业 重置职业:恢复已移除的 vanilla 交易,并删除当前职业的所有自定义交易和等级设置。会出现确认弹窗。
全部恢复 全部恢复:恢复当前职业所有等级中所有被禁用的 vanilla 交易。自定义交易会保留。
已移除 已移除的 Vanilla 交易:打开所选职业所有等级中所有已移除的 vanilla 交易。右键点击交易以恢复它。
补货 启用后,此交易会使用 vanilla 机制补货。禁用后,补货不会恢复此交易。
奖励 启用后,玩家会从此报价获得 vanilla 交易 XP。
保存 将当前村民交易配置保存到 villager.toml。
新生成或刷新的村民交易将使用新规则。
清除 清除搜索:清除职业搜索框并取消选择当前村民职业。
A 输入 1 A 输入 1:vanilla 村民交易 UI 中的第一个输入物品。玩家必须提供此物品才能交易。
B 输入 2 B 输入 2:vanilla 村民交易 UI 中的第二个输入物品。如果不使用,请留空并将数量设置为 0。
奖励 奖励:玩家交易后获得的最终物品。点击图标以打开物品选择器。
特殊价格 应用于此交易的直接价格调整。负值可以降低价格。
使用次数 此交易已经使用的次数。一旦达到最大使用次数,就需要补货。
权重 更高权重会使此交易更有可能被选中。权重为 0 会阻止其被选中。
XP 完成此交易时给予村民的职业 XP。
清除 清除此交易物品,而不删除整个交易。
撤销 %s/%s 撤销上一个未保存的更改(Ctrl+Z)

可编辑选项

  • 添加
  • 禁用
  • 替换
  • A 输入 1
  • B 输入 2
  • 奖励
  • 清除

配置默认值

键 默认值
villager.follow_enable true
villager.tickInterval 100
villager.trade_update_protection true

数据路径

主要配置/数据路径:

  • config/kineticcore/villager.toml

提示编辑器

概述

提示编辑器 是此项目的可视化物品提示编辑器。它为 KubeJS 提示规则提供游戏内编辑器,因此整合包作者可以选择物品、编辑文本并配置显示条件,而无需手动维护整个脚本。

服务器会验证提交的规则数据库并生成 kubejs/client_scripts/tooltipadd.js。

主要功能

  • 已配置物品的集中概览。
  • 按物品 ID 或本地化名称搜索。
  • 追加和覆写模式。
  • 为覆写规则选择目标行。
  • 无按键、Shift、Alt 和 Shift+Alt 条件。
  • 每个物品支持多条规则。
  • Ctrl + 左键拖动规则重新排序。
  • Minecraft § 格式代码。
  • 物品级配置移除。
  • 服务器端验证 ID、模式、行号、按键条件、限制和文本。
  • 服务器权威脚本持久化。
  • 写入生成脚本时更安全的临时文件替换。

生成文件

kubejs/client_scripts/tooltipadd.js

生成的脚本也充当提示编辑器读回其编辑器的规则数据库。

功能参考

配置详情

项目 描述
物品提示管理 在专用编辑器中管理提示规则,它会生成 KubeJS client_scripts/tooltipadd.js,因此无需手动编辑脚本。服务器会验证管理员权限、物品 ID、模式、行号、按键条件和文本。
打开提示编辑器 为物品添加覆写或追加提示规则,支持目标行、Shift/Alt 条件和文本。仅在服务器实际写入脚本后显示成功。

可编辑选项

  • 覆写
  • 追加
  • 删除此规则

从源码构建

  • Minecraft:1.20.1
  • Java:17
  • ForgeGradle:6.0.24
  • Gradle:项目固定使用 8.1.1 Wrapper;不要直接使用 Gradle 9 导入它。
  • 本地开发 JAR 由 local_libs_dir 控制,并可在 gradle.properties 中或通过项目属性覆盖。
  • 典型构建命令:Windows 上为 gradlew.bat build,Linux/macOS 上为 ./gradlew build。
  • 开发和发布产物使用 contentstudio 作为当前项目标识符。