Full Config — Props & Camera
The complete configs/client/props.lua for Smash Down: Los Santos — cabinet models, camera, animation, and interaction.
TIP
See the setup guide for explanations and examples. Download this file as a reference, and merge changes with the config shipped in your installed version.
lua
-- Client-only presentation of the cabinets: which prop is spawned, the target option, the map
-- blip, what the player's ped does while playing, and the watchdog that closes the arcade.
return {
-- Our SMASHDOWN cabinet ships in stream/. Keep the stock models as fallbacks.
-- Groups can override this order with their own `models` list.
Models = { 'sd_brawl_arcade', 'ch_prop_arcade_street_01a', 'prop_arcade_01' },
-- Degrees added to every seat's heading when the prop spawns. If your cabinets face the wall
-- instead of the room, set 180.0 rather than editing every seat.
HeadingOffset = 0.0,
-- Metres from a group at which its props spawn (and despawn again). Props are local, frozen,
-- non-networked objects, so this is purely a streaming/perf knob.
SpawnDistance = 60.0,
-- The "Play" option on each cabinet (ox_target / qb-target / qtarget via the bridge).
Target = {
Icon = 'fa-solid fa-gamepad', -- Font Awesome icon class
Distance = 1.8, -- metres the option is reachable from (ox_target; qb-target uses its own default)
},
-- Default blip for groups with `blip = true`. Sprite/colour ids: docs.fivem.net/docs/game-references/blips
Blip = {
sprite = 740, -- 740 = arcade joystick
color = 27, -- 27 = purple
scale = 0.75, -- icon size
shortRange = true, -- only on the minimap when nearby
label = nil, -- nil = the group's label
},
-- The pose while playing. The ped turns to face the cabinet and loops this clip. If the
-- dictionary is missing from the game files the pose is skipped - the arcade still opens.
Anim = {
Enabled = true,
Dict = 'anim_casino_a@amb@casino@games@arcadecabinet@maleleft',
Clip = 'playidle_v1',
Flag = 1, -- 1 = loop the full body (controls are with the UI while playing anyway)
},
-- The sit-down: pressing Play glides a camera onto the cabinet's screen, the screen powers on
-- (CRT line -> picture) and boots (a short system check that also warms the arcade up, so the
-- first open doesn't stutter), then the title comes up. Leaving powers the screen off and eases
-- the camera back. Enabled = false: the arcade appears and disappears at once, as before.
Intro = {
Enabled = true,
-- The close-up, in the cabinet's own space (metres; its screen faces the prop's front).
-- Tune these if your cabinet model differs from the SMASHDOWN one in stream/.
Camera = {
Distance = 0.92, -- camera distance in front of the cabinet's origin
Height = 1.62, -- camera height above the cabinet's base
LookHeight = 1.495, -- height of the screen's centre (what the camera looks at)
ScreenForward = 0.106, -- how far in front of the origin the screen's face is
Fov = 40.0, -- vertical field of view of the close-up (degrees)
InMs = 1100, -- glide from the gameplay camera to the close-up (ease in-out)
OutMs = 800, -- ease back after leaving through the arcade's EXIT / BACK
ForcedOutMs = 300, -- ease back when the arcade is closed on you (died, vehicle, walked off)
},
HideHud = true, -- hide the radar and HUD while the camera is on the cabinet
HidePed = true, -- hide your own ped (only for you) when the camera would be inside it or behind it
-- The screen's boot after the power-on:
-- 'full' = the system check the first time after a (re)start, a short one after that
-- 'short' = always the short one (logo + 2 lines, ~0.5 s)
-- 'off' = straight from the power-on to the title screen
Boot = 'full',
},
-- Closes the arcade (forfeiting a running match) when the player dies, gets in a vehicle, or
-- ends up further than config.Cabinets.SeatRange from their cabinet. The server runs its own
-- range sweep too, so disabling this only makes the client slower to notice.
Watchdog = {
IntervalMs = 500, -- how often the checks run while the arcade is open
},
-- Milliseconds the client waits for the server to answer any arcade request before giving
-- up (the UI then shows its generic error instead of hanging).
RequestTimeoutMs = 10000,
}