Feature 04 / FF Cinematic
Direct thewhole room
Camera paths, animated overlays and a shared scene clock. Register a timeline once, broadcast it from the server, and every machine runs the same cue at the same moment.
Illustrative storyboard. The client clock is server time, not local time.
Scenes
One clock, every machine.
A scene is a locally registered timeline that the server starts against one shared serverTime.
It carries no gameplay authority: visibility, vehicles and view distance are separate, explicitly bounded services.
Register locally, broadcast once
Each participating machine registers the same definition. The server starts it on every current machine, with a monotonically increasing generation so a stale start cannot revive an older scene.
Hard bounds
IDs cap at 128 characters, durations at 1–3600 seconds, cues at 256 and definitions at 64. Cue offsets must be non-decreasing, inside the duration and paired with code.
Cancellation is a message
sceneCancel broadcasts a matching cancellation. A replacement scene can stop the old one before the
new timeline starts; cue bodies should be idempotent.
Late joiners
A late joiner has no local definition and therefore no active scene unless the mission broadcasts again. That is deliberate: no surprise cutscene on reconnect.
Staging
Borrow the world, then give it back.
Visibility
Hide up to 128 explicit player bodies for 1–1800 seconds. The server stores the previous hidden flag, UID and owner, and restores it on timeout, death, disconnect or owner change.
Scene vehicles
Create a local, damage-disabled copy of an explicit template, optionally with isolated AI crew. Up to eight per
client. Placement is NONE or FLY.
View distance
Acquire a lease between 100 and 50 000 metres. The first lease captures the baseline; later leases stack and the newest wins. Up to 16 leases per client.
sceneBlocksPersistence reports when a body is staged, so reconnect persistence waits instead
of restoring someone into the middle of a cutscene.
Sound and layers
One owner of the music channel.
Music follower
A single local owner follows a published timeline. Late joiners seek to the elapsed offset; looping tracks use modulo, one-shots never restart after their duration. Equal descriptors never restart playback.
Holds and yields
Up to 32 named holds let another system own the channel — the ready room uses this for its briefing bed. A
yield gate gives up native identity without touching audio.
Animated overlays
Named overlays, weighted frame sequences and bounded animation cost, used by atmosphere, intros and scares.
overlayFade changes opacity without restarting the sequence.
Cancellable cameras
prepareCameraPath validates weighted frames without touching game state.
animateCamera returns a CBA frame handler, which is why Spectator transitions can be cancelled.
Author it
Register once. Broadcast anywhere.
// every machine that takes part
["intro", 30, [[5, {hint "Five seconds in"}]]]
call FF_cinematic_fnc_sceneRegister;
// server
["intro", serverTime + 3, ["night"]] call FF_cinematic_fnc_sceneBroadcast;
Release visibility, scene vehicles and view-distance leases explicitly when a scene is cancelled early. The full deep dive covers generation guards, crew locality and the persistence block.
Feature 04 / 08 Every system deep dive