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
| Date uploaded | 3 weeks ago |
| Version | 0.46.1 |
| Download link | teamc00lkidd-VikingRail-0.46.1.zip |
| Downloads | 258 |
| Dependency string | teamc00lkidd-VikingRail-0.46.1 |
README
Viking Rail
Build a railway across Valheim with hand-pumped carts, Wood-powered bronze engines, coal and Eitr engines, storage wagons and two-seat passenger cars. Lay tracks on the ground or supported bridges, add Y junctions and passing sidings, and finish your stations with editable signs and lighting.
Version 0.46.1 · Experimental release · BepInEx required
Version 0.46.1 lets matching bronze, coal or Eitr engines share one train, operated by one driver from any parked engine cab. Fueled engines share the load and add 5% to the configured base speed for each extra active engine, up to 20% and never above 15 m/s. Engines retain their own fuel and may face either way; empty engines can be towed, and an empty selected cab can drive using fueled partners. Cart limits count only unpowered carts; matching engines use no cart slots. Handcarts remain separate. Previous downhill coasting, stamina diagnostics, two-metre growth protection and stone gravel without terrain-height changes remain included. Update all clients and the server together; no new settings or rebuilding are required. Live in-game verification remains UNRUN.
The 0.44.3 gate fixes remain included: gates recognize waiting trains, finish opening after controls are released, retry delayed initialization and ignore eligible small plants and branches in their door sweep. Existing gates need no rebuilding.
The automatic railway gate, original diverging three-way/Y switches, bypass sidings, turntables, all engines and carts, and music volume/Halloween techno features remain included. Totals are 86 Hammer pieces/icons, sixteen portable vehicle types, eleven unpowered carts, 29 wooden upgrade variants, 35 shared settings on protocol v13, seven personal music preferences and 92 embedded resources. No new config keys are needed. No MWL integration is shipped.
The sign trial uses the native two-metre wooden pole's texture and matching beam mesh for added legs/feet, station uprights and warning/crossing stems and crossbucks. The mesh preserves its grain mapping and adds beveled edges within the original dimensions. Brass, iron, red markings, text, box collisions, recipes and support are preserved; trains and track wood keep their existing materials. The native mesh and material come from the installed game. A missing source keeps the previous generated wood and logs a warning, rather than preventing sign registration.
The four normal/long wooden/metal steep inclines, remote automatic travel, manual throttle and ordinary coupling controls remain included. Existing trains need no rebuilding. Use matching versions on every client and server.
Features
- 86 Hammer pieces, each with a unique icon. Railroad construction needs no nearby workbench; material discovery, costs and structural support still apply.
- Automatic railway gate: a standalone double gate over existing level straight rails. It opens for approaching trains from either direction, waits for the entire formation to clear, and then closes. Its 5 m opening has no overhead beam; automatic trains can wait for opening without disabling their controller.
- Parallel yard splitters: wooden/iron 3-way and 5-way fans have parallel exits 4 m apart, with 18 m/26 m overall lengths. Use the lever to select a lane; existing reservations keep the junction locked until clear. Wooden variants upgrade in place for 20/30 Iron Nails. Detached carts retain normal manual pushing.
- Yard switches and turntables: iron/wood three-way switches route a train left, straight or right. Iron 12 m and 24 m turntables rotate a fully parked train on a 3.6 m-wide deck in 45° steps. Cargo may stay aboard; inventories must close and all riders must dismount. Unpowered wagons do not gain free-rolling gravity behavior.
- Automatic controller: attach a lever box to a steam or Eitr engine for unattended forward travel. By default the host/server can keep the train and its route loaded away from players, subject to a remote-train limit. Use starts/stops; brake sections, obstacles, end stops and empty fuel stop it. Build for 5 Fine Wood, 5 Iron and 1 Surtling Core. No automatic switching, offline catch-up or automatic restart.
- 24 m rail bridges: metal or wooden spans with a 3.6 m walkway, open side trusses and 1,200 health. Support both ends on solid banks or strong stone/iron piers; no middle pier is needed. The metal bridge carries all engines; the wooden bridge carries handcarts, bronze engines and wagons.
- Passing sidings: connect two mirrored bypass switches with straight rails so one train can wait while another passes. Separate S-shaped bypass curves shift a single route 4 m sideways over 12 m forward.
- Two track tiers: wooden rails use Wood and Bronze Nails; metal rails use Iron Nails and support coal and Eitr engines. Both offer straights, curves, inclines, stopping tracks and end bumpers. Long straight and inclined sections span 12 m and use Fine Wood.
- Upgrade existing rails: use Iron Nails on a clear wooden rail to convert it to metal without rebuilding. The original timber and Bronze Nails remain invested; pay only the upgrade's Iron Nail cost.
- More curves: flat 11.25°, 22.5°, 45° and 90° bends, plus left and right curved inclines at each angle. All follow an 8 m radius; curved inclines use a 1:4 grade and work downhill when connected at their upper end. New curves use ordinary Wood and their tier's nails.
- Five engine choices: regular handcart (4.5 m/s), cooperative two-person handcart (6.75 m/s), Wood-powered bronze engine (6 m/s), coal locomotive (7.5 m/s), or Eitr engine (10.5 m/s). Speeds accept 0.5–15 m/s; cargo, wagons and climbs reduce powered speed. Bronze, coal and Eitr engines consume no stamina. Each ordinary Wood supplies 60 seconds of powered travel in bronze; Coal supplies 90 seconds in the locomotive; Refined Eitr supplies 300 seconds in the Eitr engine. Idling, braking and blocked movement consume no fuel.
- Steam locomotive detail: an iron boiler with brass bands and rivets, a new stack, gauge and coal hopper, plus spoked wheels and moving rods, pistons and flywheel. Travel drives the machinery in either direction; coasting animates and resting freezes it. The driver position, recipe, fuel, mass and configured speeds are unchanged.
- Stepped manual throttle: tap the existing forward/backward controls to move through five forward notches, neutral and five reverse notches. Each notch is 20% of the configured, load-adjusted powered target on flat/uphill routes. A strong enough net descent with available power targets the full configured maximum even at a low notch. Holding a key does not repeat; the selected throttle remains active while the driver stays aboard. Neutral coasts, Block resets and brakes, and normal stops clear the throttle.
- Downhill momentum: grade across the whole train, weighted by vehicle/cargo/passenger mass, can build speed and carry it onto the flat or partway uphill. The current cap uses the configured base plus any matching fueled-engine bonus, never above 15 m/s. With active throttle and available power, a net descent that beats resistance powers to the full cap, then coasts free while the descent sustains it. Neutral coasting is free; dismounting parks the train immediately.
- Configurable load and hills: separate multipliers for each engine scale load penalties on powered speed/acceleration and uphill penalties on target speed. Bronze and coal default to half the previous coefficients; both handcart modes keep their previous response. Values from 0–5 allow disabling, restoring or increasing either penalty.
- Cargo and passengers: attach 16-slot storage wagons with visible loads and two-chair passenger carts with a longer 2.7 m deck, wider aisle, raised canvas awning and front chiminea. A lit hearth warms seated riders; valid passengers receive at least comfort 3 and can rest when conditions permit. Default caps are three wagons for bronze, eight for Eitr, and four for either handcart or coal, shared by all wagon types.
- Coupling controls: all sixteen engine/cart types have front and rear red side levers. Press Use to couple an open end or release a connected end while parked. Either wagon end can attach to either engine end, with its facing preserved. Drive forward/reverse toward a parked wagon group or hand-push a single wagon to connect automatically. Close storage and clear wagon riders; the engine operators may remain aboard. The engine's cart limit counts unpowered carts across both branches; additional matching engines use no cart slots, and only one engine is operated at a time. After uncoupling, separate centers beyond 3.15 m before approaching again, or use a lever to reconnect manually. Detached groups can hold up to 20 wagons; only a single detached wagon can be hand-pushed.
- Position carts by hand: use the rear central push bar on any of the eleven unpowered carts to move it along the rails at 0.8 m/s. Uncouple both ends, close storage and have passengers dismount first. No additional stamina or fuel is consumed.
- Travelling workshop: carry a sheltered workbench, chopping block, tanning rack, adze and tool shelf on five separate wagons. Set the engine's cart limit to at least five for the complete level-5 workshop, and park/dismount before crafting.
- Repair station cart: a separate covered bench and anvil repairs all eligible damaged carried/equipped workbench or forge items through base station level 4. No extension carts, fuel or repair materials are needed.
- Two mounting pads: carry up to two compatible defenders, native training dummies, signs, horizontal item stands, or standing wood/iron torches. Build the mounting cart for 30 Wood, 6 Iron and 10 Iron Nails. Park and uncouple both ends, place a supported piece within 2.5 m of a pad, then use that pad while standing nearby on foot. Use the occupied pad again to detach onto clear supported ground beside the cart. Detach before editing, refueling, packing or removing the cart with a Hammer. Dummies retain their original targeting, equipment, fuel use and combat; their mods are optional and their own building requirements still apply.
- Eitr engine: dark metal and brass around a steady turquoise core, with a powered hum and no chimney. Refined Eitr supplies 300 powered seconds per item by default, with no stamina cost. Default speed is 10.5 m/s with eight wagon slots; metal or upgraded rails are required.
- Railway infrastructure: assisted endpoint snapping, selectable metal and wooden Y switches, support snap points under the side rails, and optional native stone gravel beneath tracks with 2 m shoulders on each side. Prepare terrain heights manually.
- Clear rail beds: grass/clutter, world vegetation and existing natural pickups/plants/small scenery rocks are suppressed. Protection extends 2 m beyond sleeper sides and ends, checks overlapping objects, and retries late-loading resources. Every switch branch and spaces between sleepers are covered, including ground between 4 m-spaced parallel lanes. Dropped items and cargo remain untouched. Protection remains active when gravel painting is disabled and never reshapes soil.
- Finishing touches: headlights, rear marker lamps, optional always-lit Rail torches on vehicles and track-side brackets, and five editable signs: station, left direction, right direction, warning and crossing. Rail torches cost 2 ordinary Wood + 1 Greydwarf Eye and never need Resin.
- Halloween pumpkin carriage: one passenger chair inside a hollow pumpkin shell, steady glowing eyes and original atmospheric waltz music. Tow it on either rail tier and receive normal riding comfort, with the usual resting conditions.
- Portable equipment: pack and replace all sixteen vehicle types while preserving their condition, cargo and fuel. Mount one wood or metal plow on either free end of any engine or cart. The outward-facing blade on the leading vehicle shoves and damages animals and monsters in either travel direction, including tamed creatures. Players are never plow targets.
Coal and Eitr engines need metal or upgraded track. Handcarts, bronze engines and wagons can travel on either tier. Movement follows the connected railway under a mounted driver or an active automatic controller on steam/Eitr engines. Physical derailments are not included. The bronze flywheel and coal locomotive's wheels and running gear animate; rail drivers keep their still riding pose.
Halloween pumpkin carriage
Build Halloween pumpkin carriage (vr_pumpkin_cart) from Hammer → Misc for 30 Wood + 10 Fine Wood + 20 Bronze Nails + 10 Resin + 2 Surtling Cores, without a nearby workbench. Its hollow orange shell has a doorway, glowing eyes, a green stem and vines. It is unpowered, takes one cart slot, and travels on wood or metal rails wherever its engine can go.
Press Use (E) on its single chair to sit and Jump to dismount. A confirmed rider receives at least comfort 3 through the normal passenger system. Resting still requires normal warmth, dryness and safety; the carriage has no hearth and gives no passenger comfort to people standing nearby.
Outside a mixed train, press Use (E) on the music console to play or stop Hollow Lantern Waltz: an original four-minute instrumental in D minor, 72 BPM, 3/4, with music-box/celesta, soft organ, bowed synths and ghostly pads. It plays while moving or parked and consumes no ongoing fuel. The pumpkin uses the music settings below and has no banner, dancer or beat flashes; its eyes stay steady.
Use ordinary coupling/release controls, the rear push bar for 0.8 m/s hand positioning, and the brass packing handle. Dismount, uncouple both ends and remove Rail torches before packing. The empty bundle weighs 35; replacement preserves normal condition and lamp state, starts music stopped and leaves its chair empty. Lamps and optional Rail-torch mounts remain available. Allow space for the pumpkin shell, doorway exit and tall stem.
Techno Viking sound cart
Build Techno Viking sound cart from Hammer → Misc after discovering its ingredients: 20 Fine Wood, 8 Bronze, 20 Bronze Nails, 2 Surtling Cores and 4 Deer Hide. No nearby crafting station is required. It is an unpowered wagon, uses one ordinary cart slot and can be towed on wood or metal rails wherever its engine is allowed. Use the rear push bar to position it slowly, the front or rear red lever to operate that coupling, and the brass handle to pack it like the other wagons.
Outside a mixed train, press Use (E) on the console or cart body to start/stop Thunder on the Rails, an original instrumental techno track in D minor at 132 BPM, lasting 3:52.7 and looping. Press Alt-place + Use for coupling. Music plays while moving or parked and needs no ongoing fuel. Bronze horns, rune discs and a small carved Viking animate from the shared song clock; player animations, cameras and engine speed are unchanged. Edit the front banner while parked and dismounted. Native sign permissions, author attribution, text filtering and mute rules remain in use.
Nearby listeners join the current point in the song. The owner writes one shared start time; audio is played locally from the embedded asset, with no audio streaming over the network, no speed-dependent pitch change and no soundtrack decoding on a dedicated server. Moving out of range fades the source. The nearest independent music group is heard by default, with hysteresis and a short fade when switching speakers; a mixed train counts as one group. Packing preserves the banner, ordinary track selection and physical volume setting; replacement and a new world/server session start stopped. Loading a sector or changing cart ownership within the same session retains the song position. Music itself does not keep unloaded terrain alive; a remote automatic train uses its existing server simulation.
After updating and restarting, press E to play, or stop and play again if already running. The client log records Music playback: about one second after local playback begins, including priority, virtual, time, gain and voice limits. The console warns when the game suppresses an otherwise enabled nearby source. If it stays silent, retain that line from BepInEx/LogOutput.log. Priority 32 preserves positional sound, distance fading and all volume/mute controls; it does not guarantee a voice in every crowded scene.
Cart volume controls and Halloween techno
Each musical cart has a brass volume dial beside its music console. Aim at the dial and press Use (E) to raise its volume by 10 percentage points, or Alternate placement + Use (Shift+E by default) to lower it. The range is 0–100%. This is the cart's shared loudness, so nearby listeners receive the same dial setting; their own personal volume and mute still apply. The setting survives saves, unloading, ownership changes and packing/replacing that cart. Aim at the separate console to start or stop music.
Connect at least one Techno Viking sound cart and one Halloween pumpkin carriage anywhere in the same complete coupled train, with other wagons allowed between them. They select Haunted Rail Rave, a new original 130 BPM, D harmonic minor techno instrumental lasting 3:56.3. Haunted bells, pipe organ and arpeggios accompany a strong kick and bass through an intro, build, drops, a quieter interlude and a looping return. It uses the existing carts and recipes; there is no separate Halloween techno build piece or fuel cost.
The most recent play/stop command from either console controls the mixed group, and the last volume dial used sets that group's loudness. Coupling stopped carts does not start music. Each listener hears one selected speaker for a mixed group, with a fade when the nearest eligible speaker changes; the three songs do not play together. Nearby independent groups remain separate. Without both cart types in the same complete formation, carts use their ordinary tracks and individual saved controls. Uncoupling restores each cart's own solo playback state, including any command last made on that cart. A new world/server session and newly unpacked carts still start with music off.
All music options live in BepInEx/config/local.valheim.vikingrail.cfg. Saved file edits and configuration-manager edits apply while running. Keep your existing CFG; missing personal keys gain their defaults without replacing your other values.
| Section / key | Default | Meaning |
|---|---|---|
| Music / MusicCartsEnabled | true | Shared admin switch allowing music playback |
| Music / MusicCartRange | 40 | Shared audible range in metres, 10–80 |
| Music / MusicCartMaxVolume | 0.6 | Shared maximum gain, 0–1 |
| MusicClient / Volume | 0.5 | Your master music gain, 0–1; applies to all three modes |
| MusicClient / TechnoVolume | 1 | Your Thunder on the Rails gain, 0–1 |
| MusicClient / PumpkinVolume | 1 | Your Hollow Lantern Waltz gain, 0–1 |
| MusicClient / HalloweenTechnoVolume | 1 | Your Haunted Rail Rave gain, 0–1 |
| MusicClient / Muted | false | Mute every musical cart only for you |
| MusicClient / BeatLights | false | Enable the Techno cart's cosmetic rune pulse; pumpkin eyes and real lamps stay steady |
| MusicClient / MaxAudibleCarts | 1 | Number of nearby independent music groups heard together, 1–4 |
Audible gain combines the shared maximum, the cart/group dial, your master Volume, the active track's personal gain and the game's effects volume. A zero or mute at any applicable control silences playback. For example, lowering PumpkinVolume does not reduce the mixed track; use HalloweenTechnoVolume for that mode. The seven MusicClient preferences are personal and never pushed to the server, even by admins. The existing 35 shared settings and protocol v13 are unchanged; the physical dials are saved cart state, not extra admin settings.
All three original soundtracks and their credits are embedded in the DLL, with no separate audio download, external samples or audio streaming. Music keeps priority 32 and normal positional/range fading. Dedicated servers synchronize state without decoding or playing sound. Live listening and multiplayer timing still require the included acceptance checks.
Installation
Requires PC Valheim and BepInExPack for Valheim. Jötunn is not required. Use a backed-up or disposable world for your first run.
With a mod manager: ensure BepInEx is installed in the active profile, install Viking Rail, then launch Valheim modded. Hexium assumes BepInEx, so it is not listed as a separate dependency in this package's manifest.
Manually: close Valheim, install BepInEx if needed, then copy this archive's plugins/VikingRail folder into your game's BepInEx/plugins folder. The resulting DLL path must be:
BepInEx/plugins/VikingRail/VikingRail.dll
Replace the previous DLL; keep only one installed copy. On Linux, directory capitalization matters. Start the game and check BepInEx/LogOutput.log for Viking Rail 0.46.1 loaded.
Every player and the dedicated server must install the same Viking Rail version. Multiplayer synchronization is implemented, but multiplayer remains experimental and has not completed in-game acceptance testing. The mod does not enforce an automatic missing-mod/version handshake.
This package targets Valheim 1.0.12 and Unity 6000.0.75f1 references and includes startup compatibility work for Valheim 1.0.15, network version 40. 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.
Version 0.46.1 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.
Before upgrading an older railway
The first startup of 0.33.1 or later updates any speeds still equal to the old defaults: handcart/solo tandem 4.5, cooperative tandem 6.75, bronze 6, coal 7.5 and Eitr 10.5 m/s. Custom speeds remain unchanged. The local Internal.SpeedDefaultsRevision = 1 marker prevents repeating this upgrade; leave it intact. Later speed edits, including choosing an old speed, are respected. Multiplayer continues to use the server's values. Manual wagon positioning remains 0.8 m/s; fuel, stamina and acceleration are unchanged.
Standing rail drivers, tandem helpers and cart pushers now hold a still pose while attached. Normal animation resumes after dismounting. Machinery still animates, and passenger chairs retain their native sitting behavior.
If upgrading from before 0.14.0, reinforce elevated tracks supported only by narrow center posts before installing. Elevated tracks now take support along the side rails. Use posts beneath those rails or suitable crossbeams/decks; a post touching only the center of a sleeper no longer supplies elevated support, and unsupported pieces can deteriorate. Ground support retains the game's normal behavior.
Version 0.46.1 contains 86 Hammer pieces/icons, sixteen portable vehicle types and eleven unpowered carts, including the 29 wooden upgrade variants and six workshop/repair carts. There are 35 shared settings and seven personal music preferences on protocol v13. These changes require matching installations: install the same version on every client and the server, then restart. Existing trains need no rebuilding; old rear-only links, recipes and saved contents remain compatible. Before rolling back below 0.38.0, uncouple new front-attached or opposite-facing formations while this version is still installed. Keep a world backup and the older DLL before testing remote travel. Missing optional mods or unknown saved prefabs block the affected remote area without deleting saved objects; carried D.A.R.E/G.N.O.M.E defenders require their mods on the server too.
Version 0.45.0 supersedes earlier excavation, filling and dirt-bed instructions. Existing ClearTerrainOnPlacement and FillTerrainOnPlacement values are retained for config compatibility but ignored, including true. DirtTrackbedOnPlacement now paints stone gravel and also applies gradually to loaded existing rails. Updating does not restore earlier cuts, fills or painted ground.
When upgrading from before 0.23.0, the eight load/hill multipliers receive their defaults while older settings keep their values. Bronze and coal default to half their previous penalty coefficients; set their four multipliers to 1 to restore those coefficients. Downhill momentum still applies.
Getting started
- Open Hammer → Misc and build a short test route. Discover the required materials to unlock recipes. Aim near a free rail endpoint to align the next section; use normal rotation to choose the connecting end or curve direction. Hold Alternate placement for free placement.
- Place an engine along the track. For a bronze, coal or Eitr engine, use Alternate placement + Use while parked and dismounted to open its hopper, add ordinary Wood, Coal or Refined Eitr respectively, and close it.
- Press Use to board, release movement, then tap forward/backward to adjust the engine throttle. Release both controls between taps; holding a key changes only one notch. Block resets to neutral and brakes, and Jump dismounts and parks. The HUD reports throttle direction/notch, speed, load, fuel and stopping reasons.
- Approach a parked wagon group with either end of a manually driven engine, or hand-push one wagon toward an open coupler, to connect automatically. Vehicles must share a connected route but may face either way. Close storage and clear wagon riders; engine operators can stay aboard. The train stops while connecting; release W/S before departing. For manual coupling at roughly 2.8 m center spacing, press Use on the appropriate front or rear red lever. Press it again to release that link. Alternate placement + Use remains available on wagon bodies; normal Use still opens storage or boards a chair.
- Use the Y switch's red lever on foot to select an exit before approaching. Clear the entire train and its approach before switching. At a stopping track, release movement and press again to depart; reverse away from an end bumper.
- Use a lamp to toggle that vehicle's lights, a sign to edit its text, or a detached plow beside either free end of a parked engine or cart to attach it. Park the whole train, dismount its operators and close storage before changing a plow. Build Rail torch on an empty vehicle or track-side bracket for optional lighting.
Both Y switches use a 2 m common entry and two 45° exits with an 8 m radius. Connect tracks at their three external endpoints. The wooden version requires no Iron or Fine Wood and uses the same lever, reservations, terrain preparation, side supports and torch brackets as the metal version. Handcarts, bronze engines, storage wagons and passenger wagons can use either. Locomotives stop before entering wood; one built on a wooden switch cannot be mounted or driven, and packed locomotive placement there is refused.
The default Use key is E, Alternate placement + Use is Shift+E, and forward/backward are W/S. Controls follow your existing Valheim bindings, including a gamepad axis returned to center between throttle changes. No additional key binding is required.
Engines and wagons use front/rear axle positions to ease pitch and turning across track joins and curve segments, including small gaps already accepted by the connection rules. This is intended to reduce sudden body rotation; route selection, stops and locomotive track restrictions still apply. Wagons follow their engine's speed, with their normal load penalties.
Choose Rail direction sign — left or Rail direction sign — right according to the arrow you want while reading from the front. Both cost 4 Wood + 2 Bronze Nails. Rotate the sign to face arriving players; choose its variant to point the arrow without turning the text away from them.
For a climbing bend, choose the angle and left/right inclined curve while viewing from its lower end toward its upper end. Snap the lower end to build uphill or the upper end to build downhill; the bend reverses handedness when travelled downhill. Use rotation or manual endpoint selection to choose the joining end. Use a level section between an ascent and a descent. Larger angles extend the same-radius bend rather than making it tighter.
To carry a vehicle, park and uncouple it, have everyone dismount, close storage, and remove attached plows and Rail torches. Use the brass handle at its left rear to pack it. To replace it, aim at clear track within 5 m and use the bundle from your inventory or hotbar. Packed vehicles retain cargo weight and normal portal restrictions.
Storage wagons and fuel hoppers now refresh saved contents before open, stack, take-all and packing operations. In multiplayer, allow up to five seconds for ownership to transfer; if it fails, wait for the message and retry while parked. The change protects existing saved items from stale local inventory copies. It cannot restore items already missing from an older save.
Storage wagons now have an open, low-sided bed showing one static cosmetic item model per occupied stack, up to sixteen. Models use the default item appearance; unsupported static models use a plain crate. The display updates on inventory changes and a half-second poll, including after loading or reconnecting; it adds no pickups, storage slots or inventory network data. Use normal E on a parked, unoccupied wagon to open its inventory. Safe loading now keeps the native inventory width and height alongside its items. The reported missing item display and Ctrl+E recovery still need in-game reproduction; this update does not claim a confirmed cause.
To dismantle a vehicle with the Hammer, empty it, park and have everyone dismount. Its attached Rail torches are removed through their native resource-drop path once each; the vehicle stays until every torch is confirmed gone. Allow up to ten seconds, including remote ownership handoffs, and stay nearby with access permission. Unresolved or vetoed torch removal leaves the vehicle in place; the requester's access and vehicle's empty/parked state are checked again before removal. Combat destruction, track-side torches and unloading keep their existing behavior. Packing still requires removing torches first.
The included USER_GUIDE.md covers recipes, plows, bridges, passenger resting, lights, pushing, packing and troubleshooting in more detail.
Manual engine throttle
All five engines have five forward notches, neutral and five reverse notches. Tap W to raise the signed notch or S to lower it. From forward 5/5, five separate S taps reach neutral; a sixth selects reverse 1/5. W slows reverse travel toward neutral. Fully release both controls between changes. Holding a key adds no further notches; pressing both together changes nothing and requires a full release before another change.
The selected throttle persists after releasing the key while the driver stays aboard. On flat or climbing routes, each notch supplies 20% of the configured, load-adjusted powered target: an unloaded bronze engine targets 6 m/s at 5/5 or 3.6 m/s at 3/5 on level track. Lowering the notch lets momentum coast down toward that target. When the whole train's downhill pull exceeds rolling resistance, any active notch with available power targets the full configured maximum in the travel direction, even at 1/5 or with a load. Load still reduces acceleration. At the cap it coasts without fuel or pumping stamina while the descent sustains it. Neutral selects gravity-only coasting, and an opposite-direction notch still brakes to zero before reversing.
The regular handcart's default 4.5 m/s is its unloaded, flat-track target at 5/5. At 1/5, expect 0.9 m/s unloaded or about 0.75 m/s with one empty wagon at default load settings. These flat-track examples remain unchanged; a qualifying descent instead uses the full configured cap.
Block resets the throttle and brakes; Jump dismounts and parks. Stops, bumpers, ordinary obstructions, storage/coupling service, unavailable fuel or stamina, stale controls, menus, lost application focus and driver loss reset to neutral. Release movement, then press afresh to restart. A brief plow creature-response wait retains an otherwise eligible throttle while clearing finishes. The HUD shows the direction and notch; this temporary state is not saved across driver changes or reloads.
Fuel and stamina retain their normal cost per second of actual powered movement. Slow hand-pushing of unpowered wagons still uses held W/S, and the driverless steam/Eitr controller retains its separate mode. Manual throttle always requires a driver aboard.
Matching powered engines in one train
Couple bronze engines to bronze engines, coal locomotives to coal locomotives, or Eitr engines to Eitr engines. Engines and intervening wagons may face either way and can connect at either free physical end. Mixed engine types, regular handcarts and two-person handcarts do not gain multi-engine coupling. Use the existing red end levers or drive an exposed coupler into a parked matching engine/group. Close storage and clear incoming operators and wagon riders before coupling; the receiving train's driver can remain aboard.
Park the whole train and release the current controls, then press Use at whichever engine cab you want to drive. Wait nearby for its owners to release the train and attachments. That cab becomes the single driving position; forward/reverse follows the selected engine's facing, while cars, cargo and plows keep their physical positions and orientations. Only one engine operator or automatic controller may be active. Ordinary passenger-cart riders may remain seated during a parked cab change.
Each available fueled engine contributes to pulling the train and consumes its own hopper's fuel for the accepted powered time. Supplying engines share the wagon/cargo resistance and restore loaded acceleration toward the existing unloaded rate; they do not multiply unloaded acceleration. Each extra supplying engine adds 5% of the configured base maximum speed, capped at 20% total and 15 m/s overall. For example, unloaded bronze engines target 6 m/s alone, 6.3 m/s with two and 6.6 m/s with three at full throttle on level track. Load, hills, throttle and route restrictions still apply. The existing loaded-downhill rule reaches the current shared cap before coasting; coasting and rejected movement spend no propulsion fuel.
At default bronze settings, full throttle and level track, a 2,000 total in-game weight load in one cargo cart targets 2.18 m/s with one engine or 3.36 m/s with two (about 54% faster). Across three cargo carts, the corresponding targets are 2.06 and 3.23 m/s. These use the game's raw weight value, not a pounds conversion; hopper fuel, passengers and mounted items contribute to total load. Both engines burn their own Wood, and hills or custom speed/load settings change the result.
An empty engine supplies no bonus, consumes no propulsion fuel and adds towing resistance. The selected cab may be empty if another matching engine can supply fuel. When a partner runs out, the contribution and available speed adjust to the remaining suppliers. Refill each hopper separately while parked under the usual hopper-access rules. Existing fuel duration settings apply independently to every engine.
Cart limits count only unpowered carts across both branches; all matching engines are excluded, whether fueled or empty. A bronze train with the default limit of three carts can carry three wagons plus two bronze engines. A zero cart limit still permits matching engines to couple. An engine-only group can join an existing powered train even after its wagon limit was lowered, provided it adds no carts; adding a first engine to an oversized wagon-only group or combining cart-bearing groups must fit the configured cap. A separate safety limit permits up to 21 engines per train. Change the existing cart-limit setting for more wagons; no settings or protocol fields were added. For siding length, continue to count extra engines like wagons. Keep plows on exposed outer ends: a blade cannot occupy a coupled end, and only the outward blade on the actual leading car acts, including a reversed helper engine. One plow per vehicle remains the limit.
Remote automatic steam/Eitr operation transfers and loads the whole matching-engine train and its attachments before selecting the controller's engine as the driving root. Other controllers stay inactive. In loaded-area mode (RemoteSimulationEnabled=false), take and release manual controls at a secondary engine first, then activate its controller while parked. Bronze engines still have no automatic controller. Update every installation together. Before downgrading below 0.46.0, uncouple the additional engines while 0.46.0 or later is still installed. Existing single-engine trains need no rebuilding.
Coupling and storage while the driver stays aboard
Bring the train to a complete stop. Another player can use either red coupling lever, the Alternate placement + Use wagon-body shortcut, or normal Use to open storage while the engine driver and tandem helper remain aboard. Close all storage and clear wagon passengers and hand-pushers throughout both branches and any group being attached, including wagons whose links will not change.
All wagon types can connect ahead, behind or on both sides of an engine while keeping their facing. The attachment cap counts both branches together, including every extra matching powered engine. Different engine types and handcarts cannot be combined. The true leading wagon controls stop-track and obstacle checks when pushing or pulling. Normal wards, cargo preservation and server authority also apply to remote automatic travel. A plow blocks coupling at its occupied end only; the other end stays usable. Uncouple the selected end before mounting a plow, or detach the plow before coupling there. A plow on the outer end of a leading wagon clears creatures when that wagon is pushed. Automatic controllers do not initiate new couplings.
Opening storage holds the train still through the request, inventory session and return of the saved contents. Closing the window finishes the handoff; if the HUD still says storage is busy, wait for it to finish. After storage or coupling, release W/S, then press again to depart. Held movement input cannot start the train as another player finishes working.
Moving trains cannot be coupled or opened. Wagon limits, track alignment, obstacle clearance and ward permissions still apply. Fuel hoppers remain separate: dismount the engine driver before another player opens the engine's own hopper. Packing, Hammer removal and workshop crafting retain their existing requirements.
Downhill momentum
All five engines can gain speed downhill and carry it onto flat track or partway up the next climb. Grade is weighted across the whole train using vehicle mass, cargo and seated passengers; the engine reaching flat track does not instantly cancel the effect of wagons still descending.
With active throttle and available power, a weighted descent that overcomes rolling resistance keeps powering to the full configured maximum, even with a low notch or loaded wagons. Load still reduces acceleration. At the cap, the train coasts for free while the descent sustains it. Matching fueled engines can raise their configured base cap by up to 20%, never above 15 m/s. Default single-engine caps are 4.5 / 6.75 / 6 / 7.5 / 10.5 m/s for regular/cooperative-tandem/bronze/coal/Eitr. Losing eligible tandem help applies the solo cap before the next step.
Select neutral throttle for gravity-only coasting at any speed; releasing W/S retains the selected notch. Exhausted or manually driven out-of-fuel engines gain no extra power. Level-track resistance removes about 0.25 m/s each second; uphill travel spends momentum. Flat/uphill routes keep their existing load/notch targets, and shallow descents that do not overcome resistance gain no full-cap powered target. Leaving the descent preserves momentum rather than instantly reducing speed to the normal target.
For manual driving, neutral throttle holds a stopped train parked. Select a powered direction to depart, then step back to neutral when you want to coast. Block resets to neutral and brakes strongly; selecting an opposite-direction notch brakes before reversing. Menus or stale input also reset and brake, and dismounting parks the train immediately. The automatic controller provides forward input without a rider and stops when fuel is insufficient. Stops, bumpers, route restrictions and collision checks remain active in both modes.
Only actual engine power consumes fuel or pumping stamina and produces powered exhaust/pumping effects. Neutral and out-of-fuel coasting cost nothing; handcart pumping animation stops and pumping sound quiets while coasting. The rear push bars on individual wagons retain their controlled 0.8 m/s positioning behavior, without downhill momentum.
Automatic steam and Eitr travel
Build Rail automatic controller for 5 Fine Wood + 5 Iron + 1 Surtling Core. Place it within 2.5 m of the left controls of a parked steam/coal or Eitr engine, then press Use to attach it. Each engine accepts one; handcarts and bronze engines do not. Fill the normal hopper and choose the switch route.
With Automation.RemoteSimulationEnabled = true (default), leave the whole train parked and unoccupied, close storage and finish other interactions. Use the attached lever while standing beside the engine. Stay there until ready; loading and ownership transfer can take up to 45 seconds. The server authenticates the request and takes ownership of the original train and attachments, preserving cargo and saved state. Once active, it may travel away from players; the starter can leave if another player remains online elsewhere.
The server loads 3 × 3 zone neighborhoods around the whole train and a route sample 24 m ahead, bounded to 25 unique zones per train. It waits for actual terrain and required network objects before advancing. Up to four remote trains run at once by default; admins can choose 1–8. This includes every linked wagon, up to the engine's configured cap and the existing 20-wagon maximum. Real players retain normal world loading; no fake player is created. Unknown saved prefabs or missing optional mods stop the affected loading operation without deleting saved objects.
Normal speed, load/hill penalties, momentum, paid fuel, obstacles, plows and selected switch routes still apply. Use again to stop. Brake rails, bumpers, track ends, incompatible track, blocked routes and empty fuel stop the train until explicitly started again. Loading, switch reservations and plow clearing can wait without propulsion fuel use. Stop before boarding, opening cargo, taking manual controls or changing couplings/attachments. Alternate placement + Use detaches the stopped controller; detach it before packing the engine.
No offline travel: the last player leaving stops active remote trains. Returning players must deliberately start them again. Single-player pause, world shutdown and save/restart do not advance trains or resume their saved activation; there is no catch-up or cross-world delivery. An active server with another player online elsewhere can keep remote trains moving.
Set Automation.RemoteSimulationEnabled = false for the previous loaded-area mode, including already seated passengers. To activate a secondary engine in this mode, first take and release its manual controls while parked, then use its controller. Disabling remote simulation or reducing Automation.RemoteTrainLimit stops affected remote trains while preserving them and their contents. Test this experimental feature on a backed-up world with both a player host and a dedicated server before relying on it.
Passenger awning and chiminea
Build Rail passenger cart for the unchanged 30 Wood + 10 Bronze Nails, with no nearby workbench. Its two rear seats sit beneath a raised canvas awning on a 2.7 m-long, approximately 2.2 m-wide deck. Only the rear posts meet the deck, leaving the sides and standing aisle open. The enclosed front chiminea has a capped chimney. Jump dismounts into the aisle ahead of the chairs. Existing saved carts update without rebuilding; coupling pitch, two-seat controls, fuel and comfort remain unchanged.
The chiminea starts empty, holds 10 ordinary Wood, and uses the native campfire's burn rate. Park, aim at its mouth and press Use to add Wood; Alternate placement + Use lights or extinguishes it. It burns while lit during both movement and idling. Its enclosed firebox and rain cap protect against rain and strong wind; empty fuel, manual extinguishing, submersion and blocked placement still stop the fire. Other campfires and torches retain their own weather rules. This is separate from engine fuel and the attached-torch setting. Nearby ward permission and an idle service state are required to tend it.
A burning hearth supplies warmth to both confirmed riders without fire damage or spread. The open awning does not guarantee full Sheltered status; weather, wetness and enemy conditions still govern resting. Packing preserves the remaining Wood balance and on/off state, with no fuel consumed inside the bundle. Older passenger bundles start with an empty hearth; empty bundle weight stays 25. Allow clearance for the new roof on your route.
Push a cart into position
All eleven unpowered cart types have a rear central push bar: storage, passenger, workbench, chopping block, tanning rack, adze, tool shelf, repair station, mounting cart, Techno Viking sound cart and Halloween pumpkin carriage. The separate brass handle at the left rear still packs the cart.
- Stop, uncouple both ends, close storage and have passengers get off. Stored items can stay aboard. Push only one cart at a time.
- On foot behind the cart, press Use (E) on the push bar. Hold W/S to move forward/backward at 0.8 m/s and hold Block to brake. Press Jump, or aim at the push bar and press Use, to let go. Controls follow your game bindings.
- Approach an exposed end of the parked engine or wagon group on the same route. Automatic contact stops the cart and releases the pusher before coupling. For manual coupling, stop at roughly 2.8 m center spacing, release the bar and use the matching red lever. Reverse pushing can stop early to protect the person behind the bar.
Positioning consumes no additional stamina or fuel and does not gain engine-train downhill momentum. The player follows the rail bed behind the cart through bends and inclines. Beyond an open rail end, the standing position needs ground or bridge support; missing footing blocks grabbing or movement. Releasing keeps the player in place without a sideways dismount offset. Normal routes, selected switches, stopping tracks, end bumpers and obstacle checks still apply; leave room for the cart, rear bar and player. The bar is checked for obstacles while pushed or towed. Normal storage, chair, workbench, repair and packing interactions remain available once you release it. Existing carts gain the bar on reload without rebuilding.
Keeping the rail bed clear
Version 0.45.1 expands the no-growth area to 2 m beyond each measured sleeper side and end, covering grass, plants, branches and eligible natural pickups or small rocks returning near the railway. All saved tracks gain the wider area on load; no rebuilding or new settings are required.
Version 0.44.2 extends the branch behavior to 28 native small plants and shrubs. Covered plants hide through 3.5 m above the sleeper bed, and eligible plants cannot stop locomotives, attached carts or hand-pushed carts even if the separate clearing lookup misses them. This works automatically on existing tracks without new settings or rebuilding.
Included vegetation: dandelions and thistle; red, blue, yellow, Jotun Puffs, Magecap and smoke-puff mushrooms; raspberry, blueberry, cloudberry and lingonberry bushes; wild carrot, turnip, onion and kale seed plants; wild barley and flax; Ashlands ferns/fiddleheads; and the ordinary meadow, heath, Deep North and Ashlands low shrubs. Both collectible branch variants retain the same behavior. Soft plants use their real bounds, including berry bushes larger than the separate small-rock limit.
Clearing is reversible and creates no harvest or dropped items. Removing the last covering rail restores native visibility and picked/respawn state. Some mature seed plants and Mistlands mushrooms share exactly the same prefab as wild plants and lose their planted provenance in native growth; those mature pickups receive the same treatment on a railway. Explicit planted Plant/Piece objects and distinctly cultivated-only produce retain their previous rules. Trees, large woody shrubs/limbs, climbing-vine structures, ore, dropped inventory and built objects do not gain the new collision exemption. A protected or separately networked child cannot inherit its parent's exemption. Falling plant bodies remain physical obstacles.
Version 0.44.2 retries natural-resource registration when network data arrives late, rechecks saved resources after scene creation, and handles native visual/respawn updates. This closes the gap where streamed branches or stones could remain visible and collide after a reload. Covered resources are suppressed without harvesting them; trains also ignore eligible covered debris immediately.
With DirtTrackbedOnPlacement = true, ordinary ground-level rails gain native stone gravel beneath the sleepers and 2 m beyond each side. New rails paint on placement; loaded existing rails are painted gradually. Ground heights remain unchanged, so obstructing soil needs manual preparation. Retired clearing/filling settings cannot restore earthworks.
Protection follows the actual sleeper footprint of every wooden and metal track, including long rails, curves, inclines, Y switches and bypasses. It includes every switch branch, including three-way/five-way yard fans, and spaces between sleepers, with 2 m beyond each side and end, roughly a 5.9 m corridor on ordinary track. Protection overlaps between lanes spaced 4 m apart, including the intervening ground; land outside the combined margins remains unaffected. Natural resources use their full visible/collision bounds, including branches protruding from outside that corridor.
Grass/clutter and new world vegetation are blocked at or below roughly 60 cm above the rail bed, including ground beneath bridges. Separate higher ground or platforms stay unaffected. Existing natural pickups and plants under a rail are hidden within about half a second; their gathering and native growth/regrowth updates pause while covered. Planting there is rejected before consuming resources.
Small natural rocks no larger than 2.5 m on any axis are also hidden when overlapping the corridor within 50 cm below to 60 cm above the rail bed. Large boulders and rocks far below high bridges remain. Covered branches and rocks are immediately ignored by vehicle collision checks, including hand-pushed carts, even before the next visibility update.
Removing the last covering rail restores existing pickups, plants and small rocks according to their native picked/growth/damage state. Vegetation skipped during initial zone generation stays absent. Existing trees, stumps, ore deposits, large mineable rocks and built structures still require normal removal. Dropped items, tombstones/death loot and cargo are unaffected. Preview ghosts do not suppress anything. Saved rails gain protection on reload; late-loaded resources and native regrowth updates are rechecked. Protection remains active when DirtTrackbedOnPlacement is disabled. Stone paint and earlier permanent terrain edits remain after removing tracks, and the wider protection makes no terrain-height changes.
Steep straight inclines
Four new pieces share a 1:2 grade, about 26.6°, twice the regular incline's 1:4 grade. Their placement origins are centered; normal and long steep sections join each other at the same grade. Reverse placement and join the upper end to descend.
| Piece | Rise / horizontal run | Cost | Wood-to-metal upgrade |
|---|---|---|---|
| Rail track — steep incline | 2 m / 4 m | 8 Wood + 2 Iron Nails | — |
| Rail track — long steep incline | 6 m / 12 m | 24 Fine Wood + 6 Iron Nails | — |
| Wooden track — steep incline | 2 m / 4 m | 6 Wood + 1 Bronze Nail | 2 Iron Nails |
| Wooden track — long steep incline | 6 m / 12 m | 18 Fine Wood + 3 Bronze Nails | 6 Iron Nails |
Keep a regular incline between flat and steep rails at both ends: flat → regular incline → steep incline(s) → regular incline → flat. The existing 18° maximum join angle is unchanged, so direct flat-to-steep joins and abrupt steep crests cannot connect. Use the same transitions in reverse for a descent. Existing curved inclines retain their regular grade.
The pieces retain their tier's colors, side supports, optional torch sockets, stone gravel and spawn protection. Wooden steep rails carry handcarts, bronze engines and wagons; coal and Eitr engines require metal or upgraded rails. Upgrade in place without moving the track. Existing hill/load resistance and speed, momentum, fuel and stamina settings are unchanged; the steeper grade naturally increases the uphill penalty. No new settings are added. Elevated spans still need structural support; tracks never fill gaps or reshape slopes.
Plows and creature clearance
Attach either the wood or metal plow to either free end of all sixteen engine and cart types, with one plow per vehicle. Park the whole train, dismount its operators, close storage and finish other coupling/attachment work. Stand beside the chosen end within 2.5 m and use the loose plow; or face the socket and use a packed plow from inventory or the hotbar to attach directly. Uncouple that end first; its opposite coupler remains usable. Use the attached blade while parked to detach it. A rear-mounted plow blocks an unpowered cart's hand-push handle until detached; a front-mounted plow can stay fitted during hand-pushing.
In either travel direction, only the outward-facing blade on the actual leading vehicle acts. This includes a front wagon being pushed by an engine or the tail wagon leading in reverse, regardless of the wagon's facing. Trailing or inward-facing plows do not clear creatures. Contact shoves living animals and monsters, including tamed creatures and bosses, sideways at 6–10 m/s. A brief clearance pulse continues after initial contact, for at most 1.25 seconds, using native physics. The train can wait briefly for the creature to clear; walls can still prevent passage. Players are never shoved or damaged by the plow.
The metal blade deals 8 + 6 × approach speed in m/s blunt damage, capped at 65; wood deals 60%. Native armor and resistances apply. A 2-second cooldown, plus at least 0.6 seconds of separation and 0.75 m of travel for another hit from the same engine, prevents repeated stationary damage.
Dropped inventory items and ragdoll bodies no longer stop trains and remain in the world normally. Living non-player creatures only block the leading end's central path, so creatures beside trailing cars do not halt the train. Reversing selects the opposite outer end of the formation; a correctly facing plow there can clear the path. Players, built structures, large obstacles, other trains, brake rails and bumpers retain their normal blocking behavior.
Plow links and front/rear orientation survive saving and unloading. Older saves keep their original front mount without rebuilding. Destroying a loaded vehicle releases its loaded plow, and destroying the plow frees that vehicle's attachment slot. Update all clients and the server together for the new mounting/contact messages. Live clearance, native physics and multiplayer checks remain unrun.
Build a 24 m bridge
Both flat 24 m bridges are twice as long as the 12 m rail, with a 3.6 m wooden deck, 1,200 health, open side trusses and overhead clearance for every wagon, plows and mounted torches. No nearby crafting station is required to build them.
| Bridge | Cost | Vehicle capacity and finish |
|---|---|---|
| Rail bridge — 24 m | 48 Fine Wood + 20 Wood + 12 Iron + 20 Iron Nails | All engines and wagons; metal rails and iron trusses |
| Wooden rail bridge — 24 m | 36 Fine Wood + 40 Wood + 20 Bronze Nails | Both handcarts, bronze engines and wagons; wooden rails/trusses with bronze plates |
Both bridge tiers have the same span and support requirements. The wooden bridge has a light-duty vehicle limit, so coal and Eitr engines cannot enter or operate on it. Upgrade it in place for 20 Iron Nails using the hotbar procedure below to gain the metal finish and coal/Eitr capacity; current health, geometry, saved identity, supports and torches stay in place.
Place supports first: both ends need solid banks or strong stone/iron piers. No middle pier is needed, but support at only one end or only the center is insufficient. Ordinary wooden posts may be too weak. Each bridge join also needs an abutment or pier; do not chain unsupported spans.
Aim near an endpoint and use normal endpoint/manual snapping from the bank. The rail endpoints are 24 m apart; four underside bearing sockets sit 3.8 m apart across and 23.3 m apart along the bridge, 0.82 m below the rail endpoint height. Place pier tops against these feet; solid banks can also support the end posts when the feet are buried. Posts and beams can snap to the underside sockets; rail placement selects only the two rail endpoints. The existing 20 m search reaches the span's center from a nearby end.
Both bridges preserve terrain: neither height changes nor gravel painting occurs. Grass/plant protection covers the full 3.6 m deck width, and whole-span ward/no-build checks remain active. Connect either rail tier; coal and Eitr engines still stop before an unupgraded wooden bridge or wooden track beyond a metal bridge. TracksTakeDamage controls bridge damage and support-collapse damage, and ordinary Hammer removal still works. An incompatible native support API disables the bridge Hammer entries and reports a log warning.
Automatic railway gate
Build Automatic railway gate (vr_rail_gate) from Hammer → Misc for 20 Wood + 10 Iron Nails + 4 Iron. Place it over existing level straight track, with both posts supported and the leaf swing areas clear. Ordinary build snaps line up with a 4 m straight's ends. No workbench is required. The standalone gate adds no track and does not change wooden-rail engine restrictions.
Its two leaves open outward 100°, leaving a 5 m-wide opening with no top beam for tall or roofed carts. Leaf bottoms clear the rail bed by 0.3 m from placement height. Keep walls, trees and track-side fittings out of the swing path.
It operates automatically without fuel, a manual switch or new settings. An approaching train opens it in about two seconds, from either direction. It remains open for the full coupled train, including inter-car gaps and front/rear wagon groups, or a cart stopped in the opening. After the last car clears, it waits two seconds and then closes over about two seconds. Hand-pushed carts and remote automatic trains are supported; an automatic train waits for the gate if needed without losing its drive activation. Characters obstructing closure keep it open.
Version 0.44.3 recognizes aligned trains stopped with their body within 6 m of either side, including wagons ahead of the engine. One request allows the full remaining opening animation plus two seconds, even after releasing the controls. Parked trains in this area keep it open. Initialization retries if network data arrives late; eligible small vegetation and covered debris cannot jam the moving doors. If the hover text reports "Clear the space where the doors swing," use level straight rails and clear real terrain, trees, structures or creatures from the swing area.
Hover to check the gate's status. Place it squarely across one straight route with a clear approach, and keep every client and server on 0.46.1. Native motion, obstruction and multiplayer behavior still need the included in-game checks.
Three-way yard switches and turntables
Build Rail track — three-way yard switch (vr_track_threeway) for 30 Wood + 12 Iron Nails, or its wooden version (vr_track_wood_threeway) for 24 Wood + 6 Bronze Nails. They share a 2 m entrance, a straight outlet and left/right 45° outlets on an 8 m radius. Use the red lever to choose left, straight or right before the train enters; clear its reserved approach before switching. The selected route survives saving and reloading. Wooden switches carry handcarts, bronze engines and wagons, and upgrade in place for 12 Iron Nails. They provide manual yard routing; detached wagons do not roll freely down a hump.
The 12 m turntable (vr_turntable12) costs 40 Fine Wood + 20 Iron + 40 Iron Nails. The 24 m turntable (vr_turntable24) costs 80 Fine Wood + 40 Iron + 80 Iron Nails. Both include iron rails, a 3.6 m-wide timber deck and a stationary rim crank. Support the circular base on level ground or a solid foundation. Native support still applies; no workbench is needed, and placement does not automatically excavate or paint a pit.
Natural-growth protection covers the full turning circle and operator step. Turntables have no track-side torch sockets; vehicle-mounted torches rotate with their vehicles and are included in fit checks.
Park the entire train and every attached plow, torch or mounted piece inside the deck's clearance. Loaded storage is allowed, but close all inventories, stop automation and movement, and dismount every rider. At the rim crank press E for clockwise, or Shift+E by default for counterclockwise. Each 45° step takes about three seconds; four steps reverse the train by 180°. There are eight indexed positions.
Remain within 4 m of the crank and keep the turning circle clear. New obstacles or changed operating conditions stop rotation. A table interrupted between indexed positions keeps its track isolated; clear the problem and use the crank to finish alignment before driving off. Wait for rotation to finish before changing coupling, storage, riders or attachments. Capacity depends on the whole train's measured bounds, so the advertised rail length does not guarantee a particular wagon count.
Build a passing siding
Choose a left or right piece in either tier. Each row below represents two separate Hammer pieces; costs are per piece.
| Piece | Shape | Cost |
|---|---|---|
| Rail track — bypass curve left / right | Single S connector; 4 m sideways over 12 m forward | 24 Wood + 6 Iron Nails |
| Wooden track — bypass curve left / right | Same geometry; excludes coal and Eitr engines | 18 Wood + 3 Bronze Nails |
| Rail track — bypass switch left / right | 2 m entrance plus 12 m main/bypass routes; 14 m forward span | 36 Wood + 12 Iron Nails |
| Wooden track — bypass switch left / right | Same geometry; excludes coal and Eitr engines | 27 Wood + 6 Bronze Nails |
The S connector has parallel ends and two opposite 10 m radius bends; it shifts one route without creating a fork. The bypass switch combines that curve with a straight main line and a red lever. It defaults to Main line; operate the lever on foot to select Bypass. Both routes work forward and reverse when selected. Snap at the three external ends; the internal fork is not a build connection.
- Place a bypass switch right, then extend both outlets with 24 m of straight rails each, keeping the tracks 4 m apart. Use six 4 m pieces or two 12 m long pieces per line; long rails use Fine Wood.
- Use a bypass switch left, rotated 180°, at the far end, with its outlets facing the two straight runs. The opposite mirrored layout also works. Extend the common ends to continue your railway; no extra S connector is required inside this loop.
- Set both switches to Bypass, drive the waiting train fully into the siding, park and dismount. Every vehicle center must clear both switches' ends by more than 3.25 m; leave about 4 m at each end for easier operation.
- Set both switches to Main line and let the other train pass. Once its entire train has cleared both junctions and their approaches, set both switches to Bypass for the waiting train to leave.
A 24 m straight between the switches fits default four-wagon trains and the five-wagon workshop train. Longer trains need more siding: allow more than 2.8 m × wagon count + 6.5 m, preferably 2.8 m × wagon count + 8 m. For this length formula, count every extra engine like a wagon and exclude only one engine. The full loop with 24 m straights spans about 52 m including its switches.
Switch reservations protect each junction; a train still occupying a switch or its approach prevents another route from being selected. There are no automatic signals or dispatching. Keep the parallel section clear and allow room for roofs, plows and torches. Normal supports, terrain options, damage, snapping and optional torch brackets apply. Wooden bypass pieces accept handcarts, bronze engines and wagons; use metal or upgraded rails for coal and Eitr engines.
Bronze rail engine
Build Bronze rail engine (vr_bronze_engine) for 20 Wood + 10 Bronze + 10 Bronze Nails, without a nearby workbench. It runs on both rail tiers, including wooden curves, inclines and Y switches. Its compact firebox/boiler, short chimney and animated flywheel come with quieter engine sounds, smoke, lamps and normal optional Rail torches and plows.
While stopped and dismounted, use Shift+E (Alternate placement + Use) to open its two-slot hopper. It burns ordinary Wood only: Fine Wood, Core Wood, Coal and Resin are not fuel. Close the hopper and use the engine; tap W/S to adjust throttle, Block to reset and brake, and Jump to dismount. It uses no stamina, with defaults of 60 powered seconds per Wood, 6 m/s at full throttle on empty level track and three attached wagons. Base traction and acceleration are halfway between the regular handcart and coal locomotive. Bronze load and hill multipliers now default to 0.5, halving the previous penalty coefficients.
Only accepted powered travel burns fuel. Idling, braking and blocked travel use none. Remaining paid seconds survive settings changes, save/load, ownership handoffs and packing. Its empty packed bundle weighs 45 and preserves hopper contents, health, fuel credit and lamp state. The complete workbench and four upgrades need BronzeEngineMaxCarts set to at least 5.
The regular handcart remains 4.5 m/s by default. Cooperative tandem pumping remains faster at 6.75 m/s but needs two eligible riders and their stamina; the coal locomotive remains 7.5 m/s, burns Coal for 90 powered seconds and requires metal rails.
Eitr rail engine
Build Eitr rail engine in Hammer → Misc for 20 Yggdrasil Wood + 20 Black Metal + 10 Iron + 10 Refined Eitr + 5 Surtling Cores. Discover every ingredient; no nearby crafting station is required. Park and dismount, use Alternate placement + Use to open its hopper, add Refined Eitr, then close it and use the engine to drive. Wood, Coal, Sap and Surtling Cores do not fuel it.
Defaults are 300 powered seconds per Refined Eitr, 10.5 m/s, eight wagons, 3 m/s² base powered acceleration, and 0.25 load/hill penalties. Powered driving consumes no player stamina. Idling, coasting, braking and blocked movement consume no fuel. Existing paid fuel survives duration-setting changes, save/reload, ownership transfers and packing. Its dark metal/brass model has a steady turquoise core, powered hum and no exhaust chimney.
Use metal or upgraded rails throughout, including bridges. Both ends of the engine's body are checked at wooden boundaries while travelling forward or backward; wooden switches and bridges are also restricted. Packed placement and driving on wood are refused. Upgrade the track or reverse clear. Normal stops, bumpers, obstacles and the configured speed cap remain active.
Coupling, parked storage service, lamps, optional torches and plows use the existing controls. Dismount before hopper access; park, uncouple and remove attachments before packing. Its empty bundle weighs 60, preserves health/fuel/lamps, and retains normal fuel-item weight and portal restrictions.
Two-person handcart
Build Two-person rail handcart (vr_handcart_tandem) for 30 Wood + 20 Bronze Nails without a nearby workbench. It uses either rail tier. The rear driver controls W/S and Block. While stopped, a second player uses the front helper stand with E, faces the driver, and pumps automatically when the driver powers the cart. Both riders use Jump to dismount; standing operators receive no passenger-chair comfort.
The 2.6 m deck and extended frame give both riders more standing room, with tapered front corners to clear the existing V-shaped plow. Each rider stands 30 cm farther from the unchanged pump, and the headlamp sits to the helper's side. Movement collision follows the longer deck. Check both riders through the full pumping motion when testing the update; in-game clearance remains unverified.
Pump-handle animation is replicated to the helper and other observers. Movement audio supports configured speeds through 15 m/s while keeping pitch bounded. Player arms and wheels retain their existing static models; the moving pump mechanism supplies the pumping animation.
With a freshly confirmed helper able to supply stamina, the empty level-track default is 6.75 m/s, costing 2.5 stamina per second per rider. Those values are 50% faster and 50% less stamina per rider than the regular defaults of 4.5 m/s and 5 stamina per second. Both distinct riders must be attached; a nearby player, pending request or old seat reservation gives no bonus. Confirmation is required even with zero stamina cost. Confirmed cooperation uses the tandem's own load/hill multipliers; solo operation or an exhausted helper uses the regular handcart speed, stamina and load/hill settings.
When helper loss becomes known or confirmation expires, existing speed is capped to HandcartMaxSpeed before the next movement step, including reverse and coasting travel. Slower momentum remains. Network messages can delay knowledge of a departure; helper confirmation expires within 0.75 seconds of its request. The helper adds no cargo/passenger load; wagons, cargo and seated passengers retain normal load penalties.
Only accepted powered travel consumes stamina. Idling, braking and blocked movement consume none. Set TandemHandcartStaminaPerSecond = 0 for free cooperative pumping, even with empty stamina bars; solo operation still uses the regular setting. The independent tandem wagon cap applies with one or two riders. It supports the normal lamps, Rail torches and plows. Both riders must dismount before packing; its empty bundle weighs 35, and replacing it leaves both stands empty. Existing regular handcarts keep their one-sided pump and single rider.
Workbench train
Build the roofed Rail workbench cart and use its bench while parked with the driver dismounted. The roof and three walls provide shelter, with access from the open end. It uses the normal workbench crafting/repair interface; the window closes if the train starts moving.
| Cart | Construction cost |
|---|---|
| Rail workbench cart | 30 Wood + 10 Bronze Nails |
| Rail chopping block cart | 30 Wood + 10 Bronze Nails + 10 Flint |
| Rail tanning rack cart | 30 Wood + 10 Bronze Nails + 15 Flint + 20 Leather Scraps + 5 Deer Hide |
| Rail adze cart | 20 Wood + 10 Bronze Nails + 10 Fine Wood + 3 Bronze |
| Rail tool shelf cart | 20 Wood + 10 Bronze Nails + 10 Fine Wood + 4 Iron + 4 Obsidian |
No nearby crafting station is needed to build these carts. Couple and pack them with the normal cart controls; each has lamps and optional Rail-torch mounts. The roof and tall upgrade models need overhead clearance.
Loaded upgrade carts on the same connected train count beyond the normal nearby-upgrade range. Native nearby upgrades also count, with each type counted once: all four different upgrades give workbench level 5, while duplicates add no extra level. The bench plus four upgrades occupy five wagon slots, so raise the relevant HandcartMaxCarts, TandemHandcartMaxCarts, BronzeEngineMaxCarts, LocomotiveMaxCarts or EitrEngineMaxCarts to at least 5; allow more for cargo or passengers.
Repair station cart
Look under Hammer → Crafting, with all five ingredients discovered: Wood, Fine Wood, Copper, Coal and Iron Nails. Modern usage filters include Crafting/Transport. Reopening the build menu refreshes native recipe availability while preserving material-discovery requirements. This is a visibility improvement; the reported missing-entry cause remains unconfirmed.
Build Rail repair station cart for 20 Wood + 10 Fine Wood + 6 Copper + 4 Coal + 10 Iron Nails, with no nearby crafting station required. Park the train, dismount the driver, then stand beside its covered bench and anvil on foot with ward permission. Put away the Hammer, leave build mode and aim at the bench or cart body within 4 m, then press Use (E by default) to repair all eligible damaged items in your own carried/equipped inventory.
Repairs cost no fuel or materials and need no extension carts. An item qualifies if its native crafting or repair station is a workbench or forge and its base recipe requires station level 4 or below. Quality upgrades do not raise that repair-level requirement. Full-durability items, unrepairable items and gear requiring other stations such as the black forge or Galdr table stay unchanged. The cart does not provide crafting recipes or unlocks, repair its own health, or repair items stored in cargo. Moving/controlled trains and active cargo, coupling or packing work prevent use.
It takes one wagon slot and travels on wooden or metal rails. Alternate placement + Use couples it; the rear central bar pushes it at 0.8 m/s when uncoupled. Built-in lamps and optional Rail torches work normally. Clear riders, couplings and attachments before using the left rear brass handle to pack it. Its bundle weighs 45, occupies one slot and preserves cart health and lamp state. Allow clearance for its roof.
Upgrade wooden rails with Iron Nails
Put Iron Nails on your hotbar, put away the Hammer and leave build mode. Stand on foot, aim at the wooden rail or sleeper within 4 m, and press that hotbar slot. Range is measured to the nearby track, so either end of a long section works. Clear nearby carts and any active switch route reservation first. Ward access applies; no Hammer or workbench is needed.
| Track being upgraded | Iron Nails |
|---|---|
| Standard straight or straight incline | 2 |
| 11.25° curve | 1 |
| 22.5° curve | 2 |
| 45° curve | 4 |
| 90° curve | 8 |
| Stop or end bumper | 4 |
| Long straight, long incline or long steep incline | 6 |
| Y switch | 8 |
| Three-way switch | 12 |
| 3-way parallel yard splitter | 20 |
| 5-way parallel yard splitter | 30 |
| Bypass curve, left or right | 6 |
| Bypass switch, left or right | 12 |
| Wooden rail bridge — 24 m | 20 |
Angle-curve costs apply to flat and inclined left/right variants. All 29 wooden rail variants can be upgraded, including normal/long steep inclines, the three-way switch, both parallel yard splitters, both bypass curves, both bypass switches and the 24 m wooden bridge. Bridge upgrades check ward permission across the full span and deck width. The piece becomes metal and supports coal and Eitr engines while retaining its position, rotation, path geometry, saved identity, health, creator, switch route, supports and torches. Upgrading does not reshape or repaint terrain.
Pay only the listed Iron Nails, with no additional Wood, Fine Wood or Iron bars. The paid amount is saved; dismantling returns the original wooden recipe plus those Iron Nails, subject to normal resource-drop rules. An upgraded bridge returns 36 Fine Wood + 40 Wood + 20 Bronze Nails + 20 paid Iron Nails, with no Iron ingots. It does not grant the extra resources in a new metal piece's recipe. Upgrades are saved; unupgraded wooden sections continue to stop locomotives.
Configuration
After the first launch, edit and save:
BepInEx/config/local.valheim.vikingrail.cfg
All 35 shared settings and seven personal music preferences update while running. A saved file is checked once per second and accepted after two stable reads, normally about 1–2 seconds; config-manager edits also apply on the game thread. The host or dedicated server remains authoritative. Edit its file directly, or join as a player listed in the server's native admin list. After the server confirms admin permission, local file/config-manager edits submit only changed fields. The server checks current permission, merges those changes into its active settings, saves its file, then broadcasts them. A failed save leaves active server values unchanged; ordinary clients cannot override them. Client files are not rewritten by server snapshots.
Joining or reconnecting never uploads local values automatically. An admin can deliberately run vikingrail_config push in Valheim's console to reload the local file and submit all 35 shared fields, including offline edits or values unchanged since joining. Review the complete file first: accepted pushes replace the full server snapshot. vikingrail_config status, or bare vikingrail_config, reports authority, admin permission and pending work. It also prints the exact active LOCAL config path and compares loaded local with active server stamina rates; a client cannot display the remote server's config path. The server rechecks its admin list for every remote change, including explicit pushes.
Update every client and the server together for protocol v13. Installing a new DLL still needs a restart. The included VikingRail-settings.example.cfg is a reference, not an automatically installed override.
| Section | Setting | Default | Effect |
|---|---|---|---|
| Fuel | AttachedTorchesUseFuel |
true |
Controls ordinary standing torches on mounting-cart pads only. Set false for unlimited fuel and an always-on switch while mounted; water or obstruction can still block them. True/detached restores normal fuel/toggling. Custom Rail torches always stay lit regardless of this setting. Passenger chimineas and unmounted ordinary torches are unaffected. |
| Fuel | CoalSecondsPerItem |
90 |
Seconds of powered movement per newly consumed Coal; accepts 1–86400, including decimals. Existing fuel credit keeps its remaining seconds. |
| Fuel | BronzeFuelSecondsPerItem |
60 |
Seconds of powered movement per newly consumed ordinary Wood in the bronze engine, from 1–86400. Decimals allowed; existing fuel credit keeps its seconds. |
| Fuel | EitrFuelSecondsPerItem |
300 |
Powered seconds per newly consumed Refined Eitr; range 1–86400. Existing paid seconds are preserved. |
| Trains | EitrEngineMaxSpeed |
10.5 |
Empty level-track target and downhill speed cap; range 0.5–15 m/s. |
| Trains | EitrEngineMaxCarts |
8 |
Combined attached wagon limit; range 0–20. Engine and plow do not count. |
| Trains | EitrEngineLoadPenaltyMultiplier |
0.25 |
Wagon-count and cargo/passenger-weight penalty on powered speed and acceleration; range 0–5. |
| Trains | EitrEngineHillPenaltyMultiplier |
0.25 |
Uphill target-speed penalty; range 0–5. Does not change downhill gravity. |
| Trains | HandcartMaxCarts |
4 |
Combined storage/passenger/workshop/repair wagon limit for a regular handcart, from 0–20. Use at least 5 for the full workshop. |
| Trains | LocomotiveMaxCarts |
4 |
Combined storage/passenger/workshop/repair wagon limit for a locomotive, from 0–20. Use at least 5 for the full workshop. |
| Trains | HandcartStaminaPerSecond |
5 |
Base stamina per second for a regular handcart or solo tandem, from 0–100. Normal load and native stamina-cost modifiers apply. Set 0 for no stamina use or regeneration delay from pumping. |
| Trains | HandcartMaxSpeed |
4.5 |
Empty, level-track regular handcart or solo tandem target speed in m/s, from 0.5–15. Also caps tandem speed when helper assistance is lost. Load and climbs reduce powered speed. |
| Trains | LocomotiveMaxSpeed |
7.5 |
Empty, level-track coal locomotive speed limit in m/s, from 0.5–15, including decimals. Load and climbs reduce powered speed. |
| Trains | TandemHandcartMaxSpeed |
6.75 |
Cooperative powered target speed with two eligible riders, from 0.5–15 m/s. Normal flat/uphill target penalties and load acceleration penalties apply; powered net descents can reach the full cap. |
| Trains | TandemHandcartStaminaPerSecond |
2.5 |
Cooperative base cost per rider, from 0–100 stamina/second. Set 0 for free cooperative pumping. Solo or exhausted-helper fallback uses the regular stamina setting. |
| Trains | TandemHandcartMaxCarts |
4 |
Independent tandem wagon limit, from 0–20, with one or two riders. Use at least 5 for the full workshop. |
| Trains | BronzeEngineMaxSpeed |
6 |
Empty, level-track bronze engine target speed, from 0.5–15 m/s. Normal flat/uphill target penalties and load acceleration penalties apply; powered net descents can reach the full cap. |
| Trains | BronzeEngineMaxCarts |
3 |
Independent bronze wagon limit, from 0–20. Use at least 5 for the full workshop. |
| Trains | HandcartLoadPenaltyMultiplier |
1 |
Wagon-count and cargo/passenger-weight penalty on regular/solo-tandem powered speed and acceleration; range 0–5. |
| Trains | HandcartHillPenaltyMultiplier |
1 |
Regular/solo-tandem uphill target-speed penalty; range 0–5. |
| Trains | TandemHandcartLoadPenaltyMultiplier |
1 |
Cooperative tandem load penalty on powered speed and acceleration; range 0–5. Requires two confirmed eligible operators. |
| Trains | TandemHandcartHillPenaltyMultiplier |
1 |
Cooperative tandem uphill target-speed penalty; range 0–5. Solo operation uses the regular handcart value. |
| Trains | BronzeEngineLoadPenaltyMultiplier |
0.5 |
Bronze load penalty on powered speed and acceleration; range 0–5. Default halves its previous coefficient. |
| Trains | BronzeEngineHillPenaltyMultiplier |
0.5 |
Bronze uphill target-speed penalty; range 0–5. Default halves its previous coefficient. |
| Trains | LocomotiveLoadPenaltyMultiplier |
0.5 |
Coal locomotive load penalty on powered speed and acceleration; range 0–5. Default halves its previous coefficient. |
| Trains | LocomotiveHillPenaltyMultiplier |
0.5 |
Coal locomotive uphill target-speed penalty; range 0–5. Default halves its previous coefficient. |
| Automation | RemoteSimulationEnabled |
true |
Keep automatic steam/Eitr trains operating away from players while someone remains online. False restores loaded-area operation and stops affected remote trains. |
| Automation | RemoteTrainLimit |
4 |
Maximum simultaneous remote trains, range 1–8. Lowering stops affected excess trains; this is separate from wagon limits. |
| Construction | ClearTerrainOnPlacement |
false |
Retired compatibility key. Ignored even when an old local/server configuration sets it to true; tracks never clear or lower earth. |
| Construction | DirtTrackbedOnPlacement |
true |
Paint native stone gravel beneath ordinary rails and 2 m beyond each sleeper side, on placement and gradually beneath loaded existing rails. Uses nearby natural soil without changing its height. |
| Construction | FillTerrainOnPlacement |
false |
Retired compatibility key. Ignored even when an old local/server configuration sets it to true; tracks never fill or raise earth. |
| Construction | TracksTakeDamage |
true |
Set false to block combat, fire, weather/biome and support-collapse damage to tracks, bridges and switches. Hammer removal still works; existing damage is not repaired. Vehicles, signs, torches and ordinary buildings remain vulnerable. |
All ten penalty multipliers accept decimals: 0 disables the corresponding penalty, 1 restores its previous coefficient, and values above 1 increase it. Load includes both wagon count and cargo/passenger weight. Hill applies only when climbing, including in reverse; it adds no downhill power. Bronze and coal defaults halve the coefficients, so the speed improvement depends on load and grade rather than being a fixed 50%. Solo tandem operation or lost helper assistance uses the regular handcart load/hill pair.
Lowering a wagon limit preserves existing trains; new attachments must fit the new limit. Already-consumed Wood, Coal or Refined Eitr retains its remaining seconds when duration changes. All five MaxSpeed settings supply the single-engine cap. Matching fueled engines add 5% per extra available engine, capped at 20% and 15 m/s overall, without multiplying unloaded acceleration. The load multiplier still controls the powered acceleration penalty during full-cap downhill acceleration; flat/uphill target penalties remain unchanged. Load/hill multipliers do not change downhill gravity, braking, coasting resistance, stamina costs or fuel consumed per powered second. Wagons follow the engine. Fuel settings do not change construction costs.
Stone gravel uses Valheim's native stone/paved ground texture, with 2 m shoulders beyond each sleeper side and soft edges from the terrain pixel grid. It follows ordinary straight, curved, inclined and switch beds, including gaps between sleepers. It does not create loose gravel objects. Four-metre parallel yard lanes have overlapping gravel shoulders and no-growth margins. Vegetation protection matches the side margins and extends farther beyond terminal sleepers; it operates independently of painting.
Painting requires natural ground within 0.5 m above or below the sleeper bed. Elevated spans, built bridge/floor surfaces and intervening structures are excluded. Both rail bridge pieces and turntables preserve ground paint. Newly placed rails paint where eligible; loaded existing ordinary tracks receive gravel gradually through a shared work budget. Only the live track owner paints, respecting the original creator's ward access and protected no-build areas. Previewing or canceling placement never changes terrain.
Automatic excavation, filling, leveling and smoothing are removed entirely, regardless of retained or synchronized legacy settings. Prepare obstructing soil and supports manually. Stone paint saves through the native terrain system and remains after rail removal. Set DirtTrackbedOnPlacement = false to stop new and gradual painting; this does not erase existing gravel or restore earlier cuts/fills. TracksTakeDamage and reversible vegetation protection remain independent.
If the native paint brush is unavailable, otherwise valid track placement proceeds without gravel and displays a notice. Normal construction, support and access checks still apply.
Troubleshooting and removal
Stamina still costs energy after setting zero: check the driving HUD. Stamina: 0/s base (disabled) confirms the effective pumping setting is zero; any positive value means the active setting is still above zero. Solo tandem driving uses HandcartStaminaPerSecond, while two eligible riders use TandemHandcartStaminaPerSecond.
On a remote server, run vikingrail_config status to compare the loaded local value with the active server value and identify the local config path. Being an admin does not automatically upload offline edits, and re-saving an already-zero local value does not propose a change. Edit the active server file or make a changed-value edit after admin/settings confirmation. For an intentional complete upload, first review all 35 shared settings, then use vikingrail_config push and wait for confirmation. Recheck the effective HUD/status value; non-admin edits cannot change the server settings.
Version 0.45.2 separately clears leftover walking, autorun and sprint input when mounting a driver or pump partner. This fixes extra native walking stamina cost when boarding while encumbered; it does not change a positive server setting or suppress stamina costs from unrelated actions. With the effective pumping rate at zero, pumping does not delay stamina regeneration.
If no pieces appear, check the active profile's log for the version line and startup errors, and confirm that the required materials are known. The included icons need no separate installation. If movement stops, read the HUD reason and check route alignment, obstructions, fuel and locomotive track type.
Keep the mod installed while its pieces or packed items remain in your world, inventories, storage or tombstones. Before uninstalling, unload cargo, unpack stored vehicles/plows and dismantle all railway pieces and attachments. Keep a pre-uninstall world backup.
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.