lation chop shop
Requirements, install steps, items and first start for lation chop shop, a FiveM chop shop with timed contracts, hands-on part removal, co-op and an in-game admin panel.
lation chop shop (lation_chopshop) gives players timed contracts from a broker to find a car of a given class, jack it up and take it apart for parts. Wheels, doors and five engine bay parts each come off through their own minigame, other players can help on the same car, and the parts trade in at the broker. Every setting lives in an in-game admin panel backed by your database, so there is no Lua config to edit.
Works on Qbox, QBCore and ESX.
Requirements
| Resource | Needed | What for |
|---|---|---|
oxmysql | Required | Players, contracts and every setting |
ox_lib | Required | Callbacks, and the default menus, notifications, progress bars and dialogs |
qbx_core, qb-core or es_extended | Required | Players, jobs, money and usable items |
lation_interact, ox_target or qb-target | Required | Every prompt: the broker, the cars and their parts. lation interact is picked first when it runs. |
| An inventory | Required on Qbox and ESX | ox_inventory, qb-inventory, qs-inventory, origen_inventory, codem-inventory, core_inventory, tgiann-inventory or jaksam_inventory. On QBCore, qb-core's own item functions work too. |
lation_ui | Optional | Notifications, progress bars, menus and dialogs in the lation ui look. Each is ox_lib until you pick it. While it runs, the admin panel, the contract and the minigames follow its theme. |
okokNotify or wasabi_notify | Optional | Other notification systems |
fmsdk | Optional | Logging to fivemanage |
oxmysql and ox_lib are dependencies in fxmanifest.lua. The framework, inventory and interaction system are detected when it starts.
The shops and the item notices show each item's label from your inventory. With core_inventory, the labels come from its item list (its getItemsList export). An item your inventory doesn't know shows by its spawn name.
Install
Follow the install guide, then:
Keep the folder name lation_chopshop. Its events, the admin permission and the admin panel all use that name, and a renamed folder prints an error on start and again every 15 minutes.
Add the ten items and their images to your inventory. The files ship in install/, and the image names match the item names.
Paste the contents of install/items/ox_inventory.txt into ox_inventory/data/items.lua, then copy every file in install/images/ into ox_inventory/web/images/. This is the one to use on Qbox.
Paste the contents of install/items/qb-inventory.txt into qb-core/shared/items.lua, then copy every file in install/images/ into qb-inventory/html/images/.
Paste the contents of install/items/qs-inventory.txt into the item list of qs-inventory, then copy every file in install/images/ into its image folder.
Add the same ten items in your inventory's own format, with the labels and weights in items below, and copy every file in install/images/ into its image folder. The three usable items are made usable through your framework, so nothing else is needed for them.
Ensure it after your framework, your inventory and your interaction system, which it looks for when it loads. If you run lation ui, it goes first, above ox_lib, because the lation ox_lib fork looks for it when ox_lib starts.
ensure lation_ui # optional
ensure oxmysql
ensure ox_lib
ensure qbx_core # or qb-core / es_extended
ensure ox_target # or lation_interact / qb-target
ensure ox_inventory # your inventory
ensure lation_chopshopGive admins the admin panel. Add this to server.cfg:
add_ace group.admin lation_chopshop.admin allowTo check something other than ACE, edit IsAdmin in lua/server/utils/perms.lua. See opening the panel.
Restart the server.
There is no SQL to import. On every start lation chop shop creates its five tables when they are missing and writes the default settings for any section that has none yet:
| Table | Holds |
|---|---|
lation_chopshop | Each player's level, XP, vehicles chopped and parts received |
lation_chopshop_config | Every setting, one row per section |
lation_chopshop_contracts | Running contracts and completion cooldowns, so they survive a relog and a restart |
lation_chopshop_history | Every part taken, car stripped and contract bonus paid, for the admin panel's overview. Rows older than 60 days are deleted. |
lation_chopshop_payouts | What is owed to players who couldn't take it at the time: a bonus earned while they were away, car jacks from stands someone else took off, an item that didn't fit |
Settings added in a later release are filled in with their defaults on start, and nothing you already set is touched.
Upgrading from an earlier version 3
Your settings, players and contracts carry over, and no table needs dropping. Options a release adds come in at their defaults.
If you edited any of the open files, compare them with the new ones before you start the server. In particular, lua/server/utils/hooks.lua must define Hooks.CanChopVehicle: the server asks it every time a chop starts, and without it Start chopping does nothing.
Upgrading from version 2
A server that kept players in lation_chopshopv2 has that table renamed to lation_chopshop on the first start, so levels and stats carry over. The old Lua config isn't read, so set your options again in the admin panel.
What ships with it
- The admin panel and the in-game screens are built already, in
web/build. You don't need Node or a build step. audio/holds the impact drill sound used while drilling lug nuts and hinge bolts. It streams with the resource, so there is nothing to install, and you can turn it off under Config > Minigames > Impact drill audio.locales/en.jsonholds every string. See language.
Items
| Item | Label | Weight | Usable |
|---|---|---|---|
ls_impact_drill | Impact Drill | 250 | Yes, takes out or puts away the drill |
ls_car_jack | Car Jack | 300 | Yes, puts down one jack stand |
ls_chop_contract | Chop Contract | 50 | Yes, opens the contract |
ls_salvaged_wheel | Salvaged Wheel | 120 | No |
ls_salvaged_door | Salvaged Door | 180 | No |
ls_salvaged_battery | Salvaged Battery | 200 | No |
ls_salvaged_radiator | Salvaged Radiator | 180 | No |
ls_salvaged_alternator | Salvaged Alternator | 150 | No |
ls_salvaged_ecu | Salvaged ECU | 50 | No |
ls_salvaged_turbo | Salvaged Turbocharger | 220 | No |
The names must match, or be changed under Config > Items to match yours.
First start
On the first start the tables are created and every section is written from its defaults.
A broker stands at -169.0171, -1352.3877, 29.9817 with a Chop Shop blip. Players talk to them to take contracts and use the shops.
Join as an admin and run /chopadmin. Move the broker, set up the contract tiers, and adjust prices and payouts. See the admin panel.
Take a contract at the broker, buy a car jack and an impact drill at the Tool Shop, and follow contracts and chopping.
Most changes reach every player as soon as they save. The two options that wait for a restart are on the admin panel page.
When txAdmin warns of a scheduled restart within 60 seconds, open minigames close on their own, so nobody is left with a locked camera. Player data is saved when a player leaves, every 5 minutes while it has changes, when the resource stops and when txAdmin shuts the server down.
Troubleshooting
The console says to rename the folder
The resource folder isn't named lation_chopshop. Rename it back and restart; the message repeats every 15 minutes until you do.
The F8 console says No supported interaction system was detected
None of lation_interact, ox_target or qb-target was running when lation chop shop started. Ensure one of them before lation_chopshop.
The F8 console says Delaying player initialization until runtime config sync is ready
The client didn't get the settings within 15 seconds of loading in. Look in the server console for database errors from lation_chopshop.
The console says Refused part reward
The server didn't credit a part, and the line gives the reason, for example too far from vehicle, outside chop location or cannot carry part. The part stays on the car and the player is told.
Start chopping does nothing after an update
The server console shows a script error about CanChopVehicle: an edited lua/server/utils/hooks.lua from an older version lacks that hook, which the server asks every time a chop starts. Copy the function from the new file into yours. See upgrading.
Shop items show their spawn names
Your inventory didn't give lation chop shop the item's label. Check that the item exists in your inventory under that exact name. On ESX with no listed inventory there is no list to read, and F8 prints an error for each lookup. With an older core_inventory that has no getItemsList export, F8 says so once; update core_inventory.
The console says Unable to fetch version information from API
The update check couldn't reach the version server. It changes nothing in game. Turn off Config > Setup > Version check to skip it.
Still stuck? Ask in our Discord: the people who write the scripts answer.
Last updated