更新日志
BTC Studio 扩展与插件的版本说明。
每条记录包含扩展名称、版本号、发布日期及变更内容。 新版本发布时会在此追加记录。
即将推出
以下扩展已经完成,正在等待发布。列在这里是为了让你知道接下来会有什么——目前尚未 发布任何 release,下面的版本号就是这些 release 将要使用的版本号。
Corpse Extension v0.1 — 首个版本
- 尸体像引擎自身的实体显示一样,为每个观看者各渲染一次,因此附近的所有人都能看到;模型动画和名牌 在 BetterModel、BTC Mob NPC 和 MythicMobs NPC 后端上均可正常运行。
- 支持 Folia:所有调度都通过兼容 Folia 的调度器进行,掉落物、经验球和粒子都在拥有该尸体的区域上执行。
- 尸体所保存的物品栏能够在重启、崩溃或重载后保留。尸体在 MySQL 可用时存入 MySQL,否则存入插件文件夹, 并在启动时恢复。
onlyOwnerCanLoot会真正生效,拾取判定绑定到尸体自身的实体 ID,而不再是四格范围内的任意右键。- 尸体定义会在每次死亡时根据世界和优先级选取,其存在时长只在该尸体上解析一次。
on_corpse_spawn、on_corpse_loot和on_corpse_expire事件会经过引擎的触发器管线,并将尸体的 拥有者、掉落物和位置作为上下文发布出去。displayName、showDisplayName、dropOnInteract、renderArmor、playDeathAnimation和deathAnimationName全部生效,且大多数设置为动态值,因此可以由占位符和 fact 驱动。- 由客户端渲染、颜色可配置的发光轮廓,尸体音效改为按附近玩家逐个发送,而不再全世界广播。
has_corpse与corpse_countfact、corpse_owner_audience受众、显示到自己尸体的距离与方向的corpse_waypoint、corpse_recovery_objective,以及带有list和clear子命令的corpse_admin_command。- 掉落物保护时间窗口,超过后尸体对所有人开放。
Custom Biome Extension v0.5
- 自定义生物群系立即生效。 定义在保存的那一刻就会注册进运行中的注册表,而不必等待服务器重启。 生成的数据包成为持久化层,而不再是唯一的途径。
- 修复:生成的数据包被服务器忽略。它的 pack format 被硬编码为一个旧值,而且被写入了服务器从不读取的 文件夹。
- 修复:
baseBiome除 plains 之外毫无作用。生物群系现在基于服务器持有的基础群系构建,并使用其自身的 编解码器编码,因此生物生成、地物和洞穴雕刻器会被继承而不是丢失。 - 修复:修改生物群系会在世界上打洞。刷新时发送的是区块卸载包,而服务器从不跟上一次重发。客户端现在 收到的是依据真实区块数据构建的生物群系更新。
- 修复:
leave_biome_event从不触发。进入与离开的监听器互相覆盖了对方的状态,导致结果取决于注册顺序。 - 修复:绘制时写入了整列的每个方块,而不是每个 4x4x4 单元格写入一个,并且是在调用线程上执行。写入现在 被调度到拥有各个区块的区域上。
- 服务器无法序列化的生物群系现在会在注册阶段被拒绝,并指明出问题的取值。此前它会被接受,随后导致每次 登录都失败。
- 按玩家的生物群系覆盖(
player_biome_overlay_action):在不改动世界、也不影响其他人的前提下, 只让一名玩家看到不同的生物群系。 - 区域绘制(
paint_biome_region_action)并带快照,以及用于还原区域的restore_biome_action。 biome_transition_cinematic:在一段过场动画的过程中改变玩家所看到的生物群系。custom_biome_preset:在多个生物群系之间共享颜色和视觉属性,并可按定义覆盖。explore_biome_objective和biome_discovery_fact:通过访问生物群系来完成的任务。- 每个读取类条目都新增了
source选项,用于选择读取玩家所看到的内容还是世界实际包含的内容。 - 移除了
/tw biome setcolor(它创建的临时生物群系从未被持久化)以及 fact 的HASH模式(其取值在 重启之间并不稳定)。 - 扩展的 jar 从 2.6 MB 降到 230 KB:它不再打包服务器本就提供的库。
Enchantment Creator Extension v0.8
- 机制上的
levelMode可将runOnLevel作为精确等级、最低等级(AT_LEAST)或最高等级(AT_MOST) 来比较。此前只能精确匹配。 eventPhase让机制的动作在当前 Bukkit 事件内执行,因此取消事件或修改伤害才会真正生效。对于排队执行的 Typewriter 交互,请将其设为 false。clientSideEffects现在具备客户端感知能力,并新增client_particle_effect动作:BTC 定制产物在可用时 使用基于 PacketEvents 的渲染器,公开的 Paper 产物则使用面向单个玩家的 Bukkit 回退方案。- 注册表键现在由
id派生。加载已有页面和物品时,原先的name会作为遗留别名保留,因此无需重新编写。 - 公开产物刻意不依赖 BTC-CORE 或 BTC Velocity:它在 Paper 1.21.x 上以 Java 21 运行,由 JDK 25 编译为 Java 21 字节码。
Numerical Storage Extension v0.9
- 交易配置中的
transactionMode:INTERNAL保留 PlaceholderAPI 加控制台命令的路径,VAULT直接 走 Vault Economy API,并忽略amountPlaceholder及各命令字段。 addCommand和removeCommand的文档此前写反了。addCommand用于完成存入存储的操作,并在持久化变更 之前 进行检查;removeCommand用于完成取出操作。- 持久化现已改为异步,并加入按产物划分的变更锁和短时缓存,因此两笔同时进行的存入不会再相互干扰。
- 存储文件迁移到技术产物路径下的 JSON 架构版本 2。基于语义化
artifactId的旧文件会备份到backups/numericalstorage/,并在首次访问时迁移——升级前请备份 Typewriter 的assets/目录。 artifactId是自动生成的技术标识符:留空即可,Typewriter 会自行填入。- 占位符改为接收显式的定义参数(
%typewriter_ns_balance_bank%),从而消除了定义 ID 本身包含下划线时, 旧的按下划线拆分所带来的歧义。 - 安装 Profiles 集成后可选启用的按档案区分的键。
2026-08-07
QuestCodex Extension v2.8
- 真正的 Minecraft 进度。 新增的
advancement_definition条目会把真实的进度写入扩展自行管理的数据包,因此它们会出现在原版进度界面中,拥有独立的标签页、进度树、边框与提示弹窗。parent引用另一个定义,所以进度树会在节点编辑器中绘制出来。 grant_advancement用于授予或收回进度,并会沿着父级链依次处理,避免出现父级未获得而子级已获得的情况。autoGrant让进度在玩家的第一个刻就被获得。用在根进度上时,标签页便能在尚未获得任何进度之前就存在。- 修复任务顺序:嵌套任务从自身所属的子分类读取顺序,未显式设置顺序的任务不再挤作一团,添加任务也不会再清除它原有的顺序。
- 任务标记支持分页,排序模式按玩家各自保存,多重追踪在重新连接后仍保持玩家选择的顺序。
OmniGUI Extension v0.11
- 物品提示框,并在 GUI 配置条目中新增
hideVanillaItemStats开关。 - 分页布局可通过新的
INDICATOR角色显示页码指示器。 - 服务器启动时校验菜单:越界的格子、缺失的模板或未知的按钮类型,会在玩家打开菜单之前就在控制台中指明。
<shift:N>无需 CraftEngine 即可生效,改由内置的 Magic Digit 字体处理。count与repeatY已明确说明为格子的重复次数,而非物品堆叠数量。
Shop Extension v1.3
- 商店不会再让玩家的余额变为负数。此前有三条彼此独立的路径都会导致这一结果。
- 无法读取的余额不再被当作零处理,
12.5k这类带格式的余额也能正确解析。
2026-08-03
QuestCodex Extension v2.7
- 新增航点显示模式:
WORLD_DIRECTIONAL沿目标的真实方向,把标记投影到玩家视线周围的球面上;TARGET_ANCHORED直接把标记放在目标处;ADAPTIVE在两者之间平滑过渡。默认仍为HUD_LOCKED, 因此现有页面不受影响。 - 新增恒定视觉尺寸与角度去重叠处理,使多个目标处于同一视线方向时,各标记依然清晰可辨。
- 新增在单个航点条目中渲染多个目标,配套新增追踪目标选择项
ALL与ONE_PER_QUEST,以及上限maxTargets。 - 修复航点忽略多重追踪的问题:次要追踪任务的目标从未被解析,因此只有主线任务会生成标记。
- 新增
quest_codex_locator_bar,在 Minecraft 1.21.6 及以上版本中,将同样解析出的目标渲染为原版 定位栏圆点,且不生成任何实体。
2026-08-02
QuestCodex Extension v2.6
- 新增对中断的 Typewriter 对话与过场动画的持久化恢复,包含最后一帧过场画面。当 Typewriter 在玩家断开 连接后触发清理事件时,恢复功能现在会保留已捕获的快照。
- 新增多任务持久化追踪,包含追踪任务菜单、专用占位符,以及一个双任务航点的公开示例。
- 新增纯文本的客户端航点,支持可配置的图标文本、居中的方块展示实体、居中的信标旋转、按层级对齐目标、 平滑插值、靠近目标放置,以及可配置的水平可见锥角。
- 在首次公开部署前,移除了旧的航点图层(物品展示实体与方向箭头)。
OmniGUI Extension v0.10
- 新增 Flex 与 Composite 布局引擎,用于响应式的格位排布与合成式菜单图层。
- 新增可复用的可寻址视图,支持继承布局池、默认视图、面包屑、视图标签,以及可选的历史记录集成。
- 新增支持视图的架构迁移与 QuestCodex 集成,并补充了 Maven 发布元数据。
- 修复视图切换:现在重建菜单时不再出现关闭再打开的闪烁,且关闭背包的操作已适配 Folia。
Shop Extension v1.2
- 基于 OmniGUI v0.10 重新构建并验证了公开版 Shop 扩展。
- 保留了现有的动态商店布局、导航历史、填充物处理、库存与限购规则,以及自定义商店按钮处理器。
- 从 Shop Extension v1.1 升级无需任何迁移操作。
MythicMobsNPC Extension v0.4.6
- 修复不含任何动画的模型忽略缩放变更的问题,处理方式与 BetterModel 扩展一致。
- 原版生物变种(猫、狐狸、狼、村民等)现在会在控制台提示一次,而不再被静默忽略:它们属于 MythicMobs 配置,该配置掌握生物的身份,并会在每次重生时覆盖这些设置。
- 修复单个数据条目失败会取消同批次其余所有条目的问题,该问题可能导致 NPC 完全没有应用任何已配置数据。
- 发光效果与装备现在作用于模型,而不再只作用于生物本体。生物本体被模型遮挡,仅设置在本体上不会显示 任何效果。
- 当模型没有承载物品的骨骼时,装备现在会在控制台提示,而不是静默地不做任何处理。
- 火焰每秒重新施加一次,避免自行熄灭;当 BetterModel 隐藏了绘制火焰所依附的本体时,也会给出提示。
- 修复 NPC 行走或沿路网移动时名牌抖动的问题:文本展示实体现在会在两次更新之间插值,而不再跳跃式传送。
BetterModel Extension v1.3
- 修复不含任何动画的模型忽略模型缩放的问题。BetterModel 只在动画播放期间重新计算模型变换,因此运行时 施加的缩放变更永远无法作用于静态模型。扩展现在会自行强制触发重新计算。
- 同一修复也适用于模型偏移,它此前走的是相同的代码路径。
- 实体数据条目现在会真正作用于模型,而不再被丢弃。已支持:发光效果、药水效果颜色(渲染为物品染色)、 亮度、公告板约束、插值时长、平移、3D 缩放、碰撞箱尺寸、装备与火焰。
- 新增
bettermodel_bone_appearance,即按骨骼设置发光、染色、附魔光效与亮度的版本,采用与bettermodel_bone_visibility相同的条件系统。 - 装备会映射到 BetterModel 的手部与头部物品骨骼。盔甲槽位会在控制台提示一次而非静默忽略,因为模型的 躯干与腿部承载着模型自身的几何结构。
- 非等比的 3D 缩放现在会发出警告,而不再静默地只取单一轴向:BetterModel 仅支持等比缩放。
- 任何对 3D 模型没有意义的数据条目(姿势、生物变种、繁殖状态等)现在会在控制台提示一次,而不再被静默 丢弃。
- 发光、染色、亮度、公告板、平移与装备现在能够在资源包重载或重生后保留,而不会退回模型的默认外观。
- 当模型没有带
ri、li或ph标签的骨骼时,装备会在控制台提示,而不是静默地不做任何处理——这正是 物品无法显示的常见原因。 - 火焰现在绘制在 NPC 的交互实体上,而非模型骨骼上:客户端会按实体的碰撞箱缩放火焰,而展示实体没有 碰撞箱,导致火焰被渲染为零尺寸。
Nexo Extension v1.0
- 新增用于判断玩家手持物、背包携带物、注视对象及所站方块的事实条目。
- 新增可获取所指物品、方块与家具的 ID 及属性的变量。
- 新增基于 Nexo 物品 ID 的给予与移除物品动作。
- 新增物品拾取、丢弃与消耗事件。
- 新增自定义方块与家具的交互及伤害事件,以及掉落物事件。
- 事件现在会把自身数据(方块 ID、位置、手持物品)传递给后续流程,对话或动作可直接使用。
CraftEngine Extension v1.0
- 任务目标已可正常工作。可绑定到任务、保存进度,并在完成时触发序列。
- 新增关于冷却时间、手持与携带物品,以及玩家所指方块或家具的事实条目。
- 新增可获取 ID、物品属性及已加载内容列表的变量。
- 新增基于 CraftEngine 物品 ID 的给予与移除物品动作。
- 新增物品拾取、丢弃与消耗事件。
- 新增放置尝试事件与击打家具事件。
- 事件现在会把自身数据传递给后续流程。
ItemsAdder Extension v1.0
- 方块与家具事件现在直接读取 ItemsAdder,而不再依据原版事件推断。这提升了可靠性,并消除了此前可能导致 触发丢失或重复的短暂延迟。
- 新增关于手持与携带物品、剩余使用次数、自定义耐久、HUD 可见性及作物生长的事实条目。
- 新增可获取 ID、物品属性及字体图像的变量。
- 新增基于 ItemsAdder 物品 ID 的给予与移除物品动作。
- 新增物品拾取、丢弃与消耗事件。
- 新增交互事件、家具放置前事件,以及自定义实体死亡事件。
- 事件现在会把自身数据传递给后续流程。
- 修复任务目标,处理方式与 Nexo 扩展一致。
2026-07-26
QuestCodex Extension v2.5
- 新增通过
quest_codex_tracking_artifact条目实现的多任务持久化追踪。 - 新增分类菜单模式
@tracked与动态标记TRACKED_QUEST_SLOT。 - 新增
/tw codex tracked命令与内部 GUI 命令codex:tracked。 - 新增 PlaceholderAPI 占位符,涵盖追踪任务数量、上限、主线任务、按索引的追踪任务、状态、目标与优先级。
- 记录了公开页面包的结构:主清单、静态追踪产物、任务定义与 GUI 设置。
OmniGUI Extension v0.9
- 新增针对内联存储与旧分页字段的公开页面架构自动迁移。
- 记录了紧凑的
storagePool/storageId与navigationButtons架构,用于减少 Typewriter 编辑器 发布时的卡顿。 - 阐明了大型 QuestCodex 菜单推荐使用的引用式菜单模式。