Requirements
- A FiveM server already running cc_heistcontracts — Fleeca is a module that registers a contract against it.
- ox_lib and oxmysql.
- A working
cc_libresource. - An inventory system (defaults assume ox_inventory).
Steps
Place the resource
Copy
cc_fleecaheist into a resources directory the server loads. The repo ships under resources/[cc]/cc_fleecaheist/.Add the inventory items
- ox_inventory
- qb-inventory
Add the following items to Drop the matching item images into
ox_inventory/data/items.luaox_inventory/web/images/ (filenames must match the name of the item).The
weapon_pistol requirement is a standard ox_inventory weapon — no extra config needed if you’re on the stock weapons list.Configure gabz map-data
Changes need to be made in
cfx-gabz-mapdata/gabz_entityset_mods1.luaReplace the gabz_fleeca0X_milo_ entries with this:Ensure after cc_heistcontracts
Order matters in
server.cfg:cc_fleecaheist’s fxmanifest.lua already declares cc_heistcontracts as a dependency, so FXServer will refuse to start it before the parent is up. Wrong order = No such export RegisterContract in resource cc_heistcontracts.(Optional) Register the branch doors
- ox_doorlock
- qb-doorlock
Set
cfg.auto_insert_doors = true in shared/config.lua and the resource will insert its branch doors into the ox_doorlock table on first start (skipping any names already present). Leave it false if you manage doors manually.(Optional) Tune the police gate
By default the contract refuses to start unless Set
≥ 2 on-duty police jobs are online. Edit shared/contract.lua:count = 0 (or remove the field) to disable the gate for testing.Verify in-game
- Use a
heist_tabletto open the dashboard. - The Fleeca Bank Heist listing should drip into the marketplace within the configured interval (3 min default).
- Buy it for 2,500 VICE. The slot fills.
- Pick a branch from the active-slot dropdown and press Start. With debug off you’ll need 2 cops online; with debug on (
cfg.debug = trueinshared/config.lua) the gate is bypassed.
Customising loot
shared/rewards.lua defines the global loot table — the totals that get distributed across all lockers and all trolleys when cfg.use_global_loot_table = true (the default).
black_money rolls 1,500 and there are 3 lockers, each locker contains 500. Set use_global_loot_table = false in shared/config.lua and define loot per-unit inside each branch file under shared/locations/.
Disabling a branch
Remove (or comment out) the matching entry inshared/contract.lua’s locations array. The default six branches are:
pinkcage— Pinkcage Branchdelperro— Del Perro Branchgreatocean— Great Ocean Hwy Branchharmony— Harmony Branchhawick— Hawick Branchlegionsquare— Legion Branch