STRANDS IZE LED MELON 903000 — FS25 PREFAB
NorthernLight Modding | 1.0.0.0

This is a vehicle-building prefab for PC/Mac. Import it into a vehicle mod; copying this archive into the game's mods folder does not create a shop item. Lua is required for independent power and six-colour memory. The physical lens and side button are modelled; operation uses vehicle input bindings rather than mouse clicks on the 3D lens.

1. COPY THE FILES
Unpack the prefab. Copy the complete assets/melon folder into your vehicle mod's assets folder, and scripts/NLMMelon.lua into its scripts folder. Keep melon.i3d, melon.i3d.shapes and the textures together. References beginning with $data use the installed game; do not copy or distribute the base-game shader files.

2. IMPORT AND MOUNT
Open your vehicle I3D in GIANTS Editor. Import assets/melon/melon.i3d. Parent the imported melon root under the appropriate cab/body node. Keep scale 1 1 1; rotate and translate only the root. For a horizontal ceiling mount, rotation 90 0 0 points the lens down. Put Z=0 of the lamp against the headliner and inspect the entire bezel footprint for gaps and penetration. Default hidden cable can be enabled if its routing suits the vehicle. No collision is needed for this small interior fitting.

3. COPY ITS ACTUAL INDEX PATH
Select the imported melon ROOT and copy its Index Path. Example only: if the root is 0>9, map id melonCab to 0>9. That example is not valid for every vehicle. The script finds lens, lensLOD1 and interiorLight beneath that root; preserve these names and the complete hierarchy. Do not map only the lens.

4. VEHICLE XML
Merge nlmMelon as a direct child of the existing vehicle element. Add its i3dMapping to the existing i3dMappings section. Replace the example root path. Never paste another vehicle root inside the XML. For more lamps, add a lamp entry and a unique mapping such as melonCab2 for each imported root. All lamps in this group share power and colour. intensity controls visible optics; spill controls the real interior light. Initial state is off; defaultColour accepts WHITE, BLUE, GREEN, PURPLE, RED or AMBER. Existing saved colour/state overrides defaults.

5. MODDESC AND VEHICLE TYPE
Merge the supplied specializations, vehicleTypes, actions, inputBinding and l10n children into the matching existing modDesc sections. Do not duplicate their parent sections. The example type nlmMelonTruck inherits carFillable, matching the test truck. For another vehicle, inherit its actual original type to preserve its functions, or add the nlmMelon specialization to its existing custom type. Change vehicle's type attribute to the new custom type. Add the specialization to every effective type used by vehicleTypeConfigurations as well. Register the Lua file once. Keep existing specializations and bindings.

6. CONTROLS AND MEMORY
J (or Ctrl+Home): power. K (or Ctrl+Page Up): next colour. Use these controls while seated in the vehicle. Bindings can be changed in the game's controls menu; resolve any conflict there. Colour can be selected while switched off. Power toggling retains colour, and state/colour are saved with the vehicle. Operation is independent of the engine, headlights and beacon switch. Power must turn off both lens emission and the actual light source.

7. CHECK YOUR INSTALLATION
Start a fresh game load with the integrated vehicle. Check off/on, all six colours, colour memory after power cycling and save/reload. Inspect from the driver's seat and outside at night. Adjust spill for the cab size; the default is an artistic approximation, not measured photometry. Two LOD levels change at 4 m. The interior material is intentionally protected from exterior dirt and snow. Keep the lamp group out of any external automatic dirt overrides. If keys are missing, check type registration and binding conflicts. If a lamp is absent, check the I3D shape file, texture paths and mounting transform. A log message about missing lens/lensLOD1/interiorLight means the root mapping or hierarchy is wrong.

INSTALLATION EXAMPLES

vehicle XML
<?xml version='1.0' encoding='UTF-8'?>
<vehicle>
  <!--Merge into the existing vehicle; 0>9 is an EXAMPLE imported melon root. Replace it with its actual Index Path.-->
  <nlmMelon defaultColour="WHITE" defaultOn="false">
    <lamp node="melonCab" intensity="3" spill="0.22"/>
  </nlmMelon>
  <i3dMappings>
    <i3dMapping id="melonCab" node="0&gt;9"/>
  </i3dMappings>
</vehicle>
modDesc XML
<?xml version='1.0' encoding='UTF-8'?>
<modDesc>
  <specializations>
    <specialization name="nlmMelon" className="NLMMelon" filename="scripts/NLMMelon.lua"/>
  </specializations>
  <vehicleTypes>
    <type name="nlmMelonTruck" parent="carFillable" className="Vehicle" filename="$dataS/scripts/vehicles/Vehicle.lua">
      <specialization name="nlmMelon"/>
    </type>
  </vehicleTypes>
  <actions>
    <action name="NLM_MELON_POWER" category="VEHICLE"/>
    <action name="NLM_MELON_COLOUR" category="VEHICLE"/>
  </actions>
  <inputBinding>
    <actionBinding action="NLM_MELON_POWER">
      <binding device="KB_MOUSE_DEFAULT" input="KEY_lctrl KEY_home"/>
      <binding device="KB_MOUSE_DEFAULT" input="KEY_j" index="2"/>
    </actionBinding>
    <actionBinding action="NLM_MELON_COLOUR">
      <binding device="KB_MOUSE_DEFAULT" input="KEY_lctrl KEY_pageup"/>
      <binding device="KB_MOUSE_DEFAULT" input="KEY_k" index="2"/>
    </actionBinding>
  </inputBinding>
  <l10n>
    <text name="input_NLM_MELON_POWER">
      <en>Melon: on / off</en>
      <no>Melon: av / på</no>
      <sv>Melon: av / på</sv>
    </text>
    <text name="input_NLM_MELON_COLOUR">
      <en>Melon: next colour</en>
      <no>Melon: neste farge</no>
      <sv>Melon: nästa färg</sv>
    </text>
  </l10n>
</modDesc>

MODEL
assets/melon/melon.i3d
assets/melon/melon.i3d.shapes
assets/melon/textures/melon_palette.dds
assets/melon/textures/interior_vmask.dds
scripts/NLMMelon.lua
source/Strands_IZE_Melon.blend

melon
  visualLOD
    detail0: body, button, lens, markings
    detail1: bodyLOD1, buttonLOD1, lensLOD1
  cable (hidden by default)
  interiorLight

70 mm diameter | 50.6 mm depth | 55.1 mm screw centres
Mounting plane: local XY at Z=0. Lens faces local +Z. Scale: 1 1 1.
White > Blue > Green > Purple > Red > Amber > White

CREDITS
Original model, textures and controller: NorthernLight Modding.
Product design and Strands trademarks: their respective owners. Unofficial recreation. No manufacturer affiliation.
