L3THDocs

Scripts

Fleeca Heist

A multi-stage Fleeca robbery with three real ways into the vault. Hack it, drill it, or blow it.

Requires
ox_lib and oxmysql
Frameworks
ox, qb, qbx & esx, auto-detected
Target & inventory
ox or qb, auto-detected
Dispatch
ps, cd, tk, fd or custom
Doorlock
ox_doorlock or qb-doorlock
Latest version 1.0.1 View in store
Good to know

Works with any bank interior. The vanilla GTA V banks or any Fleeca MLO. It comes set up for the Helnius Fleeca Bank MLO, so with that interior it works straight away. With another interior, set the bank locations to match it. See Install the bank interior.

#Install

  1. #Install dependencies

    Install (or update) ox_lib, and start it before this script in your server.cfg.

    github.com/CommunityOx/ox_lib/releases

    Note

    oxmysql is not required. It's only used by the optional door importer (see Add the doors), and any MySQL resource works for that.

  2. #Install the drill prop

    The vault drill uses the k4mb1 thermal drill prop (k4mb1_prop_thermaldrill). It's free, but only available from k4mb1's Discord. Grab it there and start it before this script.

    Don't have it, or want a different drill? Change drill_model in shared/config.lua to any prop you already have.

    The bomb, thermite, keypad and locker props are all base game or Cayo Perico assets, so there's nothing else to install.

  3. #Check your inventory, target, notify, doorlock and dispatch

    Everything besides ox_lib goes through the bridge folder, and the script picks the resource you run by itself.

    Each bridge/<kind>/ folder has one file per supported resource. Using something that isn't listed? Copy a file in that folder and wire up the same functions for your resource. Nothing else needs to change.

    Works out of the box with ox_inventory and qb-inventory.

    lua
    -- Server side
    return exports.ox_inventory:AddItem(src, item, amount, metadata)
    return exports.ox_inventory:RemoveItem(src, item, amount, metadata) and true or false
    return exports.ox_inventory:GetItemCount(src, item, metadata)
  4. #Install the bank interior

    Every bank location and the interior model names (int_helnius_fleeca_...) are set up for the Helnius Fleeca Bank MLO. Install it before you start the heist and everything lines up.

    helnius.tebex.io/package/fleeca-banks

    Included banks: Hawick, Legion Square, Vespucci, Del Perro, Great Ocean, Harmony and Pink Cage.

  5. #Add the doors

    Each bank locks its front doors and inner cage through your doorlock resource. The door setup comes with the script, so there's no separate SQL file.

    Set auto_insert_doors = true in shared/config.lua. On the next start, the script adds every door to the ox_doorlock table, skipping names that already exist.

    This needs a MySQL resource running (oxmysql, or another one). Once the doors are in, set auto_insert_doors back to false.

  6. #Add the items

    Each stage of the heist needs an item. Every interaction sets its own required_item in shared/locations/<bank>.lua, so you can use items your server already has, or a different one per bank.

    The banks come set up with these:

    StageItem
    Hack the power box, door keypads and vault panelphone (phone_black at Vespucci)
    Drill the vault doorstationary_drill
    Or blow the vault door (used up)bomb
    Burn through the inner cage door (used up)thermite
    Tip

    Want a proper hacking item instead of a phone? Add hacking_device below and change required_item on each power_box, doors, vault_panel and keypad entry to 'hacking_device'.

    Add any of these your server doesn't have yet. Images for them are on items.rainmad.com/, or use your own.

    Copy these into ox_inventory/data/items.lua:

    lua
    ['hacking_device'] = {
      label = 'Hacking Device',
      weight = 1000,
      stack = false,
      close = true,
      description = 'A handheld device for hacking electronics.',
      client = { image = 'hacking_device.png' },
    },
    ['stationary_drill'] = {
      label = 'Drill',
      weight = 4000,
      stack = false,
      close = true,
      description = 'A heavy-duty drill for cracking vaults.',
      client = { image = 'drill.png' },
    },
    ['bomb'] = {
      label = 'Bomb',
      weight = 3000,
      stack = false,
      close = true,
      description = 'Shaped charge for breaching a vault door.',
      client = { image = 'bomb.png' },
    },
    ['thermite'] = {
      label = 'Thermite',
      weight = 1500,
      stack = true,
      close = true,
      description = 'A thermal charge that burns through metal.',
      client = { image = 'thermite.png' },
    },

    The rewards in shared/rewards.lua (black_money and gold_bar) should already exist on your server. Change the names in that file if yours are different.

  7. #Start the script

    • Put the l3th-fleecaheist folder in your resources folder
    • Add ensure l3th-fleecaheist to your server.cfg, after its dependencies
    • Restart the server

#Configuration

shared/config.lua has the main settings: prop models, vault timers, blast damage, how far the drill and bomb can be heard, code attempts, and the lockdown and cooldown times.

The dispatch function in that file shapes the police alert. Change the jobs, title, code and blip to match your server.

Each bank is one file in shared/locations/, with its coordinates, doors, vault panel, drill and bomb spots, note spawn, and the lockers and trolleys to loot.

#Need help?

Most issues come from a missing dependency or the wrong start order in server.cfg, so run through the steps once more first. Still stuck? See Common problems or open a ticket on Discord.