FF SUITEArma 3 addons

Job scheduler, terrain checks, weighted pools

Flying arrivals and hordes internals

Server-side unit delivery. One scheduler owns every flight and every horde, so there is a single place to reason about capacity, cancellation and late joiners.

FF_Horror 6 related functions

1. A job

flyingSpawn creates a job in FF_horror_spawnJobs with the payload (existing unit or class to create), destination ASL, flight timing, effects timing and the controller that owns it. Existing units are hidden and have simulation disabled while flying; they keep identity, group, variables and loadout. A client call is forwarded to the server and returns an empty string.

2. The scheduler

spawnTick runs every 0.1 s on the server and does three things:

  1. Finish or cancel jobs whose end time passed, whose payload died or was taken by a player, or whose controller was stopped.
  2. Remove the JIP event that lets joining players see active trails once the effect window closed.
  3. For every running controller: prune dead units, publish counts, and launch at most one unit per pass if the living limit and the 128-job mission cap allow it.
horde controller → terrain check → job → flight FX → create/restore unit → reveal players

3. Horde state machine

KeyMeaning
hordeStaterunning, paused, stopped or complete (broadcast)
hordeWave / hordeRemainingCurrent wave index and units left to launch
hordeNextEarliest server time for the next launch
hordePoolValidated weighted class list (not broadcast)
hordeConfigNormalized options (broadcast for Zeus dialogs)
hordeUnits / hordeCounts / hordeSkippedLive units, counts for the footer, failed placements

Wave 0 means endless. A wave with remaining launches waits for capacity instead of deleting survivors. stop cancels pending jobs and keeps living units; pause only stops new launches. Edits apply to future launches.

4. Placement and reveal

hordePosition searches around the controller, rejecting water, steep slopes, occupied positions and the player exclusion radius, and returns an empty array on failure so the controller increments hordeSkipped. On creation, spawnFinish reveals all living player characters with reveal [player, 4], then hands the unit to AI balancing. Third-party zombie scripts can read the public FF_horror_spawnPending variable, because disabling engine simulation does not pause their SQF.

5. Limits

  • 32 controllers, 128 pending jobs, 200 living + incoming per controller.
  • One launch per controller per scheduler pass, so bursts are spread over frames.
  • Arrival cancellation is idempotent: a stopped controller cannot later create its unit.

6. Extension points

  • spawnConfig to normalize your own option maps; spawnPool to validate class strings.
  • spawnFX for custom effects on the client side of the flight.
  • Zeus dialogs are separate from the API, so a mission can drive hordes entirely from scripts.

Related functions

↑ Back to top