pack: v0.29.0 — train fuel + CBC tier-preserving safety #48

Merged
Matt merged 1 commits from feature/v0.29.0-train-fuel-and-cbc-tier into main 2026-05-28 20:42:39 +00:00
Owner

Summary

Trains now need fuel

  • Flip realisticTrains = true in Rails server config.
  • Ship bns-fuel datapack with tiered fuel_ticks for TFMG fluids: crude_oil (8k), furnace_gas (12k), naphtha/kerosene (24k), gasoline (36k), diesel (48k).
  • Vanilla lava still works via bucket-burn fallback.
  • TFMG IS in the pack, so the full refining → fuel loop is real.

CBC tier balance preserved + safety

  • Reverts the nuclear disableAllCannonFailure=true from v0.28 hotfix that broke bronze/steel/nethersteel tiering.
  • New per-lever config:
    • overloadBurstChance = 1.0 — overload your cannon, lose your cannon (this IS the tier mechanic)
    • failureExplosionPower = 0.0 — no collateral blast when it dies
    • Squib/misplace/gap chances all set to 0 (forgive user errors that arent tier-related)
  • Cannon built to spec + used within rating = immortal. Cannon overloaded past its material rating = clean loss, no fortress damage.

What is NOT supported (verified via bytecode)

  • Stress-unit-gated trains: nothing in Rails or Create consumes SU for train movement.
  • Create: Interactive on 1.21.1 NeoForge: zero builds exist, nothing depends on it.

Test plan

  • Server boots clean, KubeJS 0 errors.
  • Datapack auto-enabled (Found new data pack file/bns-fuel).
  • CBC config applied (verified all 6 fields).
  • Rails config applied (realisticTrains=true).
  • In-game: build a train, confirm it stops without fuel; refuel with TFMG diesel via Fuel Tank, confirm it moves again.
  • In-game: overload a bronze cannon, confirm clean destruction without fortress damage. Build a steel cannon, confirm it fires the same load fine.
## Summary ### Trains now need fuel - Flip `realisticTrains = true` in Rails server config. - Ship `bns-fuel` datapack with tiered fuel_ticks for TFMG fluids: crude_oil (8k), furnace_gas (12k), naphtha/kerosene (24k), gasoline (36k), diesel (48k). - Vanilla lava still works via bucket-burn fallback. - TFMG IS in the pack, so the full refining → fuel loop is real. ### CBC tier balance preserved + safety - Reverts the nuclear `disableAllCannonFailure=true` from v0.28 hotfix that broke bronze/steel/nethersteel tiering. - New per-lever config: - `overloadBurstChance = 1.0` — overload your cannon, lose your cannon (this IS the tier mechanic) - `failureExplosionPower = 0.0` — no collateral blast when it dies - Squib/misplace/gap chances all set to 0 (forgive user errors that arent tier-related) - Cannon built to spec + used within rating = immortal. Cannon overloaded past its material rating = clean loss, no fortress damage. ### What is NOT supported (verified via bytecode) - Stress-unit-gated trains: nothing in Rails or Create consumes SU for train movement. - Create: Interactive on 1.21.1 NeoForge: zero builds exist, nothing depends on it. ## Test plan - [x] Server boots clean, KubeJS 0 errors. - [x] Datapack auto-enabled (`Found new data pack file/bns-fuel`). - [x] CBC config applied (verified all 6 fields). - [x] Rails config applied (realisticTrains=true). - [ ] In-game: build a train, confirm it stops without fuel; refuel with TFMG diesel via Fuel Tank, confirm it moves again. - [ ] In-game: overload a bronze cannon, confirm clean destruction without fortress damage. Build a steel cannon, confirm it fires the same load fine.
Matt added 1 commit 2026-05-28 20:42:38 +00:00
Two related gameplay tweaks:

1. Train fuel requirement (Steam 'n' Rails)
   - Set realisticTrains = true in railways-server.toml.
     Trains now consume fuel from a Fuel Tank (liquid) or solid fuels
     in chests/barrels on the contraption. realisticFuelTanks stays
     true so tanks won't accept water/junk.
   - Ship a datapack bns-fuel/ that defines TFMG fluids as proper
     liquid fuels at tiered burn rates:
       crude_oil    8000 ticks/bucket   (raw, abundant -- entry)
       furnace_gas 12000 ticks/bucket   (cheap by-product)
       naphtha     24000 ticks/bucket   (mid refined)
       kerosene    24000 ticks/bucket   (mid refined)
       gasoline    36000 ticks/bucket   (top refined)
       diesel      48000 ticks/bucket   (top refined, longest)
     Vanilla lava bucket still works via bucket-burn fallback
     (20000 ticks). Tier curve incentivises building a real refinery.

2. CBC tier-preserving cannon safety
   - Revert the nuclear disableAllCannonFailure=true switch shipped
     in v0.28 hotfix -- it killed the bronze/steel/nethersteel tier
     balance because overloaded cannons fired without consequence.
   - Per-lever config that protects against random RNG losses while
     keeping the tier mechanic intact:
       disableAllCannonFailure = false
       squibChance = 0.0              (no random projectile-stuck)
       barrelChargeBurstChance = 0.0  (forgive misplaced charges)
       interruptedIgnitionChance = 0.0 (forgive gapped loads)
       overloadBurstChance = 1.0      (TIER STRICT -- exceed your
                                       cannon's rated propellant
                                       stress = lose the cannon)
       failureExplosionPower = 0.0    (no collateral blast when it
                                       does die from overload)
   - Effect: a cannon built to spec and used within its
     maxSafePropellantStress is immortal. Overloading dies cleanly
     per the material's failureMode, no fortress damage. User error
     (squib/misplace/gap) doesn't destroy expensive builds.

Stress units NOT supported for trains: verified by inspecting Rails
and Create bytecode, nothing consumes SU for train movement. Liquid
fuel is the supported mechanism.

Verified live: server boots clean, port 25565 binds, KubeJS loads
0 errors, Minecraft auto-enables the bns-fuel datapack, Rails
initializes the LiquidFuelManager reload listener.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Matt merged commit 4cbc8c42af into main 2026-05-28 20:42:39 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: minecraft/brass-and-sigil#48