FF SUITEArma 3 addons

Blackout, flashlights, PASS, ammo, loadout recovery

Field utilities internals

Small, independent utilities that missions and Zeus use directly. Each one is opt-in, bounded, and validated on the server when it changes shared state.

FF_Utils 6 related functions

1. Terrain blackout

blackout disables lamps on the server: anything of class Lamps_base_F, with simulation = "streetlamp", or with reflectors. It walks 1 allObjects 0 once, keeps lamps inside supplied safe circles, and sets the rest to at least the supplied damage threshold.

// exclusions: [[positionATL, radius], ...]
private _result = [[[[1000, 1000, 0], 300]]] call FF_utils_fnc_blackout;
_result params ["_disabled", "_preserved"];

Remote calls are rejected unless the requester is a curator, so a mission script or a Zeus action can use it but an arbitrary client cannot darken the map.

2. Shared player flashlights

Arma renders only your own flashlight cone. With FF: Utils > Shared player flashlights enabled, each client draws a local cone for every connected player who has the native flashlight switch on.

  • Opt-in CBA setting, default off; also callable as [true, config] call FF_utils_fnc_flashlightsStart.
  • Publishes only switch changes through FF_utils_flashlightOn, so joining clients see the current state.
  • Cones are local, hidden objects positioned from the right-hand memory point and the weapon direction.
  • blocked is a code predicate that can suppress the local player's own cone; the scare system uses it.

3. PASS beacons

Opt-in identification lights and casualty alarms for player bodies. The server publishes one alarm epoch per physical body; clients render the light and sound locally.

StateTrigger
Identification lightManual toggle through the provided action.
Manual alarmpassManualUntil is in the future.
Casualty alarmPlayer body is dead or unconscious, including ACE unconsciousness.
Suspendedsuspended predicate returns true for that unit.
RetiredBody replaced by respawn; the epoch is invalidated.

Configuration: range (default 150 m, clamped 1-1000), calmInterval, flashDuration, calmBrightness, alarmBrightness.

4. Ammo provisioning

prepareAmmo tops a container up to a multiple of the supplied operators' inventories, which is useful before a wave or a long patrol.

// container, operators, multiplier
private _added = [_truck, units group player, 3] call FF_utils_fnc_prepareAmmo;

Server-only, and curator-validated for remote calls.

5. Loadout recovery

A simpler sibling of reconnect persistence: the server keeps a saved loadout on the player and copies it to the replacement unit on respawn.

// server, once
[createHashMapFromArray [["snapshotKey", "mySavedLoadout"]]
] call FF_utils_fnc_loadoutRecoveryStart;

// Zeus or mission: save/load one player (`objNull` = all players)
[player, "save", _target] remoteExecCall
    ["FF_utils_fnc_loadoutRecoveryRequest", 2];

The key is bounded to 128 characters, the snapshot must be a ten-element loadout, and the apply step only runs on the owning machine of a living player. Feedback goes to the requesting curator.

6. Curator guard

Core's FF_core_fnc_isCuratorRequest validates that a remote caller is an assigned curator. Utils uses it for blackout, ammo provisioning and loadout commands, so “Zeus-only” tools stay Zeus-only even if a client discovers the function name.

Related functions

↑ Back to top