[ZaT-SCRIPTS] [QBCore / ESX / QBOX] — Advanced Fleeca Bank Heist for FiveM
Take your server to the next level with one of the most immersive and dynamic bank robbery systems in the FiveM scene.
This isn’t just a heist — it’s an experience. With AI-driven voice prompts, synchronized team-based minigames, and fully integrated DUI interfaces, this script brings cinematic depth to your gameplay.
Multi-Stage Progression: From electrical bypasses and security terminals to vault AI interactions and custom memory games — every step is built for immersion.
AI Voice System: Real-time AI voice questions from the vault’s control panel, promoting team communication and coordination.
Fully Synced Minigames: Memory challenges and security systems synced for all nearby players — everyone can see and help.
Customizable:
- Swap out minigames (except PC terminal) to your favorites.
- Configure questions, answers, and AI voice lines.
- Choose your targeting system: qb-target, ox_target, or interact.
Map Compatibility: Out-of-the-box support for 3 MLOs:
- Default GTA V Fleeca
- FM Fleeca V2
- K4MB Fleeca
Add your own maps easily using the flexible config system.
Code is accessible | 80% |
Subscription-based | No |
Lines (approximately) | 10k+ |
Requirements | qb-core/ es-extended and Xsound |
Support | Yes |
- Config.lua :
Config = {}
Config.Framework = "qb" -- "qb"
Config.Inventory = "ox" -- "ps", "qb", "ox", "qs", "tgiann"
Config.FrameworkPseudo = 'qb-core'
Config.Target = "interact" -- 'qb' or 'ox' for qb-target and ox-target
Config.Doorlock = 'qb' -- ox
Config.Timeout = 45 -- 45 minutes timeout for fleecas
Config.MinimumPolice = 0
Config.Alarm = {
started = false,
dispatch = 'qb-core', -- 'cd_dispatch' 'ps-dispatch' (client/framework.lua you can add any alert you want to..)
}
Config.Games = { -- PC Minigames settings
memory = 3, -- total rounds of memory minigame
shapes = 2, -- total rounds of shape minigame
}
Config.Rewards = {
Lockers = {
{ name = 'rollcash', min = 5, max = 15, info = {}, chance = 70 },
{ name = 'goldbar', min = 1, max = 3, info = {}, chance = 30 },
},
Trolleys = {
{ name = 'rollcash', min = 5, max = 15, info = {}, chance = 100 },
}
}
Config.Fleeca = {
{
id = 1,
name = "Fleeca Bank",
isOpened = false,
electric = {
coords = vector4(153.69, -1043.13, 28.3, 73.2),
item = 'screwdriverset', -- nil : in case you don't want to use items
chance = 25, -- 25% chance for the item to get removed on fail
available = true,
id = nil, -- no door to open (gta 5 map) (put the door id to open on elecric box hack door here check fm_config as example)
},
door = {
coords = vector3(145.42, -1041.81, 29.64),
c_head = 249.65,
o_head = -180.0,
prop = "v_ilev_gb_teldr",
},
pcs = {
prop = "prop_monitor_01b",
coords = vector4(150.33, -1041.78, 29.58, 331.14), -- new pc model coords
available = true,
},
vault = {
coords = vector3(147.23, -1046.10, 29.49),
code = nil,
prop = 'v_ilev_gb_vauldr',
closed = 250.0,
open = 160.0,
item = 'rfid_cloner',
available = true,
isOpened = false,
id = nil, -- this one for the vault door if it uses doorlock (for default GTA fleeca no need for doolock we just move the prop)
ped = vector4(146.77, -1045.85, 29.37, 254.2)
},
vdoor = {
coords = vector4(149.44, -1047.27, 30.05, 167.64), -- /vector4 + 0.7 z
delay = 19000, -- keep it 19 to match with the bomb.ogg
id = 'fleeca-1', -- door name in your qb-doorlock or ox_doorlock
isOpened = false,
item = 'c4'
},
lockers = {
{
coords = vector3(149.47, -1044.47, 29.62),
isBusy = false,
isOpened = false,
item = 'drill',
},
{
coords = vector3(150.85, -1049.16, 29.66),
isBusy = false,
isOpened = false,
item = 'drill',
},
{
coords = vector3(150.27, -1050.74, 29.62),
isBusy = false,
isOpened = false,
item = 'drill',
},
{
coords = vector3(147.98, -1050.998, 29.60),
isBusy = false,
isOpened = false,
item = 'drill',
},
{
coords = vector3(146.79, -1050.56, 29.60),
isBusy = false,
isOpened = false,
item = 'drill',
},
{
coords = vector3(146.25, -1049.23, 29.60),
isBusy = false,
isOpened = false,
item = 'drill',
}
},
trolleys = {
{
coords = vector4(150.91, -1046.90, 28.35, 250.81),
isBusy = false,
prop = 'prop_gold_trolly',
cash = 'h4_prop_h4_cash_stack_01a',
isOpened = false
},
{
coords = vector4(150.59, -1045.26, 28.35, 340.81),
isBusy = false,
prop = 'prop_gold_trolly',
cash = 'h4_prop_h4_cash_stack_01a',
isOpened = false
},
{
coords = vector4(149.41, -1051.15, 28.35, 160.43),
isBusy = false,
prop = 'prop_gold_trolly',
cash = 'h4_prop_h4_cash_stack_01a',
isOpened = false
},
{
coords = vector4(147.3, -1047.86, 28.35, 70.96),
isBusy = false,
prop = 'prop_gold_trolly',
cash = 'h4_prop_h4_cash_stack_01a',
isOpened = false
},
{
coords = vector4(148.62, -1049.18, 28.35, 160.43),
isBusy = false,
prop = nil,
cash = 'h4_prop_h4_cash_stack_01a',
isOpened = false
}
},
},
} -- and other fleecas
Config.Trash = { -- props to delete
{
coords = vector3(150.33, -1041.78, 29.58),
prop = "prop_monitor_01a",
},
{
coords = vector3(314.66, -280.15, 54.38),
prop = "prop_monitor_01a",
},
{
coords = vector3(-350.47, -50.95, 49.25),
prop = "prop_monitor_01a",
},
{
coords = vector3(-1211.58, -331.11, 38.0),
prop = "prop_monitor_01a",
},
{
coords = vector3(-2961.7, 483.68, 15.91),
prop = "prop_monitor_01a",
},
{
coords = vector3(1174.27, 2707.64, 38.3),
prop = "prop_monitor_01a",
},
}
Showcase : https://youtu.be/kNdS7lrD-RQ
QBCore :
Tebex: https://zatv.tebex.io/category/qbcore
Documentation: Fleeca | ZaT Scripts
ESX:
Tebex: https://zatv.tebex.io/category/esx
Documentation: Fleeca | ZaT Scripts