Skip to content

Exports & API

Core Cinematics exposes a small set of state-query exports so other resources can detect when the user is inside the editor and suppress their own input handling (scroll-wheel binds, keymaps, target prompts, HUD elements, etc.) while a cinematic is being composed, recorded, or played back.

Catch-all

If you just want one check to disable your resource's input while the user is doing anything in Core Cinematics, use IsEditorActive. The granular probes below are there for resources that only need to react to a specific state.

Client Exports

clientexports['core_cinematics']:IsEditorActive()

Catch-all — returns true whenever the user is in any cinematics state: editor UI open, positioning mode, playback running, preview playing, or a solo/vehicle recording in progress. Use this to disable your resource's input handling for the full duration of any cinematic activity.

Returns: boolean
Example
lua
-- Suppress a scroll-wheel keymap while the user is in the editor
CreateThread(function()
    while true do
        Wait(0)
        if not exports['core_cinematics']:IsEditorActive() then
            -- your normal input logic here
        end
    end
end)
clientexports['core_cinematics']:IsEditorUIOpen()

Returns true while the cinematic editor NUI is open (the main project / timeline interface).

Returns: boolean
Example
lua
if exports['core_cinematics']:IsEditorUIOpen() then
    -- hide your HUD overlay while the editor is taking the screen
end
clientexports['core_cinematics']:IsInPositionMode()

Returns true while the user is placing or moving an in-world element (camera, marker, text-DUI, etc.) via the editor's position mode.

Returns: boolean
Example
lua
if exports['core_cinematics']:IsInPositionMode() then
    -- don't fire your own raycast / placement binds
end
clientexports['core_cinematics']:IsPlaybackActive()

Returns true while a project is playing back — either a full timeline playback or a single-clip preview.

Returns: boolean
Example
lua
if exports['core_cinematics']:IsPlaybackActive() then
    -- pause your own ambient timers / notifications so they don't appear mid-shot
end
clientexports['core_cinematics']:IsRecording()

Returns true while a solo or vehicle recording is being captured.

Returns: boolean
Example
lua
if exports['core_cinematics']:IsRecording() then
    -- skip non-essential UI prompts so they don't end up in the recording
end

Animation Provider API

Core Cinematics also exposes an open contract that any animation / emote / walking-style resource can implement so its anims are captured during recordings and replayed on puppet peds. This is a separate integration layer — the recorder calls into the provider's exports, not the other way around.

For the full provider contract (required exports, state bag, discovery), see the Animations page.