⚙️Configuration
Here's a preview of all the config files of the script
shared/config.lua
Config = {}
--- [[ Markhor Bridge ]] ---
--- [[ Markhor Bridge ]] ---
--- This resource depends on Markhor Bridge.
--- With Markhor Bridge, all necessary settings (such as framework, inventory, interact, etc.) are automatically set.
--- You don't have to do anything except install Markhor Bridge.
--- [[ Markhor Bridge ]] ---
--- [[ Markhor Bridge ]] ---
Config.interactDistance = 2.0 -- Change the distance from where the player can interact with things.
Config.language = "EN" -- Choose Language -> "EN" / "NL".
Config.heistSettings = {
start = {
coords = vector4(-1150.6306, -2034.9393, 13.1606 -0.96, 134.4014),
target = vector3(-1150.6306, -2034.9393, 13.1606),
ped = "u_m_m_streetart_01", -- You can change the ped to whatever you want. List of peds: https://docs.fivem.net/docs/game-references/ped-models/
spawned = false, -- Keep this false
animation = { -- This will add a animation to the ped, if you don"t want to have a animation set it to false
dict = "rcmjosh1",
anim = "idle"
}
},
minCops = 2, -- The minimum number of cops (Config.copJobs) that must be online.
hackItem = "vaulthacker", -- The item needed to start a robbery and to hack the vault.
drillItem = "drill", -- The item needed to drill the safes open.
securityItem = "trojan_usb", -- The item needed to disable the security.
openDoorTimer = 300, -- Time in seconds for the vault door to open.
cooldownSettings = {
globalCooldown = false, -- Choose if you want to use a global or personal cooldown between robberies. Default: personal cooldown
cooldownTime = 3600 -- Time in seconds between robberies
},
-- In blipSettings the blip settings can be adjusted to your own needs. https://docs.fivem.net/docs/game-references/blips/#blip-colors
blipSettings = {
colour = 1,
alpha = 75,
radius = 75.0
},
skillchecks = {
securitySkillcheck = "volt-lab", -- Choose the hack minigame to disable the security -> "volt-lab" / "OTHER". You can add your own minigames or edit the difficulty in functions.lua
vaultSkillcheck = "memorygame", -- Choose the hack minigame to open the vault -> "howdy-hackminigame" / "memorygame" / "boii_minigames" / "OTHER". You can add your own minigames or edit the difficulty in functions.lua
safeSkillcheck = "GTA", -- Choose the hack minigame to open the vault -> "GTA" / "OTHER". You can add your own minigames or edit the difficulty in functions.lua
safeSkillDiscs = 5 -- The amount of disc's that will be used while using the GTA Skillcheck.
}
}
-- Once the loot has been picked up, the player receives a bag. This bag is the number of Config.replaceBag.
-- If a player already has a bag with a matching number in Config.maleBags or Config.womanBags,
-- this option will be skipped and the player will keep the bag that the player already has.
-- Also if you don't want to use this function you can change Config.changeBag to false
Config.changeBag = true
Config.maleBags = { 40, 41, 44, 45, 81, 82, 85, 86, 102, 103, 109, 112, 113, 114 }
Config.womanBags = { 40, 41, 44, 45, 81, 82, 85, 86, 104, 107, 108, 109, 110 }
Config.replaceBag = 45 -- The default bag a player receives when the player does not have a bag from Config.maleBags or Config.womanBags.
Config.skinEvent = 'skinchanger:getSkin' -- Change this event to your own event name.
Config.skinLoadEvent = 'skinchanger:loadClothes' -- Event to update the clothes.
-- The jobs in Config.copJobs will be notified when the alarm of a bank robbery has been triggered.
Config.copJobs = {
'police',
'army'
}
-- The jobs in Config.blacklistJobs cannot start a bank robbery.
Config.blacklistJobs = {
'ambulance',
'police',
'mechanic'
}
shared/sv_config.lua
Server = {}
Server.logsWebhook = "WEBHOOK"
Server.heistSettings = {
rewards = {
-- In itemRewards the rewards of the deposit boxes can be set. Only items are possible without a specific value.
-- The player will be rewarded with a random amount of a random item. The amount can be set with mix/maxRewards.
itemRewards = {
minRewards = 1,
maxRewards = 3,
items = {
[1] = "goldchain",
[2] = "diamond_ring",
[3] = "rolex",
[4] = "gold"
}
},
-- In moneyRewards the rewards of the cash trolley can be set. Only money and items are possible, weapons are not.
-- The minimal and maximal amount that the player gets is a random number between min and max
-- The valueItem & valueAmount paremeters specifies whether the item should have a specific value and the amount of items that will be rewarded.
-- You then get the specific amount items with a random number between min and max as value. [QBCORE only]
moneyRewards = {type = "money", label = "Black Money", item = "black_money", valueItem = false, valueAmount = 1, minReward = 100000, maxReward = 200000},
},
banks = {
[1] = {
name = "LegionSquare",
label = "Fleeca: Legion Square",
busy = false, -- Keep this false
bankOpen = false, -- Keep this false
disableSecurity = {
prop = "tr_prop_tr_elecbox_01a",
coords = vector4(141.8998, -1057.1682, 29.1924, 340.0),
disabled = false -- Keep this false
},
vaultDoorHack = {
object = GetHashKey("v_ilev_gb_vauldr"),
heading = {
open = 160.0,
closed = 250.0
},
coords = vector4(147.26, -1046.26, 29.57, 250.0),
busy = false, -- Keep this false
hacked = false -- Keep this false
},
lootPlacesVault = {
[1] = {busy = false, opened = false, type = "trolley",coords = vector4(149.887, -1045.1, 29.37, 160)},
[2] = {busy = false, opened = false, type = "trolley",coords = vector4(151.0132, -1046.6033, 29.3463, 70)},
[3] = {busy = false, opened = false, type = "safe",coords = vector4(150.3047, -1049.8712, 29.3464, 247.7683)},
[4] = {busy = false, opened = false, type = "safe",coords = vector4(148.0152, -1050.7388, 29.3464, 161.2101)},
[5] = {busy = false, opened = false, type = "safe",coords = vector4(146.8572, -1048.4708, 29.3463, 77.3559)},
},
},
[2] = {
name = "PillboxMotel",
label = "Fleeca: Pillbox Motel",
busy = false,
bankOpen = false,
disableSecurity = {
prop = "tr_prop_tr_elecbox_01a",
coords = vector4(290.85778808594, -294.95199584961, 52.960597991943, 160.0),
disabled = false
},
vaultDoorHack = {
object = GetHashKey("v_ilev_gb_vauldr"),
heading = {
open = 160.0,
closed = 250.0
},
coords = vector4(311.59, -284.63, 54.36, 160.0),
busy = false,
hacked = false
},
lootPlacesVault = {
[1] = {busy = false, opened = false, type = "trolley", coords = vector4(314.0414, -283.4357, 54.1430, 160)},
[2] = {busy = false, opened = false, type = "trolley", coords = vector4(315.5294, -284.9855, 54.1430, 70)},
[3] = {busy = false, opened = false, type = "safe", coords = vector4(314.8351, -288.2431, 54.1431, 69.0979)},
[4] = {busy = false, opened = false, type = "safe", coords = vector4(312.3922, -289.0302, 54.1431, 342.2792)},
[5] = {busy = false, opened = false, type = "safe", coords = vector4(311.1674, -286.8487, 54.1430, 251.1207)},
},
},
[3] = {
name = "LSCBurton",
label = "Fleeca: Los Santos Customs (Burton)",
busy = false,
bankOpen = false,
disableSecurity = {
prop = "tr_prop_tr_elecbox_01a",
coords = vector4(-356.60321044922, -52.700325012207, 53.501689910889, 250.0),
disabled = false
},
vaultDoorHack = {
object = GetHashKey("v_ilev_gb_vauldr"),
heading = {
open = 160.0,
closed = 250.0
},
coords = vector4(-353.47, -55.48, 49.24, 160.0),
busy = false,
hacked = false
},
lootPlacesVault = {
[1] = {busy = false, opened = false, type = "trolley", coords = vector4(-350.9681, -54.1383, 49.0148, 160)},
[2] = {busy = false, opened = false, type = "trolley", coords = vector4(-349.6494, -55.7487, 49.0148, 70)},
[3] = {busy = false, opened = false, type = "safe", coords = vector4(-350.2295, -59.0387, 49.0149, 69.5732)},
[4] = {busy = false, opened = false, type = "safe", coords = vector4(-352.5525, -59.9455, 49.0149, 345.9050)},
[5] = {busy = false, opened = false, type = "safe", coords = vector4(-353.8898, -57.7005, 49.0148, 252.6358)},
},
},
[4] = {
name = "lifeinvaders",
label = "Fleeca: Life Invaders",
busy = false,
bankOpen = false,
disableSecurity = {
prop = "tr_prop_tr_elecbox_01a",
coords = vector4(-1200.4261474609, -340.24551391602, 36.577262878418, 115.0),
disabled = false
},
vaultDoorHack = {
object = GetHashKey("v_ilev_gb_vauldr"),
heading = {
open = 160.0,
closed = 250.0
},
coords = vector4(-1210.40, -336.42, 37.98, 160.0),
busy = false,
hacked = false
},
lootPlacesVault = {
[1] = {busy = false, opened = false, type = "trolley", coords = vector4(-1209.6520, -333.7449, 37.7592, 160)},
[2] = {busy = false, opened = false, type = "trolley", coords = vector4(-1207.5869, -333.8501, 37.7592, 70)},
[3] = {busy = false, opened = false, type = "safe", coords = vector4(-1205.5974, -336.5465, 37.7593, 123.2655)},
[4] = {busy = false, opened = false, type = "safe", coords = vector4(-1206.6868, -338.7795, 37.7593, 27.2197)},
[5] = {busy = false, opened = false, type = "safe", coords = vector4(-1208.8635, -338.1328, 37.7593, 291.2927)},
},
},
[5] = {
name = "highway",
label = "Fleeca: Highway",
busy = false,
bankOpen = false,
disableSecurity = {
prop = "tr_prop_tr_elecbox_01a",
coords = vector4(-2948.4768066406, 486.93023681641, 14.450967788696, 170.0),
disabled = false
},
vaultDoorHack = {
object = GetHashKey("hei_prop_heist_sec_door"),
heading = {
open = 160.0,
closed = 250.0
},
coords = vector4(-2956.50, 482.06, 15.90, 350.0),
busy = false,
hacked = false
},
lootPlacesVault = {
[1] = {busy = false, opened = false, type = "trolley", coords = vector4(-2958.4995, 484.0596, 15.6753, 270)},
[2] = {busy = false, opened = false, type = "trolley", coords = vector4(-2957.3193, 485.7986, 15.6753, 180)},
[3] = {busy = false, opened = false, type = "safe", coords = vector4(-2953.9014, 486.3755, 15.6754, 4.7109)},
[4] = {busy = false, opened = false, type = "safe", coords = vector4(-2952.5554, 484.2612, 15.6754, 272.2295)},
[5] = {busy = false, opened = false, type = "safe", coords = vector4(-2954.0576, 482.3837, 15.6753, 175.3552)},
},
},
[6] = {
name = "sandyshores",
label = "Fleeca: Route 68",
busy = false,
bankOpen = false,
disableSecurity = {
prop = "tr_prop_tr_elecbox_01a",
coords = vector4(1176.6029052734, 2721.8640136719, 37.00415802002, 180.0),
disabled = false
},
vaultDoorHack = {
object = GetHashKey("hei_prop_heist_sec_door"),
panel = GetHashKey("v_corp_bk_secpanel"),
heading = {
open = 0.5,
closed = 90.0
},
coords = vector4(1175.6130371094, 2712.90625, 38.288074493408, 90),
busy = false,
hacked = false
},
lootPlacesVault = {
[1] = {busy = false, opened = false, type = "trolley", coords = vector4(1173.7284, 2710.7322, 38.0662, 0)},
[2] = {busy = false, opened = false, type = "trolley", coords = vector4(1171.8621, 2711.9307, 38.0662, 270)},
[3] = {busy = false, opened = false, type = "safe", coords = vector4(1171.2174, 2715.2002, 38.0663, 86.9793)},
[4] = {busy = false, opened = false, type = "safe", coords = vector4(1173.3442, 2716.8516, 38.0663, 1.4337)},
[5] = {busy = false, opened = false, type = "safe", coords = vector4(1175.2206, 2715.1501, 38.0663, 275.2075)},
},
}
}
}
language.lua
Language = {
["EN"] = {
["targetStartHeist"] = "Start heist",
["targetVaultHack"] = "Hack system",
["targetSecurity"] = "Disable security",
["targetLootMoney"] = "Loot money",
["targetLootSafe"] = "Drill safe",
["alreadyDoing"] = "Someone is already doing this",
["missingItem"] = "You are missing something to do this",
["noCops"] = "There are insufficient authorities employed",
["globalCooldown"] = "A bank robbery is already in progress",
["personalCooldown"] = "You have already started a bank robbery",
["startedHeist"] = "Disable the security near %s",
["availableHeists"] = "Available heists",
["breached"] = "Security successfully breached, vault door will open in a few minutes",
["securedMoney"] = "The cash trolley has been successfully secured",
["securedSafe"] = "Deposit box is still closed",
["blacklistJobs"] = "You are a cop. You can't start a robbery!",
["dispatchBlip"] = "Bankrobbery",
["dispatchAlarm"] = "Active bankrobbery at a Fleeca Bank",
["logsTitle"] = "Markhor Bankrobbery",
["logHeistStarted"] = "A robbery has been started by: \n**Identifier: *%s*** \n**Name: *%s*** \n **Bank: *%s (%s)* **",
["logAddedItem"] = "**Player: *%s (Player ID: %s)*\n has received ***%sx %s***",
["logAddedItemWorth"] = "**Player: *%s (Player ID: %s)***\n has received ***%sx %s*** with a value of ***$%s***",
["logRemovedItem"] = "**Player: *%s (Player ID: %s)***\n has removed ***%sx %s***",
["logAddedMoney"] = "**Player: *%s (Player ID: %s)***\n has received ***$%s (%s)***"
},
["NL"] = {
["targetStartHeist"] = "Start heist",
["targetVaultHack"] = "Hack systeem",
["targetSecurity"] = "Beveiliging uitschakelen",
["targetLootMoney"] = "Pak geld",
["targetLootSafe"] = "Kluis uitboren",
["alreadyDoing"] = "Iemand is al bezig met dit",
["missingItem"] = "Je mist iets om dit te doen",
["noCops"] = "Er zijn onvoldoende autoriteiten in dienst",
["globalCooldown"] = "Er is al een bankoverval gaande",
["personalCooldown"] = "Je hebt al een bankoverval gestart",
["startedHeist"] = "Schakel de beveiliging uit in de buurt van %s",
["availableHeists"] = "Beschikbare overvallen",
["breached"] = "Beveiliging succesvol gekraakt, kluis wordt geopend in een aantal minuten",
["securedMoney"] = "Geldwagen is succesvol veilliggesteld",
["securedSafe"] = "Kluis is nog gesloten",
["blacklistJobs"] = "Je bent een agent. Je kan deze actie niet uitvoeren!",
["dispatchBlip"] = "Bank overval",
["dispatchAlarm"] = "Actieve bank overval bij een Fleeca Bank",
["logsTitle"] = "Markhor Bankrobbery",
["logHeistStarted"] = "Er is een overval gestart door: \n**Identifier: *%s*** \n**Name: *%s*** \n **Bank: *%s (%s)* **",
["logAddedItem"] = "**Speler: *%s (Speler ID: %s)***\n heeft ***%sx %s*** ontvangen",
["logAddedItemWorth"] = "**Speler: *%s (Speler ID: %s)***\n heeft ***%sx %s*** met een waarde van ***$%s*** ontvangen",
["logRemovedItem"] = "**Speler: *%s (Speler ID: %s)***\n heeft ***%sx %s*** verwijderd",
["logAddedMoney"] = "**Speler: *%s (Speler ID: %s)***\n heeft ***$%s (%s)*** ontvangen"
},
}
client/open_functions.lua
securityMinigame = function()
if Config.heistSettings.skillchecks.securitySkillcheck then
local p = promise.new()
TriggerEvent('ultra-voltlab', 60, function(result, reason)
if result == 0 then
p:resolve(false)
elseif result == 1 then
p:resolve(true)
elseif result == 2 then
p:resolve(false)
elseif result == -1 then
p:resolve(false)
print('Error occured',reason)
end
end)
return Citizen.Await(p)
else
-- Put your own code here
end
end
vaultMinigame = function()
if Config.heistSettings.skillchecks.vaultSkillcheck == "howdy-hackminigame" then
return exports['howdy-hackminigame']:Begin(1, 15000)
elseif Config.heistSettings.skillchecks.vaultSkillcheck == "memorygame" then
local p = promise.new()
exports["memorygame"]:thermiteminigame(10, 3, 3, 10,
function() -- success
p:resolve(true)
end,
function() -- failure
p:resolve(false)
end
)
return Citizen.Await(p)
elseif Config.heistSettings.skillchecks.vaultSkillcheck == "boii_minigames" then
local p = promise.new()
exports['boii_minigames']:chip_hack({
style = 'default',
loading_time = 8000,
chips = 2,
timer = 20000
}, function(success)
p:resolve(success)
end)
return Citizen.Await(p)
else
-- Add your own minigame here
end
end
safeMinigame = function()
if Config.heistSettings.skillchecks.safeSkillcheck == "GTA" then
local p = promise.new()
TriggerEvent("markhor_bankrobbery:client:drill", function(success)
if success then
p:resolve(true)
else
p:resolve(false)
end
end)
return Citizen.Await(p)
else
-- Add your own minigame here
end
end
Last updated