The SOFLAM Integration Core mod is published under the Arma Public License (APL)Example code is free to useSuggestions: Discord to the author
SOFLAM Integration Core
Dedicated-server pitfalls Changed
Each of these cost real time. They have in common that the single-player run looked fine.
In plain wordsThe short list of things that worked in Workbench and failed on a server.
| Symptom | Cause | Fix |
|---|---|---|
| Nothing happens on the server, no error | The client does not own the entity, so its server-bound Rpc is dropped silently | Send through a relay on the player's character (GTG_SOFLAM_Relay) |
| The device is invisible to everybody but the host | The mounted prefab inherited an abstract weapon base with no animation graph; initialisation aborted and the engine returned an empty shell with no replication component | Give it the animation graph the turret uses (M2HB_tripod.agr), and log slot, weapon, children and role on both machines to see the difference |
| A beam or effect appears only for the operator | The component ticks only on the owning machine | Return true from OnTicksOnRemoteProxy() |
| Aiming flies 180° off and freezes at a limit | An engine call that takes radians (SetAimingAngles) was given degrees; elevation read exactly the stop value | Convert once, at the call |
| The mount moves in steps while the picture runs smoothly | Aiming hung on a throttle that was meant for network updates | Throttle the sending, not the local update |
The registry system is never found (Zielablage nicht gefunden) | No update point, or not listed in the systems config | Add a point and the config entry |
| Stale targets steer missiles | Entries nobody removed | Expiry on last report (5 s); publishers re-report every 2 s |
| A missile turns to the world origin for a moment | A target created but not yet reported sits at the zero vector | Skip the zero vector when reading |
| Everybody sees IR lights without goggles | A static flag that was not reset on an early return | Set the flag first, before any check |
| The whole script module disappears | A compile error in any loaded mod, or a name clash | Prefix every class, and keep foreign mods out of the dependency chain |
| Log fills with thousands of lines | A diagnostic switch left on after a test run | Default every switch off (the Core's are GTG_DIAG / GTG_LOG_* constants), and say in the comment what turns it on |
How to diagnose
Put one searchable tag on every log line ([GTG_SOFLAM] in the Core, [GTG_AH64] in the AH-64 mod) and write the role of the machine into
every network line: server, owner, proxy without owner. Then “SENDE without WIRKT” (send without effect) is visible at a glance, and
so is the missing direction.
NoteMeasure before changing. In most of these cases the first explanation was wrong, and the second one came from the log.