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.
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.
blockedis 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.
| State | Trigger |
|---|---|
| Identification light | Manual toggle through the provided action. |
| Manual alarm | passManualUntil is in the future. |
| Casualty alarm | Player body is dead or unconscious, including ACE unconsciousness. |
| Suspended | suspended predicate returns true for that unit. |
| Retired | Body 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
FF_utils_fnc_blackout— Disables terrain lamps while preserving configured safe circles.FF_utils_fnc_flashlightsStart— Starts or stops opt-in shared player flashlight rendering locally.FF_utils_fnc_passStart— Starts/stops independent identification and casualty PASS beacons.FF_utils_fnc_prepareAmmo— Tops up consumable cargo to a multiple of supplied operators' inventories.FF_utils_fnc_loadoutRecoveryStart— Configures opt-in saved-loadout retention across player respawns.FF_core_fnc_isCuratorRequest— Validates the player and network owner of a server curator request.