Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
VikingRail
Build Viking railways with five engines, bridges, automatic gates, yard switches, turntables and useful wagons. Ride musical carriages or send steam and Eitr trains down the tracks automatically.
By teamc00lkidd
CHANGELOG
Changelog
0.46.1
- Exclude every matching powered engine from the configured cart limit, including empty engines. A default bronze train can carry three carts plus its engines; a zero cart limit still permits engine-only coupling. Apply the rule to manual end levers, automatic contact coupling and combined front/rear groups. Keep separate bounds of 21 engines and 128 traversed vehicles.
- Permit an engine-only group to join an existing powered train whose cart limit was lowered, from either coupling side, without admitting additional carts. First-engine attachment to oversized wagon-only groups and merges that add too many carts remain rejected.
- Remove the old 21-total-vehicle automatic-departure limit. Increase bounded route-anchor and attachment capacity for full legal multiple-engine trains while preserving the 25-zone area limit, ownership/inventory acknowledgement and packet-size protections.
- Keep pulling power, speed bonuses, fuel consumption, ordinary handcart behavior, recipes, assets and all 35 settings on protocol v13 unchanged. Update clients and server together; no config reset is needed.
- Version 0.46.1 validation: Release build passed with zero warnings/errors; all 3,183 Core tests and 373 targeted coupling, manual ownership, automatic-train and remote-capacity cases (10,772 assertions) passed. Native transfer packets at the new member bound remain below 32 KiB. Release checks preserve all 92 embedded assets and 35 shared settings on protocol v13; both packages are checked against the built DLL and source documentation. Managed native-contract checks do not establish live Unity, PhysX or multiplayer behavior; live acceptance remains UNRUN.
0.46.0
- Couple matching bronze, coal or Eitr engines at either free physical end, with wagons between them and either engine facing. Keep one operator for the whole train. Park and release controls before choosing any engine cab; preserve vehicle positions, facing, saved identities, cargo and attachments during the owner-authorized change. Mixed engine types and handcarts cannot share powered-engine trains.
- Share wagon/cargo resistance among available fueled engines. Each extra supplier adds 5% of the configured base speed, capped at 20% and 15 m/s overall; unloaded acceleration is not multiplied. Keep empty engines as towing load without bonus. An empty selected cab may operate using fueled partners. Each supplier spends its own fuel for accepted powered time; coasting and rejected travel remain free of propulsion costs.
- Count every extra engine against the existing attachment limit. Preserve normal wooden-track restrictions for each engine, route/stop/obstacle checks and a single motion authority. Apply signed movement effects to reversed helpers. Plows work only on exposed outer ends, with the outward leading blade selected for the actual direction of travel.
- Preserve full-train remote automatic transfer/loading for steam and Eitr, including secondary controllers and all attachments. Loaded-area-only mode requires taking and releasing controls at a secondary engine before activating that controller. Other controllers stay inactive. Existing engine fuel types, duration settings and hopper inventories remain separate.
- Preserve 86 Hammer pieces/icons, 92 embedded assets, sixteen vehicles, 29 upgrades, 35 shared settings on protocol v13 and seven personal music settings. No new config fields, recipes, pieces or assets. Retain prior downhill coasting, stamina diagnostics, two-metre growth protection and stone gravel without terrain-height changes. Update all clients/server together; uncouple additional engines before downgrading below 0.46.0.
- Version 0.46.0 validation: Release build passed with zero warnings/errors; all 3,144 Core tests and 683 targeted runtime cases (11,572 assertions) passed across movement, coupling, ownership handoff, automatic operation, native fuel transactions and plows. Compiled release checks preserve all 92 embedded resources and 35 shared settings on protocol v13. Final package checks compare both archives with the verified release DLL and preserved assets. Runtime tests use managed native-contract stand-ins; live Unity, PhysX and multiplayer acceptance remain UNRUN.
0.45.3
- Use the runtime speed's float precision for its cap, preventing repeated tiny stamina/fuel charges and powered effects after reaching decimal limits such as 4.1 m/s.
- Keep an actively powered train accelerating toward its full configured maximum when its mass-weighted downhill pull exceeds rolling resistance. Apply this to regular/tandem handcarts and bronze/coal/Eitr engines in either direction, including low throttle notches and loaded formations. Load still reduces powered acceleration.
- Switch to cost-free coasting at the configured cap while the descent sustains it. Charge fuel/stamina only for actual powered time, including the portion of a step before reaching the cap. Keep neutral, exhausted and manually driven out-of-fuel travel gravity-only; retain automatic-controller fuel stops and normal braking, reversal and route/obstacle protections.
- Preserve flat/uphill notch and load targets, carried momentum across grades and the tandem cap change when eligible assistance is lost. Hand-pushed wagons retain their existing positioning behavior. No new configuration keys, speed defaults, pieces, assets, recipes or save identities are introduced.
- Retain 0.45.2 mounting-stamina fixes and config diagnostics, two-metre growth protection, stone gravel and no automatic terrain-height edits. Install matching 0.45.3 versions on all clients and the server; keep existing configs and trains.
- Version 0.45.3 validation: Release build passed with zero warnings/errors; all 3,012 Core tests passed. The actual-source vehicle movement harness passed 183 cases (838 assertions), covering downhill acceleration, accepted fuel/stamina costs, decimal caps, both directions, weighted train slopes and movement guards. New regressions reproduced early coasting and repeated charges at decimal caps before the fixes. Both release archives and all 92 unchanged embedded assets were verified. Runtime checks use managed native-contract stand-ins; live Unity, PhysX and multiplayer acceptance remain UNRUN.
0.45.2
- Clear leftover walking direction, autorun and sprint input immediately after mounting a handcart driver or tandem pump partner. This fixes a specific extra native walking stamina drain when boarding while encumbered; normal on-foot behavior and unrelated stamina costs remain unchanged.
- Show the effective base pumping rate in the driving HUD, including
Stamina: 0/s base (disabled)when zero is active. Regular/solo tandem and cooperative tandem rates keep their separate settings. A positive HUD rate means the effective setting is positive and is not corrected by the mounting fix. - Extend
vikingrail_config statuswith the exact active LOCAL config path and loaded-local versus active-server stamina rates. Explain why offline or unchanged local zeros may differ from a remote server's value, and that an intentional complete push replaces all 35 shared settings. Preserve server/admin authority and changed-field proposals; disconnected snapshots are no longer described as active. - Verify zero through real BepInEx binding/reload, admin proposals, server persistence and the actual propulsion loop. Preserve existing two-metre no-growth protection, stone gravel, no automatic terrain-height changes, all 86 pieces/icons, 92 assets, 29 wooden upgrades, sixteen vehicles, 35 shared fields on protocol v13 and seven personal music preferences. Keep configs and update matching client/server installations.
- Version 0.45.2 validation: all 2,994 Core tests passed. Actual-source settings checks with real BepInEx configuration passed 25 cases (65 assertions); handcart propulsion checks passed 67 cases (184 assertions); mounting/native stamina-algorithm checks passed 37 cases (229 assertions). Runtime checks use managed native-contract stand-ins and do not establish live Unity, PhysX or multiplayer behavior; live acceptance remains UNRUN. Release build passed with zero warnings/errors; both release archives and all 92 unchanged embedded assets were verified.
0.45.1
- Expand the no-growth corridor from 75 cm to two metres beyond measured track-bed sides and ends. Grass/clutter, zone vegetation, supported plant regrowth and eligible natural pickups/small rocks use the wider footprint. Follow curves, grades and every switch route, with continuous protection across four-metre yard lane gaps.
- Apply the same two-metre geometry to loaded tracks and saved rail ZDOs, including bounds that overlap the corridor from outside it. Existing tracks receive it automatically; remove the last covering rail to release reversible resource suppression.
- Keep this protection independent of gravel settings. Preserve 0.45.0 stone gravel and the removal of all automatic height changes. No workbench crafting radius, creature-spawn rule, raid-base counter or external terrain-reset integration is added. Dropped inventory and real structures retain existing behavior.
- Preserve all 86 pieces/icons, 92 embedded assets, 29 wooden upgrades, sixteen vehicles, eleven unpowered carts, 35 shared settings on protocol v13 and seven personal music preferences. Keep existing configs; install matching versions on clients and server.
- Version 0.45.1 validation: Release build passed with zero warnings/errors; all 2,994 automated tests passed. Actual-source resource/regrowth/collision checks passed 451 cases (2,972 assertions); loaded/saved protection passed 142 lifecycle assertions plus 14 native binary contracts. Actual yard-prefab checks passed 10,440 assertions, and gravel/no-height-edit regression checks passed 58 cases (11,079 assertions). Both release archives and all 92 unchanged embedded assets were verified. Runtime tests use managed native-contract and geometry stand-ins. Live Unity, PhysX, rendering and multiplayer verification remain UNRUN.
0.45.0
- Remove automatic excavation, gap filling and ongoing soil lowering from all rail placement and loaded-track behavior. Remove both native height-operation helpers and their registration. Old true clearing/filling config values remain readable for compatibility but cannot activate earthworks; new defaults are false.
- Replace dirt with native stone paving/gravel beneath ground-level ordinary rails and two metres beyond each sleeper side. The measured corridor follows curves, inclines and every junction route. Painting preserves existing heights and alpha; bridges, turntables, distant soil and intervening construction remain excluded. Native texture resolution softens the visible border.
- Keep the existing
DirtTrackbedOnPlacementkey as the gravel toggle. Paint new rails and gradually backfill existing loaded rails using the live track owner and original creator's permissions, with bounded work and native paint-mask verification. Already-paved pixels are skipped, queued rebuilds pause safely, and protected terrain remains unchanged. Stone paint persists after rail removal. Earlier saved excavations are not automatically reversed. - Preserve resource/vegetation protection, the 0.44.3 gate fixes, all 86 pieces/icons, 92 embedded assets, 29 wooden upgrades, sixteen vehicles, eleven unpowered carts, 35 shared settings on protocol v13 and seven personal music preferences. Update all clients and server together; existing tracks/configs need no rebuilding/reset.
- Version 0.45.0 validation: Release build passed with zero warnings/errors; all 2,959 automated tests passed. Actual-source gravel placement and loaded-track checks passed 58 cases (11,079 assertions). The stone-paint helper with decompiled native serialization/dispatch/brush algorithms passed 21 cases (211 assertions), confirming unchanged terrain heights and preserved alpha. Both release archives and all 92 unchanged embedded assets were verified. These tests use managed native-contract and geometry stand-ins. Live Unity, PhysX, terrain rendering and multiplayer verification remain UNRUN.
0.44.3
- Fix automatic gates missing a train stopped just outside the 3.2 m door safety zone. Detect aligned waiting vehicle bodies within 6 m on either side, including leading or reversed wagons, even after movement is released and speed becomes zero.
- Keep a valid approach request for the remaining opening animation plus two seconds. Detection scans cannot shorten that grace; a stopped train keeps the gate open. Preserve throttle and automatic-drive activation while waiting, whole-train clearance, authenticated owner requests and safe passability checks.
- Retry gate initialization when network data arrives after Start, restore the saved door position, and register the request handler once. Use the existing small-resource collision filter in the leaf sweep so eligible plants, branches and covered debris do not jam the doors; real obstructions still block safely.
- Preserve all 86 pieces/icons, 92 embedded assets, 29 wooden upgrades, sixteen vehicles, eleven unpowered carts, 35 shared settings on protocol v13 and seven personal music preferences. Keep existing gates/configs; update clients and server together.
- Version 0.44.3 validation: Release build passed with zero warnings/errors; all 2,896 automated tests passed. Actual-source gate runtime checks passed 74 cases (212 assertions), and the actual-prefab/door-sweep harness passed 96 assertions. The stopped-at-boundary regression failed on the previous code and passes with this fix. Both release archives and all 92 unchanged embedded assets were verified. These checks use managed native-contract and geometry stand-ins; live Unity, PhysX and multiplayer verification remains UNRUN.
0.44.2
- Extend the 3.5 m train-height branch clearing and independent collision fallback to 28 exact native small plant/shrub identities across the biomes: flowers, fungi, berry bushes, wild seed plants/cereals, ferns and low shrubs. Include dandelions, thistle, Mistlands mushrooms, Ashlands smoke puffs/fiddleheads and Deep North vegetation. No new setting is required; existing rails gain the change after reload.
- Register natural Destructible-only shrubs in addition to Pickable resources. Plants with both components keep consistent collision/visibility rules, including rejecting moving/falling physical bodies. Native berry bushes larger than 2.5 m remain eligible; the ordinary-rock size cap is unchanged.
- Conceal covered vegetation reversibly without harvesting, deleting inventory or claiming ownership. Mature seed plants and Mistlands mushrooms that share wild prefabs receive the same treatment because native growth does not preserve creator provenance. Explicit planted/build objects retain their original rules. Preserve protected descendants, trees, large woody shrubs/limbs, procedural vines, ore and all other real barriers.
- Preserve all 86 pieces/icons, 92 embedded assets, 29 wood upgrades, sixteen vehicles, eleven unpowered carts, 35 shared settings on protocol v13 and seven personal music preferences. Install matching versions on clients and server; retain existing configs.
- Version 0.44.2 validation: Release build passed with zero warnings/errors; all 2,848 automated tests passed. Actual-source resource, train and hand-push checks passed 433 cases (1,668 assertions), covering all 28 audited native plant identities, both branches, elevation, loading/respawn, component combinations, shared mature crops and protected objects. Both archives and all 92 unchanged embedded assets were verified. Live Unity rendering, collision and multiplayer verification remains UNRUN.
0.44.1
- Fix collectible branches stopping locomotives, attached cars and hand-pushed carts when the rail-bed protection lookup misses them. Only the two exact native branch prefabs gain independent collision filtering; live world identity, creator and protected-hierarchy checks still apply.
- Clear those branches through the train's height, up to 3.5 m above the measured bed. Native branch geometry inspection found large tilted colliders and delayed StaticPhysics settling: a branch can collide with the train while above the old 60 cm ground-growth threshold. Covered branch visuals/colliders are hidden reversibly; there is no harvest, item deletion or terrain ownership claim.
- Prevent a built, inventory-bearing or separately networked collider nested below a branch from inheriting its collision exemption. Other pickups, plants, rocks, logs and trees retain their existing rules. No new pieces, assets or config keys; retain matching installs on clients and server.
- Version 0.44.1 validation: Release build passed with zero warnings/errors; all 2,794 automated tests passed. Actual-source resource and train/hand-push collision checks passed 109 cases (444 assertions), including elevated native branches and unavailable protection lookups. Native prefab geometry/hierarchy was inspected from the cached game assets. Both release archives and all 92 unchanged embedded assets were verified. Live Unity collision, rendering and multiplayer verification remains UNRUN.
0.44.0
- Keep loaded existing ordinary tracks clear of soil raised through their beds, using the existing synchronized
ClearTerrainOnPlacementoption. Budgeted owner-only maintenance uses native lower-only terrain operations; it does not refill/repaint, claim terrain ownership or keep digging already-clear ground. Respect the creator's ward permissions, no-build areas and native digging limits; bridges, turntables and ghosts are excluded. - Fix natural resources missing protection when their Awake runs before live network registration. Retry pending resources, register saved scene objects after loading, support nested resource components and refresh suppression through native visibility/respawn changes. Covered branches, pickups, plants and eligible compact scenery rocks lose their visuals/collision and are immediately ignored by trains. Removal of the last rail restores their native state without an extra harvest.
- Widen protection to 75 cm beyond sleeper sides and ends, roughly 3.4 m on ordinary rails, and extend the upper threshold to 60 cm above the bed. Cover every branch of yard fans while retaining gaps between separated routes. Exclude ore, large boulders, trees, player structures, dropped inventory and cargo from reversible debris clearance.
- Preserve all 86 pieces/icons, 29 wood-to-iron upgrades, sixteen portable vehicles, eleven unpowered carts, 92 embedded resources, 35 shared settings on protocol v13 and seven personal music preferences. Update every client and the server together; existing config files remain valid.
- Version 0.44.0 validation: Release build passed with zero warnings/errors; all 2,782 automated tests passed. Actual-source checks passed 34 terrain-maintenance cases (12,644 assertions), 47 resource-lifecycle cases (143 assertions), 84 spawn-lifecycle assertions across current/legacy adapters, and 14 native binary contracts. Passenger regression checks passed 73 cases (1,219 assertions); parallel-yard geometry/terrain/spawn checks passed 10,428 assertions. Both release archives and all 92 unchanged embedded assets were verified. Live Unity terrain, rendering, collision and multiplayer acceptance remain UNRUN; managed stand-ins do not establish in-game behavior.
0.43.0
- Lengthen the passenger deck from 2.4 m to 2.7 m and widen it to about 2.2 m. Move both chairs rearward and the rainproof chiminea forward to open a standing aisle. Raise the canvas awning and retain only rear posts, with no front posts or low roof collider trapping riders. Keep the existing prefab, chair identities, coupling pitch, fuel, comfort and saved carts. Use seat-only interaction boxes and check a standing capsule against current deck/obstacle geometry before choosing an incline-aware dismount position.
- Add wooden/iron 3-way and 5-way parallel yard splitters with smooth branches and 4 m exit spacing. Total lengths are 18 m and 26 m. Every external port snaps to ordinary track; the lever cycles numbered lanes left to right and defaults to the center. Existing owner checks, saved route state, occupied-junction locking and train reservations apply to all routes.
- Three-way recipes: 50 Wood + 20 Iron Nails, or 40 Wood + 12 Bronze Nails. Five-way recipes: 80 Wood + 30 Iron Nails, or 64 Wood + 18 Bronze Nails. Upgrade wooden fans in place for 20/30 Iron Nails. Support, terrain, growth suppression, torches and rail-tier rules cover every branch. Raise the bounded terrain/spawn footprint capacity from 128 to 256 measured planes so all 146 five-way sleeper planes remain active. Old diverging three-way/Y/bypass pieces keep their geometry and IDs. No detached-wagon gravity or automatic sorting is introduced.
- Add four unique icons, bringing totals to 86 pieces/icons, 29 wooden upgrade variants and 92 embedded resources. Retain sixteen portable vehicles, eleven unpowered carts, 35 shared settings on protocol v13 and seven personal music preferences; no new config keys. Update all clients and the server together and retain existing CFGs.
- Validation: Release build passed with zero warnings/errors; all 2,725 automated tests passed. Actual-source harnesses passed 73 passenger scenarios (1,219 assertions), 41 switch/reservation cases (401 assertions), and 10,424 yard prefab/terrain/spawn assertions. Both release archives and all embedded assets were verified. Live visuals, dismount clearance, support, physics and multiplayer acceptance remain unrun.
0.42.0
- Add personal
MusicClient.TechnoVolume,PumpkinVolumeandHalloweenTechnoVolume, each 0–1 with default 1. KeepVolumeas the master gain. All seven personal music preferences reload from the existing CFG or config manager and are excluded from admin/server pushes. The 35 shared settings and protocol v13 stay unchanged; sharedMusicCartMaxVolumeremains the cap. - Add a brass volume dial beside each music console: E raises and Shift+E by default lowers by 10 percentage points across 0–100%. Each cart preserves its dial through saves, unloading, ownership changes and packing. This shared cart state combines with each listener's personal gains and normal game sound controls.
- Select the new original Haunted Rail Rave when Techno and pumpkin carts belong to one complete coupled train, including intervening wagons and either engine end. The latest console command controls play/stop and the latest dial controls group loudness. Stopped carts do not start merely by coupling. Uncoupling restores individual ordinary tracks and each cart's own control state. New world/server sessions and unpacked carts still start stopped.
- Hear one selected speaker per mixed group, preserving nearest-source fading, priority 32 and positional audio.
MaxAudibleCartscounts independent groups. The mixed song is 130 BPM in D harmonic minor, 128 bars, 3:56.3, with synthesized haunted bells/organ/arpeggios and a strong dance rhythm. It is bundled with credits and reproducible composition source; no external sample, new build piece or fuel cost is added. - Retain all 82 icons and all 86 previous embedded resources; the new WAV/credits bring the total to 88. Piece counts, recipes, sixteen portable types, eleven unpowered carts and 27 wooden upgrade variants remain unchanged. Update every client and the server together; preserve existing CFG files.
- Validation: Release build passed with zero warnings/errors; all 2,660 automated tests passed. Actual-source harnesses passed 32 music-runtime cases (71 assertions), 49 network cases (117 assertions), and 22 train-topology cases (59 assertions). Both archives, embedded assets and the new audio signal were verified Deterministic audio renders match; peak 0.8800, zero clipping and zero PCM discontinuity at the loop boundary. Live listening, control geometry, Unity voice allocation and multiplayer acceptance remain unrun.
0.41.0
- Add Automatic railway gate (
vr_rail_gate), built over existing level straight track for 20 Wood + 10 Iron Nails + 4 Iron without a nearby workbench. Two wood-and-iron leaves swing outward 100°; the opening is 5 m wide with no overhead beam. Posts require normal support, and the swing areas must stay clear. The gate adds no rail segment and changes no wooden-track restrictions. - Open for trains approaching from either direction, including hand-pushed wagons and remote automatic trains. Keep the leaves open for the entire connected formation, including inter-car gaps, front/rear groups and a cart stopped in the doorway. Opening takes about two seconds; after the final car clears, hold two seconds and then close over about two seconds. Characters obstructing closure keep the gate open. An automatic train can wait for opening without losing drive activation.
- Show gate status on hover; no manual switch, fuel or new config is needed. Preserve existing trains, cargo, recipes, settings and previous features. Totals become 82 Hammer pieces/icons and 86 embedded resources; 27 wooden upgrade variants, sixteen portable vehicle types, eleven unpowered carts, 35 shared settings on protocol v13 and four personal music preferences remain unchanged. Update all clients and the server together.
- Validation: Release build passed with zero warnings/errors; 2,557 automated tests passed, plus 111 assertions across 44 actual-source gate runtime cases and 79 gate prefab/registration assertions. Both release archives and embedded assets were verified. The new gate icon was rendered and visually checked; all 81 prior icons remain unchanged. Live operation, clearance, native support and multiplayer acceptance remain unrun.
0.40.0
- Add iron and wooden three-way yard switches with Left, Straight and Right selections. Their 2 m entry joins a straight center route and two 45° outer branches on an 8 m radius. Preserve route reservations, saved selection and wooden engine restrictions. Recipes are 30 Wood + 12 Iron Nails for iron, or 24 Wood + 6 Bronze Nails for wood; upgrade the wooden version in place for 12 Iron Nails. This supplies manual yard routing, not free-rolling gravity for uncoupled wagons.
- Add 12 m and 24 m turntables with built-in iron rails, 3.6 m-wide rotating timber decks, stationary rims, pivots and rim cranks. The smaller recipe uses 40 Fine Wood + 20 Iron + 40 Iron Nails; the larger doubles those amounts. Build without a workbench on level ground or a solid foundation, with native structural support and a clear turning circle. Tables do not automatically excavate or paint circular pits.
- Park the complete train and attachments inside the deck, close inventories and dismount every rider. Loaded cargo may remain aboard. E turns clockwise and Shift+E by default counterclockwise, one 45° step in about three seconds; four steps reverse a train by 180°. The operator must remain within 4 m of the crank. Stop safely for new obstructions or changed operating conditions; an interrupted non-indexed angle isolates the route until the crank finishes alignment.
- Protect the entire turntable circle and operator step from natural growth, independently of deck angle. Turntables have no fixed track-side torch sockets; carried vehicle torches rotate with their hosts and count toward fit checks.
- Preserve existing saved vehicles, config and recipes. Totals become 81 Hammer pieces/icons and 27 wooden upgrade variants; sixteen portable vehicles, eleven unpowered carts, 35 shared settings on protocol v13 and four personal music preferences remain unchanged. Keep existing configs and update every client and server together. No MWL integration is shipped.
- Validation: Release build passed with zero warnings/errors; 2,527 unit tests passed; turntable runtime checks passed 176 assertions across 50 cases; prefab/recipe checks passed 278 assertions; coupling checks passed 4,383 assertions across 167 cases; plow checks passed 697 assertions across 60 cases; 25 compiled DLL checks passed. Runtime harnesses use native contract stand-ins. Four new icons were rendered and visually checked; all 77 prior icons remain unchanged. There are 85 embedded icon/audio/credit resources. Live Unity operation, collision, support and multiplayer acceptance remain unrun.
0.39.1
- Change the Rail torch recipe to 2 ordinary Wood + 1 Greydwarf Eye, replacing 2 Resin. The same piece fits track-side and vehicle brackets; its removal refund uses the new recipe after updating.
- Keep custom Rail torches lit without fuel or a settings change. Existing empty/off torches recover without rebuilding, including across reloads, unloaded hosts and ownership changes. Rain, wind, water, solid obstruction and smoke cannot extinguish them; rain may select a dimmer native flame, and normal distance/graphics culling remains. Refilling and manual extinguishing are disabled without consuming or adding stored Resin.
- Limit
AttachedTorchesUseFuelto ordinary standing torches carried on mounting-cart pads; preserve their existing configurable fuel and native water/obstruction behavior. Ordinary world torches and the passenger chiminea are unchanged. Detached custom Rail torches retain normal support wear and stay lit until removed or destroyed. - Keep all 77 Hammer pieces/icons, 81 embedded resources, sixteen portable vehicle types, eleven unpowered carts, 26 wooden upgrade variants and 35 shared settings on protocol v13 plus four personal music preferences. Update clients and server together; keep existing configs and saved builds. Native lighting and live multiplayer acceptance remain unrun.
- Validation: clean Release build, 2,437 passing automated tests including 61 torch runtime cases with native stand-ins. Existing icons/audio are retained. Live rendering and multiplayer remain unverified.
0.39.0
- Add four straight steep inclines: normal and long versions in metal and wood. Normal pieces rise 2 m over 4 m horizontal; long pieces rise 6 m over 12 m, twice the regular incline's grade. All four use centered placement geometry and new icons. Normal and long steep sections join at the same grade; reversed placement builds downhill.
- Keep the existing 18° join limit. Use a regular 1:4 incline between flat track and steep track at both ends; direct flat-to-steep joins and abrupt steep crests remain disconnected. Existing regular and curved inclines retain their geometry.
- Match current incline recipes: metal normal 8 Wood + 2 Iron Nails, metal long 24 Fine Wood + 6 Iron Nails, wooden normal 6 Wood + 1 Bronze Nail, wooden long 18 Fine Wood + 3 Bronze Nails. Upgrade wooden steep rails in place for 2 or 6 Iron Nails without moving them.
- Retain normal materials, side supports, torch sockets, terrain/dirt preparation, spawn protection and wooden-track engine restrictions. Speed, hill/load resistance, momentum, fuel, stamina and config remain unchanged. Preserve the 0.38.1 cart plows, both-end coupling and all prior features.
- Totals become 77 Hammer pieces/icons and 26 wooden upgrade variants. Vehicle totals and 35 shared settings on protocol v13 plus four personal music preferences are unchanged. Install the same version on every client and server. Release build is clean; 2,418 automated tests passed with none failed or skipped. Four new icons were rendered and inspected, and all 73 existing icons remain unchanged. Native placement, visual clearance, physics and multiplayer acceptance remain unrun.
0.38.1
- Allow wooden and metal plows on either free physical end of all sixteen vehicle types, with one plow per vehicle. Ground and packed-plow placement select a free end; the blade faces outward and its chosen end survives saving and unloading. Legacy saves retain their front-mounted plows without rebuilding.
- Clear creatures with the outward-facing plow on the actual leading engine or wagon in either travel direction, including front wagons pushed by a locomotive and reversed wagon formations. Keep existing shove speeds, bounded continuation, blunt damage, wooden damage multiplier, contact cooldowns and player exclusions. Trailing and inward-facing blades do not act.
- A plow blocks only its occupied end's coupling. The opposite end stays available; uncouple the selected end before fitting a plow. Park the whole train, dismount its operators, close storage and finish service before changing attachments. A rear plow blocks an unpowered cart's hand-push handle until detached.
- Preserve recipes, vehicle identities, inventories, config and piece counts. Update all clients and the server together for the changed mounting/contact messages. Release build is clean; 2,372 automated tests, 4,377 managed coupling assertions and 697 managed plow/formation assertions passed. Live Unity physics, visual clearances and multiplayer acceptance remain unrun.
0.38.0
- Allow all wagon types to connect to either engine end and either wagon end, retaining each vehicle's facing. Engines can push, pull, or carry front and rear wagon groups together. The existing wagon cap counts both branches; each train still contains one engine.
- Add front and rear red side levers to all sixteen vehicle types. Use couples an open end or releases a connected end. Automatic contact works on forward/reverse manual approaches to parked targets, with storage closed and wagon riders cleared; engine operators may remain aboard. Preserve ward checks, owner-mediated cargo protection, and remote automatic formation handling. Stop tracks follow the true leading wagon. Front wagons and a fitted front plow are mutually exclusive.
- Preserve legacy rear-only saved links and add the levers on reload without rebuilding. Coupling messages changed, so update all clients and the server together. Before reverting below 0.38.0, uncouple new front-attached or opposite-facing formations in this version first.
- Retain the 0.37.2 music-priority fix, 73 pieces/icons, sixteen portable vehicles, eleven unpowered carts, 35 shared settings on protocol v13 and four personal music preferences. No speed changes: the default regular handcart targets 4.5 m/s at 5/5 on unloaded level track, 0.9 at 1/5, or about 0.75 at 1/5 with one empty wagon.
- Validation: Release build has zero warnings/errors; 2,372 automated tests, 259 managed formation/stopping assertions and 4,001 managed coupling assertions passed, with no failed or skipped tests. Native gameplay, audio and multiplayer acceptance remain UNRUN.
0.37.2
- Raise shared music-source priority from 160 to 32 for Techno Viking and pumpkin carts. This follows Mead Muse's confirmed low-priority virtualization case; railroad playback at the affected location remains unverified. Preserve both recordings, mixer routing, positional audio, range fade, volume/mute settings and synchronized clocks.
- Log one delayed playback snapshot about a second after each local source start or new song start, including priority, virtualization, time, gain, listener state and voice limits. Show a console warning if the game suppresses an otherwise enabled nearby source. Do not restart a source merely because it is virtualized.
- Existing carts update on restart without rebuilding. Keep the CFG; no settings, recipes, assets or network protocol changes. Retain the native sign-wood trial and all 73 pieces/icons.
- Validation: Release build has zero warnings/errors; 2,332 existing automated tests passed, none failed or skipped. Added Unity APIs checked against native assemblies. Actual audio output and multiplayer acceptance remain UNRUN.
0.37.1
- Trial the native
wood_pole2material and matching new-state beam mesh on added legs/feet, station uprights, and warning/crossing stems and crossbucks across all five railway sign types. Preserve original grain mapping, align it along each part and fit the slightly beveled mesh within the previous dimensions; disable material rippling at joints. Editable boards, brass, iron, red markings, text, box collisions, recipes and support remain unchanged. - Resolve the mesh and material from the installed game without embedding native assets. If the source is unavailable, retain the previous generated wood and log a warning. Existing signs update on restart/reload without rebuilding. Train and track wood retain their previous materials.
- Retain 73 Hammer pieces/icons, sixteen portable vehicle types, eleven unpowered carts, 35 shared settings on protocol v13 and four personal music preferences. Local validation: 2,332 automated tests passed, with none failed or skipped. Daylight, torchlight, wet-weather and multiplayer visual comparisons remain UNRUN.
0.37.0
- Add Halloween pumpkin carriage (
vr_pumpkin_cart): a hollow orange pumpkin shell with doorway, glowing eyes, green stem and vines, plus one native passenger chair. Build for 30 Wood, 10 Fine Wood, 20 Bronze Nails, 10 Resin and 2 Surtling Cores without a nearby workbench. It is an unpowered wagon, uses one cart slot and travels on wood or metal rails wherever its engine is allowed. - Use the chair to sit and the console to play/stop original Hollow Lantern Waltz: four minutes, 72 BPM, 3/4, with music-box/celesta, soft organ, bowed synths, ghostly pads and gentle percussion. Supports shared timing while moving or parked, local listening limits and the existing Music/MusicClient settings. No new settings, banner, dancer or pumpkin beat flashes are added.
- Give only its confirmed seated rider the normal passenger comfort minimum of 3. Warmth, dryness and safety still govern resting; the carriage has no built-in hearth. Preserve ordinary coupling/release, 0.8 m/s hand pushing, lamps and optional Rail torches. Its 35-weight packed item preserves normal vehicle condition/lamp state and replaces with music stopped and its chair empty.
- Totals: 73 Hammer pieces/icons, sixteen portable vehicle types and eleven unpowered carts. Retain 35 shared settings on protocol v13, four personal music preferences, previous recipes and saved trains, the steam-model refresh and the original Techno Viking soundtrack.
- Local validation: 2,332 automated tests passed. File/signal checks do not replace listening; all in-game seating, comfort, appearance, clearance and multiplayer acceptance remains UNRUN. Update every client and the server together.
0.36.1
- Refresh the coal locomotive with a detailed iron boiler, brass bands and rivets, chimney, pressure gauge and coal hopper. Four spoked wheels, coupling rods, pistons and a left-side flywheel animate from actual signed movement, including reverse and coasting, and hold their pose while stopped. Large position corrections are rejected as animation travel; players receive no new animation.
- Place steam exhaust at the new stack opening and cover the side machinery in obstacle checks. Preserve the existing
vr_locomotiveidentity, driver position, recipe, mass, fuel, speeds, settings and attachment controls. Existing placed engines and packed models update on reload without rebuilding. - Update only the locomotive icon. Keep 72 Hammer pieces/icons, fifteen portable vehicle types, ten unpowered carts, 35 shared settings on protocol v13 and four personal music preferences. The 0.36.0 soundtrack, music settings and earlier torch/remote-train fixes remain included.
- Local validation: 2,266 automated tests passed. In-game appearance, moving-part clearance, smoke alignment, remote-observer animation and multiplayer acceptance remain UNRUN. Update every client and the server together.
0.36.0
- Add the Techno Viking sound cart and its packed item/icon: awning, bronze speakers, spinning rune discs, a decorative Viking dancer, console and editable native-sign banner. Supports ordinary coupling, release lever, hand pushing, packing, lamps and optional Rail torches. No player animation or camera changes.
- Bundle original instrumental “Thunder on the Rails”: 132 BPM, D minor, 128 bars / 3:52.7, synthesized instruments and a seamless PCM loop. Shared playback timing supports moving/parked carts, late listeners and owner changes; no audio streaming or dedicated-server clip allocation. Replacement and new server sessions start stopped.
- Authenticate music controls and banner edits through the server and existing cart owner; never claim a train's ownership to edit its sign. Preserve banner attribution and selected track in packed metadata.
- Add three shared Music settings and four local-only MusicClient preferences for enable/range/max gain, personal volume/mute, cosmetic beat glow and audible-cart limit. Expand shared protocol to v13 with 35 fields and a 64-bit proposal mask; preserve previous field indices and custom values. Personal preferences never enter server pushes.
- Totals: 72 Hammer pieces/icons, fifteen portable vehicles and ten unpowered carts. All 71 previous icons remain unchanged. Update every client and the server.
- Local validation: 2252 automated tests passed, Release build zero warnings/errors. Audio file format, peak/headroom and loop endpoints checked; listening, in-game appearance and multiplayer acceptance remain UNRUN.
0.35.1
- Fix
AttachedTorchesUseFuel = falseleaving an attached torch extinguished. Valheim's infinite-fuel flag does not override its saved off switch, which weather can change; an empty torch in that state could neither relight nor accept fuel. Free-fuel mode now keeps the native switch on and recovers existing off/empty saves without adding Resin or rebuilding. - Disable manual and automatic switching off while attached free-fuel mode is active. Native rain/wind may dim flames; water and solid/smoke obstruction can still temporarily block them. Returning to paid mode or detaching restores normal toggling, refilling and fuel consumption. Preserve stored Resin and never charge elapsed free-mode time afterward.
- Apply the fix to Rail torches on vehicles/tracks and supported native standing torches on mounting-cart pads. Ordinary unmounted torches and passenger-chiminea Wood remain unaffected. Keep the 0.35.0 remote-train feature, all 71 pieces/icons, fourteen portable types, nine unpowered carts and the same 32 setting keys on protocol v12.
- Local validation: 2081 automated tests passed. All in-game, visual and multiplayer acceptance remains UNRUN; test existing saves and ownership changes on a backed-up world.
0.35.0
- Allow automatic steam and Eitr trains to continue away from nearby players while the host/server is running and at least one player remains online. Start from on foot beside a parked, unoccupied train; the authenticated request transfers the existing train and attachments to the host/server while preserving cargo and saved state. Stay near the engine until ready; preparation can take up to 45 seconds.
- Keep bounded moving 3 × 3 zone neighborhoods around the entire train and a route sample 24 m ahead, with at most 25 unique zones per train. Wait for actual terrain and required network objects before moving. Include every linked wagon through the existing 20-cart cap, subject to the engine's configured limit. Preserve normal fuel, momentum, stops, obstacle/plow checks and selected switch routes; nearby real players keep normal world loading and no fake player is created.
- Add synchronized admin settings
Automation.RemoteSimulationEnabled(default true) andAutomation.RemoteTrainLimit(default 4, range 1–8). Disabling or lowering the limit stops affected remote trains without deleting contents or links. False retains the previous loaded-area controller mode. Expand settings from 30 to 32 fields and protocol v11 to v12, preserving prior indices and custom values; update every client and server together. - Stop remote trains when the last player leaves and require manual reactivation after returning. Do not advance during single-player pause or world shutdown, catch up offline time, or restart saved activation automatically. After activation, the starter can leave while another player remains online elsewhere in the world.
- Block a remote area containing unknown saved prefabs or missing optional mods without deleting its saved objects. Carried D.A.R.E/G.N.O.M.E defenders require their mods on the server as well.
- Retain the 0.34.1 stepped manual throttle, 0.34.0 coupling controls, all 71 pieces/icons, fourteen portable vehicle types and nine unpowered carts. No new recipe or icon is added. Local validation: 2039 automated tests passed. All runtime and multiplayer acceptance, including remote simulation, remains UNRUN; use backed-up test worlds before relying on distant deliveries.
0.34.1
- Add a stepped manual throttle to regular/tandem handcarts and bronze, coal and Eitr engines: five forward notches, neutral and five reverse notches. Tap the existing forward/backward controls to raise/lower the signed notch, releasing both between changes. Holding a key does not repeat, and releasing it retains the chosen throttle while the driver stays aboard. The HUD shows direction and notch; no additional binding is needed.
- Set each notch to 20% of the configured, load-adjusted powered target. Bronze targets 6 m/s at full throttle and 3.6 m/s at 3/5 on unloaded level track. Lower notches retain momentum until it coasts toward the target; neutral coasts, and selecting reverse brakes existing forward motion before backing up. Configured maximum speeds remain hard caps, including downhill. Fuel/stamina costs per second of powered movement are unchanged.
- Reset throttle to neutral for Block, stops, bumpers, ordinary obstructions, storage/coupling, unavailable fuel or stamina, stale controls, menus, lost focus and driver loss. Require movement release and a fresh press after reset; dismounting parks immediately. Preserve an eligible notch only during the brief plow creature-response wait. Throttle is temporary rider state and does not resume after reloads or driver changes.
- Keep unpowered wagon positioning on held forward/backward controls and preserve the driverless controller's separate mode. Retain the 0.34.0 release levers/contact coupling, all 71 pieces/icons, fourteen portable vehicles and 30 gameplay settings on protocol v11. Update every client and server. Local validation: 1,930 automated tests passed; Release build has zero warnings or errors; all in-game and multiplayer checks remain unrun.
0.34.0
- Add a red coupling release lever to the front-left side of all nine unpowered wagon types. Use it while stopped to disconnect that wagon from the vehicle ahead, leaving any wagons behind it together. Existing carts receive the lever on reload without rebuilding.
- Automatically couple when a single hand-pushed wagon moves forward into a parked train's rear, or a manually driven engine reverses its rear wagon into a parked wagon or wagon group. Clamp movement at the coupling point, release hand-pushers before ownership transfers, and keep the engine driver aboard. Release movement controls before departing.
- Require matching vehicle orientation, exposed front-to-rear couplers and a reciprocal connected route through the selected switches. Preserve obstacle, track-tier, rider, inventory, ward and engine cart-limit checks. Automatic-controller travel and engine-to-engine coupling are not supported.
- Allow detached wagon groups of up to 20 wagons. A single wagon can be pushed into such a group; groups require an engine to move. Keep the existing Alternate placement + Use shortcut for manual coupling and uncoupling.
- Remember a released pair until its centers separate by more than 3.15 m before allowing automatic recoupling. Use the nearest route distance on loops so a long route around the loop cannot immediately rejoin the cars. Manual coupling can reconnect the pair without this separation.
- Retain all 71 pieces/icons, fourteen portable vehicles, recipes and 30 gameplay settings on protocol v11. Update every client and server. Automated validation is recorded in the guide; in-game and multiplayer acceptance remain unrun.
0.33.1
- Raise the five default engine speeds by 50%: regular handcart/solo tandem 4.5 m/s, cooperative tandem 6.75 m/s, bronze 6 m/s, coal 7.5 m/s and Eitr 10.5 m/s. Existing load/hill penalties, acceleration, fuel, stamina and downhill caps still apply. Slow wagon positioning remains 0.8 m/s.
- Upgrade old default speed values once when loading an existing config, preserving custom speeds and all unrelated settings. Save a local internal revision marker so later deliberate edits are not changed again. The synchronized gameplay settings stay at 30 on protocol v11; clients never push settings merely by joining.
- Hold standing rail operators in a still riding pose to remove the player vibration animation; restore normal animation on dismount, death or attachment loss. Keep pump/flywheel animation, rider/camera attachment synchronization, foot stabilization and passenger sitting behavior.
- Keep all 71 icons and existing prefab/save identities. Update every client and server. Automated results are in the guide; in-game animation and multiplayer acceptance remain unrun.
0.33.0
- Strengthen plows to shove all living non-player animals and monsters, including tame creatures and bosses, at 6–10 m/s laterally. Sustain a bounded clearance pulse after initial contact so a tiny loss of overlap does not end the shove. Handle ground, swimming, flying and airborne movement through native movement/physics.
- Add native blunt impact damage: 8 + 6 times approach speed, capped at 65; wooden blades deal 60%. Persist a creature-owned contact ledger with a 2-second cooldown and separation/travel requirements, preventing repeated damage from a stationary blade or network ownership changes. Players remain excluded.
- Ignore dropped items and ragdoll bodies without deleting them. Only non-player creatures in the leading end's path stop travel; creatures alongside trailing wagons do not. Reverse travel uses the final wagon as the leading end. Hand-pushed carts also ignore loot and protected natural resources.
- Widen no-growth protection to 45 cm beyond sleepers and check full resource bounds, including branches rooted outside the footprint. Reversibly hide overlapping natural rocks no larger than 2.5 m per axis near the rail bed; retain large boulders, rocks far below bridges and player construction. Covered resources are ignored immediately by collision checks, with native damage/support safeguards while hidden.
- Keep all 71 pieces/icons, fourteen portable vehicles, nine pushable carts, recipes, saved attachments and 30 settings on protocol v11. Existing rails and plows update on reload; install 0.33.0 on every client and server. Automated validation is recorded in the guide; in-game physics and multiplayer acceptance remain unrun.
0.32.1
- Fix
The native workshop recipe is unavailable: piece_workbenchduringObjectDB.CopyOtherDBin menu startup. Resolve workshop build costs from the current Hammer catalog, with a loaded-scene fallback, without requiring a world to be active. - Defer only an affected workshop/repair-cart recipe when a native source or ingredient is unavailable. Continue registering later pieces, never substitute generic wagon costs, and commit resource lists only after all current-database ingredients resolve. Retry on database/scene setup and when opening the build menu.
- Preserve native/modded ingredient amounts, valid free recipes and disabled requirement rows. Do not cache prices or old database ItemDrop references across worlds. Existing recipes, icons, automatic driving, saves and settings are unchanged.
- Counts remain 71 pieces/icons, fourteen portable vehicles, nine pushable wagons and 30 settings on protocol v11. Update every client and server. Runtime compilation and registration regression checks are documented in the guide; in-game menu/world-transition testing remains unrun.
0.32.0
- Add a Rail automatic controller for steam and Eitr engines: 5 Fine Wood, 5 Iron and 1 Surtling Core, with no workbench requirement and a unique Hammer icon. Use attaches beside the left controls, then starts/stops automatic forward travel. Alternate-use detaches while parked; the Hammer reclaims a detached controller.
- Reuse normal configured speed, train load/hills, momentum, fuel, metal-track restrictions, switch reservations, brakes, bumpers and collision checks without a rider. Preserve engine audio, steam exhaust and plow handling. Track/fuel/obstruction stops require explicit reactivation; transient switch/ownership/plow waits can remain active.
- Keep the controller's independent persistent attachment across unloading. Reloads and engine ownership changes cancel activation, and travel requires loaded track. No unloaded-world delivery, scheduled stations, automatic route selection or automatic reverse is included.
- Guard manual boarding, storage, coupling, packing and attachment changes while active. Native destruction releases surviving controllers or stops their engine; ordinary unloading never severs attachment links.
- Increase Hammer pieces/icons to 71; retain fourteen portable vehicles, nine pushable wagons, 30 settings and protocol v11. Update every client/server. Build and automated validation are recorded in the included guide; all in-game, visual and multiplayer acceptance checks remain unrun.
0.31.2
- Enclose the passenger hearth in a terracotta chiminea with an iron flue and overhanging rain cap. Retain the canvas awning, two chairs, clear side exits and existing cart dimensions. Update the passenger icon and packed miniature.
- Protect only the passenger chiminea from rain and strong-wind dampening. Preserve native fuel consumption, underwater and obstruction checks, manual on/off, warmth and packed fuel state. Ordinary fires and torches keep their existing weather behavior.
- Existing passenger carts update on reload without rebuilding or recipe changes. Counts, all 30 settings and protocol v11 remain unchanged. Build passes with zero warnings/errors and all 1,710 Core tests pass; in-game rain, visual and multiplayer checks remain unrun. Update all clients and the server to 0.31.2.
0.31.1
- Update the existing passenger cart with a light canvas awning on a wooden frame, two rearward seats, a 2.4 m deck and a guarded front campfire. Preserve its prefab identity, wheel/coupler spacing and 30 Wood + 10 Bronze Nails recipe. Existing carts update on reload; only the passenger icon changes.
- Keep the native chair-to-rider attachment relationship and move dismount points onto the side deck, clear of the hearth and rear push bar. Extend obstacle clearance to cover the awning. Open sides and the clear smoke path do not guarantee full Sheltered status.
- Add a native Wood hearth with zero starting fuel and capacity ten. Use adds Wood and alternate-use toggles the fire while parked. Fuel burns at the native campfire rate while lit, including during movement and idling; engine fuel and attached-torch settings are separate. Supply warmth to confirmed seated riders without fire damage or spread, while retaining normal resting conditions.
- Save remaining hearth fuel and on/off state through packing and replacement. Packed fuel does not burn; old passenger bundles gain an empty hearth. Existing health and lamp metadata remain intact.
- Counts remain 70 Hammer pieces/icons, fourteen portable vehicle types and nine pushable wagons, with the same 30 settings and protocol v11. Install 0.31.1 on all clients and the server. The runtime build has zero warnings or errors and all 1,710 Core tests pass, with none failed or skipped, including 39 new hearth-fuel cases. All in-game, visual, listening and multiplayer acceptance checks remain unrun.
0.31.0
- Add the rail mounting cart (
vr_mount_cart): two metal mounting pads, standard couplers, lights, a hand-push bar and a unique icon. Costs 30 Wood, 6 Iron and 10 Iron Nails, with no nearby workbench required. - Mount existing D.A.R.E. and G.N.O.M.E. defenders when available, native T.W.I.G. dummies, signs, horizontal item stands, and standing wood/iron torches that fit. No additional mod dependency is required for the cart or its vanilla utility mounts.
- Preserve each original object's identity, health, contents, fuel and combat. Mount changes require a parked cart uncoupled at both ends, a nearby player on foot and ward access. Detaching finds clear supported ground beside the cart. Detach before editing/refueling; remove both objects before packing or Hammer removal. Combat destruction releases surviving original mounts without cloning them or duplicating their loot.
- Hold movement during mount transactions or while a saved mounted object is unavailable. Include mounted mass and clearance in train movement; preserve independent dummy turning and native combat. Replicated mount reservations and completion receipts support retries, streaming and ownership changes.
- The total is 70 Hammer pieces/icons, fourteen portable vehicle types and nine unpowered carts. Existing recipes and all 30 settings on protocol v11 remain. Install 0.31.0 on all clients and the server. The Core suite passes 1,671 tests; in-game visual, combat, save/reload and multiplayer acceptance checks remain unrun.
0.30.0
- Add the Eitr rail engine, with a dark metal frame, brass runic cage, steady turquoise core, unique icon and soft powered hum. Build for 20 Yggdrasil Wood, 20 Black Metal, 10 Iron, 10 Refined Eitr and 5 Surtling Cores, without a nearby station.
- Refined Eitr supplies 300 powered seconds per item by default. Default speed is 7 m/s with eight attached carts, stronger acceleration, and 0.25 load/hill penalty multipliers. No player stamina is spent. Coasting, idling, braking and blocked travel consume no fuel.
- Require metal or upgraded rails, including bridges. Retain full-body wooden-track boundaries, stops, collisions, downhill momentum, plows, lights, optional torches and occupied-engine coupling/storage. Packing preserves hopper contents, paid fuel time, condition and lamps; the empty bundle weighs 60.
- Add five live Eitr settings and extend authenticated admin edits/server synchronization to 30 values on protocol v11. Preserve existing configuration values. Update every client and server together.
- Move the repair station cart to Hammer → Crafting, add optional Crafting/Transport tags, and refresh native ingredient-based recipe discovery when opening its build menu. This addresses possible visibility causes without bypassing unlocks; the reported cause is unconfirmed.
- Package 69 unique icons and thirteen portable vehicle types. Build passes with zero warnings/errors; 1,624 Core tests pass, none failed or skipped. In-game, listening, visual and multiplayer checks remain unrun.
0.29.1
- Add Wooden rail bridge — 24 m (
vr_track_wood_bridge24) for 36 Fine Wood + 40 Wood + 20 Bronze Nails, with no nearby crafting station required. It has wooden rails, timber trusses and bronze plates on the same flat 24 m span and 3.6 m deck as the metal bridge. - Carry regular/two-person handcarts, bronze engines and wagons; prevent coal locomotives from entering or operating on the unupgraded wooden bridge. Both bridge tiers have 1,200 health and share the native Iron span-support calculation, requiring strong support at both ends on banks or stone/iron piers. No middle pier is needed; adjoining spans still need supports at their joins. Existing metal bridge costs and behavior remain unchanged.
- Upgrade the wooden bridge in place for 20 Iron Nails, bringing the wooden upgrade catalog to 24 variants. Change its finish, display/icon and coal capacity while preserving current health, exact geometry, saved identity, supports and torches. Check ward permission across the whole bridge. Retain the original wooden materials and save the paid nail amount; demolition returns the wooden recipe plus 20 Iron Nails under native resource rules, without Iron-ingot refunds.
- Preserve terrain without cutting, filling or dirt painting; retain vegetation protection across the full deck width, endpoint/support snapping, torch mounts, damage settings and whole-span placement permissions.
- The total is now 68 Hammer pieces/icons; twelve portable vehicle types, all 25 settings and protocol v10 are unchanged. Install 0.29.1 on every client and server, then restart for the DLL. The build has zero warnings or errors and all 1556 automated Core tests pass, with none failed or skipped, including nine new cases. Native support physics, in-game bridge upgrading and multiplayer checks remain unrun.
0.29.0
- Add Rail bridge — 24 m (
vr_track_bridge24), a single flat metal span with a 3.6 m wooden walkway, iron side trusses, open overhead clearance and 1,200 health. It costs 48 Fine Wood + 20 Wood + 12 Iron + 20 Iron Nails and needs no nearby crafting station to build. - Require support at both ends on solid banks or strong stone/iron piers. Four underside bearing feet have beam/post snap sockets; the rail endpoints retain normal track snapping. Native Iron attenuation still applies from the bridge center, and the weaker end determines support. No middle pier is needed; adjoining spans still need piers/abutments at their joins, and ordinary weak wooden posts may be insufficient.
- Preserve terrain when placing a bridge, without cutting, filling or dirt painting. Protect grass/plants beneath the full 3.6 m deck width and retain ward/no-build checks across the whole span. All engines can cross its metal rails; connected wooden rails retain the coal-locomotive restriction. Side and overhead clearance accommodates wagons, plows and torches.
- Apply the existing
TracksTakeDamagepolicy to bridge damage and support collapse while preserving ordinary Hammer removal. Disable the new Hammer bridge entry with a warning when the native structural-support API is unavailable. - The total is now 67 Hammer pieces/icons. Twelve portable vehicle types, existing recipes/saves, all 25 settings and protocol v10 are unchanged. Install 0.29.0 on every client and server, then restart for the DLL. The build has zero warnings or errors and all 1547 automated Core tests pass, including 16 new bridge cases. In-game bridge placement, native support physics and multiplayer checks remain unrun.
0.28.0
- Add the Rail repair station cart (
vr_repair_cart): a covered bench and anvil with a hammer badge, built from 20 Wood + 10 Fine Wood + 6 Copper + 4 Coal + 10 Iron Nails without a nearby crafting station. - Normal Use repairs all eligible damaged items carried or equipped by the user for no fuel or material cost. Items qualify through either their native workbench/forge crafting station or repair station, with base recipe station requirements up to level 4; item quality does not raise the repair-level requirement. No extension carts are needed. Other-station gear, unrepairable items and full items remain unchanged; the cart provides no crafting recipes or unlocks.
- Require a parked train, a dismounted driver, an on-foot user and ward permission. Active cargo, coupling or packing work blocks repair use. Repairs affect the user's equipment, not wagon inventory or the cart's own health.
- Retain ordinary wagon coupling on both rail tiers, lamps, optional Rail torches, 0.8 m/s manual pushing and packing. The repair cart's packed weight is 45, with health and lamp state preserved.
- The total is now 66 Hammer pieces/icons and twelve portable vehicle types: four engines and eight unpowered carts, including six workshop/repair carts. Existing recipes, saves, all 25 settings and protocol v10 are unchanged. Install 0.28.0 on every client and server, then restart for the DLL.
- The release builds against Valheim 1.0.12 reference assemblies with zero warnings or errors and passes 1531 automated Core tests, with none failed or skipped, including 45 new repair-eligibility cases and four portable-cart cases. In-game repair, visuals, multiplayer and Valheim 1.0.15/network version 40 checks remain unrun.
0.27.0
- Allow coupling and uncoupling while the driver and tandem helper stay aboard a stopped engine. The engine owner coordinates the change without taking the controls away from the driver. All wagon passengers and hand-pushers must dismount, including those in wagons that will remain attached; all storage must be closed.
- Allow normal storage-wagon access on a stopped occupied train. A train-wide hold covers native open/stack operations, inventory use and the final saved-inventory handoff. Movement and coupling wait until that work finishes; release W/S before departing again.
- Preserve moving-train restrictions, requester identity and ward checks, wagon limits, route alignment, obstacles, cargo contents and saved vehicle identities. Remote fuel-hopper access still requires the engine driver to dismount; packing, Hammer removal and crafting requirements are unchanged.
- Clear a destroyed wagon's reciprocal couplings through the surviving vehicles' owners, preserving an occupied engine's ownership and driver. Sector unloading does not sever saved links.
- The 25 settings/protocol v10, 65 pieces/icons, eleven portable vehicle types and recipes remain unchanged. Install 0.27.0 on every client and server, then restart. The build has zero warnings or errors and all 1482 automated Core tests pass, including 20 new saved-inventory handoff checks. In-game and multiplayer checks remain unrun.
0.26.0
- Added downhill acceleration and carried momentum for regular/tandem handcarts, bronze engines and coal locomotives. Gravity uses the grade across the entire train weighted by each vehicle's empty mass, cargo and seated passengers. Momentum carries onto level track, losing about 0.25 m/s each second to rolling resistance, and is spent climbing the next hill.
- Coasting can exceed the loaded powered target without being forced back to it, while the existing MaxSpeed remains a hard cap: defaults are 3/4.5/4/5 m/s for regular/cooperative-tandem/bronze/coal. Existing load/hill multipliers still govern powered performance; losing tandem assistance applies the regular cap. Manual wagon pushing remains controlled at 0.8 m/s without this momentum behavior.
- Neutral input keeps a stopped train parked; a mounted driver can request the downhill direction and then coast without fuel or usable stamina. Opposite input brakes before reversing. Block retains its strong brake, menus/stale input brake, and losing/dismounting the driver parks immediately. Stops, bumpers, missing/inactive routes and collision checks retain their protections; no unattended travel is added.
- Fuel, stamina, smoke and pumping effects now follow actual supplied power. Neutral/gravity-only and out-of-fuel coasting cost no resources; handcart pumping animation stops and pumping noise quiets while coasting. Movement/resource integration uses the same bounded physics step, at most 0.05 seconds, to avoid long-frame travel jumps or excess charges.
- The 25 settings/protocol v10, 65 pieces/icons, eleven portable vehicle types, recipes and saved identities remain unchanged. Install 0.26.0 on every client and server, then restart for the DLL. The release builds with zero warnings or errors and passes 1462 automated Core tests, with none failed or skipped, including 45 new momentum cases. All in-game momentum, resource, stopping, manual-push and multiplayer checks remain unrun.
0.25.0
- Added a rear central push bar to all seven unpowered carts: storage, passenger, workbench, chopping block, tanning rack, adze and tool shelf. Existing carts gain it on reload without rebuilding or new recipes; the separate left-rear brass packing handle retains its function.
- Use the bar on foot, then W/S to move one cart forward/backward at 0.8 m/s. Block brakes; Jump, or Use while aiming at the push bar, releases it. Both couplings must be clear, storage closed and passengers off before starting. Cargo can remain inside. Stop and release the bar before coupling normally about 2.8 m behind an engine or the last wagon.
- Positioning consumes no additional stamina or fuel and does not change powered-engine settings. The pusher follows the actual rail bed through curves/inclines; positions beyond an open rail end require ground or bridge support, with grabbing or movement blocked if footing is missing. Releasing keeps the player in place without a sideways dismount offset. Route, switch, stop-track, bumper and obstacle rules still apply, including the rear bar while pushed or towed. Existing rider/camera synchronization and normal released cargo, chair, workbench and packing interactions are retained.
- The 25 settings/protocol v10, 65 pieces/icons, eleven portable vehicle types, recipes and saved identities remain unchanged. Install 0.25.0 on every client and server, then restart for the DLL. The release builds with zero warnings or errors and passes 1417 automated Core tests, with none failed or skipped, including 69 new manual-push control, eligibility and anchor cases. All in-game pushing, coupling, clearance, cargo and multiplayer checks remain unrun.
0.24.0
- Added automatic vegetation protection following the actual sleeper footprint of every wooden/metal track, including long rails, curves, inclines, Y switches and bypass pieces. Both switch branches and gaps between angled sleepers are covered, with about 15 cm of side margin and 50 cm at the ends. Open gaps between separated bypass routes remain unaffected.
- Suppress grass/clutter and newly generated world-vegetation candidates at or below roughly 30 cm above the rail bed, including ground beneath bridges. Separate higher ground or platforms remain unaffected. Vegetation skipped during initial zone generation stays absent after rail removal.
- Reversibly hide existing natural resource pickups and plants within the footprint, normally within half a second, and pause interaction and native growth/regrowth updates while covered. Removing the last covering rail restores their native picked/growth state without an extra harvest. Reject planting there before consuming resources. Existing trees, stumps and mineable rocks still need normal removal; dropped items, death loot and cargo are untouched.
- Existing rails gain protection automatically on reload; previews do not block vegetation. No new setting is added, and the feature is independent of excavation, dirt painting and gap filling. The 25 settings/protocol v10, 65 pieces/icons, eleven portable vehicle types, recipes and saved identities remain unchanged.
- Install 0.24.0 on every client and server, then restart for the DLL. The release builds with zero warnings or errors and passes 1348 automated Core tests, with none failed or skipped, including 50 new spawn-protection geometry/index cases. All in-game vegetation, planting, restoration, bridge, loot and multiplayer checks remain unrun.
0.23.0
- Reduced the default bronze and coal engine load and uphill penalties to half their previous coefficients. Actual speed gains depend on wagon count, cargo/passenger weight and grade; empty level-track base speeds remain 3/4.5/4/5 m/s for regular/cooperative-tandem/bronze/coal engines.
- Added eight
[Trains]settings:HandcartLoadPenaltyMultiplier,HandcartHillPenaltyMultiplier,TandemHandcartLoadPenaltyMultiplier,TandemHandcartHillPenaltyMultiplier,BronzeEngineLoadPenaltyMultiplier,BronzeEngineHillPenaltyMultiplier,LocomotiveLoadPenaltyMultiplierandLocomotiveHillPenaltyMultiplier. Both handcart pairs default to 1; bronze and locomotive pairs default to 0.5. All accept decimals from 0–5: 0 disables the penalty, 1 restores the previous coefficient, and higher values increase it. - Load multipliers scale the combined wagon-count and cargo/passenger-weight penalty on powered target speed and acceleration. Hill multipliers affect only uphill target speed, including climbing in reverse. Tandem values apply only with two freshly confirmed eligible operators; solo or lost-helper operation uses the regular handcart pair. Base speeds, braking/coasting and stamina/fuel costs per second retain their existing behavior.
- Settings increase to 25 using protocol v10. Existing seventeen values are preserved; missing new entries receive their defaults. Live host/admin edits still merge only changed fields, save on the server and broadcast to all clients. Joining never pushes a local file;
vikingrail_config pushdeliberately submits all 25 values. Status/permission checks and ordinary-client restrictions remain intact. - The 65 pieces/icons, eleven portable vehicle types, recipes and saved trains are unchanged. Install 0.23.0 on every client and server, then restart for the DLL. The release builds with zero warnings or errors and passes 1298 automated Core tests, with none failed or skipped, including 55 new traction and 56 new settings cases. All in-game load, hill, migration and multiplayer checks remain unrun.
0.22.1
- Changed the storage wagon to an open, low-sided cargo bed. It displays one static cosmetic item model per occupied stack, up to sixteen; unsupported item models use a plain crate. Inventory changes and a half-second poll refresh the display, including after loading and reconnecting. Display objects add no pickups or storage and do not change saved inventory data or its network format.
- Preserve native inventory width and height when committing a safely loaded cargo inventory, and restore dimensions with the other cached state if loading fails. This addresses a missing part of the staged load; the reported missing item display and Ctrl+E recovery remain unverified in-game.
- Hammer dismantling removes a vehicle's attached Rail torches through their native removal/refund path once each. Remote ownership can take up to ten seconds; unresolved torches leave the vehicle in place, and the vehicle must still be empty and parked when removal proceeds. Combat, track-mounted torches and unloading retain their behavior. Packing still requires removing torches first.
- The 65 pieces/icons, eleven portable vehicle types, seventeen settings and protocol v9 are unchanged. Install 0.22.1 on every client and server, then restart for the DLL. The release builds with zero warnings or errors and passes 1187 automated tests, with none failed or skipped. All in-game cargo display, inventory, torch removal and multiplayer checks remain unrun.
0.22.0
- Added eight pieces: left/right S-shaped bypass curves and left/right bypass switches in both wood and metal. Curves shift a single route 4 m sideways over 12 m forward using two opposite 10 m radius bends; switches add a 2 m common entrance and a straight Main line route, spanning 14 m forward.
- Bypass switches default to Main line; use the lever on foot to select Bypass. Existing route reservations and inactive-branch stops apply in both directions. Build a passing siding with mirrored switches facing opposite directions and straight rails between them. A 24 m straight on each line accommodates default trains and a five-wagon workshop train; longer trains need more clearance. Passing is manually controlled, without automatic signals or dispatching.
- Metal curves cost 24 Wood + 6 Iron Nails; wooden curves cost 18 Wood + 3 Bronze Nails. Metal switches cost 36 Wood + 12 Iron Nails; wooden switches cost 27 Wood + 6 Bronze Nails. Four new in-place wooden upgrades cost 6 Iron Nails per curve or 12 per switch, bringing the upgrade catalog to 23 variants.
- New pieces retain ordinary snapping, side support, terrain preparation, track damage and optional torch brackets. Wooden pieces carry handcarts, bronze engines and wagons; coal locomotives require metal or upgraded track. Existing pieces and saved trains are retained.
- There are now 65 pieces/icons, eleven portable vehicle types and seventeen unchanged settings using protocol v9. Install 0.22.0 on every client and server, then restart for the DLL. The release builds with zero warnings or errors and passes 1187 automated tests, with none failed or skipped. In-game passing, placement, upgrade and multiplayer checks remain unrun.
0.21.2
- Lengthened the two-person handcart's deck from 2.1 m to 2.6 m and extended its frame, with tapered front corners to clear the existing V-shaped plow. Moved both standing riders 30 cm farther from the central pump for more leg room; the pump stays in place.
- Moved the tandem headlamp 52 cm sideways to clear the helper's legs and extended movement collision to cover the longer deck.
- Existing placed and packed tandem carts receive the model on reload without rebuilding. Prefab identity, wheelbase, couplers, recipes and driving behavior are retained. There are still 57 pieces/icons, eleven portable vehicle types and seventeen settings using protocol v9.
- Update every client and server together. The release builds with zero warnings or errors and passes 1143 automated tests, with none failed or skipped. In-game rider clearance, pumping, attachments and multiplayer checks remain unrun.
0.21.1
- Refresh railway container contents before open, stack, take-all and packing operations; wait up to five seconds for native ownership grants. Applies to storage wagons and both fuel hoppers. Preserves existing saved contents instead of allowing stale or empty local inventories to replace them; it cannot restore items already missing from an earlier save.
- Require a real rear driver and distinct attached helper, freshly confirmed by the helper's own client, for tandem cooperative speed. Zero-stamina mode follows the same rule. Old seat reservations and pending boarding requests do not grant the bonus.
- Cap tandem speed to
HandcartMaxSpeedwhen assistance is lost, including forward/reverse coasting; retain momentum below that limit. Departure clears the bonus when known over the network, and attachment confirmations expire within 0.75 seconds of their request. - Let native server admins submit live local file/config-manager edits. Authenticated direct peer messages carry only changed fields; the server rechecks its admin list, merges with current settings, saves its configuration, then broadcasts. Failed saves leave active settings unchanged. Ordinary clients cannot override the server.
- Joining/reconnecting never uploads local values. Admin console command
vikingrail_config pushdeliberately reloads and submits all seventeen local fields;vikingrail_config statusor the bare command reports authority, permission and pending work. - The 57 pieces/icons, eleven vehicle types and seventeen settings/defaults are unchanged. Update every client and server together for protocol v9, then restart for the DLL. The release builds with zero warnings or errors and passes 1143 automated tests, with none failed or skipped. In-game cargo, tandem and admin-configuration acceptance checks remain unrun.
0.21.0
- Added Bronze rail engine (
vr_bronze_engine) for 20 Wood + 10 Bronze + 10 Bronze Nails, with no workbench requirement. It runs on wooden and metal tracks, including wooden Y switches and all curves. There are now 57 Hammer pieces/icons and eleven portable vehicle types. - Burns ordinary Wood only, using no player stamina. The two-slot hopper opens with Alternate placement + Use while parked and dismounted. Each Wood provides 60 seconds of accepted powered movement by default; idling, braking and blocked travel consume none. Fine Wood, Core Wood, Coal and Resin do not fuel it.
- Default speed is 4 m/s and attached-wagon limit is three. Acceleration and traction are halfway between the regular handcart and coal locomotive, with normal load and grade penalties. The cooperative tandem remains 4.5 m/s by default and needs two eligible riders; the coal locomotive remains 5 m/s, 90 seconds per Coal and metal-track-only.
- Added
Fuel.BronzeFuelSecondsPerItem,Trains.BronzeEngineMaxSpeedandTrains.BronzeEngineMaxCarts. All seventeen settings retain live reload and host authority, using protocol v8. Use a cap of at least five for a complete workbench train. - Added a compact firebox/boiler, short chimney, animated flywheel, quieter engine sounds and smoke, plus normal lamps, optional Rail torches, plows and coupling. The empty packed engine weighs 45 and preserves hopper contents, health, paid fuel credit and lamp state.
- Update every client and server together and restart for the new DLL. The release builds with zero warnings or errors and passes 1073 automated tests, including 209 settings tests and 51 new bronze settings cases. In-game fuel, packing, wooden-track and multiplayer validation remain unrun.
0.20.0
- Added Two-person rail handcart (
vr_handcart_tandem) for 30 Wood + 20 Bronze Nails, with rear driver and front helper stands, a double-sided pump and its own icon. There are now 56 Hammer pieces/icons and ten portable vehicle types. Existing regular handcarts keep their original model and single rider. - A confirmed, eligible helper automatically pumps while the primary driver controls movement. Defaults are 4.5 m/s and 2.5 stamina per second per rider: 50% faster and 50% less stamina per rider than the regular handcart defaults. Solo operation or an exhausted helper uses regular handcart speed/stamina settings. Load and native stamina-cost modifiers still apply; idle, braking and blocked movement cost no stamina.
- Added
Trains.TandemHandcartMaxSpeed,TandemHandcartStaminaPerSecondandTandemHandcartMaxCarts. All fourteen settings retain live reload and host authority using protocol v7. The tandem cart limit is independent of rider count and defaults to four; set it to at least five for the complete workshop train. - The helper is a standing operator, adding no cargo/passenger weight or chair comfort. Both riders must dismount to pack the cart; its empty bundle weighs 35. Standard lamps, optional Rail torches, plows, coupling and placement rules are retained.
- Handcart stamina availability checks now use the game's actual stamina-cost multiplier, including free-cost worlds, matching the amount consumed by the native player code.
- Replicated the pump-handle animation for the helper and remote observers. Movement audio supports configured speeds through 15 m/s, with bounded pitch.
- Update every client and server together, then restart for the new DLL. The release builds with zero warnings or errors and passes 961 automated tests. In-game cooperative riding, stamina accounting, packing and multiplayer validation remain unrun.
0.19.0
- Added a roofed workbench cart with three shelter walls and four separate upgrade carts: chopping block, tanning rack, adze and tool shelf. Each supports coupling, packing/replacement, lamps and Rail torches, with a unique icon and no crafting-station construction requirement. There are now 55 Hammer pieces/icons and nine portable vehicle types.
- Use the workbench while parked with the driver dismounted; crafting closes if the train starts. Loaded upgrades on the same connected train can contribute beyond native proximity range. Nearby ordinary upgrades still count, with duplicate types counted once and a maximum workbench level of 5. Set the engine's wagon limit to at least 5 for the bench and all four upgrades.
- Fixed configuration changes remaining at startup values. All eleven settings now update from a stable saved file after roughly 1–2 seconds, or from config-manager edits on the game thread. Hosts distribute live values to clients using protocol v6; update all peers together. DLL installation still requires a restart.
- Added
Construction.TracksTakeDamage, true by default. False blocks damage to rails and Y switches, including combat, fire, weather/biome wear and unsupported collapse; Hammer removal still works. It does not repair lost health or affect vehicles, signs, torches or ordinary buildings. - Existing Coal credit, attached trains and saved terrain retain their previous behavior when settings change. In-game workshop, live-configuration, damage-policy and multiplayer validation remain pending.
0.18.0
- Added
Trains.HandcartMaxSpeedandTrains.LocomotiveMaxSpeed, defaulting to 3 and 5 m/s. Both accept 0.5–15 m/s, including decimals. Load and climbs still reduce powered speed; wagons follow the engine. Acceleration, braking, coal burn time and stamina use per second are unchanged. - Vehicle bodies now use front/rear axle samples to ease pitch and yaw across connected sections and curve segments, including small endpoint gaps allowed by the existing connection rules. Routing, stop positions, locomotive track restrictions and saved track geometry remain intact. In-game motion and multiplayer validation remain pending.
- Keep each vehicle's exact route distance separate from its body position, including parked vehicles, wagons, save/load and ownership handoffs, so the body adjustment does not accumulate into train spacing.
- The host's ten-setting snapshot uses protocol v5. Update every client and the server together, then restart to apply settings. Existing vehicles need no rebuilding; the 50 Hammer pieces and icons are unchanged.
0.17.1
- Addressed two identified sources of standing-driver vibration: ground-based foot planting on a moving cart and attachment updates occurring before cart movement. Suppression applies only to verified handcart and locomotive drivers; their attachment is refreshed after movement and before rendering/network publication.
- Preserved world-relative mouse look, native collision and dismount behavior, and existing rider anchors. Seated passengers, ordinary walking, chairs and ships keep their existing behavior.
- Existing carts receive the change without rebuilding. Models, movement speed, stamina, recipes, all 50 pieces/icons and the eight settings are unchanged. Update every client and the server together. The vibration fix and multiplayer appearance remain unverified in-game.
0.17.0
- Added in-place Iron Nail upgrades for all 19 wooden rail variants, including long rails, angled and inclined curves, stops, bumpers and the Y switch. Put Iron Nails on the hotbar, put away the Hammer and leave build mode, aim at a rail or sleeper within 4 m, and use that slot while on foot with the track clear. No Hammer or workbench is needed; ward access still applies.
- Upgraded pieces use the corresponding metal model, name and icon and support coal locomotives. Position, rotation, path geometry, saved identity, health, creator, selected Y route, side supports and torch attachments are retained. Ground excavation, filling and painting do not rerun.
- Pay only the upgrade's Iron Nail cost. Existing Wood/Fine Wood and Bronze Nails remain invested; removal refunds those original materials plus the Iron Nails actually paid, subject to normal resource-drop rules. Upgrading does not grant the extra resources in a newly built metal piece's recipe.
- There are still 50 Hammer pieces and eight unchanged settings. Update every client and the server together. In-game upgrade and multiplayer verification remain pending.
0.16.3
- Added Wooden track — Y switch for 15 Wood + 4 Bronze Nails, with wooden rails, bronze hardware and its own icon. It needs no workbench, Iron or Fine Wood.
- Shares the metal Y's 2 m entry, 45° branches, 8 m radius, selectable routes, saved selection, reservations, side supports, terrain preparation and torch brackets.
- Handcarts, storage wagons and passenger wagons can use it. Locomotives stop before its common entry or either branch; a locomotive built on wood cannot be mounted or driven, and packed locomotive placement there is refused. Existing metal switches are unchanged.
- There are now 50 Hammer pieces. The eight settings are unchanged; update all clients and the server together. In-game verification remains pending.
0.16.2
- Moved the handcart rider 25 cm rearward while retaining the same riding height.
- Raised the pump pivot 15 cm, extended its post to the same deck position and removed the forward arm and crossbar. The remaining arm and crossbar face the rider and retain their pumping animation.
- Updated the handcart icon. Existing handcarts and packed models receive the changes on reload without rebuilding. Locomotive geometry, driving behavior, sound, stamina, cargo, couplings, recipes and settings are unchanged. In-game visual verification remains pending.
0.16.1
- Separated the station frame's uprights, header and decorative caps to remove overlapping surfaces at the upper corners. Existing station signs update on reload while retaining their text, position, board height and legs.
- Added Rail direction sign — left for 4 Wood + 2 Bronze Nails, with its own left-arrow icon. Existing direction signs retain their right arrow and saved text and now display as Rail direction sign — right.
- Updated the station icon. There are now 49 Hammer pieces and five editable signs; settings and existing recipes are unchanged. Update all clients and the server together. In-game visual verification remains pending.
0.16.0
- Added flat 11.25°, 45° and 90° curves in both metal and wooden tiers, retaining the original 22.5° flat curves.
- Added left and right curved inclines at 11.25°, 22.5°, 45° and 90° in both tiers. Curves follow an 8 m radius; inclines use a 1:4 grade and work downhill when connected from their upper end.
- Added 22 unique curve icons with angle and incline markers, bringing the total to 48 Hammer pieces. New curves use ordinary Wood and Iron Nails or Bronze Nails to match their tier; existing Fine Wood long-piece recipes remain intact.
- New curves retain normal terrain preparation, support, side torch brackets, snapping and wooden-track locomotive restrictions. Settings are unchanged. Update all clients and the server together for the new prefabs. In-game verification remains pending.
0.15.0
- Added
Trains.HandcartStaminaPerSecond, from 0–100 with a default of 5. Existing load multipliers still apply; zero disables stamina use and regeneration delay from pumping. - Smoothed the camera for handcart/locomotive drivers and seated passengers through track joints and grade changes, while retaining mouse look and native camera collision avoidance. No new camera setting is required.
- Widened the dirt trackbed shoulder from about 25 cm to 50 cm beyond the sleeper edges.
- Added independent
Construction.FillTerrainOnPlacement, enabled by default, to fill gaps up to 30 cm beneath the bed and shoulders of newly placed ground-level rails while preserving open bridge spans and intervening decks. Larger gaps receive no partial buildup. - Terrain changes remain placement-only and permanent; loading existing rails does not alter the ground. Update all clients and the server together for the expanded settings synchronization. In-game verification remains pending.
0.14.3
- Removed the handcart's continuous static-like noise while retaining its rhythmic pumping and mechanical knocks. Locomotive audio is unchanged.
- Matched the colors of long straight and inclined rails to regular tracks of the same tier. Updated all four long-track icons while retaining their 12 m labels.
- Existing carts and rails update on reload without rebuilding. Fine Wood recipes, track dimensions, saved state and configuration are unchanged. In-game listening and visual verification remain pending.
0.14.2
- Replaced borrowed texture atlases on generated railway parts with opaque wood and metal textures to address holes in wheels, chimneys, boilers, rails and other solid surfaces.
- Kept native chair, sign, torch and smoke materials intact. Lamp lenses remain solid while their glow follows the light switch.
- Existing pieces update on load; recipes, saved state and configuration are unchanged. In-game visual verification remains pending.
0.14.1
- Corrected the dirt-brush compatibility check so unchanged neighboring pixels marked as processed no longer cause a false failure.
- Unavailable ground painting no longer blocks otherwise valid track placement. Valid excavation is retained and a notice explains skipped painting.
0.14.0
- Moved elevated-track support checks to the side rails and added underside snap points for posts and beams.
- Added dirt trackbeds beneath and beside newly placed ground-level rails, including curves and Y switches; elevated spans and intervening bridge decks are skipped.
- Added the synchronized
DirtTrackbedOnPlacementsetting, enabled by default and independent of terrain clearing. - Upgrade requirement: reinforce bridges supported only by narrow center posts with crossbeams or side supports before installing this or a later version.
0.13.0
- Added handcart rolling and wooden mechanism sounds, plus locomotive rolling, rhythmic chuffs and steam hiss.
- Movement audio follows speed and power, uses positional sound, and obeys Valheim's sound-effects and master volume controls.
0.12.0
- Corrected passenger chair models and seating anchors.
- Added packing handles and portable inventory bundles for handcarts, locomotives, storage carts and passenger carts.
- Packing preserves condition, cargo, remaining coal credit and lamp state; cargo weight and portal restrictions continue to apply.
0.11.0
- Added assisted rail endpoint snapping, including long sections, curves, inclines and Y switch ports.
- Added optional lower-only terrain clearance when tracks are placed, with protected-area and digging-limit checks.
- Added the synchronized
ClearTerrainOnPlacementsetting.
0.10.2
- Raised all four sign styles on wooden legs and updated their icons.
- Added direct attachment of packed plows from inventory or the hotbar and improved placement clearance checks.
0.10.1
- Smoothed moving headlight direction and light fading.
- Stabilized vehicle-mounted torch lighting while preserving native flame and fuel behavior.
0.10.0
- Added 12 m straight and inclined rails for both track tiers, using Fine Wood and the appropriate nails.
- Brought the total to 26 Hammer pieces without changing existing track lengths.
0.9.0
- Added synchronized settings for attached-torch fuel use, seconds per Coal and separate handcart/locomotive wagon limits.
0.8.1
- Added optional Rail torch attachment brackets beside both track tiers and Y switch branches.
0.8.0
- Added editable railroad crossing signs, vehicle headlights and rear marker lamps.
- Added Rail torches with vehicle mounting brackets and portable packed plows.
- Added passenger comfort and resting support.
0.7.0
- Added the selectable metal Y switch with saved route selection and train occupancy checks.
- Changed ordinary metal rail recipes to Iron Nails; wooden rails retain Bronze Nails.
0.6.0
- Added two-seat passenger carts and locomotive chimney smoke.
- Increased the default Coal duration to 90 seconds of powered movement.
0.5.1
- Updated startup compatibility for Valheim 1.0.15, including cargo RPC resolution and current hover interfaces.
0.5.0
- Added a wooden railway tier and wooden plow using Wood and Bronze Nails.
- Restricted coal locomotives to metal rails while allowing handcarts and wagons on either tier.
Earlier releases
- Introduced placeable rails, human-powered handcarts, coal locomotives, storage carts, stopping tracks, end bumpers and detachable creature plows.
- Added editable railway signs, unique Hammer icons and construction without a nearby workbench.