From e84de6c190e4a9103883feb73d4b4887daf7af33 Mon Sep 17 00:00:00 2001 From: Matt Date: Thu, 28 May 2026 20:42:38 +0000 Subject: [PATCH] =?UTF-8?q?pack:=20v0.29.0=20=E2=80=94=20train=20fuel=20re?= =?UTF-8?q?quirement=20+=20CBC=20tier-preserving=20safety?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- .../createbigcannons-server.toml | 12 ++-- .../defaultconfigs/railways-server.toml | 67 +++++++++++++++++++ .../railways_liquid_fuel/tfmg_crude_oil.json | 4 ++ .../bns/railways_liquid_fuel/tfmg_diesel.json | 4 ++ .../tfmg_furnace_gas.json | 4 ++ .../railways_liquid_fuel/tfmg_gasoline.json | 4 ++ .../railways_liquid_fuel/tfmg_kerosene.json | 4 ++ .../railways_liquid_fuel/tfmg_naphtha.json | 4 ++ .../world/datapacks/bns-fuel/pack.mcmeta | 6 ++ pack/pack.lock.json | 4 +- 10 files changed, 105 insertions(+), 8 deletions(-) create mode 100644 pack/overrides/defaultconfigs/railways-server.toml create mode 100644 pack/overrides/world/datapacks/bns-fuel/data/bns/railways_liquid_fuel/tfmg_crude_oil.json create mode 100644 pack/overrides/world/datapacks/bns-fuel/data/bns/railways_liquid_fuel/tfmg_diesel.json create mode 100644 pack/overrides/world/datapacks/bns-fuel/data/bns/railways_liquid_fuel/tfmg_furnace_gas.json create mode 100644 pack/overrides/world/datapacks/bns-fuel/data/bns/railways_liquid_fuel/tfmg_gasoline.json create mode 100644 pack/overrides/world/datapacks/bns-fuel/data/bns/railways_liquid_fuel/tfmg_kerosene.json create mode 100644 pack/overrides/world/datapacks/bns-fuel/data/bns/railways_liquid_fuel/tfmg_naphtha.json create mode 100644 pack/overrides/world/datapacks/bns-fuel/pack.mcmeta diff --git a/pack/overrides/defaultconfigs/createbigcannons-server.toml b/pack/overrides/defaultconfigs/createbigcannons-server.toml index 79ee8f0..d68ac92 100644 --- a/pack/overrides/defaultconfigs/createbigcannons-server.toml +++ b/pack/overrides/defaultconfigs/createbigcannons-server.toml @@ -4,33 +4,33 @@ #. #. #If true, cannons cannot fail whatsoever. Equivalent to setting all the chances below to zero. - disableAllCannonFailure = true + disableAllCannonFailure = false #. #Chance that a fired projectile will get stuck in a barrel after exceeding the squib ratio. 0 is 0%, 1 is 100%. # Default: 0.25 # Range: 0.0 ~ 1.0 - squibChance = 0.25 + squibChance = 0.0 #. #Chance that a cannon will fail if a Powder Charge is ignited in a "barrel"-type cannon block. 0 is 0%, 1 is 100%. #This chance can be affected by stronger and weaker charge blocks. # Default: 0.20000000298023224 # Range: 0.0 ~ 1.0 - barrelChargeBurstChance = 0.20000000298023224 + barrelChargeBurstChance = 0.0 #. #How strong the explosion of a catastrophic failure is. Scaled by the amount of charges used in the shot. # Default: 2.0 # Range: 0.0 ~ 3.4028234663852886E38 - failureExplosionPower = 2.0 + failureExplosionPower = 0.0 #. #Chance that a cannon loaded with more Powder Charges that it can handle will fail. 0 is 0%, 1 is 100%. # Default: 0.5 # Range: 0.0 ~ 1.0 - overloadBurstChance = 0.5 + overloadBurstChance = 1.0 #. #Chance that a load with gaps between the loaded Powder Charges will not completely combust. 0 is 0%, 1 is 100%. # Default: 0.33000001311302185 # Range: 0.0 ~ 1.0 - interruptedIgnitionChance = 0.33000001311302185 + interruptedIgnitionChance = 0.0 #. #These values affect the characteristics of cannon munitions. diff --git a/pack/overrides/defaultconfigs/railways-server.toml b/pack/overrides/defaultconfigs/railways-server.toml new file mode 100644 index 0000000..9b03cce --- /dev/null +++ b/pack/overrides/defaultconfigs/railways-server.toml @@ -0,0 +1,67 @@ +#. +#Miscellaneous settings +[misc] + #. + #Coupler will require points to be on the same or adjacent track edge, this will prevent the coupler from working if there is any form of junction in between the two points. + strictCoupler = false + #. + #Allow controlling Brass Switches remotely when approaching them on a train + flipDistantSwitches = true + #. + #Max distance between targeted track and placed switch stand + # Default: 64 + # Range: 16 ~ 128 + switchPlacementRange = 64 + #. + #Allow creepers and ghast fireballs to damage tracks + creeperTrackDamage = false + #. + #Multiplier used for calculating exhaustion from speed when a handcar is used. + # Default: 0.009999999776482582 + # Range: 0.0 ~ 1.0 + handcarHungerMultiplier = 0.009999999776482582 + +#. +#Semaphore settings +[semaphores] + #. + #. + #Simplified semaphore placement (no upside-down placement) + simplifiedPlacement = true + #. + #Whether semaphore color order is reversed when the semaphores are oriented upside-down + flipYellowOrder = false + +#. +#Conductor settings +[conductors] + #. + #. + #Conductor whistle is limited to the owner of a train + mustOwnBoundTrain = false + #. + #Maximum length of conductor vents + # Default: 64 + # Range: > 1 + maxConductorVentLength = 64 + #. + #How often a conductor whistle updates the train of the bound conductor + # Default: 10 + # Range: 1 ~ 600 + whistleRebindRate = 10 + #. + #Maximum distance (in blocks) at which a conductor can be activated by looking at them + # Default: 16 + # Range: 1 ~ 64 + activationDistance = 16 + +#. +#Realism Settings +[realism] + #. + #. + #Make trains require fuel to run (either from fuel tanks or solid fuels in chests/barrels) + realisticTrains = true + #. + #Make fuel tanks only accept proper liquid fuels (so water etc can't go into them) + realisticFuelTanks = true diff --git a/pack/overrides/world/datapacks/bns-fuel/data/bns/railways_liquid_fuel/tfmg_crude_oil.json b/pack/overrides/world/datapacks/bns-fuel/data/bns/railways_liquid_fuel/tfmg_crude_oil.json new file mode 100644 index 0000000..e2bfe11 --- /dev/null +++ b/pack/overrides/world/datapacks/bns-fuel/data/bns/railways_liquid_fuel/tfmg_crude_oil.json @@ -0,0 +1,4 @@ +{ + "fluids": ["tfmg:crude_oil"], + "fuel_ticks": 8000 +} diff --git a/pack/overrides/world/datapacks/bns-fuel/data/bns/railways_liquid_fuel/tfmg_diesel.json b/pack/overrides/world/datapacks/bns-fuel/data/bns/railways_liquid_fuel/tfmg_diesel.json new file mode 100644 index 0000000..999ecc8 --- /dev/null +++ b/pack/overrides/world/datapacks/bns-fuel/data/bns/railways_liquid_fuel/tfmg_diesel.json @@ -0,0 +1,4 @@ +{ + "fluids": ["tfmg:diesel"], + "fuel_ticks": 48000 +} diff --git a/pack/overrides/world/datapacks/bns-fuel/data/bns/railways_liquid_fuel/tfmg_furnace_gas.json b/pack/overrides/world/datapacks/bns-fuel/data/bns/railways_liquid_fuel/tfmg_furnace_gas.json new file mode 100644 index 0000000..afa77ef --- /dev/null +++ b/pack/overrides/world/datapacks/bns-fuel/data/bns/railways_liquid_fuel/tfmg_furnace_gas.json @@ -0,0 +1,4 @@ +{ + "fluids": ["tfmg:furnace_gas"], + "fuel_ticks": 12000 +} diff --git a/pack/overrides/world/datapacks/bns-fuel/data/bns/railways_liquid_fuel/tfmg_gasoline.json b/pack/overrides/world/datapacks/bns-fuel/data/bns/railways_liquid_fuel/tfmg_gasoline.json new file mode 100644 index 0000000..f1e1785 --- /dev/null +++ b/pack/overrides/world/datapacks/bns-fuel/data/bns/railways_liquid_fuel/tfmg_gasoline.json @@ -0,0 +1,4 @@ +{ + "fluids": ["tfmg:gasoline"], + "fuel_ticks": 36000 +} diff --git a/pack/overrides/world/datapacks/bns-fuel/data/bns/railways_liquid_fuel/tfmg_kerosene.json b/pack/overrides/world/datapacks/bns-fuel/data/bns/railways_liquid_fuel/tfmg_kerosene.json new file mode 100644 index 0000000..412be31 --- /dev/null +++ b/pack/overrides/world/datapacks/bns-fuel/data/bns/railways_liquid_fuel/tfmg_kerosene.json @@ -0,0 +1,4 @@ +{ + "fluids": ["tfmg:kerosene"], + "fuel_ticks": 24000 +} diff --git a/pack/overrides/world/datapacks/bns-fuel/data/bns/railways_liquid_fuel/tfmg_naphtha.json b/pack/overrides/world/datapacks/bns-fuel/data/bns/railways_liquid_fuel/tfmg_naphtha.json new file mode 100644 index 0000000..5a9128e --- /dev/null +++ b/pack/overrides/world/datapacks/bns-fuel/data/bns/railways_liquid_fuel/tfmg_naphtha.json @@ -0,0 +1,4 @@ +{ + "fluids": ["tfmg:naphtha"], + "fuel_ticks": 24000 +} diff --git a/pack/overrides/world/datapacks/bns-fuel/pack.mcmeta b/pack/overrides/world/datapacks/bns-fuel/pack.mcmeta new file mode 100644 index 0000000..8b9ea09 --- /dev/null +++ b/pack/overrides/world/datapacks/bns-fuel/pack.mcmeta @@ -0,0 +1,6 @@ +{ + "pack": { + "pack_format": 48, + "description": "Brass and Sigil — Steam'n'Rails liquid fuel definitions" + } +} diff --git a/pack/pack.lock.json b/pack/pack.lock.json index e72510c..80e0553 100644 --- a/pack/pack.lock.json +++ b/pack/pack.lock.json @@ -1,13 +1,13 @@ { "$schema": "Brass-and-Sigil pack.lock.json - generated, do not edit by hand unless you know what you are doing", "name": "Brass and Sigil", - "version": "0.28.0", + "version": "0.29.0", "minecraft": "1.21.1", "loader": { "type": "neoforge", "version": "21.1.228" }, - "lockedAt": "2026-05-28T19:27:42Z", + "lockedAt": "2026-05-28T20:40:32Z", "mods": [ { "source": "modrinth",