Rustic Craft 2 2.2.0
What's new
Rustic Craft 2 — v2.2.0
The Brass Age.
What's new
- The Brass Age — a full powder-and-steel progression arrives: gunsmithing built from real parts, proof and carry discipline, and the industry around it. What you can make — and what it costs to hold — is found in play.
- The Straja's domain gains machinery — new institutional systems now run server-side: order, labor, and commerce are mechanics now, not lore. You meet them when they meet you.
- Simply Swords, with rules — unique weapons join the arsenal, wrapped in a fairness layer that keeps special abilities answerable rather than absolute.
- Horseman 1.5.13 + Decorative Particle 1.2.0 — mounted-combat fixes (incl. MC-100830) and new ambient effects.
- Rusti 2 Skins, built in — the NPC skin collection now ships inside the pack through KubeJS assets: no separate resource pack, no server download.
Holstered weapons now render on your back and hip for everyone, not just the server.
Server admin notes
kubejs/config/web_server.jsonships disabled with an empty auth token (sanitized); keep your live file — the delta leaves it untouched.resource-pack=/resource-pack-sha1=inserver.propertieswere only needed for the old skins zip and can be removed.create-aeronauticsandAnimalHusbandrystill require a manual client download (authors disabled API distribution) — the prompt is the sanctioned path, not an error.
Installing on the server (2.1.11 → 2.2.0)
Uses rustic-craft-2-server-delta-2.1.11-to-2.2.0.zip + scripts/apply_delta.py from the repo. The applier verifies every checksum and — on format-2 deltas like this one — refuses to overwrite files whose bytes differ from the version it was computed against. Locally evolved server files are skipped and reported, never clobbered.
Do not use scripts/sync_server.py for this upgrade — it overwrites same-path KubeJS files. It is for dev/staging syncs only.
- Stop the server.
- Back up the server directory — at minimum
kubejs/,config/,world/. - Download
rustic-craft-2-server-delta-2.1.11-to-2.2.0.zipandrustic-craft-2-server-delta-2.1.11-to-2.2.0.zip.sha256from this release. Verify:sha256sum --strict --check rustic-craft-2-server-delta-2.1.11-to-2.2.0.zip.sha256 # Windows PowerShell: (Get-FileHash .\rustic-craft-2-server-delta-2.1.11-to-2.2.0.zip).Hash -eq ( Get-Content .\rustic-craft-2-server-delta-2.1.11-to-2.2.0.zip.sha256).Split(" ")[0].ToUpper() - Discover the server's current version. If
.rc2-server-versionexists at the server root, it wins — omit--assume-versionentirely. If the file is absent, first confirm which pack version is actually installed (this delta needs2.1.11); only then pass--assume-versionwith that version — the flag is a claim of fact, not a guess, and the applier refuses a mismatched base. If your server is on an older stable, apply the intermediate deltas in order first. - Dry-run the plan (changes nothing):
Expect# marker present (reads .rc2-server-version itself): python scripts/apply_delta.py rustic-craft-2-server-delta-2.1.11-to-2.2.0.zip \ --target /path/to/server # marker absent AND you've confirmed the server is at 2.1.11: python scripts/apply_delta.py rustic-craft-2-server-delta-2.1.11-to-2.2.0.zip \ --target /path/to/server --assume-version 2.1.11write 3739, already current 1, remove 0, conflicts 8— the 8! CONFLICTlines are the KubeJS files your live server evolved past the pack; they will be skipped. - Apply (same
--assume-versionrule as step 5 — shown here for the marker-absent case):
Expect exit code 2 withpython scripts/apply_delta.py rustic-craft-2-server-delta-2.1.11-to-2.2.0.zip \ --target /path/to/server --assume-version 2.1.11 --applyapplied with 8 unresolved conflicts; live files kept and version NOT stamped.— every addition lands, the 8 live files stay byte-identical,.rc2-server-versionis not advanced yet. - Review the conflict list, then resolve (same
--assume-versionrule — shown for the marker-absent case):
Exit# live versions win (recommended — matches the verified state): python scripts/apply_delta.py rustic-craft-2-server-delta-2.1.11-to-2.2.0.zip \ --target /path/to/server --assume-version 2.1.11 --apply --keep0, version stamped2.2.0, kept files recorded in.rc2-backups/2.1.11-to-2.2.0/SKIPPED.json. The second run is idempotent (already current 3740). Use--forceinstead of--keeponly if you want the pack's versions — live files are copied into.rc2-backups/first either way. - Restart the server and verify in
logs/latest.log:Done (...),Loaded N/N KubeJS ... with 0 errors, and your usual systems (mines, checkpoint, economy) responding. - If the apply prints
! download manuallylines for any mod jar, fetch those files from the linked CurseForge file pages and drop them intomods/— everything else, including the 8 new mod jars, is applied by the delta itself.
--keep scope note: --keep preserves locally modified files. Pack-declared mod removals still apply (the removed jar is backed up under .rc2-backups/); this delta declares zero mod removals anyway.
Compatibility
- Minecraft 1.21.1 · NeoForge 21.1.248 · 299 mods (9 added, 0 removed, 0 changed vs 2.1.11)
- Verified: manifest validation, 90/90 unit tests, headless dedicated-server boot of the shipped payload composed with the live baseline (KubeJS 82/82 server + 6/6 startup scripts, 0 errors), and this exact delta applied against a copy of the live server baseline — all 8 diverged live files preserved byte-identical.
This mod has no additional files

