Configuration
All settings live in core_cinematics/config.lua. Defaults are tuned for a solid out-of-the-box feel — you rarely need to change anything except the permission name and, optionally, the recording radius.
Permissions & Locale
ACE Permission
Server-side gate for every editor action. Only players with this ACE (or the generic 'command' ACE) can open the editor.
Locale
Loads translations from locales/<name>.json. Ships with English — add your own JSON file to support another language.
lua
Config = {
AcePerm = 'core_cinematics.use', -- ACE permission required to open editor
Locale = 'en', -- File name in locales/ (without .json)
}Timeline
lua
DefaultFPS = 30, -- Frames per second — timeline resolution
MaxDuration = 600, -- Maximum timeline duration in seconds (10 min default)TIP
DefaultFPS sets the timeline granularity, not the playback frame rate. Your actual in-game FPS while recording is whatever GTA renders — use OBS to capture at 60 FPS regardless of this value.
Camera Movement (Free-Fly)
Controls how the director camera moves while positioning a keyframe.
lua
MoveSpeed = 12.0, -- Base movement speed (units/sec)
MoveSpeedFast = 60.0, -- With SHIFT held (units/sec)
RotateSpeed = 3.0, -- Mouse look sensitivity (smooth, precise)
RotateSpeedFast = 8.0, -- With SHIFT held (fast panning)
FovMin = 5.0,
FovMax = 120.0,
DefaultFov = 50.0,| Control | Action |
|---|---|
| WASD | Move horizontally |
| Space / Ctrl | Up / down |
| Mouse | Look |
| Shift | Hold for fast movement & rotation |
| Scroll | Adjust FOV |
| Enter | Save camera position to keyframe |
| Esc | Cancel positioning |
Recording
Record Radius
Only vehicles and peds within this radius of the player at the moment of scan are captured. Anything outside is ignored.
Stop Key
Which GTA control ID ends the recording. Defaults to BACKSPACE. Full list at docs.fivem.net/docs/game-references/controls/
lua
RecordRadius = 150.0, -- Metres — capture every vehicle/ped within this range
PathDrawDistance = 150.0, -- Max distance keyframe paths are drawn in the 3D world
RecordingStopKey = 177, -- 177 = BACKSPACE · 191 = ENTER · 23 = F · 38 = EEditor Behavior
lua
DisableTutorialByDefault = false, -- true = "Enable tutorial" checkbox unchecked by default
AutosaveInterval = 30000, -- Autosave every N ms (30 s default)
CinematicBucket = 69, -- Routing bucket used for cinematic previewINFO
The cinematic bucket isolates the director from ambient NPCs and traffic while editing — bucket lockdown is relaxed and population is disabled. If another resource on your server already owns bucket 69, change this to a free number.
Interpolation Defaults
Controls how the camera moves between keyframes. Each project remembers its own setting, but these are the defaults applied to new projects.
lua
DefaultInterpolationMode = 'eased', -- 'native' | 'eased' | 'spline'
DefaultKeyframeEasing = 'ease', -- 'cut' | 'linear' | 'ease' | 'easein' | 'easeout'| Mode | Feel |
|---|---|
native | GTA engine blending — smooth but shadows may lag behind the camera. |
eased | Linear path with per-keyframe ease curves. Most predictable, no overshoot. |
spline | Cinematic. Hermite spline through all keyframes — organic, fluid arcs. Tension + Spring tune snap vs. flow. |
Drift Smoke
Tire smoke automatically added to vehicles during cinematic playback when they drift or burnout. Also toggleable live on the director's current vehicle.
lua
DriftSmoke = {
Enabled = true, -- Master switch — false disables all smoke
PlayerThreadOn = false, -- Start the live player-vehicle smoke thread enabled?
Density = 7, -- Particles spawned per bone per cycle (lower = subtler)
Scale = 0.12, -- Particle size (lower = thinner haze)
BackOnly = true, -- true = rear wheels · false = all 4 wheels
-- Playback slip detection (not used by live thread)
PlaybackMinSpeed = 3.0, -- Below this m/s, drift case never fires
PlaybackCosLimit = 0.94, -- cos(slip angle) — raise toward 1.0 to require less slide
BurnoutRpmHi = 0.85, -- RPM > this + low fwd speed = burnout
BurnoutSpeed = 12.0, -- Burnout requires fwd speed below this (m/s)
RedlineRpm = 0.97, -- Redline RPM always counts as wheel-spin
},Weather Conflict Detection
The World & Scenery panel warns you when a weather/time-sync resource is running that could fight back against your cinematic world settings. Add or remove patterns to match your server.
lua
WeatherConflictPatterns = {
'weathersync', 'weather%-sync', 'weather_sync',
'easytime', 'easyweather',
'vsync', 'vsyncr',
'cd_easytime', 'cd_easyweather',
'wasabi_weathersync',
'qb%-weathersync', 'qbx%-weathersync',
'es_extended_weather', 'rprogress_weathersync',
},WARNING
If a weather sync resource is detected, stop it before recording or it will re-apply server weather every tick and overwrite your cinematic overrides.
Camera Shake Types
Dropdown entries shown in the keyframe Camera Shake panel. Uses GTA's built-in shake natives.
lua
ShakeTypes = {
{ id = 'HAND_SHAKE', label = 'Hand Shake' },
{ id = 'SMALL_EXPLOSION_SHAKE', label = 'Small Explosion' },
{ id = 'MEDIUM_EXPLOSION_SHAKE', label = 'Medium Explosion' },
{ id = 'LARGE_EXPLOSION_SHAKE', label = 'Large Explosion' },
{ id = 'JOLT_SHAKE', label = 'Jolt' },
{ id = 'VIBRATE_SHAKE', label = 'Vibrate' },
{ id = 'DRUNK_SHAKE', label = 'Drunk' },
{ id = 'SKY_DIVING_SHAKE', label = 'Skydiving' },
{ id = 'FAMILY5_DRUG_TRIP_SHAKE', label = 'Drug Trip' },
{ id = 'DEATH_FAIL_IN_EFFECT_SHAKE', label = 'Death Fail' },
{ id = 'ROAD_VIBRATION_SHAKE', label = 'Road Vibration' },
{ id = 'MOTORBIKE_SHAKE', label = 'Motorbike' },
},3D Text Fonts
Fonts available in the 3D Text panel dropdown. System fonts are used as-is; Google Fonts are loaded automatically in both the UI and the world billboard. Add your own entries — any valid Google Fonts stylesheet URL works.
lua
Fonts = {
-- System (no download)
{ label = 'Arial', family = 'Arial' },
{ label = 'Impact', family = 'Impact' },
-- Google Fonts
{ label = 'Bebas Neue', family = "'Bebas Neue'", url = 'https://fonts.googleapis.com/css2?family=Bebas+Neue&display=swap' },
{ label = 'Cinzel', family = "'Cinzel'", url = 'https://fonts.googleapis.com/css2?family=Cinzel:wght@400;700;900&display=swap' },
-- ...50+ more ship by default (display, elegant, sci-fi, stylised, sporty)
},Scene Editor Presets
Three lists populate dropdowns inside the Scene Editor panel. Extend them with anything valid for your server.
lua
-- Animations dropdown
PredefinedAnimations = {
{ label = 'Lean Wall', dict = 'amb@world_human_leaning@male@wall@back@hands_together@idle_a', anim = 'idle_a' },
{ label = 'Smoke', dict = 'amb@world_human_smoking@male@male_a@idle_a', anim = 'idle_a' },
{ label = 'Phone Call', dict = 'cellphone@', anim = 'cellphone_call_listen_base' },
-- ...
},
-- Give-weapon dropdown
CommonWeapons = {
{ label = 'Pistol', hash = `WEAPON_PISTOL` },
{ label = 'Assault Rifle', hash = `WEAPON_ASSAULTRIFLE` },
{ label = 'Baseball Bat', hash = `WEAPON_BAT` },
-- ...
},Color Filters
Timecycle modifiers used by the keyframe Color Filter panel. 23 ship by default — add your own by pairing any GTA timecycle modifier name with a label.
lua
ColorFilters = {
{ id = 'none', label = 'None', timecycle = '' },
{ id = 'cinematic', label = 'Cinematic', timecycle = 'cinema' },
{ id = 'sepia', label = 'Sepia', timecycle = 'int_lesters' },
{ id = 'bw', label = 'Black & White', timecycle = 'NG_blackout' },
{ id = 'nightvision', label = 'Night Vision', timecycle = 'NVG' },
{ id = 'securitycam', label = 'Security Cam', timecycle = 'scanline_cam_cheap' },
-- ...
},TIP
Timecycle modifier names are case-sensitive and must exist in GTA's timecycle data. Test new filters in-game before shipping them to your directors.
