The first step to configure the script is selecting your framework. The script is delivered with an automatic framework detection feature, but you can still change it to yours.
cfg.framework ='SELECTED FRAMEWORK HERE'
New ESX relies on the export to bring in the framework object, on the other hand old esx triggers the event to bring in the object.
Framework
Config
Auto Detect
cfg.framework = 'auto-detect'
New ESX
cfg.framework = 'new_esx'
Old ESX
cfg.framework = 'old_esx'
QBCore
cfg.framework = 'qbcore'
Qbox
cfg.framework = 'qbox'
if you have renamed your core you will most likely have to make some adjustments at the top of the open.lua files in the client and server folder.
2. Interaction Method
The second step is selecting the way of interacting with the script.
cfg.interaction == 'SELECTED INTERACTION HERE'
HelpNotification is the interaction used in GTA:O and is built by default. Picture:
You can also change the way of interacting custom to your city by modifying the InteractionLoop function in client/open.lua.
3. General Settings
These are general settings that you see in most heist scripts. The comment next to it should explain it all.
cfg.police_required =0-- Minimum amount of police online required to start the heist.cfg.bag_required =false-- Require a bag to robcfg.available_bags = {45,46} -- Allowed bags (Only necessary if cfg.bag_required is true)cfg.police_jobs = { 'police', } -- Police jobs that get dispatch notifications and can optionally close the bankcfg.police_close_command = { enabled =true, -- Enable police officers to close a bank after robbery. (After cooldown it will reset and close anyways) command ='closefleeca' -- Command used to close a bank after robbery.}
4. Cooldown
cfg.cooldown = { bank_cooldown =30, -- Cooldown between robberies on the same bank in minutes global_cooldown =15-- Cooldown on all robbies in minutes, causes cooldown on all zevo scripts or scripts that use the event.}
5. Dispatch
When there is activity detected at the bank the police gets notified via a dispatch message. We have a built in standalone message or you can select an external dispatch script.
cfg.dispatch = { dispatch_script ='standalone', -- Choose between core_dispatch, qs-dispatch, outlawalert, cd_dispatch, ps-dispatch or standalone dispatch_code ='10-90', -- Dispatch code added to the message. message ='Fleeca Bank Robbery', -- Dispatch message. color =2, -- Blip Color, more info: https://docs.fivem.net/docs/game-references/blips/#blip-colors sprite =500, -- Blip Sprite, more info: https://docs.fivem.net/docs/game-references/blips/#blips scale =1.0, -- Blip Scale time =300, -- Blip Seconds Visible in seconds. delay =5, -- Dispatch delay after first interaction in seconds.}
You can customize the dispatch message in client/open.lua.
6. Discord Logs
Our logging system makes use of discord webhooks to send information about certain events. For more information about discord webhooks and how to set them up, check this article.
cfg.webhooks = { ['give_item'] = { webhook ='', -- Used when someone is rewarded an item username ='Fleeca Bank Robbery', avatar ='https://cdn.discordapp.com/icons/887069596794912779/00386af73da5a9b8ac978cfec42d1c79.webp?size=128', }, ['start_heist'] = { webhook ='', -- Used when someone has started a heist username ='Fleeca Bank Robbery', avatar ='https://cdn.discordapp.com/icons/887069596794912779/00386af73da5a9b8ac978cfec42d1c79.webp?size=128', }, ['reset_bank'] = { webhook ='', -- Used a bank has finished cooldown and reset username ='Fleeca Bank Robbery', avatar ='https://cdn.discordapp.com/icons/887069596794912779/00386af73da5a9b8ac978cfec42d1c79.webp?size=128', }, ['ban_player'] = { webhook ='', -- Used when a player is caught executing an event username ='Fleeca Bank Robbery', avatar ='https://cdn.discordapp.com/icons/887069596794912779/00386af73da5a9b8ac978cfec42d1c79.webp?size=128', }}
7. Robbery Interactions
We use a similar structure in all our heists to make it easy to configure and customize to your liking. You can change the minigame, evidence chance, required items and much more for every single interaction. You can even change it per bank so every bank has different rewards, minigames, etc.
7.1 Minigames
You can choose which minigames you would like your players to get. Check out the minigames section to see all the available minigames and how to install them. You can also add them yourself in client/open.lua or request them in a ticket.
minigame = { name ='none', data = {},},
7.2 Doors
The doors array shows which indices of cfg.doors are opened upon completion of the interaction.
doors = {1,2,3},
7.3 Locked Until
The locked until array shows which indices of cfg.interactables need to be completed before the interaction becomes available.
locked_until = {1,2,3},
7.4 Evidence
You can configure the chance evidence is left behind on every interaction.
evidence_chance =100,
By default only QBCore and QBox have an evidence system. You can add your custom evidence system in client/open.lua
7.5 Interaction/Target
interaction_text ='[E] TEXT', -- Interaction text if using qb-drawtext or HelpInteractioninteraction_distance =1.5, -- Minimum distance to interactinteraction_key =38, -- Interaction button check: https://docs.fivem.net/docs/game-references/controls/target = { pos =vec3(0.0, 0.0, 0.0), -- don't touch icon ='fas fa-box-dollar', -- interaction icon, check fontawesome for alternatives: https://fontawesome.com/ targeticon =nil, -- Interaction/Target icon, only available for qb-target, leave nil for default eye text ='TEXT', -- Interaction text if using qtarget or qb-target lenght =0.7, -- don't touch width =3.0, -- don't touch height =1.0, -- don't touch}
7.6 Required Items
You can configure which items are required per interaction. You can require multiple items or even no items at all by changing item = nil or removing the whole required_items array.
The configuration of rewards can be different per interaction type, we will go over the ones used in this script. The following items/rewards will be a bit different.
'money' will be given as cash instead of as item
'black_money' will be given as black money instead of as item on ESX
'markedbills' will be given as item with the worth as metadata on QBCore, you can configure the worth in config.
if you wish to modify any of this, you can in server/open.lua
7.7.1 Trolly
A trolly can spawn as 3 different types: gold, diamond and cash. These are represented by the grab_type, they can not be renamed or changed. You can delete the rows of types you don't want spawned. For example, if you don't want the diamond type to spawn, you can just delete that line.
The probability of spawning a particular type is based on the total chance in the array, in this case 99. You can adjust the total probability in the array. They don't have to add up to 100, you can use 1 and 2, for example, giving double the chance to a particular type. it functions as a weighted luck system.
7.7.2 Pile
A pile can spawn as 2 different types: gold and cash. These are represented by the grab_type, they can not be renamed or changed. The rest works the same as the trolly types.
A display can spawn as 5 different types. These are represented by the grab_type, they can not be renamed or changed. The rest works the same as the trolly types.