> 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.md).

# LS Customs

A persistent Los Santos Customs vehicle upgrade resource. Everything a player buys, including mods, paint, custom tuning, nitro, security upgrades and placed objects, is stored server-side and reapplied automatically.

## Requirements

* `oxmysql`
* Your framework's core resource, if you use one. See [Frameworks](/nodemods-docs/ls-customs/frameworks.md).

LS Customs expects your FiveM server, your database and `oxmysql` to already be working before you install it. If any of those are new to you, follow the official documentation first:

* [Setting up a FiveM server](https://docs.fivem.net/docs/server-manual/setting-up-a-server/), which covers `server.cfg` and how resources are started
* [oxmysql](https://overextended.dev/docs/oxmysql) for the database connection
* Your framework's own documentation, linked from [Frameworks](/nodemods-docs/ls-customs/frameworks.md#official-documentation)

## Install

1. Put `nm-ls-customs` in your resources folder.
2. Start `oxmysql` and your framework core before `nm-ls-customs` in `server.cfg`:

   ```cfg
   ensure oxmysql
   ensure qb-core # replace with your framework
   ensure nm-ls-customs
   ```

   Framework cores are `qb-core`, `qbx_core`, `es_extended`, `ox_core` or `vrp`.
3. Set `Config.Framework` in `config/config.lua` to your framework. See [Frameworks](/nodemods-docs/ls-customs/frameworks.md) for the exact value.
4. Grant the admin permission so you can open the admin panel. This is `nm-ls-customs.admin` on most frameworks and `admin` on QBCore. See [Frameworks](/nodemods-docs/ls-customs/frameworks.md#permissions).
5. Start the server. Tables are created automatically while `Config.Database.AutoCreateTables` is `true`. Otherwise import `nm_ls_customs.sql` yourself.
6. Adjust prices, parts and features in the `config/` folder. See [Configuration](/nodemods-docs/ls-customs/configuration.md).

## Verify your installation

1. `nm-ls-customs` reaches started in the console with no setup error above it.
2. The `nm_ls_*` tables exist in your database.
3. `/lscadmin` opens the admin panel for a player holding the admin permission.
4. Drive into one of the configured LS Customs locations and the menu opens.
5. Buy one cheap modification and the payment is taken.
6. Leave and re-enter the vehicle, then restart the resource. The modification is still applied.

If a step fails, see [Troubleshooting](/nodemods-docs/ls-customs/troubleshooting.md).

## Database updates

Back up the LS Customs tables before updating the resource, and follow any migration SQL or instructions supplied with that release.

Existing tables are validated at startup and a mismatch fails the resource with a message naming the table and column. `Config.Database.AutoCreateTables` only creates missing tables. It never alters one that already exists. If the release supplied no migration instructions, stop before altering or dropping anything and check that release's `nm_ls_customs.sql` for the expected structure.

## Locations

Eight locations ship by default. Use `/lscadmin` in game to create, move and edit them. See [LSC Admin & Placement](/nodemods-docs/ls-customs/admin-placement.md).

## Next

* [Configuration](/nodemods-docs/ls-customs/configuration.md) for every owner-editable setting
* [Frameworks](/nodemods-docs/ls-customs/frameworks.md) for framework values, permissions, payments and how vehicles are matched to owners
* [LSC Admin & Placement](/nodemods-docs/ls-customs/admin-placement.md) for the in-game location and placement-region editors
* [Integrations & Exports](/nodemods-docs/ls-customs/integrations.md) for connecting garages, HUDs, admin tools and other resources to LS Customs, plus installing custom exhaust sounds
* [Troubleshooting](/nodemods-docs/ls-customs/troubleshooting.md)
