使用与配置
发送框左侧选择离线、标准(默认)、扩展和自由模式;菜单显示名称与说明,管理员禁止的选项置灰。切换自动保存,管理员许可和个人偏好独立。当前存档的 defaultMode 同时设置初始模式及普通玩家可选上限,管理员用 /system ai default <模式> 修改;单人玩家与局域网房主默认开放全部模式,玩家级 /system ai 覆盖仍优先。见 使用说明与服务端配置。
服务端模型要求 API Key 但未配置时,只允许离线模式,菜单和设置页会显示原因;本地指令和匹配仍可使用。服务端仅同步是否就绪,不发送密钥。apiKeyRequired=false 的免密钥模型接口不受此限制;配置恢复后重新应用原模式偏好和管理员权限。
配置目录
本模组所有运行配置统一放在各自游戏实例的 config/system/ 下,按职责拆分:
config/system/
├── system-agent.json # 服务端执行预算、并发、时区
├── system-storage.json # 服务端玩家文件容量预算
├── system-model.json # 服务端模型连接与提供商选项
├── system-search.json # 服务端搜索连接,默认共享 DeepSeek 环境变量
├── system-search-pricing.json # 服务端 Search / Fetch 价格
├── system-semantic.json # 服务端本地路由、阈值与缓存
├── system-advancements.json # 服务端成就规则
├── system-speech-pricing.json # 客户端 TTS / ASR 价格
├── system-client.json # 客户端界面模式与主题
├── system-speech.json # 客户端语音设置
└── system-asr.json # 客户端语音识别设置
首次加载某个配置时,ConfigInstance 将 JAR 内 defaults/<文件名>.json 复制到缺失路径,再使用对应 Codec 读取。已有文件不覆盖,语法损坏或读取失败时记录错误并在内存中使用默认值,不重新生成或覆盖坏文件;不提供旧目录或旧聚合配置迁移。设置页修改后自动保存:本地配置通过 INSTANCE.set(next) 标记修改并立即写盘,保存失败显示错误并保留标记以便后续重试;服务端偏好通过原有请求保存并等待确认。资源重载会重新读文件,服务端引擎、模型连接和成就规则仍需重启完整应用。TTS 参数直接在设置中填写,不提供 JSON 导入或页面内重新加载按钮。客户端和服务端分别操作自己的配置,玩家业务文件与存档用量账本仍留在原存档路径。
安装与入口
在游戏聊天栏输入 /system settings,或在完整模式右上角点击“设置”、在任一助手输入框输入 /settings /“设置”,打开统一多标签设置页:
- 常规:界面模式、主题、保存历史及管理员 AI 权限说明。界面模式保存到本机,历史通过服务端偏好接口保存;AI 执行模式在发送框左侧选择。
- 语音播报:百炼密钥、地域、模型、音色、语言、音量,以及试听和停止。
- 语音输入:NLS 凭据、地域、识别开关、“识别后立即发送”和可选麦克风后端状态。
各标签的开关、下拉框、地域和文本参数均在修改后自动保存,无需点击保存;切换标签或关闭页面保留已保存的修改。语音凭据允许逐项填写,试听或实际使用时才校验完整参数;空白、非整数或越界音量会提示错误并保留原音量,不阻止其他参数保存。界面模式在返回助手时应用,并保留聊天草稿。离开语音播报标签或关闭设置会停止本页试听。设置指令统一为 /settings(保留“设置”“系统设置”中文别名),未启用识别时按 F8 仍进入语音输入标签。服务端模型与计费配置继续由服务端文件管理,不在客户端设置中编辑。
助手输入框 /settings 打开统一设置,选择“语音输入”,填写 NLS AppKey 与阿里云 AccessKey ID / Secret 后开启,临时 Token 自动签发并按需刷新;/listen 或输入框旁“语音输入”开始录音,结束后填入草稿,Enter 发送。也可开启“识别后立即发送”,最终识别结果连同已有草稿自动发送;默认关闭。修改自动保存于客户端 config/system/system-asr.json。操作、权限、独立次数计费见语音识别。
统一设置的“语音播报”标签可以配置客户端阿里云 TTS。默认关闭,填入百炼密钥后选择音色、试听,所有修改自动保存。默认模型 qwen3-tts-flash、音色 Cherry;设计音色需匹配绑定模型,按 Python 工具导出的参数手工填写,不导入 JSON。密钥和开关保存在客户端 config/system/system-speech.json。详细说明见 语音合成与音色设计。
同页的“通知音效”默认开启,无需密钥且与自动朗读独立。关闭后立即保存,不再播放通知展开提示音,正文仍按自动朗读设置播放;开启时只在首次展开播放,连续消息不重复,音量仍为播报音量的 75%。
Minecraft 26.1.2 / NeoForge 26.1.2.114。服务端与客户端均安装系统;客户端安装 ApricityUI 1.2.9 及其依赖。FTB Quests 为可选集成,具体版本见开发文档。
/system grant <系统ID> [玩家]:管理员授予数据包定义的系统;也可用/system grant <系统ID>操作自己。系统 ID 从当前存档的system:system注册表补全与校验,例如/system grant system:default Steve。首次成功后通过 HUD 显示“宿主检测 → 连接建立 → 绑定成功”提示,不打开界面;重复授予同一系统只显示已绑定通知,另一系统会被拒绝,需先 revoke。/system revoke [玩家]:管理员撤销系统并清空该玩家的业务记录,保留累计 AI / TTS / ASR 用量;省略玩家时操作自己。/system module add <玩家> <模块ID>、/system module remove <玩家> <模块ID>:管理员为已绑定的在线玩家手动启用或禁用模块,覆盖数据包的默认状态和条件,重登后保留;核心、绑定、用量等必需模块不允许手动修改。玩家和可增删模块 ID 支持补全。/system module list [玩家]:管理员查看模块列表;不指定玩家时列出服务端所有已注册模块,指定玩家时列出该玩家当前实际启用的模块。支持控制台执行;新增模块需初始化完成后才进入玩家列表。/system ai <玩家> enable|disable:管理员允许或禁用指定在线玩家的 AI;/system ai <玩家> freechat enable|disable仅控制自由聊天。status查看权限,limit <次数>设置每日额度,reset移除该玩家的管理员覆盖。支持补全,修改立即生效并自动保存,玩家收到聊天提示,界面说明限制原因;个人设置和已用额度保留。详见自由聊天与权限。/system:打开已绑定系统,使用本机上次选择的界面。/system simple、/system full:分别打开简约界面和完整工作台。/system settings:客户端直接打开统一设置页,默认进入“常规”,无需管理员权限或绑定;返回时回到游戏。助手内的/settings仍保留原页面和草稿。- 控制设置中的“系统”分类新增“打开/关闭系统界面”按键,默认未绑定;玩家可自行设键,按下打开当前模式界面,再按关闭系统页面。
/system routing:管理员/控制台查看语义服务状态、分数与分差及进程内计数。/system ftb reload:管理员/控制台重新收录 FTB 当前已加载的说明任务并重建本地索引,不要求绑定系统,不改任务进度或奖励。手工改原生磁盘文件时需先让 FTB 自身加载。/system usage:打开个人 AI / TTS / ASR 用量账本;管理员可切换“所有玩家”,或用/system usage all直接查看全服。统计独立于绑定,撤销后仍可查看。/system ask <内容>:提交自然语言请求;回复进入当前说话区域或工作台,界面关闭时显示 HUD 摘要,不主动打开窗口。/system help、/system player、/system item <查询>、/system quests [查询]、/system submittable [查询]、/system view <编号或名称>、/system claimable、/system signin、/system inbox、/system shop [查询]、/system buy <商品ID>:确定性指令入口。/system question <问题>:查询本地知识并根据资料回答,不允许联网;助手内可使用/question <问题>。/system search <问题>:先查本地,仅无结果时允许付费联网;仍需启用搜索模块。助手内可用/search <问题>或“帮我联网搜索……”。/system lottery [查询]:列出或搜索奖池;/system draw <奖池ID>:查看奖品、概率及费用,单独选择确认按钮后才执行一次抽奖。
默认未绑定。grant/revoke 需要游戏管理员权限(COMMANDS_GAMEMASTER);指定目标时只能选择一个在线玩家,控制台应显式提供目标。当前每名玩家最多绑定一个系统;存档使用独立 SystemBindings 集合预留多系统扩展,当前指令、事务与 Codec 均限制最多一项。未绑定时,助手界面、业务请求与成就奖励均不开放,独立用量账本仍可查看;/system 等入口的错误显示在原版聊天栏,不弹出系统通知或触发系统播报。授予保留其已有记录,撤销才清空业务记录。
发布 JAR 不附带默认系统或默认模块 tag,需由服务端数据包提供系统定义;开发默认示例 system:default 仅位于 src/test-mod/resources,不进入发布 JAR。系统名称与介绍填写翻译键,由客户端资源包提供各语言文本。玩家绑定的系统 ID 会持久保存;绑定通知、助手标题、欢迎区、模块条件与入口使用该玩家选中的定义,详见系统定义。修改定义后需重开世界或重启服务器;定义被移除时不会自动改绑默认系统。
revoke 删除该 UUID 的服务端玩家文件,包括绑定、对话、偏好、签到唯一标记、收件箱、订单、模型日额度、业务回执、事件任务与成就基线,并清空当前客户端系统会话。旧报价和 FTB 领取引用失效,在途任务不得在清理后回写;删除失败时返回失败,不提示清理成功。重新 grant 后从全新系统状态开始,绑定时已完成的成就不会补发奖励。已经进入 MC 背包的物品、MC/FTB 自身进度及已经发生的外部支付不会回滚;因此这组管理命令可用于测试重置,也会清除未领取权益与待核对订单。
旧 /system give 不再使用,不自动迁移旧架构权益。
服务端累计 AI / 联网用量保存在独立的 <存档>/data/system/token_usage.dat,不使用玩家附件,不受 revoke、forget、关闭记忆或重新绑定影响。同页显示 AI 实际 Token、Search/Fetch 次数与估价,以及当前账号仅存本机的 TTS/ASR 用量;未知用量单独计数,不用估算填充实际单位。完整工作台右上角的“用量统计”或简约模式的 /usage 均可进入,详见 AI / TTS / ASR 用量统计。
TTS 收费标准从客户端 config/system/system-speech-pricing.json 读取,文件缺失时先复制 JAR 中的 defaults/system-speech-pricing.json 再加载。已有配置不会被覆盖;修改后通过客户端资源重载或重启生效,不重算历史费用。配置格式及读取失败时的行为见收费标准配置。
模型接口(默认 DeepSeek)
配置按所属功能首次使用时生成。模型连接与环境变量名称配置在 system-model.json,预算在 system-agent.json。服务端进程从 SYSTEM_DEEPSEEK_API_KEY 环境变量读取密钥;配置中只保存环境变量名称,不保存密钥,不同步到客户端。
存档内的模组自管数据统一为 GZIP 压缩 NBT,目录如下;原版 SavedData 仍保留在 data/system/。旧的 system-agent/、system-database/ 不自动迁移或删除,绑定、业务记录和聊天直接使用新目录。
<存档>/system/
├── store.lock # 进程文件锁
├── players/<UUID>.dat # 绑定、偏好、模块业务和固定卡片
├── chat/<UUID>.dat # 对话和请求回放缓存
└── database/
├── shared.dat # 共享知识、任务说明书和背景缓存
└── players/<UUID>.dat # 玩家独立数据库
先在服务端启动环境中设置密钥,再正常启动服务器。引擎与模型客户端使用启动时配置快照,调整模型 JSON 后仍需要正常重启。baseUrl 支持固定 HTTPS API 前缀以及回环地址的 HTTP,自动追加 /chat/completions,拒绝跳转和任意模型指定 URL。
默认使用 deepseek-chat、JSON 输出、关闭 thinking,不自动重试或修复模型响应。每玩家每日默认最多 100 次模型请求,全服最多 4 个模型请求并发。快速默认单次请求 4 秒、任务 14.5 秒,端点延迟超过此值可能经常超时;可以在对应模块策略中调整,数值不是实测 SLA。
其他服务默认使用 OpenAI Chat Completions 格式;修改 baseUrl、model 和 apiKeyEnvironment 即可接入。providerType=auto 只为 DeepSeek 官方域名启用专用参数;DeepSeek 代理可显式设 deepseek,普通兼容服务可设 openai。jsonMode、输出 token 参数名、无密钥本地服务及 DeepSeek 思考开关见 模型接口与 DeepSeek 兼容。
轻量本地意图路由
单一操作仍由指令、本地匹配或一次模型路由选择对应工作流;需要组合任务、物品等多种读取时,可在助手输入 /reason <请求> / 分析 <请求>,或由模型路由选择综合分析。默认最多 3 轮(含最终回答),联网搜索仍先查库并单独授权,默认最多 6 轮。上限在 system-agent.json 的工作流策略中设置 reactIterations,完整字段和示例见 通用 ReAct。
system-semantic.json 默认 mode=ENFORCE:纯 Java 的领域同义词和 TF-IDF 匹配,高分、分差及输入覆盖率达标且参数齐全时直达只读模块,其余仍由配置的模型服务判断。成功校验的部分 AI 只读意图可按玩家短期精确缓存,结果数据每次重新查询。无需下载模型、安装推理引擎或配置 JVM 参数。
相似度不是概率。签到、领奖与购买不通过本地匹配或缓存直达;签到奖励仍由 AI 选择。可以改为 SHADOW 观察候选,或 OFF 关闭本地层。旧配置的开关保留,旧 ONNX 阈值不会沿用。说明和示例见 轻量本地意图路由。
两种界面
绑定、成就完成、服务端通知和界面关闭后到达的回复统一进入客户端消息队列,以 HUD 渲染,默认在底部居中、距底部 6vh。通过 Saturn 自带的 HUD 编辑器(默认右 Shift,或 /saturn hud open)拖动“系统通知”预览框调整位置,右上角勾选框控制显隐;修改立即保存到本机 config/saturn/hud.json。使用 /saturn hud system.notification reset 恢复默认位置。关闭编辑器返回游戏。突然到达的提示不会释放鼠标、抢占键盘或输入法,也不暂停游戏。按原版聊天键(默认 T)打开聊天栏后即可用鼠标点击“确定”关闭当前消息,或选择“打开系统”“查看详情”及消息自带的业务按钮;提示显示实际绑定的聊天键。
通知面板先在 240ms 内从中心向左右展开,再用 160ms 淡入文字和按钮;关闭时先淡出,再向中心收缩。连续通知保持展开,旧内容淡出后再替换并淡入新内容。收缩期间又收到通知时会顺势反向展开再淡入,进入或退出聊天栏不会重新播放开关动画;动画期间禁用按钮。
消息依次显示,每条通知持续保留,播报结束或经过一段时间都不会自动收起或跳到下一条;通过“确定”“关闭”等明确操作,或服务端更新结束当前项后才继续。Esc 仅关闭聊天栏并恢复游玩,通知继续显示。背包、系统等其他界面或 F1 会暂时隐藏提示,返回游戏后恢复当前项。通知提供业务操作和“确定”;业务操作仍使用服务端返回的可信动作,并在助手忙碌时禁用。队列最多等待 32 条,满载时丢弃最早的等待项;详细回复仍可在系统工作台查看。消息队列仅驻留当前连接,登出或成功撤销会清空;撤销完成通知在清空后重新入队。
任务通知作为可交互的小窗口使用:列表每页最多 10 个任务,上页 / 下页位于内容区,与底部“确定”分开。翻页完全在客户端进行,不替换通知或切到下一条;点击任务仍向服务端查询当前详情,详情上方的“返回列表”恢复原页码。底部“确定”结束整个当前窗口。新解锁的普通任务只有一项时直接展示详情,多项时合并为上述列表;任务完成始终一项一条通知。通知保持原宽度与高度上限,内容较长时在内部滚动。
完整工作台保留模块侧栏、结果卡片、历史与隐私按钮,始终显示对话;右上角是“用量统计”和“设置”。模块工具栏位于聊天记录下方、消息输入框上方,再点同一入口可收起。短对话靠近输入区显示,长记录正常滚动;正在查看历史时新回复不强制跳到底部。通过设置或 /mode simple 切换简约界面,视图选择保存在本机 config/system/system-client.json,不影响服务端玩法配置。
设置的“常规”页提供 AUI 原生主题切换器。点击右侧按钮选择主题后自动保存,并同步到完整工作台、简约界面、设置、用量统计和 HUD 通知;后续打开的页面与重新启动游戏后也使用该选择。默认主题为 t09-arwes-transparent,保存在 system-client.json 的 theme 字段中。主题仅影响本模组界面和当前客户端;HUD 面板外始终透明。
两种界面的消息输入均为单行,Enter 发送,输入法组合文字时的 Enter 用于确认候选。输入 /、指令前缀或中文别名时显示本地补全;上下键选择、Tab 或点击填入、Enter 执行、Esc 收起。支持 /memory on|off、/mode simple|full 等参数,以及当前回复的 选择 编号 和任务列表的 查看 编号/名称。补全不调用 AI,离线模式也能使用;自由模式不显示指令补全。物品和商城搜索框同样支持 Enter 查询。
简约界面只有当前说话区域与输入区,没有侧栏、历史列表、历史加载或业务按钮。新请求替换上一轮展示;当前回复可以滚动以阅读完整结果,事件通知不会挤掉当前选项。可用“签到”“商城”“任务”等明确短语,也可输入自然语言。查询、分页、任务自选奖励、签到交付和商城确认都通过文字操作:系统为当前回复中的可信动作连续编号,输入 选择 1、选择1、/select 1 或对应数字继续。新回复会重建编号,不能用旧编号选择旧回复中的动作。
例如:输入 商城 → 输入某个“查看兑换详情”选项的编号 → 核对当前价格 → 输入“确认支付并兑换”的编号 → 输入领取选项编号。每个阶段分别执行一次请求。模型不能代替最终支付确认。
简约模式只是显示方式,不自动修改服务端的记忆保存策略。/memory off 会关闭保存并清空对话;发送框左侧选择离线模式可关闭外部模型。/forget 清理对话记忆,/help 查看全部输入方式,/mode full 切回完整界面,/close 或 Esc 返回游戏。简约界面不执行历史查看,使用 /history 会提示切换模式。
固定任务与常驻卡片
点击任务列表或详情右上角图钉,可将任务固定在屏幕左侧。卡片显示任务标题、章节、最多三项目标及进度条;彩色勾 / 叉表示是否完成,完成后保留到手动取消固定。按聊天键(默认 T)进入交互,可滚动常驻区域并再次点击图钉取消。正常游戏不拦截鼠标,默认在背包等其他界面和 F1 时暂时隐藏。
“设置 → 常规 → 常驻卡片”可分别控制进入与退出动画(默认开启)、在其他界面显示(默认关闭)。开启其他界面显示后,可在背包等页面对照任务和物品,卡片仍只在聊天栏中交互;HUD 编辑器使用预览,F1 仍隐藏。关闭动画后卡片直接显示或隐藏。两个选项立即生效并自动保存到客户端 config/system/system-client.json,不影响其他玩家。
固定记录使用 Saturn DataStorage 保存在当前存档的玩家数据中,按服务器 / 存档及玩家隔离;重登和重启后恢复,任务进度每秒刷新。不可见或模块停用的任务暂时隐藏,恢复后继续显示。撤销系统或 reset 会一起删除固定记录,单纯清空对话记忆不会删除。该区域独立于通知,不占消息队列、不自动关闭,也不触发播报。位置与显隐在 Saturn 自带 HUD 编辑器的“常驻卡片”中调整,默认右 Shift 或 /saturn hud open。
工作台
- 对话:明确短语和指令直接分派;普通自然语言先尝试已启用的本地语义路由,再按需单次模型路由。当前每条请求只处理一个能力,模型返回澄清时提供只读入口供选择。
- 玩家概况:左侧本人模型,右侧 Saturn 标准玩家信息行(生命、饥饿、经验、维度、游戏模式、效果、资源、能力等)。不再单独重复名称 / 生命 / 等级 / 维度,也不再显示在线玩家列表;拿到不到信息时显示占位文案。模型预览默认无边框,可在卡片模板里恢复。
- 物品查询:按服务端显示名或注册 ID 搜索,结果以商城样式的分页网格展示,点击物品查看获取方式;悬停显示物品详情、注册 ID 和堆叠上限。原版服务端的名称语言可能与客户端不同,注册 ID 更可靠。
- 物品来源:
/system recipe <物品ID> [范围]、物品搜索结果只有一个匹配时的「查看获取方式」按钮,或直接问「如何获取钻石镐」——语义路由会用本地显示名表把名称解析成注册 ID 后直接路由(受system-semantic.json阈值约束),不必先查 ID。结果按「配方 / 掉落 / 标签」分类,按钮显示各类数量;默认配方每页 4 条(简约 / 通知最多 2 条)、掉落每页 12 条、标签每页 24 条,各类分别记住页码。配方显示材料格、产物数量与加工站,物品支持 tooltip,多个候选会显示可替代示例;掉落和标签采用紧凑列表。分类与翻页在卡片正文内操作,不请求 AI。范围可选all(默认)、recipe、loot、tag,省略第二个词即为完整查询。修复物品、酿造等不在服务端配方表里的来源查不到,见功能模块化。 - 任务手册:默认仅列出可见、已解锁、可推进且未完成的任务;锁定队伍不显示进行中任务。全部匹配任务放入同一个滚动列表,只展示编号、任务名称、章节与进度,不展开目标、说明和奖励。
任务 关键词或/quests [关键词]继续筛选;查看 1、查看 任务名、/view <编号或名称>或点击列表行展开详情,/system view <编号或名称>也可使用。详情按需分页显示完整说明、任务目标、普通奖励及自选奖励。未安装 FTB 时不注册详情模块、不显示任务入口。 - AI 签到:模型从服务端批准的候选包中现场选择,合法响应后才记录当日唯一权益;没有随机保底。
- 奖励收件箱:已入账奖励独立于对话保存,可手动领取到背包。
- 系统商城:搜索商品、查看价格并确认兑换。默认商品为 16 个圆石兑换 4 个火把;管理员可配置或用数据包替换。无密钥和关闭外部 AI 时仍可从侧栏或确定性指令使用。
- 系统抽奖:从侧栏、
/lottery或“抽奖”浏览数据包奖池,/draw <奖池ID>预览概率与费用。确认后按权重单抽一次,结果存入收件箱;重复确认不会重抽或再次收费。默认system:supplies消耗 1 个绿宝石,每次独立抽取,无保底。简约界面使用选择 编号完成预览、确认和领取;这些步骤均不调用 AI,抽奖结算口播只读结果和奖品名称。
任务详情、提交结果和通知中的非物品目标 / 奖励使用 FTB 原生类型图标,旁边显示数量或进度;悬停查看标题、类型、具体内容及领取状态,HUD 通知需先按 T。物品仍使用真实物品预览和原版 tooltip,自选奖励与礼包的经验奖励也适用。
任务名称、章节和描述按当前玩家的游戏语言读取;缺少翻译时使用 FTB 任务文件的回退语言,名称查找与显示共用同一标题。
任务编号对应当前玩家最近一次完整任务列表,从 1 连续编号,不受原先 8 项分页限制;展开详情不会替换这份编号列表。编号映射保留 10 分钟,按 UUID、队伍、绑定代次及记忆代次隔离,撤销、清空记忆、换队或任务重载后需要重新查询。按名称查看优先精确匹配标题或任务 ID,未精确命中时使用标题包含匹配;多个结果只显示候选简表,不擅自展开。显式名称或 ID 查询可以查看其他当前可见任务,包括已完成任务,但仍遵守 FTB 的隐藏章节及“可开始前隐藏详情”设置。
/claimable 或“可领奖励”单独列出有待领奖励的已完成任务;列表阶段不创建领取引用,展开详情后才生成两分钟有效的领取动作。自然语言领奖同样必须有详情返回的有效引用;缺少引用时先列出待领奖任务并查看详情,当前不会自由搜索后自动批量领奖。上述明确查询与查看指令均不调用 AI。
/submittable [关键词]、“可提交任务”或“可勾选任务”列出当前可由系统提交的任务,完整模式的任务页也有“可提交 / 勾选”入口。只列出可见、已解锁、未完成、玩家未暂停,且至少有一个受支持、未完成、顺序允许的手动目标;已经完成的手动目标和只能在 FTB 界面提交的目标不会让任务进入此列表。编号与普通任务列表共用,可继续 查看 1 或 提交 1。可提交表示允许调用原生提交入口,不保证背包材料充足、自定义检查成功或一次完成;FTB 允许部分提交,实际进度由原生接口决定。查询本身不会消耗物品或经验。
需要手动提交的任务按 FTB 目标类型与配置判定:一个任务中只要有一个这样的目标就算,不限于消耗物品。可在助手输入框发送 提交 1、提交 任务名、/submit <编号或名称>,或在原版聊天栏使用 /system submit <编号或名称>。编号与“查看”共用最近一次任务列表,重名时先查询再选;明确提交会处理选中任务中支持的原生消耗物品、勾选、经验及手动自定义按钮目标,不触发击杀、观察等自动检测目标。仅任务界面物品、流体、能量与其他未适配的资源目标仍在 FTB 中操作。暂停、任务顺序和前置由原接口保留,一次指令不进入重复任务的下一轮。查询、通知和播报都不会主动提交;提交工具不进入模型自动路由。
任务通知和详情共用服务端选定的 QuestSubmission:只剩原生勾选目标时显示“完成此任务”,存在其他当前可提交的受支持手动目标时显示“提交任务”,否则不显示提交按钮。按 T 点击,或在通知中语音说对应按钮文字,才调用原生提交;“提交任务”也识别“提交材料”等别名。提交可能消耗物品或经验;勾选专用动作携带 checkmarkOnly=true,不会消耗资源。服务端执行时重新检查前置、队伍锁定、玩家暂停、目标顺序和剩余目标,旧的勾选按钮不能变成资源提交。真正仍被前置锁定的任务不会因此跳过依赖,介绍任务过滤及新手礼包领取流程保持原有规则。
“语音播报”设置提供任务详情、奖励和背景开关,默认开启详情与奖励、关闭背景。关闭详情只读名称和奖励,开启后追加要求;背景只提取 FTB 原说明中的真实叙事,空白、操作解释或无法确定的内容省略。常见目标直接格式化,特殊目标与奖励的模型整理片段缓存在服务端内存;背景判定按任务唯一 ID 与语言保存在存档 system/database/shared.dat 的 system:quest_backgrounds 表(GZIP 压缩 NBT),包括成功判定为无背景的结果,内容或提示词变化后重新生成。关闭外部 AI 时不联网,可复用缓存;未缓存目标使用原文,未缓存背景省略。详情见语音合成。
安装 FTB Quests 后,任务完成会自动发出“叮——任务完成”系统消息;同一批进度变化解锁的普通任务只有一项时直接展示详情,多项时合并成一条“叮!已解锁 N 项新任务”列表通知。先逐条显示本批完成项,再显示礼包汇总(若有)和解锁通知;列表按章节 / 任务顺序显示名称、章节与进度,每页 10 项,按聊天键(默认 T)后可在内容区翻页、点击任一行查看详情并返回原页。解锁列表不占用或覆盖最近一次主动查询的编号,按任务 ID 打开详情;普通查询仍支持“查看 1”。通知本身不调用 AI、不自动提交或领奖,也不覆盖当前对话选项。
系统仅在新绑定成功时通过同一通知队列依次显示:绑定消息 → 可领取的新手礼包 → 当前可推进任务概览(总数和前三项)。全部可领取礼包汇总成一条可滚动列表,只显示奖励与领取状态,不显示来源任务名;经验值与经验等级分别合计,例如六份 100 经验只显示一个“+600”图标,tooltip 同步合计。同物品且组件相同的数量合并,含原生 only_one 条件的物品保留独立。点击“查看礼包”读取完整列表,点击“领取礼包”批量领取。“确定”只关闭通知,同一连接内仍可从聊天历史的卡片领取,礼包凭证不会因等待两分钟而过期;登出、撤销或停用任务模块会清理凭证,重新连接后的历史只读。成功后静默刷新并移除已领取项,不追加成功通知,失败项保留实际提示。没有礼包或任务时跳过对应通知。已绑定玩家重新登录、重复授予和打开或关闭系统界面均不重复发送引导;撤销后重新绑定会再次触发。普通任务明确提交后如果完成,只显示任务完成通知,不重复提示提交成功或进度更新。
礼包、任务详情及任务通知的奖励区只显示一次“奖励”标题,物品与其他奖励图标紧凑横排,超出宽度自动换行;悬停查看详情。自选奖励仍保留各自选项与按钮,领取失败的礼包仍保留对应错误提示。
在通知中点击“查看任务”后,全部匹配任务直接显示在同一个可滚动列表中,每行包含名称、章节和进度;按 T 后点击对应行查看任务详情。任务较多时直接滚动,无“下一页”按钮;也可点击“查看详情”进入系统界面。任务行不会被底部操作按钮的数量限制截断。
纯介绍任务(无任务或只有原生勾选任务,且没有奖励)不会进入系统查询、详情和通知。只有原生勾选目标、不可重复且至少有一项非空物品奖励的任务,允许附带原生经验 / 等级奖励,会作为新手礼包展示:卡片直接显示物品及附带经验,点击“领取礼包”才提交勾选并领取 FTB 原奖励。领取保留 FTB 的前置、任务顺序、暂停、队伍和重复领取限制,不会自动完成介绍任务来跳过依赖。仅经验、命令 / 自选 / 随机等其他奖励、隐藏奖励、第三方任务类型和重复任务仍走普通任务流程。任务定义或队伍变化后可点“查看礼包”刷新;已领取或暂不可领取时显示实际状态。
说明书检索独立于上述进行中查询:只有勾选或没有目标、带正文且不是礼包的任务可进入本地索引。任务页可输入问题查询,也可使用 /system guide <关键词> 或助手内 /guide <关键词>、说明书 <关键词>。返回相关段落和可展开原文,不自动完成说明任务;已完成的说明仍可读取,隐藏及未达到文本解锁条件的内容不返回。原文按语言保存在存档 system/database/shared.dat 的 system:ftb_guides 表(GZIP 压缩 NBT),管理员可用 /system ftb reload 重新收录并建索引。明确查询不请求 embedding 或聊天 API;模糊自然语言仍可能走现有模型路由。详见 本地说明书检索 与 分层本地数据库。
任务完成按 FTB 队伍共享进度通知已绑定系统的在线队员;解锁判定使用与进行中列表一致的可见、可推进、未完成条件,不把首次绑定、重登或加入队伍时已有的任务全部当作新解锁。隐藏章节不通知。FTB 没有独立解锁事件,因此在进度事件后检查状态变化,并每秒补查一次锁定、重置和重复任务冷却变化。任务文件重载会重建基线;离线期间不累积通知,不补播历史完成。FTB 原生完成提示保留。
领取与失败状态
签到业务日按服务端 system-agent.json 的 timeZone 计算,默认 Asia/Shanghai;同一存档、玩家、日期只有一份每日权益。跨日返回的决策不入账。部署后不要随意改时区,当前没有时区迁移工具。
奖励先入收件箱。领取前预留交付状态;要求足够的空背包格,每种奖励条目按一格预留,格数不足时保留权益。掉线、模型失败和空背包不足都不会通过客户端文案伪装成功。
DELIVERY_UNKNOWN 或 DELIVERING 在重登后转为未知:可能在游戏写入与账本落盘间中断。系统不自动重发,管理员需要结合存档与日志人工核对。目前没有自动修复或管理员补发命令。数据库/玩家存档并非同一事务,不能保证任意崩溃后的严格一次物品交付,也可能存在存档尚未保存的丢失窗口。
FTB 回执只证明已通过 FTB 校验并执行对应奖励处理器,不能证明每个第三方奖励的物品已经到达背包。任务重置、换队、重载或引用过期后需要重新查询;自选奖励必须明确选择。
系统商城
从侧栏进入商城,选择“查看兑换详情”,核对价格后再选择“确认支付并兑换”;完整界面点击按钮,简约界面输入当前编号。每次确认购买一份;报价绑定当前玩家、商品和目录版本,两分钟过期。自然语言可以浏览商品和生成预览,实际支付需要单独的确认动作。/buy 也只生成预览,不会直接支付。
商城和抽奖统一使用 Saturn Cost 支付。物品费用使用 Saturn 的物品 / 标签匹配规则及玩家 Inventory;普通物品 ID 按类型匹配,命名、附魔、受损或带组件的同类物品也可能被消耗。不同格位范围及复杂匹配由 Saturn 决定,不再使用本模组原来的主背包精确组件扣款器。商品先进入收件箱,背包满时也可以先兑换、稍后领取。
价格可组合物品、Saturn 资源及扩展 Cost;系统币可定义为 Saturn 资源,不再单独接支付接口。当前仍没有内置的货币发放、转账或充值功能。动态费用在生成确认报价时固定,确认时重新检查支付条件;更换玩家实体或报价过期后需要重新预览。系统与 Saturn 需在客户端和服务端都安装。数据包配置见 扩展配置。
签到奖励、商城商品与抽奖奖池分别来自服务端原生 Data Pack Registry;内容变更需重开世界或重启服务器。模块的 rewards / offers / pools 可以用单个 ID、#tag 或混合数组限定可选内容,内置模块使用各表的 #system:default;新增条目还需加入相应 tag 或模块选择。相同玩家已启用的同类模块允许项取并集,限制同时适用于列表、签到选择、报价与确认扣款。tag 成员通过原版重载更新,详见模块目录可选项。
订单先持久化为 PREPARED,同时为商品预留不可领取的收件箱位置;扣款成功后将订单完成和权益解锁写在同一玩家文件事务中。同一报价的重复确认不会再次支付。已确认无扣款的失败会删除预留权益,可重新生成报价;扣款与账本之间中断的订单会显示 PAYMENT_UNKNOWN,预留权益保持锁定,重登后不会自动扣款、重发或退款,需要管理员结合订单快照和玩家存档核对。游戏存档与订单文件不是同一事务,崩溃或分别回档仍可能造成材料/权益不一致,不保证严格一次结算。
对话与隐私
服务端以存档目录和玩家 UUID 隔离历史、结果、任务与奖励。原文最多 30 天、最多 256 条事件;模型上下文只选取有界的近期事件和压缩后的历史结果,不额外调用摘要模型。
界面提供历史、清空记忆、关闭历史保存及离线 / 标准 / 扩展 / 自由模式选择。关闭保存会清空本地历史与结果缓存;关闭外部 AI 后仍可使用确定性查询和已启用的本地高把握只读直达;需要模型服务的路由回退及 AI 签到被拒绝。关闭历史保存也禁用精确意图缓存;清空记忆、修改偏好、撤销或掉线清理缓存。首次打开会同步实际偏好。简约界面通过上述文字指令管理偏好;本机界面选择作为设备设置保留,撤销玩家不会改写该文件。
清空记忆不会删除签到唯一标记、收件箱、事件去重或业务回执。模型与历史文本无权修改玩家身份、扩大工具目录或执行任意命令;发送给配置的模型服务的必要文本仍受提供商政策约束,本地清空不代表远端删除。
可选功能与侧栏
完整模式左侧直接排列各模块自行提供的入口,不显示分组标题;用量统计和设置移到右上角。被禁用的模块隐藏入口,当前工具栏若失去权限则收起,聊天记录继续显示。服务器数据包的系统定义可按玩家 condition 决定模块是否启用,详见系统定义与模块开关。手动增删覆盖在重登后保留,撤销或重置时清除;独立用量账本与客户端设置不受业务模块开关影响。默认发布定义包含 FTB 任务模块,只有安装 FTB Quests 才装配任务功能;未安装时保留定义和已有数据,不显示任务入口,也不能手动启用。
联网搜索
所有知识问答先查询本地玩家 / 共享知识及已启用 FTB 模块的可读说明书。有资料时按来源回答并展示可折叠原文,资料不完整或整理失败也不搜索;数据库异常会报告错误。/question <问题>、/system question <问题> 和普通提问不允许联网,空结果时返回提示。
只有管理员明确启用搜索模块且本次允许联网时,空结果才回退搜索。开发默认也不授予该模块,可用 /system module add <玩家> system:web_search 手动添加,发布环境需先提供对应数据包条目。完整模式的搜索页在填写问题并 Enter / 点击按钮后允许回退,打开页签不查询;/search 和明确联网表达含义相同。其他自然表达由路由模型判断,历史不延续授权。
默认复用服务端 SYSTEM_DEEPSEEK_API_KEY,连接配置为 system-search.json,换成其他聊天模型后仍可单独使用 DeepSeek 搜索。Search/Fetch 各为 5 元/千次成功且有结果的请求(0.005 元/次),模型 Token 另计;价格在 system-search-pricing.json。关闭“外部 AI”同时禁止搜索。本次问答默认最多 6 次模型、9 次工具、20 步、90 秒,单次模型最多 20 秒,查库和内部 FTB 查询也计工具次数;用 policies["system:question"] 独立调整。联网结果包含回答与折叠来源,播报只读回答。详见搜索配置、授权和预算。