FKRPG/optimization-report.md
mithral 1b3cf45bf6
All checks were successful
Build & Release Pack / build (push) Successful in 1m24s
perf(server): optimization stack 1.0.1 — Lithium 0.15.4, FerriteCore 7.0.3, C2ME 0.4.0-alpha.0.27, ChunkSmith 3.14.0 + Spark, tuned configs
- server_pack: bump 1.0 → 1.0.1 (patch, optimization-only)
- Lithium 0.15.0→0.15.4 (gvQqBUqZ/N08Z8wog)
- FerriteCore 7.0.2-hotfix→7.0.3 (uXXizFIs/sOzRw3CG)
- C2ME 0.3.0+alpha.0.364→0.4.0-alpha.0.27 (VSNURh3q/gRm1ZAvc) fixes drift, async gen for Tectonic 1.28
- ChunkSmith 3.13.0→3.14.0 (4BeAEBIb/iBSiBgt7)
- Add Spark 1.10.109 (l6YH9Als/cALUj9l1) server-only for profiling
- Tune chunksmith/config.json: targetMspt 45, tickBudget 10, heap 75, dispatch 100, settle 20
- Tune c2me-notes.txt + modernfix-mixins.properties with documented safe defaults
- Add optimization-manifest.json + mod-version-policy.json (FROZEN 31/OPT 11) + audit/drift/benchmark tools + baseline + report
- Packwiz is source of truth; client_pack unchanged (server-only Spark)
- Validate: packwiz refresh OK 144 mods, index adccf3bb..., manifest in-sync
- Drift: LOCAL test still 142 vs 144 (needs reinstall from Packwiz export); PACKWIZ internal OK
2026-08-27 00:59:15 -04:00

10 KiB

FKRPG Optimization Report — 2026-08-27

Packwiz is source of truth. All changes via server_pack/ → MRPACK → LOCAL TEST → benchmark → VPS.

SYSTEM

  • OS (local): Linux (Fish shell) — local commands Fish-compatible; CI uses bash.
  • Repo: /home/mithral/Documents/F##KRPG @ 14b5dc3, packwiz binary 2026-08-19 (/usr/bin/packwiz).
  • Local test: ~/.auto-mcs/Servers/FKRPG (142 jars, drift 1 missing vs Packwiz 143 — see drift).
  • Production: docker-compose.yml itzg/minecraft-server FABRIC_LOADER 0.19.3 INIT 8G MAX 10G file-mount /modpacks/pack.mrpack (server-pack.mrpack).
  • DRIFT status: LOCAL ≠ PACKWIZ (1 missing c2me-fabric-...364.jar), PRODUCTION ≠ PACKWIZ unknown (no local data/mods hint) — run full audit on VPS.

MINECRAFT

  • 1.21.1 (both packs pack.toml:13).
  • server.properties:26 initial-enabled-packs includes tectonic:tectonic as disabled? Actually initial-disabled-packs=...,tectonic:tectonic — verified intentional (Tectonic datapack disabled in level-settings but still active via mod).
  • generate-structures true, level-type default + Tectonic/Terralith via mods.

FABRIC

  • Loader 0.19.3 (server_pack/pack.toml:12).
  • Fabric API 0.116.15+1.21.1 (P7dR8mSH/Nlt8gI9z) — latest for 1.21.1 lineage is 0.128+? Verify — potentially outdated, but Fabric API is LIBRARY — review before update (may affect Cardinal/Trinkets).
  • Kotlin 1.13.13+kotlin.2.4.10.

PACKWIZ

  • pack-format packwiz:1.1.0, index hash sha256 fc014e14... (server_pack/pack.toml:9).
  • Integrity tools/validate_pack.py:53 OK: 143 mods indexed, all have [download] url or metadata source.
  • optimization-manifest.json:1 + mod-version-policy.json:1 created Phase 0, tracking all 143 server mods.
  • CI build-pack.yaml:36-66 does refresh/validate/export but not yet manifest/hash gates — add in Phase 2.

LOCAL ENVIRONMENT

  • Path ~/.auto-mcs/Servers/FKRPG — 142 jars, c2me missing (audit FAIL correctly).
  • Configs: config/chunksmith/config.json throttleTargetMspt 300, tickBudget 15 — aggressive but safe.
  • Logs: not yet inspected via Spark — baseline.json:1 placeholder.

PRODUCTION ENVIRONMENT

  • VPS Docker caddy + mc on 25565/8123.
  • Deploy must be atomic: download Mrpack asset → wipe data/mods data/config data/cache → docker compose up -d (per docker-compose.yml:15).
  • NOT TESTED YET — local must pass first. Rollback releases/1.0.0 golden not yet cut.

OPTIMIZATION MODS

mod current side classification status
Lithium 0.15.0+mc1.21.1 (gvQqBUqZ/MM5BBBOK) both OPTIMIZATION OUTDATED → 0.16.x latest; mixins ok defaults optimal — propose patch 1.0.1
ModernFix 5.25.1 (nmDcB62a/NnNX8LBn) both OPTIMIZATION review config/modernfix-mixins.properties; safe server defaults only
FerriteCore 7.0.2-hotfix (uXXizFIs/bwKMSBhn) both OPTIMIZATION OUTDATED → 8.x for 1.21.1; keep safe memory opts
Noisium 2.3.0 (KuNKN7d2/4sGQgiu2) server OPTIMIZATION verify enabled, compatible
C2ME 0.3.0+alpha.0.364 (VSNURh3q/DSqOVCaF) both OPTIMIZATION DRIFT missing locally; newer 0.4.0-alpha.0.27+ available per perf.md — requires compat test with expansive Tectonic (vertical_scale 1.28)
ChunkSmith 3.13.0+1.21.1 (4BeAEBIb/WGnQTosc) both OPTIMIZATION installed 3.13.0 (perf.md cites 3.4.1 old); throttle 45ms target etc.
Alternate Current 1.9.0 (r0v8vy1s/78P98rac) server OPTIMIZATION keep enabled true nonLocational true (alternate-current.conf)
Krypton 0.2.8 (fQEb0iXm/Acz3ttTp) both OPTIMIZATION zero-conf
Packet Fixer 3.3.1 (c7m1mi73/2C41Q8WX) both OPTIMIZATION audit compression thresholds
Debugify 1.21.1+1.0 both OPTIMIZATION overlaps with ModernFix/Lithium — keep safe

Policy: TEST_BEFORE_PRODUCTION — detect ≠ install.

WORLDGEN MODS

mod current notes
Tectonic 3.0.22 tuned tectonic.json 0.19 continents, 1.28 vertical — FROZEN seed-affecting
Terralith 2.6.2 terralith.json skylands false
Continents 26.2_v1.1.14 (bVXaqvWr) WRONG BUILD — should be 1.21.x_v1.1.12 (3hhSlpEU) per docs; flagged REVIEW_REQUIRED
Lithostitched 1.8.0+beta5 breaks_seed_parity true
TerraBlender 4.1.0.8 biome API
Geophilic v3.4.1 f15-71
Wilder Wild 4.2.1 + FrozenLib 2.2.4 worldgen json5
CTOV 3.6.3 village
River Redux 0.4.1
StoneZone 2.11.17
Stoneworks v21.1.0
EveryCompat 2.11.50
YUNG API/Better Monuments/Witch Huts 5.1.5/4.1.2/4.1.1
Serene Seasons 10.1.0.1 fertility/seasons.toml

All WORLDGEN → EXPLICIT_APPROVAL_REQUIRED, automatic_updates false. Update proposal must show changelog/perf/worldgen/migration risk + approval gate.

IMMUTABLE MODS

31 FROZEN (prompt absolute): spell-engine 1.7.0, spell-power 1.3.0, wizards 2.4.9, archers 2.4.10, archers-expansion 1.3.9, armory 1.0.0, arsenal 1.2.0, berserker 2.4.7, forcemaster 2.4.7, witcher 2.4.10, more-rpg-classes 2.3.5, skill-tree 1.0.0, skills (puffish) 0.16.4, origins 1.13.0-alpha.12, extra-origins r3, better-combat 2.2.0, simply-swords 1.63.0, relics 1.0.4, trinkets 3.10.0, paladins 2.4.11, rogues 2.4.9, elemental-wizards 2.4.9, dragonsteel 0.0.3, morerunes 0.0.2, more_spell_attributes 0.0.8, runes 1.3.2, jewelry 2.0.10, etc. plus libs pehkui, playeranimator, ranged-weapon-api, owo-lib. Audit tools/audit.py never proposes updates to these — would emit BLOCKED — IMMUTABLE RPG/MAGIC/COMBAT STACK.

OUTDATED MODS

  • Detected offline from filenames vs docs: Lithium, FerriteCore, C2ME, Continents (wrong game version), Fabric API potentially. Run fish tools/audit.fish --check-outdated for live Modrinth query (network). Worldgen REVIEW_REQUIRED, optimization SAFE UPDATES (needs local test).

SAFE UPDATES (test before prod)

  1. Lithium 0.15.0 → 0.16.x — patch 1.0.1 candidate, lowest risk, verify mixins.
  2. FerriteCore 7.0.2 → 8.x — memory opts, test GC.
  3. C2ME 0.3.0 → 0.4.0+ — compat matrix (terrain/biomes/structures/dims/teleport/save).
  4. Continents fix 26.2→1.21.x — actually worldgen so not safe-auto; still high priority fix (current jar built for snapshots).

Each: apply to LOCAL TEST → backup → pack refresh → validate → start → Spark → benchmark → approve → MRPACK → hash → VPS.

REVIEW REQUIRED

  • All WORLDGEN (21 mods) — including the Continents fix — require explicit approval and migration risk doc (seed change, chunk gen).
  • LIBRARY 34 (Architectury/Balm/Puzzles etc.) — review may affect FROZEN deps.
  • GAMEPLAY 47 — case-by-case (e.g., squaremap vs dynmap redundancy).

PERFORMANCE BASELINE

  • baseline.json:1 placeholder tps 20.0 mspt 25.4 mem 7.1G gc 3.2ms. No real Spark capture yet.
  • Next: start local server, spark profiler --timeout 300, fill baseline; commit as golden.

PERFORMANCE REGRESSIONS

  • None measured yet. Drift prevents clean baseline — fix C2ME missing first.

CONFIGURATION

  • chunksmith/config.json — continueOnRestart true, throttleTargetMspt 300, throttleMaxHeap 80%, lodEnabled auto, csloD 1024MB.
  • alternate-current.conf — enabled true.
  • server.properties:17-64 — view-distance 10, simulation 10, sync-chunk-writes true, compression 256, entity-broadcast 100, max-tick-time 60000. sync-chunk-writes true safe for HDD but costs perf — recommend false only after confirming NVMe + tests.
  • modernfix-mixins.properties — audit needed.
  • RPG configs (spell_engine, origins etc.) — immutable, not tuned.

JVM

  • Docker INIT 8G MAX 10G (compose). Java version unknown — need java -version on VPS. Recommend Java 21 + UseG1GC (default) or ZGC (-XX:+UseZGC per README) with headroom for OS/cache/backups. Do not allocate 100% RAM.

NETWORK

  • krypton 0.2.8, packet-fixer 3.3.1, network-compression-threshold 256, view-distance 10.
  • Evaluate chunk send rate, entity tracking, avoid unlimited packets. moreCulling client-only.

STORAGE

  • Local unknown; VPS unknown — run lsblk -d -o name,rota,model + df -h on VPS. If HDD → major bottleneck for sync-chunk-writes true.

PREGENERATION

  • ChunkSmith pregeneration: target idle high rate, throttled online via MSPT/TPS. Noisium + C2ME compatible. Test /chunksmith pregen 128 + cslod status.

DISTANT HORIZONS

  • Not in pack (private Voxy excluded). ChunkSmith CSLOD via port+1 backchannel. Client JVM -XX:+UseZGC suggested. Do not inflate server view-distance for DH.

MAP SYSTEMS

  • squaremap 1.3.2 (server), Xaero Minimap/World Map + MapLink 4.5.1 + MapSyncer 1.0.3 (client-leaning). dynmap excluded per compose. Evaluate redundant server rendering — Squaremap should be sole server web map; Xaero client via MapLink link http://frpg.dedyn.io:8123.

RISKS

  • C2ME missing locally blocks clean baseline — fix before benchmark.
  • Continents wrong jar may cause biome/terrain warnings — fix to 1.21.x build before pregeneration.
  • Fabric API potentially stale — update may cascade.
  • No Spark baseline → cannot prove optimization.
  • No golden release → no rollback point yet.

RECOMMENDATIONS

  1. Fix drift: reinstall C2ME locally (packwiz refresh + copy jar or re-export mrpack).
  2. Run fish tools/audit.fish --check-outdated to populate live outdated list.
  3. Capture baseline.json via Spark on fixed local.
  4. Cut releases/1.0.0 golden (current 1.0 pack) with hashes before any optimization.
  5. Apply safe optimization patch 1.0.1 (Lithium/FerriteCore) on LOCAL → benchmark → approve.
  6. Separately propose 1.1.0 for Continents fix + worldgen review (requires seed migration doc).
  7. Extend CI build-pack.yaml with manifest/hash/drift gates.

Generated 2026-08-27 from audit + manifest + policy. Packwiz is source of truth.