Configuration
Configure camera items, placement, viewing, languages, and upload settings.
Edit config.lua, then restart 402studio_gapcam. Keep a copy of your settings before updating the resource. Values below match GapCam 1.0.1.
Items and camera types
| Setting | Default | Purpose |
|---|---|---|
Config.RequireItem | true | Requires one camera item for a saved installation |
Config.Item | gapcam_360 | Item used by the GapCam 360 entry |
Config.Cameras.gapcam.Item | Config.Item | GapCam 360 item |
Config.Cameras.actioncam.Item | gapcam_actioncam | ActionCam item |
Config.Cameras.dslr.Item | gapcam_dslr | DSLR item |
Config.Cameras.<type>.Label | Camera name | Name shown in camera menus |
Config.Cameras.<type>.FreeLook | true for GapCam, false for ActionCam and DSLR | Allows rotating the live view separately from the mounted lens |
Change the matching inventory definition when changing an item name. Set Config.RequireItem = false to install through /gapcam without consuming or returning items.
Distances, timing, and vehicles
| Setting | Default | Unit and effect |
|---|---|---|
Config.AttachDuration | 2500 | Milliseconds for installation progress |
Config.DetachDuration | 2000 | Milliseconds for removal progress |
Config.MaxDistance | 5.0 | Metres for finding and interacting with a nearby vehicle |
Config.PendingTimeout | 20 | Seconds before an unrefreshed installation reservation expires |
Config.BlockedClasses | { 8, 13, 14, 15, 16, 21 } | Excludes motorcycles, cycles, boats, helicopters, planes, and trains |
The target entries appear within 2 metres around supported rear/chassis bones. /gapcam opens the same camera menus using nearby vehicle selection.
Config.AttachBones, BoneOffset, RearGap, HeightOffset, SideOffset, and AttachRotation control the initial mount placement. Config.MountBones lists the bones eligible for saved mounting. Saving picks a supported bone and stores an offset relative to it, so mounts on supported movable panels follow that panel.
Placement
| Setting | Default | Purpose |
|---|---|---|
Config.Placement.Enabled | true | Opens the placement editor during installation |
Config.Placement.MoveStep | 0.010 | Normal movement step in metres |
Config.Placement.RotStep | 0.80 | Normal rotation step in degrees |
Config.Placement.FineMoveStep | 0.002 | Fine movement step in metres |
Config.Placement.FineRotStep | 0.15 | Fine rotation step in degrees |
Config.Placement.MaxOffset | 4.0 | Limit used when validating placement offsets |
Config.Placement.Timeout | 300000 | Placement session timeout in milliseconds |
Config.Placement.Camera.Margin | 1.5 | Extra space around vehicle bounds for the placement camera |
Config.Placement.Camera.Speed | 1.0 | Placement camera movement speed |
Config.Placement.Camera.Bounds controls the bounds display with Enabled, FadeDistance, Alpha, and Color. The placement panel's Bounds control toggles the guide during editing.
Each camera's rig defines its available joints and physical limits. Use the panel's joint controls to adjust an installed camera. The supplied model geometry and rig definitions belong together.
Live viewing
| Setting | Default | Purpose |
|---|---|---|
Config.Recording.Enabled | true | Enables the live-view toggle command |
Config.Recording.ViewKey | B | Default view toggle binding |
Config.Recording.HorizonKey | H | Default horizon lock binding |
Config.Recording.Hud | true | Shows camera HUD readouts |
Config.Recording.Overlay | true | Shows the camera viewfinder overlay |
Config.Recording.Beep | true | Plays the view sound |
Config.Recording.BeepVolume | 0.5 | View sound volume |
Config.Recording.LookSensitivity | 3.0 | Free-look sensitivity |
Config.Recording.LookMaxPitch | 89.0 | Free-look pitch limit |
Config.Recording.ZoomStep | 6.0 | Field-of-view change per zoom step |
Config.Recording.Fov, FovMin, and FovMax provide the base field-of-view settings. The camera's lens profile also selects its starting view and zoom limits. Use each camera's live view to check the result.
Players can change registered bindings under FiveM's keybind settings. Changing a default key in the resource configuration preserves a player's existing saved binding.
Capture settings
Config.Discord controls Discord snapshots. Its defaults enable snapshots with N, a 10-second cooldown, quality 0.85, bounds of 1280 × 720, and a 45,000 ms timeout.
Config.Video controls clips. Its defaults enable M, select qbox, record for 10 seconds with bounds of 1280 × 720, use a 10-second cooldown, and enable the saved CDN clip library.
Config.Video.Provider accepts discord, fivemanage, or qbox. Configure the destination before testing. Follow Snapshots and recording for full examples, ScreenCapture requirements, and upload troubleshooting.
| Setting | Default | Purpose |
|---|---|---|
Config.Cameraman.PassengerOnly | false | When enabled, blocks the vehicle's driver from taking captures |
Config.Cameraman.NotifyDriver | true | Notifies the driver about camera viewing and captures |
Languages
The package includes ar, de, en, es, fr, it, pl, pt, pt-br, ro, th, and tr.
Set the shared locale before starting GapCam:
setr 402studio:locale "ro"
ensure 402studio_gapcamThe supplied Config.Locale reads 402studio:locale, then ox:locale, then en. To choose a language only for GapCam, replace that setting with a locale name:
Config.Locale = 'pt-br'Edit the matching JSON file in locales. Keep its JSON valid, preserve the keys, and retain placeholders such as %{seconds} exactly. Missing entries fall back to English. An invalid or missing locale file falls back to en and prints a message in the console. Restart GapCam after language changes.