2 Patches EN
exo edited this page 2026-07-19 20:13:48 +02:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

FR | EN

Patch reference

Per-patch reference of the Folikaii fork (Lophine 26.2 base, branch ekaii-26.2). Two reading directions: patch → option (this page) and option → patch (Options).

Consolidated sources: PATCHES.md, PICKS.md, GAP-ANALYSIS.md, BATCH5-PORTED.md, CENSUS.md. Keys and defaults were re-verified against the fr.ekaii.config.modules modules in the source tree (@ConfigClassInfo/@ConfigInfo annotations).

Overview

  • 224 minecraft patches in luminol/lophine-server/minecraft-patches/features/: 00010132 = Lophine base (summarized at the end of this page, details in CENSUS.md), 01330224 = 92 Folikaii patches (plus one direct src/main change with no patch number — pick 1.9, see "Folia race fixes").
  • Also on the Folikaii side: 5 server paper-patches (00240028: copper-golem AR, criterion thread-check, canSee, sculk-exp, tile-snapshot) and 2 API patches (0015 EntityDamageEvent, 0016 sculk-exp).
  • Togglability principle: every observable behavior added is togglable through the ekaii config instance (ekaii_config/ekaii_global_config.toml, /ekaiiconfig command). Code defaults = stock/vanilla (4 documented exceptions, see Options). Strictly behavior-identical micro-optimizations are always-on and flagged as such.
  • GPLv3/AGPL attribution: each .patch keeps the original author's From: plus a provenance line naming the source project.

Summary by group

Group Patches Count Overall gain Togglable
Folia race fixes 0135, 01430150, 0182, 0187, 0205, 0224 13 Multi-region stability: triggerable crashes/CME/NPE, RegionFile corruption, out-of-region write races Partial — 7 gated (default off), 6 pure fixes always-on
Anti-lag-machine and anti-dupe (anarchy) 0158, 01830185, 01880189, 0201, 0206, 02220223 10 Neutralizes lag machines (sand, TNT, portals, projectiles, spawns) and closes a hopper dupe class Yes — all gated (2 default-ON toggles: 0184, 0185)
Behavior-identical perf opts 01360142, 01590180 (excl. gated), 0186, 01900200 (excl. gated), 0219 40 CPU/allocations/network, result identical to stock No — deliberately always-on and flagged (incl. one sensitive case: 0159)
Gated perf opts (slight observable effect) 01330134, 0152, 0181, 0203 5 Entity/AI/XP performance with a measurable gameplay effect Yes — incl. 1 trap default-ON (0134)
Gameplay features 01540156, 0194, 0202, 0216 6 Gameplay/policy dials (default = vanilla) Yes
Client protocols and network 0153, 0157, 0199, 0213, 0215 5 Network flush, packet filtering, anti-ESP, keepalive, non-reportable chat Yes
Debug / commands 0151, 0204, 02070208, 0220 5 Admin tools (network diag) and builder commands (/clone, /spreadplayers, /schedule) Yes (0207 read at boot only)
Preprod-off (rbtest bake required) 02090212, 0214, 02170218, 0221 8 Perf/anti-cheat to validate before production Yes — all off by default (0211: default = stock)

Total: 92 patches (01330224).


Per-patch details (01330224)

Columns: no. | short name | source (fork + original author) | what it does | gain | toggle (key + default + profile). Profiles: C = creaclone (whitelisted creative), A = anarchy (eternel.eu, cracked).

Folia race fixes (13 + 1 off-stack)

No. Name Source What it does Gain Toggle
0135 RegionFile concurrent mutation race ekaii (exo), ex-0075 of the 26.1.2 fork Locks concurrent RegionFile mutation under Folia regions; complementary layer to the upstream BufferedLinear fixes chunk-corruption fix (!) NO toggle — deliberately always-on (corruption fix)
0143 EntitySelector AABB cross-region Canvas (989ae18b) @e with AABB: collects without AABB then filters intersects+predicate instead of reading out of region crash fix (thread-check trip) fixes.entity_selector_region_safe.enabled = false; ON C+A
0144 FishingHook cross-region Canvas (c0939dba) Checks TickThread.isTickThreadFor(hooked) on rod tick when the hooked entity changed region crash fix fixes.fishing_hook_cross_region.enabled = false; ON C+A
0145 TamableAnimal owner teleport cross-region Canvas (98102b62) getBlockStateIfLoaded + bypass of the out-of-region collision check in canTeleportTo/maybeTeleportTo crash fix + restores vanilla tamed-animal teleport fixes.tamable_cross_region_teleport.enabled = false; ON C+A
0146 (+paper 0025) Criterion triggers async → CME Canvas (8aba8c2b + 14553ed3) ensureTickThread/scheduleOrExecute in SimpleCriterionTrigger, ServerRecipeBook, LightningBolt, LivingEntity, PlayerAdvancements award/revoke crash fix (advancements CME) pure fix, always-on
0147 disconnectPos NPE Canvas (f7d6134b) One-line null guard in RegionizedWorldData.cleanUpConnection crash fix pure fix, always-on (Lophine upstream candidate)
0148 LevelStorageSource.resources → ConcurrentMap Canvas (97d6fd44) HashMap → Maps.newConcurrentMap() (computeIfAbsent called from multiple threads) race fix pure fix, always-on (Lophine upstream candidate)
0149 Respawn anchor cross-region Canvas (05a68895) Anchor charge consumption rewritten as a region-safe task (RegionScheduler/loadChunksAsync) race fix (out-of-region blockstate write) fixes.respawn_anchor_cross_region.enabled = false; ON C+A
0150 scheduleOrExecute player ops Canvas (59c880e3) Replaces schedule(+1 tick) with scheduleOrExecute (MinecraftServer, ExperienceCommand, RecipeCommand…) race fix; intra-tick timing changes, hence the toggle fixes.schedule_or_execute.enabled = false; ON C+A
0182 End gateway region-safe Mint 0008 Skips positions outside the tick-region in the gateway exit search Folia crash fix (End) fixes.end_gateway_region_safe.enabled = false; ON A
0187 Thread-safe bossbars Canvas (a008767c), lock-based adaptation synchronized(playerLock) on ServerBossEvent/CustomBossEvent; orthogonal to Luminol 0044 bars (verified) real CME crash fix (multi-region End dragon, plugin bossbars) pure fix, always-on
0205 updateResources region-safe Canvas (2624a2dc) Per-player reloadResources via taskScheduler; reload/Datapack#setEnabled off the safe path → explicit UOE race fix (datapack reload) pure fix, always-on
0224 Cross-region move unwind (>threshold) Canvas (8996ca32, BaconCat__) A single-tick movement ≥ threshold_blocks whose destination lands outside the region unwinds the entity tick (control-flow exception, no stack trace) and is rerouted as an async teleport on the entity scheduler, instead of applying an out-of-region setPos. Two guards: noPhysics branch (raw delta) and post-collide() (resolved displacement); full path sweep, vehicles/passengers and NaN excluded. Reuses the base Lophine unwind plumbing (patch 0022 fix_high_velocity_issue: same exception + same async-teleport catch, independent toggle) crash fix (region ownership violation: pearl guns / long-range TNT) fixes.cross_region_move_unwind.{enabled=false, threshold_blocks=30}; OFF everywhere, test long-range pearl/TNT cannons before any anarchy ON

Off-stack (src/main, no patch number) — pick 1.9 "shutdown reroute" (canvas ed2a35d0, Dueris): LevelSubRegionShutdownThread (Luminol hot level unload) gets an UncaughtExceptionHandler that, instead of the log-only handler inherited from RegionShutdownThread, escalates to a clean server shutdown scheduled onto the global tick (RegionizedServer.addTask(stopServer)). Without it, an uncaught throwable on that thread abandoned the unload halfway (write lock held, callback never completed) = zombie server. Pure fix, always-on (error path only). The original Canvas bug (full stop logic executed inline on the world thread) cannot reproduce on this base — stopServer() self-reroutes through haltServerRegionThreading(); only the "escalate + reroute" half of the pick applies.

Stack-vs-picks note: pick 1.9 (reroute stopServer → global tick, Canvas ed2a35d0) was never ported (divergence documented in RECOMMENDATIONS §1.6); same for pick 4.2 (move-unwind >30 blocks, Canvas 8996ca32).

Anti-lag-machine and anti-dupe — anarchy target (10)

No. Name Source What it does Gain Toggle
0158 Projectile chunk-load throttle Canvas (587a40e5 + NPE fixup) Limits sync chunk-loads per projectile and per region tick; removes the projectile beyond the quota; ender pearls excluded (stasis protected) anti-lag (pearl/arrow chunk-load spam) optimizations.projectile_chunk_load_throttle.{enabled=false, max_loads_per_tick=10, max_loads_before_removal=10, exclude_ender_pearls=true}; ON A after bake
0183 Don't-save falling block / primed TNT Leaf via Mint 0009+0042 Overrides shouldBeSaved: in-flight falling blocks and primed TNT not persisted on save/unload anti-lag (neutralizes saved sand/TNT lag machines; primed_tnt breaks cross-restart cannons — gameplay decision) optimizations.dont_save_entity.{falling_block=false, primed_tnt=false}; falling_block ON A
0184 Hopper stack aliasing dupe fix Paper#11945 via Mint 0012 copy(true) before shrink/grow in HopperBlockEntity.addItem anti-dupe (closes an item dupe/corruption class) fixes.hopper_stack_copy.enabled = true (default ON, keep)
0185 Zombie reinforcements no chunk load Leaf/Paper PR via Mint 0013 Removes sync chunk loads when placing zombie reinforcements anti-lag (zombie farms) fixes.zombie_reinforcement_no_chunk_load.enabled = true (default ON, keep)
0188 Sakura explosions (partial port) Sakura 0005+0026 (Samsuik) Gated: origin-block early-exit + block-counting cannon; always-on: bit-identical ray sorting. Remainder (SpecialisedExplosion batching, obstruction/density caches) deferred — depends on Sakura's per-level scheduler, not regionized anti-lag (massive TNT chains = eternel's no. 1 target) optimizations.sakura_explosions.enabled = false; ON A after rbtest bake
0189 Falling block column limit Sakura 0028, tick-stamped Folia adaptation Per-column cap on instant falling blocks per tick; non-destructive (unlike the base's Kaiiju 0027 throttler) anti-lag (sand/gravel cascades) anti_lag.falling_block_column_limit.{enabled=false, limit=32}; ON A
0201 Throttle failed spawn attempts Leaf 0200 / Paper PR 11099 Throttles, per category, spawn attempts that keep failing in the same chunk spawning perf/anti-lag (complements 0163/0169) optimizations.throttle_failed_spawn_attempts.{enabled=false, failed_attempts_threshold=1200, throttled_ticks_per_spawn_<category>}
0206 Portal entity blacklist Canvas (11b39dc1) Blocks non-player entities in nether portals / end portals / end gateways anti-lag (entity-in-portal lag machines) fixes.portal_entity_blacklist.{nether_portals, end_portals, end_gateways} = false ×3 — decision: all OFF (nether ON would break portal-based gold farms)
0222 Weak-chunk guard — random stroll Leaf 0068 (Gale/MultiPaper) RandomStrollGoal no longer picks destinations in non-entity-ticking chunks; complements the Folia region guard (ENTITY_TICKING status ≠ ownership) anti-lag (mobs pulling weak chunks) anti_lag.entity_weak_chunk_guard.enabled=false + subkey random_stroll=true; ON A after bake
0223 Weak-chunk guard — projectiles Leaf 0287 Projectiles stopped/removed before entering a non-ENTITY_TICKING chunk; pearls excluded (upstream; exclusion required by GAP) anti-lag (projectile chunk-loading) same module: subkey projectiles=true (inert while the master enabled is off)

Behavior-identical perf opts — always-on, NO toggle (40)

Result identical to stock (bit-identical or practically so); deliberately always-on and flagged here. (!) 0159 is the only heavy case: an internal chunk-system optimization, always-on by construction — the only control is operational: do not deploy an unbaked jar to anarchy production (rbtest chunk-loading bake).

No. Name Source Gain
0136 VarInt/VarLong write Gale via Mint 0034 Hot path of every packet write (identical bytes, tested with Velocity)
0137 SynchedEntityData packDirty Leaf via Mint 0036 Per tracked entity/tick (500+ boats on creaclone)
0138 BlockEntityType isValid Leaf Block entity tick micro-opt
0139 Remove stream — visible effects filter Leaf Entity effect allocations
0140 Remove stream — GolemSensor Leaf Villager AI sensor
0141 Skip distanceToSqr ServerEntity SparklyPaper via Mint 0037 Tracker sendChanges hot path
0142 CompoundTag memory footprint Mint 0055 NBT memory footprint (verified identical on review)
0159 ThreadedTicketLevelPropagator (!) Leaf via Mint 0038 Multi-threaded Moonrise ticket level propagation — batch 4, always-on, rbtest bake required before production
0160 Cache canHoldFluid Leaf Hoppers/fluids
0161 Skip stationary player computations Lithium Player tick
0162 fastutil swaps Lithium Hot-path collections
0163 Nearby players for spawning Leaf Spawn loop
0164 Baby villager sensor Leaf AI sensor
0165 Remove stream — enough-depth Leaf Breeding/pathing AI
0166 Remove stream — villagers Leaf Villager AI
0167 Remove stream — BehaviorUtils Leaf Behavior AI
0168 Remove stream — trial spawner Leaf Trial spawner tick
0169 Nearby alive players for spawning Leaf Spawn loop
0170 Cache random tick block status Leaf Random ticks (crops, etc.)
0171 SetLookAndInteract / NearestVisibleLivingEntities Leaf AI lookups
0172 Remove streams — MobSensor Leaf AI sensors
0173 LinearPalette getSerializedSize Leaf via Mint 0062 +76% on palette serialization
0174 Rewrite ClientboundLightUpdatePacketData Leaf via Mint 0063 1318× faster light packet writing (wire-identical roundtrip tested)
0175 BlockEntity ticking isRemoved Leaf BE tick check
0176 Combined heightmap update Lithium via Mint 0065 Block updates
0177 C2ME Reduce Allocations (OreFeature) C2ME via Mint 0073 Nether worldgen
0178 Faster hash palette Lithium via Mint 0079 Chunk palettes
0179 Shared block-destruction packets Gale/SportPaper via Mint 0045 One shared packet instead of one allocation per player; documented edge: BlockBreakProgressUpdateEvent no longer fired when no player is in range
0180 Noise generation Gale/C2ME via Mint 0001 Worldgen hot path (nether), bit-identical
0186 Villager golem checks Mint 0074 wantsToSpawnGolem without streams + early-exit (iron farms)
0190 AI stream removal Mint 0075 Streams removed from 11 AI classes (509 identical-behavior lines)
0191 Optimized RecipeManager Carpet-Fixes via Mint 0046 getRecipeFor up to 3× (identical results)
0192 (+paper 0026) canSee tracker SparklyPaper via Mint 0052+sp-0006 Specialized canSee in ChunkMap (hurt/sendChanges)
0193 InsideBrownianWalk Leaf via Mint 0058 Fisher-Yates instead of stream+shuffle (BlockAreaUtils copied)
0195 Tracker player updates Sakura 0016 Rescans tracker players only when necessary (gate moved into Folia's newTrackerTick)
0196 Ban-list date format Leaf 0173 Thread-safe, faster DateTimeFormatter
0197 Bulk writeLongArray Leaf 0188 Batched palette writes at chunk load
0198 Skip merging full stacks Leaf 0303 Skips merge checks for full item stacks (overstack-aware)
0200 Respawn anchor explosion Leaf 0296 Anchor-bomb hot path (daily PvP on eternel)
0219 Cached iterate-outwards Lithium via Mint 0049 BlockPos.iterateOutwards cache (POI/pathfinding); byte-identical iteration order, region-thread-safe cache

Gated perf opts — slight observable effect (5)

No. Name Source What it does Gain Toggle
0133 (+paper 0024) Copper golem activation range ekaii (EllipsiaLePoulet, exo) Dedicated spigot activation range for copper golems golem anti-lag, tunable per world spigot.yml entity-activation-range.copper-golem = 32 (identical default) — a dial, not an on/off
0134 Boat launcher sleep ekaii (exo) Puts clusters of ≥ cluster_threshold boats from launcher machines to sleep creative perf (500+ boat machines) (!) luminol_config (not ekaii_config): optimizations.boat_launcher_sleep.{enabled=true, cluster_threshold=50, cluster_check_interval_ticks=100}trap default ON: anarchy must set false explicitly
0152 Dynamic Activation Brain Pufferfish via Mint 0080 Throttles AI brain ticking based on distance to the nearest player AI perf (villagers, hordes) optimizations.dynamic_activation_brain.{enabled=false, start_distance=12, activation_distance_mod=8, maximum_activation_prio=20}; C ON-after-test, A OFF
0181 Suffocation optimization Pufferfish via Mint 0005 Skips isInWall 9 ticks out of 10 when the entity is invulnerable perf (thousands of entities) optimizations.suffocation_optimization.enabled = false; A ON-after-test
0203 Clump XP orbs DivineMC 0046 (Clump mod) Merges XP orbs of different values into a carrier orb XP farm anti-lag (gold/enderman) optimizations.clump_xp_orbs.enabled = false; ON A after rbtest mending test

Gameplay features (6)

No. Name Source What it does Gain Toggle
0154 MC-261810 firework void Canvas (1771aead) Overrides onBelowWorld: the rocket is not discarded below bedrock (if attached entity is same-region) cult anarchy gameplay (firework travel under the nether roof/bedrock) fixes.mc261810.enabled = false; C OFF, A ON
0155 MC-298464 Hoglin combat-tracker leak Canvas (360a92fc) Fixes the combat-tracker leak on CHANGED_DIMENSION memory leak fix (a 1.3 TB nether full of hoglins) fixes.mc298464.enabled = false; C OFF, A ON
0156 Player save fail-hard Canvas (2b498431) Deliberate crash with a full CrashReport when a player save fails (instead of log-and-continue) anti-dupe (prevents dupe-by-rollback) fixes.player_save_fail_hard.enabled = false; A NEVER ON (crash loop armable via forged NBT on cracked); C ON = decision
0194 Out-of-order chat check togglable Mint 0018 Makes the vanilla OUT_OF_ORDER_CHAT kick switchable QoL (spurious kicks under lag) misc.out_of_order_chat_check.enabled = true (= vanilla); false conceivable on A if spurious kicks occur
0202 Copper bulb / crafter 1gt DivineMC 0053/0054 Restores the pre-nerf 1-gametick delay: bulb via 1gt scheduled tick, crafter at 1gt instead of 4 (upstream shared-flag bug fixed during port) tech gameplay (recurring redstone community request) gameplay.copper_bulb_1gt.enabled = false + gameplay.crafter_1gt.enabled = false (= vanilla)
0216 Old-PvP combat Canvas (decided subset) Client-side ATTACK_SPEED spoof (removes the 1.9 attack cooldown, 1.8-style hit delay) + legacy pre-1.21 Blast Protection (0.15/level) gameplay (radical impact on the crystal-PvP meta) — pure dial gameplay.combat.{disable_attack_hit_delay=false, legacy_blast_protection=false} (= modern vanilla)

Client protocols and network (5)

No. Name Source What it does Gain Toggle
0153 Alternative keepalive Purpur (MIT) via Canvas features/0001 Purpur-style multi-pending keepalive: tolerates unstable connections without aggressive kicks network QoL (bots/unstable cracked connections) function.alternative_keepalive.enabled = false; A ON conceivable after bake
0157 Region tick flush Canvas (ebcecde9) Suspends/resumes the Netty flush per region tick (batched flush instead of per-packet); resumeFlushing in finally verified network perf (syscalls under load) optimizations.region_tick_flush.enabled = false; A ON after rbtest bake (interaction with Lophine 0083 mt-queue to validate under bot spam)
0199 Filter entity motion packets Canvas/Leaf 0293 Skips ClientboundSetEntityMotionPacket except for entities that visually need it (moving items, ender eyes, squids, shulker bullets) bandwidth perf optimizations.filter_entity_motion_packets.enabled = false
0213 Packet obfuscation Slice/Sakura 0007 Per-entity foreignValue: synched data seen by other players is obfuscated (naive gating's double-send fixed during port) anti-cheat (anti-ESP) + packet reduction function.packet_obfuscation.enabled = false (preprod; test legitimate mods before ON)
0215 No Chat Reports server-side Canvas Strips chat signatures + converts player chat to system chat: messages not reportable to Mojang player privacy function.no_chat_reports.enabled = false, strict (validate vanilla client + LibreLogin before any ON)

Debug / commands (5)

No. Name Source What it does Gain Toggle
0151 NetworkAnalyser Mint 0067 /networkanalyser start/stop: on-demand per-connection traffic analysis (10k conn cap, cleanup on disconnect, zero cost when stopped) bot/flood diagnostics function.network_analyser.enabled = false; C OFF, A ON (analysis remains on-demand)
0204 Disable criterion triggers Canvas features/0002 No-ops the 23 SimpleCriterionTriggers — no more advancement grants (global; Canvas was per-world) perf (advancements pointless with cracked bots) function.disable_criterion_triggers.enabled = false; A ON conceivable (decision)
0207 Restore /clone Canvas (9f444cf0) /clone re-enabled via region-scheduled snapshot (~230 self-contained lines). The /data half of the Canvas commit not taken: already gated in the base (Luminol experiment.command.enable_data_command) major builder QoL function.restore_clone_command.enabled = false; ON creaclone — read at boot only
0208 Restore /spreadplayers Canvas (9f444cf0) Region-safe /spreadplayers QoL same toggle as 0207
0220 /schedule restored Mint 0061 (residual) Re-registers /schedule under Folia (the only leftover commented out in the base; /scoreboard already covered by Lophine's CommandConfig) datapack QoL experiment.schedule_command.enabled = false, strict (timer thread-safety not validated)

Preprod-off — rbtest bake required before any ON (8)

No. Name Source What it does Gain Toggle
0209 FasterRandomSource Leaf via Mint 0050 Xoroshiro128++ ~5× for non-worldgen random; worldgen half (sp-0003) excluded by decision — eternel's seed is public, vanilla slime chunks RNG perf optimizations.fast_rng.{enabled=false, random_generator="Xoroshiro128PlusPlus", use_direct_impl=false}
0210 (+paper 0027, api 0016) Sculk catalyst exp fix Leaves via Mint 0054+sp-0004+api-0006 Correct XP at sculk catalysts — a 3-part fix (mc+paper+api) gameplay fix fixes.sculk_catalyst_exp.enabled = false
0211 (+paper 0028) Tile entity snapshot creation Airplane via Canvas Block#getState()/BlockEntity#getOwner() without snapshots when disabled (changed API contract); the commit's MTB-convert-cache half out of scope big win for polling plugins (CoreProtect, AEF, hoppers) optimizations.tile_entity_snapshot_creation.snapshot_creation = true (= stock); false to be measured with CoreProtect/AEF on rbtest
0212 C2ME worldgen extras C2ME via DivineMC 0009/0052/0059 (covers Leaf 0174) Aquifer rewrite (precomputed grid, 3-closest sampling), beardifier (array iteration, jigsaw arrays), thread-local End biome cache; hunks proven identical = always-on worldgen perf optimizations.worldgen.{aquifer_optimization=false, beardifier_optimization=false, end_biome_cache=false, end_biome_cache_capacity=1024} — aquifer is NOT bit-identical: mandatory seed-identical rbtest validation before any ON
0214 Lithium equipment tracking Lithium via Mint 0066 Equipment dirty-flag, avoids per-tick rescans; reuses the base's Leaves change-tracking infra; subscriber leak from the Mint port fixed perf (500+ boats, hordes) optimizations.equipment_tracking.enabled = false — RESTART required
0217 TT20 lag compensation TT20 via Leaf 0168 (AGPL) Fluids compensated at real TPS — wired to Folia's per-region TPS QoL under lag (double-edged on anarchy: also speeds up machines) function.lag_compensation.{enabled=false, enable_for_water=false, enable_for_lava=false}
0218 Rail optimization FxMorin via Leaf 0226 Powered-rail propagation rewritten single-pass; region-guarded reads, BlockRedstoneEvent preserved rail redstone perf optimizations.rail_optimization.{enabled=false, activation_range=8} (8 = vanilla) — anarchy redstone policy = OFF; C to test on real machines
0221 Raytrace AntiXray Leaf 0202 Raytracing-based AntiXray; SDK vendored into lophine-api, zero external dependencies anti-cheat (superior stash-hunt defense) anti_xray.raytrace.enabled = false, strict (CPU cost to measure; kept in reserve if stash-hunting becomes a problem again)

Documented deferrals (no patch, open tickets): Sakura cannon entity merging (per-level scheduler not regionized), Petal async pathfinding (world reads off the tick thread), C2ME Density Function Compiler (runtime bytecode, public seed), smooth teleports (depends on a Slice API flag), Pufferfish async mob spawning (racy by construction under Folia). Details: BATCH5-PORTED §2.3 and STATUS.md.


Lophine base (00010132) — summary and pointer

The base is not re-documented patch by patch here: see CENSUS.md (per-patch entries, verdicts) and census.json (machine-readable). 171 entries (132 mc + api/paper/build): 72 base-ok, 57 base-config-off, 17 base-config-on, 14 base-concern, 11 base-missing-toggle.

By major families:

  • Folia fixes (~35): region-threading races (brains, leash, cross-dimension pearls, projectile portals, dragon), scheduler/volatile corrections, /save-all and /datapack re-enabled region-safe.
  • Absorbed perf (~30): Gale, Leaf (radix sort sensors, PatchedDataComponentMap, move packets), Lithium sleeping block entities, Pufferfish (projectile chunk loading, goal selector), Petal sensor work, Purpur lobotomize, Krypton, SIMD maps.
  • Anti-exploit: portal rate limiter (0050), Kaiiju entity limiter (0027, separate YAML), secure seed V1/V2 (0052/0053 — never on an existing world), switchable packet limiter (0064 — do not switch off), update-suppression catch-crash (0119).
  • Leaves/Carpet gameplay features: update suppression (01190122, 0126), old-features (raid, explosion, void trade, spawn invuln), fakeplayer /bot (0114), Carpet rules pack (0128), container expansion (0086).
  • Client protocols (01020130): Servux, Syncmatica, Xaero, Jade, REI, BBOR, AppleSkin, PCA, alternative block placement — all OFF by default unless noted; enabling = creative profile.
  • Config/API/monitoring: Luminol config system, tick regions API, ChunkHot/tpsbar/membar/regionbar, bundled spark disabled (install standalone spark).

The base's trap defaults (fakeplayer, boat_launcher_sleep, portal_rate_limit, update-suppression, Syncmatica) are listed in Options and Recommendations.


Togglability audit

Behaviors WITHOUT a toggle (always-on in the jar)

46 of the 92 patches have no config lever. Three classes:

  1. Deliberate corruption/race fixes (the fix IS the intended behavior): 0135 (RegionFile race), 0146 (+p0025 criterion CME), 0147 (disconnectPos NPE), 0148 (ConcurrentMap), 0187 (thread-safe bossbars), 0205 (updateResources region-safe), plus the off-stack world-unload shutdown reroute (pick 1.9, direct LevelSubRegionShutdownThread change, error path only).
  2. Behavior-identical pure opts (result identical to stock, flagged): batch 2: 01360142, 01600178 (26 patches); batch 5: 0179, 0180, 0186, 0190, 0191, 0192 (+p0026), 0193, 0195, 0196, 0197, 0198, 0200, 0219 (13 patches). Documented edge: 0179 no longer fires BlockBreakProgressUpdateEvent when no player is in range.
  3. Flagged case (!) 0159 ThreadedTicketLevelPropagator: a heavy chunk-system optimization (batch 4, classified preprod in PICKS) ported always-on by construction. The only control is operational: do not deploy an unbaked jar to anarchy production before the rbtest chunk-loading bake.

Hybrid case: 0188 (Sakura explosions) — the "ray sorting" half is always-on (bit-identical), the rest is gated. 0133 is a dial (activation range), not an on/off.

Stack-vs-picks divergences (debt RESOLVED 2026-07-19)

  • Pick 1.9 (reroute stopServer → global tick, canvas ed2a35d0): ported as a direct src/main change (LevelSubRegionShutdownThread, outside the minecraft patch stack), pure fix always-on on an error path — details under "Folia race fixes".
  • Pick 4.2 (move-unwind >30 blocks, canvas 8996ca32): ported = patch 0224, gated fixes.cross_region_move_unwind.{enabled=false, threshold_blocks=30} (OFF everywhere; base Lophine 0022 fix_high_velocity_issue covers the same mechanism without a threshold, independent toggle, also OFF).
  • Documented deferrals with tickets: Sakura cannon merging, Petal async pathfinding, Density Function Compiler, smooth teleports, async mob spawning (BATCH5-PORTED §2.3).