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.
| Addon | Needed by | If 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 name | Owning implementation | Notes |
|---|---|---|
FF_horror_fnc_cbrnGetConfig | FF_cbrn_fnc_cbrnGetConfig | CBRN owns the simulation; Horror exposes the same call. |
FF_horror_fnc_cbrnStart / cbrnStop / cbrnRefresh | FF_cbrn_fnc_* | Same arguments and return values. |
FF_horror_fnc_cbrnUseItem / cbrnDecontaminate | FF_cbrn_fnc_* | Same behaviour, including ACE actions. |
FF_horror_fnc_cameraPath | FF_cinematic_fnc_cameraPath | Cinematic owns the camera implementation. |
FF_horror_fnc_gravityPulse / gravityPulseLocal | FF_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* / moduleInteraction | FF_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 / aiBalanceReveal | FF_utils_fnc_* | Utils owns balancing; start with persistenceStart-style config. |
FF_horror_fnc_initDocument | FF_utils_fnc_initDocument | Utils reader, optional Horror lore library fallback. |
FF_horror_fnc_registerZeusFooterStatus / unregister | FF_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.
| Alias | Calls | Size |
|---|---|---|
FF_utils_fnc_blackout | FF_core_fnc_isCuratorRequest | 36 lines |
FF_utils_fnc_droneFeedRequest | FF_core_fnc_isCuratorRequest | 20 lines |
FF_utils_fnc_loadoutRecoveryRequest | FF_core_fnc_isCuratorRequest | 29 lines |
FF_utils_fnc_loadoutRecoveryStart | FF_core_fnc_isCuratorRequest | 27 lines |
FF_utils_fnc_passAlarmRequest | FF_core_fnc_isCuratorRequest | 26 lines |
FF_utils_fnc_persistenceZeusInit | FF_zeus_fnc_persistenceZeusInit | 4 lines |
FF_utils_fnc_prepareAmmo | FF_core_fnc_isCuratorRequest | 43 lines |
FF_utils_fnc_readyRoomAdminRequest | FF_core_fnc_isCuratorRequest | 25 lines |
FF_utils_fnc_weaponFaultAdminRequest | FF_core_fnc_isCuratorRequest | 22 lines |
FF_cinematic_fnc_musicDirectorAdminRequest | FF_core_fnc_isCuratorRequest | 37 lines |
FF_zeus_fnc_droneDialogApply | FF_utils_fnc_droneFeedRequest | 36 lines |
FF_zeus_fnc_loadoutRecoveryDialog | FF_utils_fnc_loadoutRecoveryRequest | 17 lines |
FF_zeus_fnc_musicDirectorApply | FF_cinematic_fnc_musicDirectorAdminRequest | 19 lines |
FF_zeus_fnc_musicDirectorChoose | FF_cinematic_fnc_musicDirectorState | 39 lines |
FF_zeus_fnc_persistenceZeusInit | FF_utils_fnc_persistenceZeusRequest | 25 lines |
FF_zeus_fnc_readyRoomDialog | FF_utils_fnc_readyRoomAdminRequest | 17 lines |
FF_zeus_fnc_terminalHQ | FF_utils_fnc_terminalOpen | 23 lines |
FF_zeus_fnc_weaponFaultDialog | FF_utils_fnc_weaponFaultAdminRequest | 21 lines |
FF_spectator_fnc_cam | FF_cinematic_fnc_animateCamera | 22 lines |
FF_spectator_fnc_cameraTransition | FF_cinematic_fnc_prepareCameraPath | 75 lines |
FFPP_fnc_acknowledge | FF_utils_fnc_persistenceAcknowledge | 3 lines |
FFPP_fnc_applyRestore | FF_utils_fnc_persistenceApplyRestore | 3 lines |
FFPP_fnc_requestRestore | FF_utils_fnc_persistenceRequestRestore | 3 lines |
FFPP_fnc_snapshot | FF_utils_fnc_persistenceSnapshot | 3 lines |
FFPP_fnc_zeusRequest | FF_utils_fnc_persistenceZeusRequest | 3 lines |
FF_horror_fnc_aiBalanceReveal | FF_utils_fnc_aiBalanceReveal | 3 lines |
FF_horror_fnc_aiBalanceTick | FF_utils_fnc_aiBalanceTick | 3 lines |
FF_horror_fnc_atmospherePlaybackStart | FF_cinematic_fnc_musicStart | 31 lines |
FF_horror_fnc_cameraPath | FF_cinematic_fnc_cameraPath | 10 lines |
FF_horror_fnc_cbrnAddActions | FF_cbrn_fnc_cbrnAddActions | 3 lines |
FF_horror_fnc_cbrnDecontaminate | FF_cbrn_fnc_cbrnDecontaminate | 3 lines |
FF_horror_fnc_cbrnGetConfig | FF_cbrn_fnc_cbrnGetConfig | 3 lines |
FF_horror_fnc_cbrnGetDanger | FF_cbrn_fnc_cbrnGetDanger | 3 lines |
FF_horror_fnc_cbrnGetProtection | FF_cbrn_fnc_cbrnGetProtection | 3 lines |
FF_horror_fnc_cbrnGiveItem | FF_cbrn_fnc_cbrnGiveItem | 3 lines |
FF_horror_fnc_cbrnRefresh | FF_cbrn_fnc_cbrnRefresh | 3 lines |
FF_horror_fnc_cbrnStart | FF_cbrn_fnc_cbrnStart | 3 lines |
FF_horror_fnc_cbrnStop | FF_cbrn_fnc_cbrnStop | 3 lines |
FF_horror_fnc_cbrnTick | FF_cbrn_fnc_cbrnTick | 3 lines |
FF_horror_fnc_cbrnUseItem | FF_cbrn_fnc_cbrnUseItem | 3 lines |
FF_horror_fnc_cbrnVisuals | FF_cbrn_fnc_cbrnVisuals | 3 lines |
FF_horror_fnc_faultyVision | FF_utils_fnc_faultyVision | 3 lines |
FF_horror_fnc_faultyVisionMap | FF_utils_fnc_faultyVisionMap | 3 lines |
FF_horror_fnc_faultyVisionReplace | FF_utils_fnc_faultyVisionReplace | 3 lines |
FF_horror_fnc_faultyVisionTick | FF_utils_fnc_faultyVisionTick | 3 lines |
FF_horror_fnc_gravityPulse | FF_cinematic_fnc_gravityPulse | 10 lines |
FF_horror_fnc_gravityPulseLocal | FF_cinematic_fnc_gravityPulseLocal | 10 lines |
FF_horror_fnc_gravityTrapRegister | FF_utils_fnc_weaponFaultApply | 31 lines |
FF_horror_fnc_gravityTrapTrigger | FF_cinematic_fnc_gravityPulse | 34 lines |
FF_horror_fnc_initDocument | FF_utils_fnc_initDocument | 4 lines |
FF_horror_fnc_interactionAvailable | FF_utils_fnc_interactionAvailable | 3 lines |
FF_horror_fnc_interactionClientInit | FF_utils_fnc_interactionClientInit | 3 lines |
FF_horror_fnc_interactionExecute | FF_utils_fnc_interactionExecute | 3 lines |
FF_horror_fnc_interactionInputs | FF_utils_fnc_interactionInputs | 3 lines |
FF_horror_fnc_interactionItemCount | FF_utils_fnc_interactionItemCount | 3 lines |
FF_horror_fnc_interactionSignal | FF_utils_fnc_interactionSignal | 3 lines |
FF_horror_fnc_moduleCBRNSettings | FF_cbrn_fnc_moduleCBRNSettings | 3 lines |
FF_horror_fnc_moduleCBRNZone | FF_cbrn_fnc_moduleCBRNZone | 3 lines |
FF_horror_fnc_moduleFaultyVision | FF_utils_fnc_moduleFaultyVision | 3 lines |
FF_horror_fnc_moduleInteraction | FF_utils_fnc_moduleInteraction | 3 lines |
FF_horror_fnc_moduleWardrobe | FF_utils_fnc_moduleWardrobe | 3 lines |
FF_horror_fnc_moduleWardrobeSettings | FF_utils_fnc_moduleWardrobeSettings | 3 lines |
FF_horror_fnc_overlay | FF_cinematic_fnc_overlayStart | 51 lines |
FF_horror_fnc_registerZeusFooterStatus | FF_zeus_fnc_registerZeusFooterStatus | 3 lines |
FF_horror_fnc_statusSettingsDialog | FF_zeus_fnc_statusRatesRequest | 11 lines |
FF_horror_fnc_unregisterZeusFooterStatus | FF_zeus_fnc_unregisterZeusFooterStatus | 3 lines |
FF_horror_fnc_wardrobeApplyStartingGear | FF_utils_fnc_wardrobeApplyStartingGear | 3 lines |
FF_horror_fnc_wardrobeBuildArsenal | FF_utils_fnc_wardrobeBuildArsenal | 3 lines |
FF_horror_fnc_wardrobeClose | FF_utils_fnc_wardrobeClose | 3 lines |
FF_horror_fnc_wardrobeGetConfig | FF_utils_fnc_wardrobeGetConfig | 3 lines |
FF_horror_fnc_wardrobeInit | FF_utils_fnc_wardrobeInit | 3 lines |
FF_horror_fnc_wardrobeIsElectronics | FF_utils_fnc_wardrobeIsElectronics | 3 lines |
FF_horror_fnc_wardrobeIsExcluded | FF_utils_fnc_wardrobeIsExcluded | 3 lines |
FF_horror_fnc_wardrobeIsVanilla | FF_utils_fnc_wardrobeIsVanilla | 3 lines |
FF_horror_fnc_wardrobeMissionItems | FF_utils_fnc_wardrobeMissionItems | 3 lines |
FF_horror_fnc_wardrobeOpen | FF_utils_fnc_wardrobeOpen | 3 lines |
FF_horror_fnc_wardrobeOpenClient | FF_utils_fnc_wardrobeOpenClient | 3 lines |
FF_horror_fnc_wardrobePreset | FF_utils_fnc_wardrobePreset | 3 lines |
FF_horror_fnc_wardrobeRegisterHandlers | FF_utils_fnc_wardrobeRegisterHandlers | 3 lines |
FF_horror_fnc_wardrobeReset | FF_utils_fnc_wardrobeReset | 3 lines |
FF_horror_fnc_wardrobeSanitize | FF_utils_fnc_wardrobeSanitize | 3 lines |
FF_horror_fnc_wardrobeSelfActions | FF_utils_fnc_wardrobeSelfActions | 3 lines |
FF_horror_fnc_wardrobeSetConfig | FF_utils_fnc_wardrobeSetConfig | 3 lines |
FF_horror_fnc_zeusFooterClientTick | FF_zeus_fnc_zeusFooterClientTick | 3 lines |
FF_horror_fnc_zeusFooterInit | FF_zeus_fnc_zeusFooterInit | 4 lines |
FF_horror_fnc_zeusFooterLoad | FF_zeus_fnc_zeusFooterLoad | 3 lines |
FF_horror_fnc_zeusFooterServerTick | FF_zeus_fnc_zeusFooterServerTick | 3 lines |
FF_horror_fnc_zeusFooterUnload | FF_zeus_fnc_zeusFooterUnload | 3 lines |
FF_horror_fnc_zeusFooterUpdate | FF_zeus_fnc_zeusFooterUpdate | 3 lines |
FF_horror_fnc_zeusFooterWatch | FF_zeus_fnc_zeusFooterWatch | 3 lines |
FF_horror_fnc_zeusLookLoad | FF_zeus_fnc_zeusLookLoad | 3 lines |
FF_horror_fnc_zeusLookTick | FF_zeus_fnc_zeusLookTick | 3 lines |
FF_horror_fnc_zeusLookUnload | FF_zeus_fnc_zeusLookUnload | 3 lines |
Naming rules
- Item classes use
FF_Horror_*across Utils, CBRN and Horror. - State keys such as
FF_horror_cbrnMinutesare 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.