Docs / Scripts & MLOs / Chop Shop

Chop Shop

Chop Shop is a full vehicle theft and dismantling economy, not just a steal-and-sell script. It's built around several linked systems: theft, chopping, a criminal reputation track, police heat, contracts, NPC buyers, and optional player-run businesses.

Dependencies

  • ox_lib, oxmysql
  • qbx_lockpick (hard dependency, used for the vehicle-entry step of a theft)
  • One of: qbx_core, qb-core, es_extended: or run without a framework bridge on a custom setup

Framework & bridge support

Chop Shop ships its own bridge layer rather than hard-wiring to one stack, so the same download works across setups:

  • Framework: QBox, QBCore, ESX, or a custom bridge
  • Inventory: ox_inventory, qb-inventory, or custom
  • Targeting: ox_target, qb-target, or custom
  • Notifications: ox_lib, okokNotify, mythic_notify, or custom
  • Progress bars: ox_lib or qb progress bar

Set which one you're on in config/main.lua: everything downstream reads from that single setting.

What's in the config

Config is split across several files under config/, one per subsystem, instead of one giant file:

  • main.lua: framework/bridge selection and global toggles
  • shops.lua: chop shop yard locations
  • tools.lua: tools required to steal and dismantle vehicles
  • parts.lua: sellable parts and their payouts per vehicle class
  • contracts.lua: timed theft contracts and their rewards
  • reputation.lua: the criminal reputation track and its unlocks
  • heat.lua: police attention generated by theft/chop activity
  • economy.lua: payout scaling and money hooks
  • npc.lua: NPC part buyers
  • police.lua: what, if anything, gets sent to dispatch/MDT
  • theft.lua: the vehicle theft step itself
  • chop.lua: the dismantling stages at the yard
  • hoist.lua: towing stolen vehicles into the yard
  • events.lua: server-wide event/bonus windows

Installation notes

Beyond the general Installation steps: set your framework/inventory/target/notify choice in config/main.lua before your first restart. Switching it later doesn't retroactively convert saved reputation/business data between formats. Yard locations in shops.lua default to placeholder coordinates; update them to match your map before going live.

Common issues

  • Theft prompt doesn't appear: almost always a target-system mismatch. Confirm the value in config/main.lua matches whichever of ox_target/qb-target is actually running.
  • Reputation not saving: check oxmysql's connection string and that the install SQL ran cleanly. Reputation and business ownership both persist to the database.
  • Heat never triggers police: heat and dispatch are two separate settings. Confirm both heat.lua and police.lua are configured, not just one.