Troubleshooting
Fix dependency, inventory, placement, saved mount, language, and camera issues.
Resource fails to start
Keep the folder named 402studio_gapcam and check that fxmanifest.lua sits directly inside it. Start oxmysql, the configured bridge providers, and 402studio_bridge before GapCam. Enable OneSync.
For an entitlement or protected-file error, check the Cfx.re asset grant and server license key. For a missing interface or model, restore the complete customer package, including web/dist and stream.
Menu or progress fails
Use Bridge 1.2.1 or newer and check its startup status and provider errors. GapCam needs callbacks, context menus, progress, and vehicle-class services. Configure the inventory and interface providers for your framework. Follow Bridge installation.
For No such export StartCallback or RegisterCallback, update Bridge to 1.2.1 or newer and restart Bridge before GapCam.
If the target menu is unavailable, try /gapcam beside the vehicle. That command still uses the bridge's context menu provider. Check the selected target provider if commands work but target entries are missing.
Missing camera item or inventory provider
Confirm that the three inventory item names match Config.Cameras and that the inventory was restarted after registering them. With Ox inventory, keep consume = 0 and the supplied 402studio_gapcam:useItem event. Check Installation for complete definitions and icon paths.
The message Inventory provider in "402studio_bridge" is unavailable means the configured inventory service is not ready. Start it before the bridge and GapCam. For a menu-only setup, set Config.RequireItem = false.
If removal fails, make room for the returned item and check that the inventory provider supports capacity checks and item returns.
Vehicle rejected or too far away
Check Config.BlockedClasses, the configured range, and the bridge's vehicle-class service. The default blocked classes include motorcycles, cycles, boats, aircraft, and trains. Stay near the vehicle and in its routing bucket.
Saving needs a persistent vehicle ID or a non-empty plate. Check the vehicle provider and let the garage finish assigning the vehicle identity. Use a normal networked vehicle when checking an installation.
Placement fails or the mount looks wrong
Use the position fields and nudge buttons to check the mount without relying on gizmo handles. If the native gizmo is unavailable, check FiveM support and command permissions for that server setup. Compare the behavior with the numeric placement controls.
Check that the supplied stream files are present and unchanged. Adjust the mount for the vehicle model, save it, then check its joints and movable panels. A custom vehicle's bones and collision can affect where the mount sits.
Stay close while editing. A placement session times out after five minutes by default. If the vehicle disappears or an installation reservation expires, reopen the menu and start a fresh edit.
Camera missing after a garage spawn
Check that the respawned vehicle has the same bridge vehicle ID and model. If it uses plate matching, check that its plate is stable and unique for that model. Allow time for the garage to finish loading the vehicle.
Check oxmysql connectivity and permissions. The installation table is created automatically. If the console reports Camera database save failed. Local recovery copy retained. Retrying automatically., restore database writes and retain the resource recovery data while the retry completes.
Wrong language or untranslated text
Set Config.Locale or the 402studio:locale convar to an included locale filename without .json. Use pt-br for Brazilian Portuguese. Restart GapCam after the change.
Check JSON syntax, matching keys, and replacement placeholders in edited files. Keep locales/en.json present for English fallback. A missing or invalid selected locale prints a console message and falls back to English. See Languages.
Camera or input stuck
Run /gapcamunstuck to close the view and library and reset local camera controls. Reopen the vehicle menu after the reset. Check for another resource holding NUI focus if the issue repeats.
For an unexpected binding, open FiveM's keybind settings and check the GapCam actions. Saved player keybindings can override new defaults in config.lua.
Snapshot, video, or library issue
Start with the ScreenCapture setup and upload troubleshooting. Check the selected provider, required server-only key or webhook, bridge capture service, and ScreenCapture exports. Test a snapshot and clip separately.
Send a useful support report
Use Support and include:
- GapCam, Bridge, and ScreenCapture versions, plus the server artifact and game build.
- Framework and the selected inventory, vehicle, context menu, progress, and capture providers.
- The command or action that failed, the camera type, and whether it happens on a standard vehicle too.
- Steps that reproduce the issue, what you expected, and what happened.
- Relevant server console and client F8 errors with their timestamps.
- For uploads, the selected destination, whether snapshots or clips fail, the error code, and a short sample when available.
- Whether another player sees the same mount or issue, and whether it happens after a garage spawn or restart.
Remove webhook URLs, API keys, database credentials, player identifiers, and temporary upload URLs from logs or screenshots before sharing them.