FF SUITEArma 3 addons

Registry, scopes, sessions

Zeus footer and volunteer service internals

The curator layer: a shared status footer, FPS reporting, AI look orders, and an optional volunteer/RP service that lets players temporarily take over AI bodies.

FF_Zeus 8 related functions

Fields are registered on the machine that owns their value. A server field is broadcast to every Zeus; a local field is shown only to that viewer and replaces a server field with the same ID. Each entry keeps its update code, its interval and the next due time, so a mission can publish state without starting another loop.

["supplies", "Supplies", { missionNamespace getVariable ["supplies", 0] }, 2, "server"]
    call FF_zeus_fnc_registerZeusFooterStatus;

Labels, names and values are escaped before structured-text rendering, so mission text cannot break the footer layout. Horror registers its zombie, skull and horde counters through the same registry and hooks the FF_zeus_displayLoaded event for its Soul tools panel.

2. FPS and status rates

Clients publish their own FPS sample with a timestamp; the server aggregates average, minimum and server FPS. Samples older than the configured interval are ignored. The ZEN status-rate dialog changes the FPS and soul-position intervals for everyone, including later joiners.

3. Look orders

Holding Alt in the curator display sends a look request for the selected editable infantry. Requests are validated on the server against the requesting curator and forwarded to the owner, which calls doWatch. Curators cannot issue look orders for units they do not edit.

4. Volunteer service

Disabled by default. When enabled, a curator designates an available volunteer and assigns an AI target. The server reserves the pair, offers the volunteer a choice (F1 accept, F2 decline), and expires unanswered offers after the configured timeout.

PhaseServer behaviour
OfferReserve participant + AI, issue a session identifier, start the timeout.
AcceptSave the original body's damage permission, move control, start the panel.
SessionEND switches bodies, DELETE finishes; identifiers block stale replies.
ReleaseRestore damage permission, free the AI, clear UI and key handlers.
FailureDisconnect, body death or unexpected replacement releases the session automatically.

Disabling the setting releases active sessions and removes actions, handlers and UI.

5. Admin tools and screen previews

Two curator utilities sit beside the footer. Both are opt-in, both run locally for the assigned curator, and both clean up when curator access ends.

  • Diagnostics toolbar ? adminToolbar(true) shows a local F-key bar; adminToolsDialog offers the operations and adminToolsApply runs one against the local player after server authorization. adminToolsTick keeps the bar in sync, adminToolsStop removes it, and adminMarkersStop clears map markers created by the tools.
  • Screen previews ? screenPreviewRegister(id, label, htmlPath, onLoaded, onUpdate) registers a read-only local renderer. screenPreviewOpen(id, mode) opens it as a full view or a bottom preview, and screenPreviewSyncPower attaches previews for replicated power sites. screenPreviewTick closes screens when curator access ends. terminalHQ is the same mechanism used for the terminal HQ view.

Preview callbacks receive [browser, id, mode] and may only read state; nothing a preview renders is accepted back as input. The curator's own UI is never hidden by a preview.

Related functions

↑ Back to top