Impound Heist Dependencies

•4 min read

Impound Heist Dependencies

The heist declares seven hard dependencies in its manifest. The server will not start vs-impound-heist until all of them are running.

Support matrix

LayerSupportedHow it is chosenNotes
FrameworkQbox · QBCore · ESXAuto-detected, no config keyUsed for three things only: paying cash, charging cash at the supplier, and reading a player's character id and job (for reputation, rejoining a crew, and counting police).
Targetox_targetHard dependencyEvery "eye" interaction: the fixer, the supplier and his van, the buyer, the post-it.
Inventoryox_inventoryHard dependencyThe two usable items, item counts, the supplier's sales, and the safe's item loot.
DatabaseoxmysqlHard dependencyThe reputation table only.

Framework detection order is es_extended → qbx_core → qb-core. Qbox is checked before QBCore because qbx_core also provides qb-core, and checking QBCore first would mislabel a Qbox server. If no core is running the heist still loads, but it prints a warning that a crew cannot be paid.

There is no qb-target or qb-inventory support. ox_target and ox_inventory are hard dependencies of both the heist and the Impound Job.

Required resources

Start all of these before vs-impound-heist.

ResourcePurpose
ox_libcallbacks, notifications, shared init
oxmysqlthe vs_heist_reputation table
ox_targetthe eye on the fixer, the supplier and his van, the buyer and the post-it
ox_inventorythe signalbox and microcamera_impound items and their exports, the supplier's stock, the safe's loot
vs-npc-dialogue (free)the dialogue box for the fixer, the supplier and the buyer, and the fixer's face on the standing panel
vs-minigames (free)the frequency tuner, Impact Control, cable cut, code dial, and the full-screen code note
vs-impoundjob (the Impound Job)the yards themselves, and the Creator the heist is set up from

The heist calls these vs-minigames exports: StartFrequencyTuner (the signal box), StartImpactControl (breaking the car window), StartCableCut (hot-wiring), StartCodeDial (the safe), ShowCodeNote (reading the post-it), plus IsOpen and CloseAll. Keep vs-minigames up to date alongside the heist so every one of them is present. The difficulty of Impact Control is set in vs-minigames' own config, not here.

What the heist takes from the Impound Job

The Impound Job is a hard dependency because the heist has no yards of its own. The link between the two is deliberately small.

One read-only export. The heist calls exports['vs-impoundjob']:GetLots() and gets back, for every lot:

  • its id, name, service mode and "can be robbed" flag;
  • the points the admin placed there that other resources are allowed to see: the map blip, the boss terminal, the yard gates (one or several), the entrance gate, the handover bay, the impound point, and the safe;
  • the yard's empty parking bays, as coordinates only. A lot that does not impound cars (a Public Job depot) hands out none.

The list is re-read every 15 seconds, and again 5 seconds after vs-impoundjob restarts. The heist never writes anything back, never reads the Impound Job's database, and never moves a stored vehicle: the cars in a contract are spawned for it.

The Creator draws the heist's settings. The HEIST button in the Impound Job's Creator is a screen for the heist's own data. Each change passes the Impound Job's admin gate, then goes to the heist through its exports (GetSetup, SaveSetup, SetSetupPoint, RemoveSetupPoint, ResetSetup). Those exports refuse calls from any resource other than vs-impoundjob. See Setup in the Creator.

The gates are shared. The Impound Job holds its yard gates shut on its own schedule. When the heist releases them, it broadcasts the event the Impound Job listens for, so its gate keeper stands down until the contract ends and the player has walked away.

If vs-impoundjob stops while a contract is running, the contract ends for the whole crew ("The job is off. Something went wrong on the other end."). If it is not running at all, the heist stays dormant and the fixer says there is no work.

Not required

Startup order

ensure qbx_core            # or qb-core / es_extended
ensure ox_lib
ensure oxmysql
ensure ox_target
ensure ox_inventory
ensure vs-npc-dialogue
ensure vs-minigames
ensure vs-impoundjob
ensure vs-impound-heist

Full walkthrough on the Installation page.