A.O. Smith Slurrystore - FS25 - Revision 1.0.0.15

INSTALL
Close FS25. Replace the previous FS25_AOSmith_Slurrystore.zip with this file.
Keep the exact filename and leave it zipped in your mods folder. Restart FS25.

REVISION 15 - CRASH HOTFIX (FS25 1.24)
- Fixed the game-freezing missing-method error at SlurrystoreMixer.lua:213
  by registering both barn-link methods with GIANTS' specialization dispatcher.
- Corrected the slurry purchasing API: FS25 Storage exposes
  getIsFillTypeSupported(), not allowFillType().
- Added nil checks on station lookups and server-side barn link cleanup.
- All existing tank model parts, appearance, triggers, storage capacity, PTO
  controls, and mod/savegame identity are preserved.
- The supplied gameplay log also showed THREE oversized shapes in the i3d
  (Slurrystore_117, Slurrystore_105, PhotoDetailV9_330). They remain unchanged
  in this hotfix. These still require a separate mesh split/re-export using
  GIANTS Editor or Blender if they cause graphics or performance problems.
- Offline validation only; restart FS25 and test on a BACKUP savegame.

PTO AND MIXING CONTROLS
1. Add slurry to the tank.
2. Back a tractor's free rear PTO toward the stationary pump, about 1-2 metres
   from the pump input and lined up with the shaft. Select the tractor itself.
3. Use the normal Attach action shown in the game help panel to connect the PTO.
   Use Attach again, or the normal Detach action, to disconnect.
4. Start the tractor engine. Use the normal Turn On/Off action to start or stop
   the mixing pump. Your existing keyboard and controller bindings are used.
5. The same actions are available on foot beside the pump.

There are no new custom key bindings and no option menu needed to attach.
A nearby normal implement or a selected attached tool keeps its usual controls.
If a tractor has its own Turn On function, use the pump controls on foot.
The native shared Walterscheid W shaft articulates to the tractor PTO socket.
Mixing recirculates slurry without adding or consuming storage. It stops when
power or slurry runs out; if left enabled, it resumes when they return.
Moving away or selling the tractor disconnects it. Reconnect after loading a save.
The placeable remains stationary; the tank is not a towable implement.

TANKER FILLING
Place the tanker opening under the side outlet and use the normal refill action.
The side stream and shutoff-valve lever follow the native filling state. They
stop when filling stops, the tanker is full, or the source runs out.
Normal silo filling remains independent of the mixing PTO controls.

REVISION 14 - SLURRY PURCHASE, BARN SHARING AND SELLING
- You can select the physical tank wall in construction mode and sell/demolish
  the A.O. Smith Slurrystore like other farm buildings (silo canBeSold=true).
- The tank now links its extension-capable storage to nearby barn stations using
  the same GIANTS storage system as ordinary slurry storage extensions.
  Place near a cow/pig barn that produces slurry and supports storage extensions.
  It shares capacity with the barn. This is NOT free slurry generation. It
  doesn't transfer magically between independent tanks that aren't linked.
  If you place the barn or tank later, the native nearby-extension search is
  repeated when the new placeable is placed or when the save is reloaded.
- Walk on foot to the TANKER LOADING SIDE, by the filling marker/outlet, and
  activate "Buy slurry". A menu offers 10%, 20%, 30%, 40%, 50%, 60%, 70%,
  80%, 90%, 100% of this tank's 1,135,624 L capacity. After choosing, confirm
  the purchase. No more than the amount needed to reach the chosen target is
  added. Selecting a target BELOW current fill does NOT remove stored slurry.
- Slurry purchase price: $20 per 1,000 L. The client displays the price before
  purchase; the server validates ownership, balance, proximity and quantity,
  updates the native silo storage, and deducts farm funds. To change this
  rate, edit SlurrystoreMixer.PRICE_PER_1000_LITERS in scripts/SlurrystoreMixer.lua.
- Original truck-loading/unloading triggers, pumps and PTO remain unchanged.

GAME TESTING: The XML, Lua syntax and I3D node paths are validated offline, but
actual FS25 gameplay, control menu, purchase transactions, barn compatibility,
collision selection and multiplayer must be verified in game.

REVISION 13
- Smooth molded off-white PVC outlet sweeps to a straight-down exit.
- Open black rubber discharge boot, with a fixed top collar and continuous
  ten-bone skin; a slotted stainless worm-drive hose clamp holds it in place.
- Contact-driven elastic flex responds to solid collision surfaces and springs
  back after contact. The collar stays still; the filling stream follows the tip.
- This is lightweight cosmetic client physics. It does not push a vehicle and
  cannot detect decorative parts that a vehicle's author gave no collision mesh.
- Slim galvanized coupling bands with flat shoulders, a rounded center bead,
  narrow gasket edges and over-center clasps replacing the old bolt lugs.
- Full mixing-jet speed increased from 7.8 to 10.6 metres/second. Each start
  builds from low pressure to full pressure over about 2.2 seconds.
- Native tanker filling diverts the visual flow to the side outlet: the mixing
  jet winds down, while the PTO continues to run. On finishing the refill,
  recirculation automatically builds pressure again if the pump is still on.
- Native storage quantities, filling controls and PTO articulation are retained.

REVISION 12 (RETAINED)
- Faster, tighter mixing jet with moving droplets, splash and surface ripples.
- Open, fabricated 45-degree side outlet.
- Filling tube extended about one foot outward and raised about one foot.
- Discharge point, filling trigger and effect aligned to the revised outlet.
- Snug, dimensional galvanized compression couplings at the pipe joints,
  including the two upper bands, lower riser, side branch and filling tube.
- Lever shutoff valve based on the user's reference: galvanized bolted frame,
  bronze-colored gate housing and long black handle.
- Tank intake routed to the pump; separate pressure outlet feeds the riser tee.
- Folded galvanized rim cap covers the inward ends of the upper bolt row.
- Galvanized ladder/platform finish with corrected texture coordinates.
- Each panel course offset by one horizontal bolt position, about 126.7 mm.
  Inner and outer fasteners align; the top course and logo stay in place.
- Existing blue and green glossy finishes, decals, native donor PTO, tank size,
  rising slurry surface and 1,135,624-litre storage retained.

VALIDATION
Archive CRC, XML/scene references, modified mesh normals and tangents, pipe
outlet angle, bolt-course spacing and retained model data were checked locally.
Current Lua tests with engine mocks cover rubber contact and spring return,
fixed collar, large frame times, mixing pressure buildup, filling diversion,
automatic pressure restart, empty tanks, stream origin and deleted tankers.
The previous native PTO and input-control code remains byte-for-byte unchanged.
The working v11 native PTO loader/articulation code is unchanged.
FS25 rendering, skinned boot deformation, live vehicle contact and multiplayer
still need an in-game test. Try a tanker slowly against the sleeve, then fill
with the pump running to check the diversion and gradual mixing restart. This package uses custom Lua and is intended for PC/Mac.

CREDITS
Original basin: [DMI]20mmNormandy.
Photographs and measurements: supplied by user.
Houle pump source: 46Mods / Trent Anderson; shared PTO asset: GIANTS Software.

VERSION 1.0.0.16
- On-foot PTO action registered in activatableObjectsSystem.
- Tractor PTO alignment accepts realistic offset sockets from modded tractors.
- White outlet elbow reprofiled to match the marked arch with original black rubber boot preserved.
- Removed exactly two decorative square blocks near pipe support legs without deleting the legs.
- Split 3 large silo meshes into multiple identical-detail sections to avoid FS25 16 MB per-shape limit.
- Textures and archive validity tested offline; needs in-game verification.

VERSION 1.0.0.17
- Rebuilt the white PVC outlet elbow to look closer to a real molded 90-degree elbow and fit the steel pipe/rubber sleeve more cleanly.
- Added an improved shop/store icon image.
- Simplified the on-foot help binding to a single attach/detach action so help/HUD mods do not show a stray detach prompt globally.

VERSION 1.0.0.18
- Rebuilt the molded white PVC elbow with a smooth, non-twisting bend. It now seats flush to the real steel discharge pipe opening, matching its opening angle and diameter.
- Reduced rubber boot and its stainless clamp radially by 17% while keeping the same upper and lower centerline, rubber mouth, and original slurry discharge trigger aligned.
- Isolated the two unloading pipe support legs from their original rusted steel mesh, painted them glossy Houle green with a clear-coat finish, kept the pipe unaltered.
- Retained existing buy-slurry choices, native slurry storage, selling, and PTO connection controls.
- Re-verified offline XML, Lua, mesh references, and ZIP integrity. FS25 gameplay confirmation still required.

VERSION 1.0.0.19
- Raised the rubber discharge boot and shortened it visually so the outlet no longer looks overly long.
- Moved the loading outlet and load trigger upward to match the visible slurry discharge point.
- Kept the molded PVC elbow and glossy Houle-green support legs.

VERSION 1.0.0.20
- Rebuilt the white PVC end as a new reference-style 90-degree elbow.
- Tuned the rubber discharge boot smaller and shorter, hanging perfectly downward.
- Kept and rescaled the chrome hose clamp with the new boot.
- Moved the load/discharge point to the visible end of the new rubber outlet.

REVISION 1.0.0.21
- Replaced the stretched PVC elbow with a compact constant-radius arc, molded slip sockets, and short transition into rubber.
- Built a new shorter, non-skinned vertical rubber boot; replaced the clamp with a polished chrome band and worm-drive screw housing.
- Moved slurry loading outlet and trigger to the actual bottom of the new boot.
- Removed contact-driven boot bend so the outlet always hangs straight down.
- Preserved placeable identity and all other prior features including green support legs.
- Model/Lua/XML tested offline only. Please test in FS25 on a backed-up save.

REVISION 1.0.0.21
- Replaced the stretched PVC elbow with a compact constant-radius arc, molded slip sockets, and short transition into rubber.
- Built a new shorter, non-skinned vertical rubber boot; replaced the clamp with a polished chrome band and worm-drive screw housing.
- Moved slurry loading outlet and trigger to the actual bottom of the new boot.
- Removed contact-driven boot bend so the outlet always hangs straight down.
- Preserved placeable identity and all other prior features including green support legs.
- Model/Lua/XML tested offline only. Please test in FS25 on a backed-up save.

VERSION 1.0.0.22
- Proper 90-degree PVC arc between horizontal and straight-down outlet, with sloped steel connection.
- New true-round rubber sleeve and chrome hose clamp (no flattened ring construction).
- New molded socket shoulders fit the existing steel pipe tightly, and PVC spigot seats inside rubber.
- Slurry load and discharge point and native trigger aligned at bottom of rubber.
- Other functions and remaining model unchanged. Offline validation only.

VERSION 1.0.0.22
- Proper 90-degree PVC arc between horizontal and straight-down outlet, with sloped steel connection.
- New true-round rubber sleeve and chrome hose clamp (no flattened ring construction).
- New molded socket shoulders fit the existing steel pipe tightly, and PVC spigot seats inside rubber.
- Slurry load and discharge point and native trigger aligned at bottom of rubber.
- Other functions and remaining model unchanged. Offline validation only.

VERSION 1.0.0.23
- Lengthened the black rubber discharge sleeve slightly while keeping the improved 90-degree PVC elbow.
- Moved the discharge/load point down to match the longer rubber outlet.
- Left the chrome clamp, glossy green support legs, PTO controls, and shop icon unchanged.

VERSION 1.0.0.24
- Made the black rubber outlet wider and about twice as long.
- Moved the discharge/load point down to match the longer rubber sleeve.
- Added the Harvestore cathodic-protection decal on the blue tank wall near the ladder, slightly above the bottom.

VERSION 1.0.0.25
- Replaced the cathodic-protection decal with the updated user-supplied version.


VERSION 1.0.0.26
- Removed the 3D ball erroneously used as the cathodic-protection decal.
- Added a circular textured wall plaque, 0.3048m / 12in across, conformal to blue tank side, right of ladder at about 2.2m height.
- Cropped out white outside the printed outer circle from the updated original decal image.
- PVC outlet socket reprofiled to 240mm OD, close to rubber sleeve 248mm OD without changing tight 90-degree bend.
- Chrome hose clamp placed at the rubber TOP and scaled to clear the widened sleeve.
- Rubber sleeve bottom and slurry discharge/loading positions synchronized.
- No modifications to capacity, prices, PTO control, barn-extension logic, selling, or zip identity.
- Offline validation only. Test in FS25 on backed-up save.

VERSION 1.0.0.27
- Updated the cathodic-protection decal artwork with the latest user-supplied version.
