FF SUITEArma 3 addons

Reference · Contracts

Aliases and naming

Required addons, every function alias, and the names that form the public contract.

Required addons

FF Horror is not standalone. These must be present on the server, on every client and on every headless client.

AddonNeeded byIf missing
CBA A3 Everything — settings, event handlers, XEH pre-init, compile macros. The suite does not initialise at all.
ACE3 Medical integration, arsenal item categories, interaction menu, stamina cap. Items and CBRN effects lose their ACE layer; several modules do nothing.
WebKnight (WBK) Zombies The infected population itself. FF Horror ships no zombie units. Hordes and arrivals spawn nothing, atmosphere threat stays near zero. Class-name filters fall back to plain infantry.
!

Zombies come from WBK, not from this suite. FF Horror decides when, where and how many arrive, scores each WBK archetype by threat (FFATM_fnc_zombieProfile), and drives atmosphere and music from that score. Another zombie pack works if its classes are named or filtered explicitly, but it will not be scored as accurately. Details: mission maker → WebKnight · lore → bestiary.

Function aliases

Every function is owned by exactly one component. Where a Horror name also exists for the same job, it is an alias that calls the owning implementation with the same arguments and return value. Either name is safe; the component-prefixed name says where the code lives.

Horror nameOwning implementationNotes
FF_horror_fnc_cbrnGetConfigFF_cbrn_fnc_cbrnGetConfigCBRN owns the simulation; Horror exposes the same call.
FF_horror_fnc_cbrnStart / cbrnStop / cbrnRefreshFF_cbrn_fnc_*Same arguments and return values.
FF_horror_fnc_cbrnUseItem / cbrnDecontaminateFF_cbrn_fnc_*Same behaviour, including ACE actions.
FF_horror_fnc_cameraPathFF_cinematic_fnc_cameraPathCinematic owns the camera implementation.
FF_horror_fnc_gravityPulse / gravityPulseLocalFF_cinematic_fnc_*Cinematic owns the pulse implementation.
FF_horror_fnc_faultyVision (+Map/Replace/Tick)FF_utils_fnc_*Utils owns conversion policy and modules.
FF_horror_fnc_interaction* / moduleInteractionFF_utils_fnc_*Utils owns circuit evaluation.
FF_horror_fnc_wardrobe* / moduleWardrobe*FF_utils_fnc_*Utils owns the wardrobe policy and arsenal build.
FF_horror_fnc_aiBalanceTick / aiBalanceRevealFF_utils_fnc_*Utils owns balancing; start with persistenceStart-style config.
FF_horror_fnc_initDocumentFF_utils_fnc_initDocumentUtils reader, optional Horror lore library fallback.
FF_horror_fnc_registerZeusFooterStatus / unregisterFF_zeus_fnc_*Zeus owns the footer registry.
FF_horror_fnc_zeusFooter* / zeusLook*FF_zeus_fnc_*Zeus owns the curator UI.
FFPP_* functions (mission callers)FF_utils_fnc_persistence*Horror exposes its own persistence entry points.
FFATM_* / FFSC_* CfgFunctions-Atmosphere and scare systems live in Horror.

Alias list

Read from the compiled alias functions, so this list cannot drift from the source.

AliasCallsSize
FF_utils_fnc_blackoutFF_core_fnc_isCuratorRequest36 lines
FF_utils_fnc_droneFeedRequestFF_core_fnc_isCuratorRequest20 lines
FF_utils_fnc_loadoutRecoveryRequestFF_core_fnc_isCuratorRequest29 lines
FF_utils_fnc_loadoutRecoveryStartFF_core_fnc_isCuratorRequest27 lines
FF_utils_fnc_passAlarmRequestFF_core_fnc_isCuratorRequest26 lines
FF_utils_fnc_persistenceZeusInitFF_zeus_fnc_persistenceZeusInit4 lines
FF_utils_fnc_prepareAmmoFF_core_fnc_isCuratorRequest43 lines
FF_utils_fnc_readyRoomAdminRequestFF_core_fnc_isCuratorRequest25 lines
FF_utils_fnc_weaponFaultAdminRequestFF_core_fnc_isCuratorRequest22 lines
FF_cinematic_fnc_musicDirectorAdminRequestFF_core_fnc_isCuratorRequest37 lines
FF_zeus_fnc_droneDialogApplyFF_utils_fnc_droneFeedRequest36 lines
FF_zeus_fnc_loadoutRecoveryDialogFF_utils_fnc_loadoutRecoveryRequest17 lines
FF_zeus_fnc_musicDirectorApplyFF_cinematic_fnc_musicDirectorAdminRequest19 lines
FF_zeus_fnc_musicDirectorChooseFF_cinematic_fnc_musicDirectorState39 lines
FF_zeus_fnc_persistenceZeusInitFF_utils_fnc_persistenceZeusRequest25 lines
FF_zeus_fnc_readyRoomDialogFF_utils_fnc_readyRoomAdminRequest17 lines
FF_zeus_fnc_terminalHQFF_utils_fnc_terminalOpen23 lines
FF_zeus_fnc_weaponFaultDialogFF_utils_fnc_weaponFaultAdminRequest21 lines
FF_spectator_fnc_camFF_cinematic_fnc_animateCamera22 lines
FF_spectator_fnc_cameraTransitionFF_cinematic_fnc_prepareCameraPath75 lines
FFPP_fnc_acknowledgeFF_utils_fnc_persistenceAcknowledge3 lines
FFPP_fnc_applyRestoreFF_utils_fnc_persistenceApplyRestore3 lines
FFPP_fnc_requestRestoreFF_utils_fnc_persistenceRequestRestore3 lines
FFPP_fnc_snapshotFF_utils_fnc_persistenceSnapshot3 lines
FFPP_fnc_zeusRequestFF_utils_fnc_persistenceZeusRequest3 lines
FF_horror_fnc_aiBalanceRevealFF_utils_fnc_aiBalanceReveal3 lines
FF_horror_fnc_aiBalanceTickFF_utils_fnc_aiBalanceTick3 lines
FF_horror_fnc_atmospherePlaybackStartFF_cinematic_fnc_musicStart31 lines
FF_horror_fnc_cameraPathFF_cinematic_fnc_cameraPath10 lines
FF_horror_fnc_cbrnAddActionsFF_cbrn_fnc_cbrnAddActions3 lines
FF_horror_fnc_cbrnDecontaminateFF_cbrn_fnc_cbrnDecontaminate3 lines
FF_horror_fnc_cbrnGetConfigFF_cbrn_fnc_cbrnGetConfig3 lines
FF_horror_fnc_cbrnGetDangerFF_cbrn_fnc_cbrnGetDanger3 lines
FF_horror_fnc_cbrnGetProtectionFF_cbrn_fnc_cbrnGetProtection3 lines
FF_horror_fnc_cbrnGiveItemFF_cbrn_fnc_cbrnGiveItem3 lines
FF_horror_fnc_cbrnRefreshFF_cbrn_fnc_cbrnRefresh3 lines
FF_horror_fnc_cbrnStartFF_cbrn_fnc_cbrnStart3 lines
FF_horror_fnc_cbrnStopFF_cbrn_fnc_cbrnStop3 lines
FF_horror_fnc_cbrnTickFF_cbrn_fnc_cbrnTick3 lines
FF_horror_fnc_cbrnUseItemFF_cbrn_fnc_cbrnUseItem3 lines
FF_horror_fnc_cbrnVisualsFF_cbrn_fnc_cbrnVisuals3 lines
FF_horror_fnc_faultyVisionFF_utils_fnc_faultyVision3 lines
FF_horror_fnc_faultyVisionMapFF_utils_fnc_faultyVisionMap3 lines
FF_horror_fnc_faultyVisionReplaceFF_utils_fnc_faultyVisionReplace3 lines
FF_horror_fnc_faultyVisionTickFF_utils_fnc_faultyVisionTick3 lines
FF_horror_fnc_gravityPulseFF_cinematic_fnc_gravityPulse10 lines
FF_horror_fnc_gravityPulseLocalFF_cinematic_fnc_gravityPulseLocal10 lines
FF_horror_fnc_gravityTrapRegisterFF_utils_fnc_weaponFaultApply31 lines
FF_horror_fnc_gravityTrapTriggerFF_cinematic_fnc_gravityPulse34 lines
FF_horror_fnc_initDocumentFF_utils_fnc_initDocument4 lines
FF_horror_fnc_interactionAvailableFF_utils_fnc_interactionAvailable3 lines
FF_horror_fnc_interactionClientInitFF_utils_fnc_interactionClientInit3 lines
FF_horror_fnc_interactionExecuteFF_utils_fnc_interactionExecute3 lines
FF_horror_fnc_interactionInputsFF_utils_fnc_interactionInputs3 lines
FF_horror_fnc_interactionItemCountFF_utils_fnc_interactionItemCount3 lines
FF_horror_fnc_interactionSignalFF_utils_fnc_interactionSignal3 lines
FF_horror_fnc_moduleCBRNSettingsFF_cbrn_fnc_moduleCBRNSettings3 lines
FF_horror_fnc_moduleCBRNZoneFF_cbrn_fnc_moduleCBRNZone3 lines
FF_horror_fnc_moduleFaultyVisionFF_utils_fnc_moduleFaultyVision3 lines
FF_horror_fnc_moduleInteractionFF_utils_fnc_moduleInteraction3 lines
FF_horror_fnc_moduleWardrobeFF_utils_fnc_moduleWardrobe3 lines
FF_horror_fnc_moduleWardrobeSettingsFF_utils_fnc_moduleWardrobeSettings3 lines
FF_horror_fnc_overlayFF_cinematic_fnc_overlayStart51 lines
FF_horror_fnc_registerZeusFooterStatusFF_zeus_fnc_registerZeusFooterStatus3 lines
FF_horror_fnc_statusSettingsDialogFF_zeus_fnc_statusRatesRequest11 lines
FF_horror_fnc_unregisterZeusFooterStatusFF_zeus_fnc_unregisterZeusFooterStatus3 lines
FF_horror_fnc_wardrobeApplyStartingGearFF_utils_fnc_wardrobeApplyStartingGear3 lines
FF_horror_fnc_wardrobeBuildArsenalFF_utils_fnc_wardrobeBuildArsenal3 lines
FF_horror_fnc_wardrobeCloseFF_utils_fnc_wardrobeClose3 lines
FF_horror_fnc_wardrobeGetConfigFF_utils_fnc_wardrobeGetConfig3 lines
FF_horror_fnc_wardrobeInitFF_utils_fnc_wardrobeInit3 lines
FF_horror_fnc_wardrobeIsElectronicsFF_utils_fnc_wardrobeIsElectronics3 lines
FF_horror_fnc_wardrobeIsExcludedFF_utils_fnc_wardrobeIsExcluded3 lines
FF_horror_fnc_wardrobeIsVanillaFF_utils_fnc_wardrobeIsVanilla3 lines
FF_horror_fnc_wardrobeMissionItemsFF_utils_fnc_wardrobeMissionItems3 lines
FF_horror_fnc_wardrobeOpenFF_utils_fnc_wardrobeOpen3 lines
FF_horror_fnc_wardrobeOpenClientFF_utils_fnc_wardrobeOpenClient3 lines
FF_horror_fnc_wardrobePresetFF_utils_fnc_wardrobePreset3 lines
FF_horror_fnc_wardrobeRegisterHandlersFF_utils_fnc_wardrobeRegisterHandlers3 lines
FF_horror_fnc_wardrobeResetFF_utils_fnc_wardrobeReset3 lines
FF_horror_fnc_wardrobeSanitizeFF_utils_fnc_wardrobeSanitize3 lines
FF_horror_fnc_wardrobeSelfActionsFF_utils_fnc_wardrobeSelfActions3 lines
FF_horror_fnc_wardrobeSetConfigFF_utils_fnc_wardrobeSetConfig3 lines
FF_horror_fnc_zeusFooterClientTickFF_zeus_fnc_zeusFooterClientTick3 lines
FF_horror_fnc_zeusFooterInitFF_zeus_fnc_zeusFooterInit4 lines
FF_horror_fnc_zeusFooterLoadFF_zeus_fnc_zeusFooterLoad3 lines
FF_horror_fnc_zeusFooterServerTickFF_zeus_fnc_zeusFooterServerTick3 lines
FF_horror_fnc_zeusFooterUnloadFF_zeus_fnc_zeusFooterUnload3 lines
FF_horror_fnc_zeusFooterUpdateFF_zeus_fnc_zeusFooterUpdate3 lines
FF_horror_fnc_zeusFooterWatchFF_zeus_fnc_zeusFooterWatch3 lines
FF_horror_fnc_zeusLookLoadFF_zeus_fnc_zeusLookLoad3 lines
FF_horror_fnc_zeusLookTickFF_zeus_fnc_zeusLookTick3 lines
FF_horror_fnc_zeusLookUnloadFF_zeus_fnc_zeusLookUnload3 lines

Naming rules

  • Item classes use FF_Horror_* across Utils, CBRN and Horror.
  • State keys such as FF_horror_cbrnMinutes are public, because missions modify filter capacities and suspend exposure directly.
  • Editor module classes and attributes are public, because Eden files store them by name.
  • CBA setting identifiers are public, because CBA presets store them by name.
  • PBO prefixes are fixed (x\FF\addons\<component>), because media and model paths point at them.
!

These names are the public API. Change what a name calls, never the name itself.