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.
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 main2026-05-28 20:42:39 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Trains now need fuel
realisticTrains = truein Rails server config.bns-fueldatapack with tiered fuel_ticks for TFMG fluids: crude_oil (8k), furnace_gas (12k), naphtha/kerosene (24k), gasoline (36k), diesel (48k).CBC tier balance preserved + safety
disableAllCannonFailure=truefrom v0.28 hotfix that broke bronze/steel/nethersteel tiering.overloadBurstChance = 1.0— overload your cannon, lose your cannon (this IS the tier mechanic)failureExplosionPower = 0.0— no collateral blast when it diesWhat is NOT supported (verified via bytecode)
Test plan
Found new data pack file/bns-fuel).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>