FF SUITEArma 3 addons

Feature 03 / FF CBRN

Hazards thatkeep the receipt

Fog banks, gas zones or your own danger provider. Three ways to breathe, a supply chain that runs out, ACE pain and a simulation that costs no network ticks.

4 protection modes0 network ticksACE medical and stamina1 local tick
CBRN simulationlocal tick0 network ticks
54exposure

danger / maxDanger × dt

breathing stress+ load coef
filtersrun out

Protection modes, evaluated every tick

airSCBA backpack
air + fatigue
backpack filtercombination backpack
filter + hazard
mask filterfitted facewear
filter only
noneno protection
exposure accumulates

Illustrative gauge. Danger is resolved on each client from fog, zones or a mission provider.

Danger

Local simulation. No hazard server.

Every player machine evaluates its own exposure. There is no authoritative server hazard state, so no network tick is spent on danger and a client hitch cannot drain a whole filter.

  1. Safe predicate — a mission callback can declare an interior safe.
  2. Custom provider — a reactor, scripted plume or sensor network replaces everything below.
  3. Fog layer — live fogParams, scaled by altitude between fogDangerStart and fogDangerFull; a ceiling fades danger out over fogTransition metres.
  4. Zones — full strength inside innerRadius, linear fade to radius, filtered by min/max ASL. Fog and zones combine with max.
  5. Clamp — the result is clamped to maxDanger.
i

Vehicle occupants and Zeus players are treated as sheltered: danger and supply drain drop, exposure recovers, load traits and radio range are restored, and the HUD hides. The tick keeps running, so effects resume immediately on exit.

Protection

Breathe three ways, or not at all.

ModeRequiresDrain
airConnected SCBA backpackairUseRate plus fatigue, multiplied by scbaUseMultiplier
backpackFilterConnected combination backpack with cartridge minutesFilter rate plus hazard, plus a low-stamina bonus from ACE anaerobic reserve
maskFilterFitted filter in compatible facewearFilter rate plus hazard; stamina does not change use
none—No protection: exposure accumulates

The fitted mask family is tracked independently of the visual respirator class, so switching between filter and no-filter models does not reset remaining minutes. Backpack supplies live on the backpack container and survive a respawn when the loadout is preserved.

Consequences

Exposure, pain and breathing stress.

Exposure

Accumulates as danger/maxDanger * dt and decays with recoveryRate. Crossing damageThreshold applies ACE body damage.

Pain

Applied per second from painRate. Filtered players skip it unless missingSuitPainEnabled is on.

Breathing stress

Ramps while unfiltered and decays after filtration resumes. It drives a loadCoef multiplier, a stamina cap and extra blur.

The multiplier is recomputed from the current trait, so ACE or another system can recalculate load without being overwritten blindly.

Integrate

Your hazard, the same HUD.

FF_cbrn_config = createHashMapFromArray [
    ["dangerProvider", { params ["_unit"]; _reactorDanger }],
    ["onDangerChanged", { params ["_unit", "_danger"]; }],
    ["onProtectionChanged", { params ["_unit", "_protection"]; }],
    ["maskClasses", ["My_Respirator"]],
    ["suitClasses", ["My_Suit"]]
];

Class arrays let mods with their own respirators and suits work without code changes. cbrnDrainFilter drains only the active filter, which is how the pulse recovery profile applies equipment consequences. cbrnDecontaminate is available for scripted decon stations.

Feature 03 / 08 Every system deep dive