-
released this
2026-08-09 18:25:49 +00:00 | 1 commits to main since this releaseCoreProtect support, contributed by @UPSOKen (PR #2, first external contribution, thanks!). Paste block changes are recorded under the initiating player (
#litematicafor console), WorldEdit-style removal then placement so /co rollback works; unchanged blocks are skipped. Fail-open by design: no CoreProtect, an API older than v10, or a mid-paste failure all degrade to a clean no-op without touching the paste. Newlogging.coreprotecttoggle (default true; a 4.19M-block paste goes from 5.4s to 7.1s with logging on). Note for 26.2 servers: stock CoreProtect CE 24.0 refuses MC 26.2 and disables itself, so a dev or patched build is needed for records; the hook stays dormant otherwise (verified). Also bumped to the Paper 26.2 stable dev bundle (build 111). Validated on Paper 26.2 + Folia 26.2: unit suite, boot/paste/save smokes with and without CoreProtect, DB-level attribution and replacement checks, stress paste with logging active on region threads, zero errors.sha256(LitematicaFolia-0.6.0+26.2-all.jar) = 63b838754daeb39e9390fb2192ea5b514867fa43517b37019de7e1a948c4008d
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
released this
2026-07-18 18:17:17 +00:00 | 9 commits to main since this releaseFixes server-side paste hanging forever on Leaves-derived bases (Lophine): the base protocol core claimed servux:litematics/servux:structures at the packet-decode layer even with litematics-enabled=false, silently dropping every C2S payload before the Bukkit Messenger. LeavesChannelReclaim now evicts the base codecs at bridge enable (verified decode->null). Inbound C2S logging is configurable (protocol.logInbound / logInboundHex). Validated end-to-end with ProtocolBot against the Lophine 26.2 jar (paste complete, 64 blocks, 0 err).
sha256(LitematicaFolia-0.5.1+26.2-all.jar) = 176a744de733e81ee16416abb386d4d7a07f039de3a7e614b7c037571ed35b6a
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
v0.5.0+26.2: Minecraft 26.2 port
StableAll checks were successfulBuild / build (push) Successful in 1m37sreleased this
2026-07-18 11:05:16 +00:00 | 10 commits to main since this releaseMinecraft 26.2 port + save origin-normalization
Port
- Dev bundle
26.2.build.62-beta(no stable channel yet), api-version 26.2, JDK 25. - Single NMS drift fixed:
EntityType.loadEntityRecursiveviaTagValueInputwrap. NmsBridge26_2+ candidate-list bridge factory.- PacketEvents 2.7.0 → 2.13.0 (2.7 cannot parse 26.2 version strings → Easy Place V3 was silently dead). Shades kyori
adventure-nbt+examination-*(Paper does not expose them). - Servux wire format re-verified vs upstream
26.2-0.11.1: litematicsPROTOCOL_VERSION=1, structures=2: unchanged. Protocol-bot on 776.
The v0.3.0 "0 blocks after paste" bug was a misdiagnosis
No chunk staleness ever existed: the fixture bakes region
Position=(0,64,0)and paste followsworld = origin + region Position: the repro saved the wrong box. Paste now logs each region's effective world placement, and/litematica savewrites origin-normalized regions (Position=(0,0,0)) so save→paste round-trips land where commanded.Validation
- 62 unit tests green (2 stale word-aligned PackedLongArray tests corrected; they had been red since the compact codec landed).
- Source-built Folia
ver/26.2.x: load / paste / save round-trip / Servux Direct Paste end-to-end (protocol 776): all PASS. - Lophine
26.2-917b2cf: load / paste / save PASS. ⚠️ Servux bridge CANNOT work on Leaves-lineage servers (Lophine included): their core natively implements Servux and consumesservux:*payloads before Bukkit plugins see them, even config-disabled. Commands/paste/save unaffected.
For 26.1.x servers use the v0.4.x releases.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Dev bundle
-
v0.4.2+26.1.2
StableSome checks failedBuild / build (push) Has been cancelledreleased this
2026-07-02 00:41:32 +00:00 | 12 commits to main since this releaseFixed: PasteOperation semaphore deadlock (Folia region self-deadlock)
Completes the v0.4.1 fix, which only hopped the pass-1 dispatch loop off the region tick thread.
Root cause. The pass-2 loop (
pass1All.thenCompose(...)) and the deferred-physics sweep loop (pass2All.thenCompose(...)) used a plain (non-async)thenCompose. That runs its body on the thread that completed the upstream future; completed bydone.complete(null)insideFoliaCompat.runOnRegion, i.e. a Folia region tick thread. Those loops then called the blockingacquireSlot()on that region thread. When the same region still had more pending chunk tasks than freeCHUNK_THROTTLEpermits, the region parked inSemaphore.acquire()waiting for permits only it could release → self-deadlock. Watchdog loggedTick region … has not respondedindefinitely without crashing; cumulative across Overworld + Nether. On creaclone a region was stuck ~116 h before a manual restart (issue #1); stacks atPasteOperation.java:293(pass 2) and:345(sweep).Fix.
- Both continuation loops now run via
thenComposeAsync(..., offRegionExecutor)(Folia async pool / Paper async worker) → everyacquireSlot()runs off-region; a blocked dispatch thread can no longer park a region. acquireSlot()now usestryAcquire(60 s)and reports whether a permit was taken; a timeout dispatches the chunk unthrottled + logs instead of blocking forever. ThereleasedOnceguard is seeded so an untaken permit is never over-released.
No config/schema change vs 0.4.1; in-place drop-in. Normal-load behaviour (32 in-flight chunk-task throttle) unchanged.
Fixes #1.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Both continuation loops now run via
-
v0.4.1+26.1.2
StableAll checks were successfulBuild / build (push) Successful in 30sreleased this
2026-05-28 13:38:11 +00:00 | 13 commits to main since this releaseFix region tick-thread deadlock in Direct Paste (creaclone crash 2026-05-28). Hops dispatch loop to async scheduler; adds per-player concurrent-paste gate. See CHANGELOG.md.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
v0.3.0: save-v2 + BulkRequest + Easy Place V3 (gated)
StableAll checks were successfulBuild / build (push) Successful in 42sreleased this
2026-05-24 17:41:34 +00:00 | 22 commits to main since this releaseSee HANDOFF.md + release notes in commit message
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
v0.3.0: save-v2 + BulkRequest + Easy Place V3 (gated)
StableAll checks were successfulBuild / build (push) Successful in 42sreleased this
2026-05-24 17:40:10 +00:00 | 22 commits to main since this releasev0.3.0+26.1.2
What landed (3 parallel agents)
- save-v2 NMS impl:
extractTileEntityNbt/extractEntityNbt/extractPendingBlockTicks/extractPendingFluidTicks./litematica savenow collects TE + entities + pending ticks. Known bug: block iteration viaWorld#getBlockAtreturns 0 blocks after a successful paste; chunk snapshot staleness across region threads; fix TODO. - P12 Servux BulkRequest fulfillment:
BlockEntityRequestHandler,EntityRequestHandler,BulkNbtRequestHandler+RateLimiter. Servux types 3/4/7 → 5/6/10+11 via PacketSplitter. - P13 Easy Place V3 via PacketEvents:
EasyPlaceListener+Decoder. Gated byprotocol.enableEasyPlace=falsedefault. PE 2.7.0 fails to parse Luminol-local SNAPSHOT version strings; should work on real Luminol releases. Gracefully disabled on load failure. - Async paste parse:
/litematica pastereads + parses off the command thread viaFoliaCompat.runAsync. Fixes Folia Watchdog ERROR on 3.5+ MiB schematics.
Verified
- Build green; 62 tests pass (was 46)
- Direct Paste end-to-end via Java protocol bot;
paste complete: 64 blocks, 0 err in 219ms - Plugin enable/disable clean
- Jar 3.1 MiB (shaded with PacketEvents 2.7.0)
Not yet verified (real-client smoke)
- Direct Paste from a vanilla Litematica + Servux client (the wire format is byte-aligned with upstream Servux 26.1.2-0.10.2, but only the Java bot has run it end-to-end)
- Easy Place V3 with X-fractional encoding (no real-client test)
- BulkRequest flow with a live client requesting bulk NBT
- Save round-trip (KNOWN BUG: 0 blocks captured)
Compatibility
- Paper/Folia 26.1.2+, JDK 25
- Litematica Fabric 0.27.6 maruohon (verified: has full Servux client integration)
Assets
LitematicaFolia-0.3.0+26.1.2-all.jar(3.1 MiB)
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- save-v2 NMS impl:
-
v0.2.0: Servux Direct Paste validated
StableAll checks were successfulBuild / build (push) Successful in 27sreleased this
2026-05-24 14:39:29 +00:00 | 24 commits to main since this releasev0.2.0+26.1.2: Servux Direct Paste validated
What landed
- P11a; wire format byte-for-byte aligned with upstream Servux
26.1.2-0.10.2. 7 discrepancies fixed (metadata over-specification,ChunkPospacked-long,DirectPasteHandlerrewrite,PacketSplitter, Easy Place misconception, channel aliases). Full spec atSERVUX_WIRE_FORMAT.md. - P11b; autonomous end-to-end smoke. Headless Java protocol bot (
test-harness/protocol-bot/ProtocolBot.java) drives MC 26.1.2 (proto 775) login → config → play → Servux Direct Paste. Reproducible PASS:paste complete: 64 blocks, 0 TE, 0 entities, 0 err in 219ms. - P11c; local Fabric client harness.
test-harness/fabric-client/installs Fabric Loader 0.19.2 + MC 1.21.11 + Litematica 0.26.8 + MaLiLib + Fabric API for visual smoke. Servux is server-only; no client-side mod required. - 10 new
ServuxByteCompatibilityTestcases. Byte equality with hand-computed reference sequences. Total tests now 46.
Compatibility
- Paper/Folia 26.1.2+
- JDK 25
- Works with any vanilla Litematica client (the Direct Paste happens via Servux protocol, which Litematica speaks natively when paired with a Servux server)
Activation
Default is still opt-in. To expose Direct Paste on a server:
enableServuxBridge: trueinplugins/LitematicaFolia/config.yml/litematica reload- Restart not required.
Assets
LitematicaFolia-0.2.0+26.1.2-all.jar(129 KiB); drop inplugins/
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- P11a; wire format byte-for-byte aligned with upstream Servux
-
v0.1.0: first release
StableAll checks were successfulBuild / build (push) Successful in 22sreleased this
2026-05-24 03:16:55 +00:00 | 32 commits to main since this releaseLitematicaFolia 0.1.0 for Minecraft 26.1.2: first public release.
Highlights
- Read
.litematicv6/v7 (gzip NBT); palette, packed block states, tile entities, entities, pending ticks /litematicaBrigadier command tree:paste,save(blocks only v1),materials,list,info,cancel,reload- Folia-safe paste via per-chunk
RegionSchedulerdispatch (the axiom-paper-folia recipe), two-passobserversLast, deferred physics sweep - Cooperative
/litematica cancel [ticket]: flips anAtomicBooleanchecked between writes - Paper 26.1.2 NMS bridge:
loadTileEntityNbt,spawnEntityFromNbt, scheduled block/fluid ticks, DataFixerUpper, no-op fallback - Servux-compatible network bridge (off by default); wire-level compatible with vanilla Litematica EasyPlace V3
- Smoke + paste-smoke harness PASS on Luminol 26.1.2
- 256x64x256 (≈4.2M cells) stress fixture + harness
Status
- Smoke harness: PASS
- Paste smoke (real
.litematicpaste via RCON): PASS - Stress smoke: see CHANGELOG.md
- Build:
LitematicaFolia-0.1.0+26.1.2-all.jar(~128 KiB)
Limits / open work
/litematica saveis blocks-only; TE/entities/pending-ticks not yet serialised- FAWE adapter (Phase 3) on hold;
mvn.intellectualsites.comNXDOMAIN - Servux bridge wire-tested but not validated against a real Litematica client
- See CHANGELOG.md for full changelog and DISK_USAGE.md for sizing guidance
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Read