FS25 Slurry Pipe System v1.0.0.9
The FS25 Slurry Pipe System (SPS) replaces the simplified vanilla mechanics of the game—simply drive up to a trigger and fill—with a fully interactive pipeline system.
Physically connect filling arms or pipes, operate a PTO-driven pump, build up pressure, control the flow direction, and watch the slurry actually being transported through a connected pipeline system.
The slurry itself behaves realistically: it becomes more viscous over time, forms crusts if not regularly stirred, and can clog pipes or distributors if neglected.
Features
Pipelines & Slurry Transfer
Pivoting filling arms that extend from the slurry tanker using a joystick and are inserted into open slurry pits, rubber sleeves, or other vehicles.
Multi-segment pipeline chains that are laid on foot between two couplings and automatically lock once both ends are correctly connected.
Direct Bézier pipes provide a quick connection between two closely spaced couplings – ideal for pumping between vehicles and buildings.
Line pumping station (PTO slurry pump) that connects two pipeline chains and functions as a passive pumping station.
Animated couplings and valves – clamping levers close automatically when connected, and valves can be visibly opened and closed.
Individually colorable pipelines. The selected color of each pipe segment is saved in the game.
Supports multiple fill types. Both liquid manure and digestate (digestate) are automatically detected and transferred.
Pumps & Pressure System
Various pump types:
Vacuum pumps with stored overpressure and underpressure, including pressure gauges.
High-performance positive displacement pumps (HVP).
Line pumping stations.
Open containers such as storage tanks or nurse tanks.
Realistic Pressure Simulation:
Vacuum tankers build up pressure, store it, and then release it over time.
The existing pressure determines the delivery rate and application rate – it’s not a simple on/off system.
Optional PTO Shear Bolt:
Wear under load.
Can break under overload.
Must be repaired manually directly on the vehicle.
Slurry behaves like real slurry.
Dry matter content affects the viscosity of the slurry.
The higher the solids content, the more viscous it becomes.
Unstirred storage areas develop a floating layer over the course of the seasons.
Crusted or lumpy slurry can clog pumps, macerators, or spreaders.
Regular stirring eliminates the risk of clogging.
Adding water thins viscous slurry.
Universal Agitator System:
Works with any registered vehicle, regardless of specific vehicle configuration.
Water intake directly from lakes or ponds, provided the map offers SPS water bodies.
Application Technology
Trailing Hoses & Belt Distributors
Blockages are simulated individually for each outlet.
Realistic macerator for the distributor.
Dedicated HUD for application technology and blockages.
Crop Protection Sprayers
Liquid fertilizers and herbicides can be filled via the same coupling and piping system.
Operation is via a central pump control.
Pressure simulation is intentionally not used for crop protection sprayers – the delivery rate operates at a constant flow rate.
Support for Custom Mods
The recommended and fully multiplayer-compatible method is to integrate SPS directly into your own mod.
Important:
The Slurry Pipe System files must not be modified or extended. Adding your own files within the SPS mod will result in multiplayer incompatibilities.
Version 1.0.0.9
Architecture
SlurryPipeManager.lua (12,065 lines) split into a core file plus eight domain
modules (SPSM_Chains, SPSM_Couplers, SPSM_Flow, SPSM_Pressure,
SPSM_Consistency, SPSM_Spreader, SPSM_Sprayers, SPSM_IBC). Pure relocation,
mechanically verified byte-identical to V1.0.0.8.
Scripts folder reorganised into domain folders (debug/, chains/, couplers/,
shearBolt/, blockage/, hud/, events/, agitators/, util/, water/,
herbFertSprayer/, manager/, overrides/, settings/).
New central debug registry (scripts/debug/SPSDebugConfig.lua): one named
on/off channel per file, runtime-switchable via the spsDebug console
command. All channels ship OFF.
Performance (dedicated servers)
Vehicle config lookups were loading and parsing vehicle XML from disk on
every call, from per-tick trigger hooks and per-frame discharge gates — the
reported ~45 km/h speed caps and steering lag on busy servers. Both finders
are now cached per configFileName (negatives included). One disk read per
vehicle model per session.
Multiplayer fixes
Placeable-side hose disconnects are now owner-keyed (the event carries the
placeable), so every machine resolves the exact coupling — fixes “friend
detaches, still attached on my end until he drives off”.
Selling a placeable now broadcasts authoritative disconnects for every live
bond before teardown, and duplicate placeable registration (the stale
“ghost pipe” generation on guests) is guarded out.
New placeable detach-handler registry: chains anchored or bonded to a sold
placeable (animal pens, docking stations) are now fully removed with correct
coupler close animations on every machine; sprayer-pipe disconnects on sell
are broadcast; pending queues referencing the sold placeable are purged.
Future placeables (separator etc.) plug into the same registry.
Disconnect events now log an [SPS MP RX] line on receivers.
Sprayer store system (new)
SPS xml now controls a store’s fill types: coupler-declared types are seeded
into the placeable’s Storage at load — no map/base xml edits needed
(storageFillTypeControl=”store” opts a modder store out).
Per-coupler capacity=”X”: same-type couplers sum into that type’s storage
capacity; without it the store’s own capacity applies.
Dynamic tank compartments: fillTypes=”ANY” (or a category/name list) plus
capacity makes a coupler one physical tank — it locks to the first liquid
that flows through it and unlocks only when drained empty, then the type
vanishes from the info panel. Works with basegame and script-mod liquids
(SoilFertilizer etc.). Locked compartments persist in the savegame and sync
to clients (event + join dump).
ANY couplers pre-seed the base “sprayer” category so basegame liquids always
show on the store display; aggregate levels self-heal from older saves.
Connecting picks the coupler nearest the PLAYER when several are in reach —
walk to the tank you want.
Sprayer placeable couplings accept node=”…” (i3dMappings, matching the
slurry placeable schema) as well as mountNodeName.
Robustness
Map mod folders can be renamed freely: bundled Witcombe config match paths
no longer include the folder name, and both placeable register paths bail
cleanly if a path-matched config finds none of its nodes (wrong placeable).
Water manifest matching is case-insensitive, supports title alternatives
(titles=”A;B”) and opt-in substring matching (titleContains=); player
folder renames never affected it.








