JAMO MODDING - AUSTRALIAN HEIGHT CLEARANCE BAR v1.0.0.5

REFERENCE: Height-Bars-3.jpg. Original geometry and textures inspired by the
reference; the photograph itself is not redistributed. Yellow square uprights,
base plates and anchor bolts, inward support arms, alternating steel chain
links, yellow suspended beam, red/white tape, and LOW CLEARANCE 4.5 m sign
on both sides. No nearby speed or speed-bump signs included.

DIMENSIONS AND BEHAVIOUR
Units are metres. Root Y=0 is ground. Beam underside and collider bottom:
4.500 m. Beam top 4.750 m. Posts 5.400 m high; post centres +/-3.100 m;
clear opening between post faces 6.040 m. Static posts and base plates.
The beam is a 40 kg dynamic body, hanging from two articulated nine-link
chains (18 individual bodies and 20 ball joints). The 0.39 m suspension
allows impacts to push/lift/tilt the bar and move individual links. Small
link mass is increased to 1 kg for solver stability, with gentle damping.
Links do not collide with each other or vehicles: they transmit joint forces.
Vehicle collision acts on the beam and static posts. No breakaway or height
adjustment. The bar returns under gravity; resting pose resets on reload.
Server physics drives motion; remote clients receive body poses at 10 Hz.
Red/white tape uses a bright texture and ordinary specular material; it is
not retroreflective, emissive or a light source. Place on level ground to keep
the signed clearance accurate. Terrain is not automatically levelled/painted.

INSTALL
Copy FS25_JamoHeightBar.zip into Documents/My Games/FarmingSimulator2025/mods.
Keep ZIP intact, enable mod for the save, and open Construction > Decoration
> Decoration (the Others section). Price 2500 game currency; upkeep 0. Mod descriptor version 114 is
the FS25 target used by the supplied local project mods; match to installed
FS25 build if its log reports an unsupported descriptor version.

VALIDATION STATUS
Automated checks validate XML parsing, mesh indices/counts, relative file
references, node mappings, testArea parent relationship, collider dimensions,
textures and ZIP integrity. These checks are NOT engine compatibility tests.
The previous version loaded/rendered in FS25 but had a flipped face and
inactive collision. This revision explicitly enables collision, bakes box
dimensions into convex meshes and activates bodies after placement. The
Lua specialization creates real physics joints, not a proximity animation.
The v1.0.0.2 game log showed a premature zero-body check, followed 31 ms
later by collision-mesh cooking. v1.0.0.5 waits across physics frames for
body registration, then for dynamic activation, before constructing joints.
It keeps the beam kinematic during cooking and restores rest poses before
joint creation. Only a persistent 10-second failure times out.
USER TEST RESULT: v1.0.0.3 reports 4 static actors, 19 moving actors and
20 joints active, but vehicles pass through BOTH posts and beam. Physical
contact and suspension are therefore NOT working or verified. v1.0.0.5 is a
collision geometry rebuild, not a confirmed fix. The v1.0.0.4 log
reported hit=false for both posts and beam. All collision meshes now use
eight welded corners, twelve outward triangles and meshUsage=256 (CPU mesh). Two seconds after activation it probes
both posts and beam using FS25 synchronous raycasts and logs CONTACT CHECK
with hit result, current body type, filter, enabled state and world position.
This distinguishes missing contact geometry from later collision deactivation.
Load the save or place a fresh bar, wait five seconds, test and inspect log.txt.
GIANTS Editor binary collision export and in-game contact testing still needed.
No external mod dependencies. Custom Lua is included, for PC/Mac only.

REQUIRED GIANTS EDITOR 10 / FS25 TESTS BEFORE RELEASE
1. Extract a working copy and open heightBar.i3d in the FS25 GIANTS Editor.
   Inspect geometry, normals, winding, UVs, text orientation and materials.
   Save to generate binary heightBar.i3d.shapes if required by the engine;
   the delivered model uses self-contained inline IndexedTriangleSet data.
2. Inspect four static collider boxes, one beam body and 18 link bodies.
   Runtime sets static group 0x103e, beam group 0x10004 and broad masks.
   Chain masks are zero to avoid self-collision. Vehicle/player response and
   inline convex collision cooking still require engine testing.
   Ensure invisible collider shapes stay non-rendering and block vehicles.
3. Confirm Construction > Decoration > Others listing, icon, price, placement,
   rotation, terrain alignment and overlap rejection on owned level land.
4. Drive a known sub-4.5 m vehicle through. Use a tall vehicle/tool slowly to
   contact the beam and check both chains bend/swing without detachment.
   Test repeated impacts, both directions, and return to rest. Posts must
   block sideways impacts. Check player collision and solver stability.
   Look for [JAMO Height Bar] solid colliders 4/4, moving bodies 19/19,
   joints 20/20 in log.txt. Any failed count needs investigation.
5. Save/reload, sell/remove, test a multiplayer save and inspect log.txt for
   XML/schema, material, physics and missing resource errors.
6. Convert textures with GIANTS Texture Tool for release optimisation/mipmaps.
   Supplied DDS textures are uncompressed source-quality DDS; PNG sources
   are included. Regenerate icon with GIANTS Icon Generator if desired.
7. Repackage CONTENTS at ZIP root (modDesc.xml must not be inside a subfolder).

Official implementation reference:
https://gdn.giants-software.com/documentation_scripting_fs25.php?category=78&class=753&version=script
