> For the complete documentation index, see [llms.txt](https://nodemods.gitbook.io/nodemods-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://nodemods.gitbook.io/nodemods-docs/ls-customs/troubleshooting.md).

# Troubleshooting

## The resource does not start

Read the setup error in the server console. It names the exact problem.

* `Config.Framework` does not match the framework running on your server. See [Frameworks](/nodemods-docs/ls-customs/frameworks.md).
* The framework resource (`qb-core`, `qbx_core`, `es_extended`, `ox_core`, `vrp`) or `oxmysql` is not started before `nm-ls-customs`.
* A config file names a group, part key or system that does not exist. The error names the field.

## Purchases fail

Check, in order:

1. `Config.Payment.Account` is an account your framework supports. ox\_core only has `bank`; Standalone has none until you implement payments. See [Frameworks](/nodemods-docs/ls-customs/frameworks.md).
2. The part's system is enabled in `Config.Parts`, and its feature toggle in `Config.Features` if it has one.
3. On Standalone, vehicle ownership and payments are unimplemented adapter stubs and always fail with `adapter_not_implemented`.

## Advanced Systems are locked

The player does not hold the permission the entry requires, either its own `permission` or `Config.AdvancedSystems.defaultPermission`.

Grant that name through your framework's permission system, not with a generic admin flag. See [Frameworks](/nodemods-docs/ls-customs/frameworks.md#permissions).

On QBCore the name is resolved by QBCore's own permission levels, so the shipped default `nm-ls-customs.advanced-systems` never matches. Change `defaultPermission` to a QBCore level such as `admin`.

Also confirm `Config.AdvancedSystems.enabled` is `true`.

## Mods do not persist after a restart

* `oxmysql` must be started before `nm-ls-customs`.
* On a fresh database, leave `Config.Database.AutoCreateTables` on or import `nm_ls_customs.sql`.

## Startup reports a database schema mismatch

Existing tables are checked at startup, and a missing table, missing column or changed column type stops the resource with a message naming both. `Config.Database.AutoCreateTables` only creates tables that are absent. It never alters a table that already exists, so it cannot resolve this.

1. Back up the LS Customs tables before doing anything else.
2. Apply any migration SQL or upgrade instructions supplied with the release you are moving to.
3. If the release supplied none, stop before altering or dropping anything. Compare the reported table against that release's `nm_ls_customs.sql` for the expected structure, and ask NodeMods for the migration path rather than recreating a table that holds live player data.

## Chameleon paint or nitro flames are broken

Some resources such as `qb-mechanicjob` ship their own copies of `vehicle_paint_ramps.ytd` (chameleon paint) and in rare cases `veh_xs_vehicle_mods_*.ypt` (nitro flame particles). If both resources register the same GTA stream names, whichever starts last wins.

Fix: delete those files from the opposing resource such as `qb-mechanicjob`'s `stream/` folder, or remove the resource entirely, so only the copies in `nm-ls-customs/stream/` load.

## Locator, Dashcam or Biometric Lock fails

These require all of the following:

* A framework that proves persistent vehicle ownership. Every supported framework does except Standalone. See [Frameworks](/nodemods-docs/ls-customs/frameworks.md).
* The vehicle is registered to the player in that framework, not just currently driven by them.
* The upgrade is installed on that vehicle.
* The feature is enabled in `Config.Features.Security`.
* The player is the persistent owner. Biometric authorisation lets someone drive the vehicle; it does not grant remote access.

For exports, the `vehicleReference` must be the value your framework expects. See [Integrations & Exports](/nodemods-docs/ls-customs/integrations.md#framework-vehicle-references).

Only the live actions need the vehicle itself. `LocateVehicle` and `ViewDashcam` fail with `vehicle_not_available` while the vehicle is stored or otherwise not spawned. `GetVehicleSecurity` still works and reports `vehicleAvailable = false`, and `StopDashcam` takes no vehicle reference at all.

## A custom engine sound does not play

* The sound ID in `Config.Features.CustomExhaustSounds` must be the ID the pack registers, not its file name.
* If the pack is bundled here, its `AUDIO_GAMEDATA`, `AUDIO_SOUNDDATA` and `AUDIO_WAVEPACK` entries must be registered in `fxmanifest.lua`.
* If another resource loads the pack, that resource must be started and must not have its audio data files duplicated here.

See [Custom engine and exhaust sounds](/nodemods-docs/ls-customs/integrations.md#custom-engine-and-exhaust-sounds).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://nodemods.gitbook.io/nodemods-docs/ls-customs/troubleshooting.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
