1.1.6-patch3
Compatibility
Changes
简体中文
RTS Building 1.1.6-patch3
适用于 Minecraft 1.21.1 / NeoForge。
这是面向 NeoForge 1.21.1 的 Beta 诊断补丁,专门增强批量建造、单块/连锁/范围破坏的诊断能力,目的是让“长按没反应、松开后延迟停止、任务迟迟不执行、服务器整体卡顿”等问题能够从客户端一路追踪到服务端任务终态。它不会调整每 tick 工作量、挖掘速度或玩法判定,因此不把尚未定位的卡顿误报为已经修复。如果它在你的整合包中不稳定,请退回最近的稳定版 1.1.6-patch2。
玩家可见变化
- 操作日志现在能完整关联一次按下、长按、松开、网络请求、工作流、后台任务与最终结果。
- STOP 会记录真实来源,例如鼠标/按键松开、关闭界面、切换模式或被新操作替换,便于区分输入问题与服务端延迟。
- 范围摧毁会按原因汇总入队前被过滤的目标,例如采掘等级不足、工具不适合、权限拒绝、不可破坏、重复目标或达到目标上限;不会逐方块刷屏。
- 进游戏后的测试版提示会显示完整版本号,并明确提示不稳定时退回
1.1.6-patch2。 - AI 帮助中的日志摘录会保留更多 RTS 诊断、服务端健康和持久化信息。
- 诊断默认使用有界的
BASIC级别;需要更密集的任务进度时可以临时改为VERBOSE,排障结束后可改回BASIC。
技术与兼容性改进
- 新增
trace → seq → op → workflow → task关联链,以及首个任务切片等待、暂停/恢复、取消请求、终态和是否真正执行过等字段。 - 修正范围摧毁的请求目标数记录;
FILTER同时写入latest.log和服务端 JSONL,并沿用同一条 trace。 - 终态现在等待最终 Task snapshot 后只发送一次,避免旧计数、重复终态和假的任务恢复记录。
- 新增服务端 tick gap、任务队列/运行数和任务持久化加载/保存结果记录;CPU 热点仍需结合 Spark 或 JFR 判断。
- 新增有界异步 JSONL 日志:
logs/rtsbuilding/diagnostics-client.jsonl与diagnostics-server.jsonl,约 8 MiB 自动轮转并保留有限代数,不阻塞游戏线程。 - 多人游戏的客户端和服务端必须一起使用
1.1.6-patch3;patch2/patch3 混用不受支持。 - 这是 Beta,仅发布 NeoForge 1.21.1。遇到严重回归请退回
1.1.6-patch2,并同时提供客户端latest.log、服务端latest.log和logs/rtsbuilding/下的诊断文件。 - 发布候选已通过 726 项主测试、153 项 UI Core 测试、261 项 UI Kit 测试和 3 项性能债务检查,均为 0 失败。
English
RTS Building 1.1.6-patch3
For Minecraft 1.21.1 / NeoForge.
This is a Beta diagnostics patch for NeoForge 1.21.1. It focuses on batch building and single, chain, and area destruction, making held-input failures, delayed release, late task execution, and whole-server stalls traceable from client input to the server task terminal. It does not change per-tick work limits, mining speed, or gameplay decisions, so unresolved lag is not presented as fixed. If it is unstable in your modpack, return to the latest stable build, 1.1.6-patch2.
Player-visible changes
- Logs can now correlate one press, hold, release, network request, workflow, background task, and final result.
- STOP records its exact origin, including mouse/key release, screen close, mode change, or replacement by a new action.
- Area destruction aggregates pre-queue filtering by reason, including insufficient harvest tier, unsuitable tools, claim denial, unbreakable or duplicate targets, and target limits, without logging every block.
- The in-game test-build notice shows the full version and explicitly recommends
1.1.6-patch2as the rollback build. - AI Help log excerpts retain more RTS diagnostics, server-health, and persistence information.
- Bounded
BASICdiagnostics are enabled by default.VERBOSEcan be used temporarily when denser task-progress samples are needed.
Technical and compatibility improvements
- Added the
trace → seq → op → workflow → taskcorrelation chain, first-slice wait, pause/resume, cancel request, terminal outcome, and whether work ever executed. - Corrected area-destruction request target counts.
FILTERis written to bothlatest.logand the server JSONL while retaining the operation trace. - Terminal diagnostics now wait for the final Task snapshot and emit once, avoiding stale counts, duplicate terminals, and false task-restore records.
- Added server tick-gap, queued/running task, and persistence load/save diagnostics. CPU attribution still requires Spark or JFR.
- Added bounded asynchronous JSONL logs at
logs/rtsbuilding/diagnostics-client.jsonlanddiagnostics-server.jsonl. Files rotate at roughly 8 MiB with limited generations and never block the game thread. - Multiplayer clients and servers must both use
1.1.6-patch3; mixed patch2/patch3 installations are unsupported. - This Beta is released for NeoForge 1.21.1 only. For serious regressions, return to
1.1.6-patch2and provide client/serverlatest.logfiles plus the diagnostics underlogs/rtsbuilding/. - The release candidate passed 726 main tests, 153 UI Core tests, 261 UI Kit tests, and 3 performance-debt checks with zero failures.
Optional dependencies
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:5PkY7RJI:FCuoNg2W"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:5PkY7RJI:FCuoNg2W"
}

