Config File
Config = {
Target = 'qb-target', -- 'qb-target', 'ox-target', 'qtarget'
Input = 'qb-input', -- 'qb-input'
DebugPoly = false,
-------
FirstMinigame = 'ps-ui-circle', -- located at line 545
SecondMinigame = 'ps-ui-scrambler', -- located at line 559
ThirdMinigame = 'ps-ui-var', -- located at line 573
-------
MinPolice = 0,
HeistCooldown = 60, -- As minutes -- By ped
Dispatch = '', -- Usage: 'ps-dispatch', 'cd_dispatch'. If it is empty it will use the default qb-policejob alert system. // You can change it at line 509
Notification = 'qb-core', -- Usage: 'qb-core', 'ps-ui' // You can change it at line 501
Cooldown = 60, -- As minutes - For hacking
-------
FirstDoorName = 'submarine1',
SecondDoorName = 'submarine2',
ThirdDoorName = 'submarine3',
FourthDoorName ='submarine4',
-------
LootablePedModels = { -- Do not change it until you change the guards peds.
's_m_y_marine_03', -- Outside
},
LootPedItem = 'sh_card',
LootPedAmount = 1,
LootChance = 50,
-------
Password = false,
MaxFails = 3,
-------
ResetTime = 30, -- As minutes, doors locked timer
-------
Guards = { -- Guards that spawn outside of submarine
[1] = {
pos = vector4(484.37, -3111.63, 6.33, 355.19), -- guards position
ped = 's_m_y_marine_03', -- guards model name
weapon = 'weapon_smg', -- guards weapon
health = 200, -- guards health
range = 3, -- guards range
accuracy = 100, -- guards accuracy
aggresiveness = 3, -- guards aggresiveness - 0 stand / 1 defensive / 2 offensive / 3 ultra offensive
alertness = 3, -- guards alertness 3 is the highest one - values from 0 to 3.
armor = 100, -- guards armor
},
[2] = {
pos = vector4(469.25, -3159.4, 6.07, 337.24), -- guards position
ped = 's_m_y_marine_03', -- guards model name
weapon = 'weapon_smg', -- guards weapon
health = 200, -- guards health
range = 3, -- guards range
accuracy = 100, -- guards accuracy
aggresiveness = 3, -- guards aggresiveness - 0 stand / 1 defensive / 2 offensive / 3 ultra offensive
alertness = 3, -- guards alertness 3 is the highest one - values from 0 to 3.
armor = 100, -- guards armor
},
[3] = {
pos = vector4(496.88, -3141.51, 6.07, 29.79), -- guards position
ped = 's_m_y_marine_03', -- guards model name
weapon = 'weapon_smg', -- guards weapon
health = 200, -- guards health
range = 3, -- guards range
accuracy = 100, -- guards accuracy
aggresiveness = 3, -- guards aggresiveness - 0 stand / 1 defensive / 2 offensive / 3 ultra offensive
alertness = 3, -- guards alertness 3 is the highest one - values from 0 to 3.
armor = 100, -- guards armor
},
[4] = {
pos = vector4(504.65, -3122.11, 9.79, 95.51), -- guards position
ped = 's_m_y_marine_03', -- guards model name
weapon = 'weapon_smg', -- guards weapon
health = 200, -- guards health
range = 3, -- guards range
accuracy = 100, -- guards accuracy
aggresiveness = 3, -- guards aggresiveness - 0 stand / 1 defensive / 2 offensive / 3 ultra offensive
alertness = 3, -- guards alertness 3 is the highest one - values from 0 to 3.
armor = 100, -- guards armor
},
[5] = {
pos = vector4(526.53, -3121.96, 8.1, 135.44), -- guards position
ped = 's_m_y_marine_03', -- guards model name
weapon = 'weapon_smg', -- guards weapon
health = 200, -- guards health
range = 3, -- guards range
accuracy = 100, -- guards accuracy
aggresiveness = 3, -- guards aggresiveness - 0 stand / 1 defensive / 2 offensive / 3 ultra offensive
alertness = 3, -- guards alertness 3 is the highest one - values from 0 to 3.
armor = 100, -- guards armor
},
[6] = {
pos = vector4(548.1, -3135.86, 6.07, 94.38), -- guards position
ped = 's_m_y_marine_03', -- guards model name
weapon = 'weapon_smg', -- guards weapon
health = 200, -- guards health
range = 3, -- guards range
accuracy = 100, -- guards accuracy
aggresiveness = 3, -- guards aggresiveness - 0 stand / 1 defensive / 2 offensive / 3 ultra offensive
alertness = 3, -- guards alertness 3 is the highest one - values from 0 to 3.
armor = 100, -- guards armor
},
[7] = {
pos = vector4(549.0, -3169.27, 6.07, 346.11), -- guards position
ped = 's_m_y_marine_03', -- guards model name
weapon = 'weapon_smg', -- guards weapon
health = 200, -- guards health
range = 3, -- guards range
accuracy = 100, -- guards accuracy
aggresiveness = 3, -- guards aggresiveness - 0 stand / 1 defensive / 2 offensive / 3 ultra offensive
alertness = 3, -- guards alertness 3 is the highest one - values from 0 to 3.
armor = 100, -- guards armor
},
[8] = {
pos = vector4(556.58, -3210.67, 13.36, 16.55), -- guards position
ped = 's_m_y_marine_03', -- guards model name
weapon = 'weapon_smg', -- guards weapon
health = 200, -- guards health
range = 3, -- guards range
accuracy = 100, -- guards accuracy
aggresiveness = 3, -- guards aggresiveness - 0 stand / 1 defensive / 2 offensive / 3 ultra offensive
alertness = 3, -- guards alertness 3 is the highest one - values from 0 to 3.
armor = 100, -- guards armor
},
[9] = {
pos = vector4(549.14, -3118.39, 18.71, 87.02), -- guards position
ped = 's_m_y_marine_03', -- guards model name
weapon = 'weapon_smg', -- guards weapon
health = 200, -- guards health
range = 3, -- guards range
accuracy = 100, -- guards accuracy
aggresiveness = 3, -- guards aggresiveness - 0 stand / 1 defensive / 2 offensive / 3 ultra offensive
alertness = 3, -- guards alertness 3 is the highest one - values from 0 to 3.
armor = 100, -- guards armor
},
[10] = {
pos = vector4(572.58, -3118.96, 18.77, 83.12), -- guards position
ped = 's_m_y_marine_03', -- guards model name
weapon = 'weapon_smg', -- guards weapon
health = 200, -- guards health
range = 3, -- guards range
accuracy = 100, -- guards accuracy
aggresiveness = 3, -- guards aggresiveness - 0 stand / 1 defensive / 2 offensive / 3 ultra offensive
alertness = 3, -- guards alertness 3 is the highest one - values from 0 to 3.
armor = 100, -- guards armor
},
[11] = {
pos = vector4(569.54, -3120.76, 18.77, 175.28), -- guards position
ped = 's_m_y_marine_03', -- guards model name
weapon = 'weapon_smg', -- guards weapon
health = 200, -- guards health
range = 3, -- guards range
accuracy = 100, -- guards accuracy
aggresiveness = 3, -- guards aggresiveness - 0 stand / 1 defensive / 2 offensive / 3 ultra offensive
alertness = 3, -- guards alertness 3 is the highest one - values from 0 to 3.
armor = 100, -- guards armor
},
[12] = {
pos = vector4(565.26, -3126.83, 18.77, 321.27), -- guards position
ped = 's_m_y_marine_03', -- guards model name
weapon = 'weapon_smg', -- guards weapon
health = 200, -- guards health
range = 3, -- guards range
accuracy = 100, -- guards accuracy
aggresiveness = 3, -- guards aggresiveness - 0 stand / 1 defensive / 2 offensive / 3 ultra offensive
alertness = 3, -- guards alertness 3 is the highest one - values from 0 to 3.
armor = 100, -- guards armor
},
[13] = {
pos = vector4(557.11, -3125.82, 6.07, 91.98), -- guards position
ped = 's_m_y_marine_03', -- guards model name
weapon = 'weapon_smg', -- guards weapon
health = 200, -- guards health
range = 3, -- guards range
accuracy = 100, -- guards accuracy
aggresiveness = 3, -- guards aggresiveness - 0 stand / 1 defensive / 2 offensive / 3 ultra offensive
alertness = 3, -- guards alertness 3 is the highest one - values from 0 to 3.
armor = 100, -- guards armor
},
[14] = {
pos = vector4(547.14, -3130.95, 17.36, 72.64), -- guards position
ped = 's_m_y_marine_03', -- guards model name
weapon = 'weapon_pumpshotgun', -- guards weapon
health = 200, -- guards health
range = 3, -- guards range
accuracy = 100, -- guards accuracy
aggresiveness = 3, -- guards aggresiveness - 0 stand / 1 defensive / 2 offensive / 3 ultra offensive
alertness = 3, -- guards alertness 3 is the highest one - values from 0 to 3.
armor = 100, -- guards armor
},
[15] = {
pos = vector4(500.33, -3175.98, 6.07, 21.2), -- guards position
ped = 's_m_y_marine_03', -- guards model name
weapon = 'weapon_smg', -- guards weapon
health = 200, -- guards health
range = 3, -- guards range
accuracy = 100, -- guards accuracy
aggresiveness = 3, -- guards aggresiveness - 0 stand / 1 defensive / 2 offensive / 3 ultra offensive
alertness = 3, -- guards alertness 3 is the highest one - values from 0 to 3.
armor = 100, -- guards armor
},
[16] = {
pos = vector4(575.11, -3124.05, 18.77, 96.44), -- guards position
ped = 's_m_y_marine_03', -- guards model name
weapon = 'weapon_smg', -- guards weapon
health = 200, -- guards health
range = 3, -- guards range
accuracy = 100, -- guards accuracy
aggresiveness = 3, -- guards aggresiveness - 0 stand / 1 defensive / 2 offensive / 3 ultra offensive
alertness = 3, -- guards alertness 3 is the highest one - values from 0 to 3.
armor = 100, -- guards armor
},
[17] = {
pos = vector4(600.44, -3135.88, 6.07, 98.79), -- guards position
ped = 's_m_y_marine_03', -- guards model name
weapon = 'weapon_smg', -- guards weapon
health = 200, -- guards health
range = 3, -- guards range
accuracy = 100, -- guards accuracy
aggresiveness = 3, -- guards aggresiveness - 0 stand / 1 defensive / 2 offensive / 3 ultra offensive
alertness = 3, -- guards alertness 3 is the highest one - values from 0 to 3.
armor = 100, -- guards armor
},
[18] = {
pos = vector4(500.6, -3144.15, 6.07, 339.37), -- guards position
ped = 's_m_y_marine_03', -- guards model name
weapon = 'weapon_smg', -- guards weapon
health = 200, -- guards health
range = 3, -- guards range
accuracy = 100, -- guards accuracy
aggresiveness = 3, -- guards aggresiveness - 0 stand / 1 defensive / 2 offensive / 3 ultra offensive
alertness = 3, -- guards alertness 3 is the highest one - values from 0 to 3.
armor = 100, -- guards armor
},
[19] = {
pos = vector4(591.08, -3130.91, 17.37, 89.48), -- guards position
ped = 's_m_y_marine_03', -- guards model name
weapon = 'weapon_smg', -- guards weapon
health = 200, -- guards health
range = 3, -- guards range
accuracy = 100, -- guards accuracy
aggresiveness = 3, -- guards aggresiveness - 0 stand / 1 defensive / 2 offensive / 3 ultra offensive
alertness = 3, -- guards alertness 3 is the highest one - values from 0 to 3.
armor = 100, -- guards armor
},
},
Guards2 = { -- Guards that spawn inside of submarine
[1] = {
pos = vector4(530.83, -3197.59, 11.39, 2.72), -- guards position
ped = 's_m_y_marine_03', -- guards model name
weapon = 'weapon_pumpshotgun', -- guards weapon
health = 200, -- guards health
range = 3, -- guards range
accuracy = 100, -- guards accuracy
aggresiveness = 3, -- guards aggresiveness - 0 stand / 1 defensive / 2 offensive / 3 ultra offensive
alertness = 3, -- guards alertness 3 is the highest one - values from 0 to 3.
armor = 100, -- guards armor
},
[2] = {
pos = vector4(527.69, -3225.72, 11.38, 354.29), -- guards position
ped = 's_m_y_marine_03', -- guards model name
weapon = 'weapon_pumpshotgun', -- guards weapon
health = 200, -- guards health
range = 3, -- guards range
accuracy = 100, -- guards accuracy
aggresiveness = 3, -- guards aggresiveness - 0 stand / 1 defensive / 2 offensive / 3 ultra offensive
alertness = 3, -- guards alertness 3 is the highest one - values from 0 to 3.
armor = 100, -- guards armor
},
[3] = {
pos = vector4(527.97, -3238.02, 11.38, 4.48), -- guards position
ped = 's_m_m_marine_02', -- guards model name
weapon = 'weapon_pistol', -- guards weapon
health = 1000, -- guards health
range = 3, -- guards range
accuracy = 100, -- guards accuracy
aggresiveness = 2, -- guards aggresiveness - 0 stand / 1 defensive / 2 offensive / 3 ultra offensive
alertness = 3, -- guards alertness 3 is the highest one - values from 0 to 3.
armor = 20, -- guards armor
},
[4] = {
pos = vector4(527.33, -3232.75, 7.78, 90.05), -- guards position
ped = 's_m_y_marine_02', -- guards model name
weapon = 'weapon_pistol', -- guards weapon
health = 500, -- guards health
range = 3, -- guards range
accuracy = 100, -- guards accuracy
aggresiveness = 2, -- guards aggresiveness - 0 stand / 1 defensive / 2 offensive / 3 ultra offensive
alertness = 3, -- guards alertness 3 is the highest one - values from 0 to 3.
armor = 1, -- guards armor
},
[5] = {
pos = vector4(529.11, -3237.66, 4.98, 92.58), -- guards position
ped = 's_m_y_marine_02', -- guards model name
weapon = 'weapon_pistol', -- guards weapon
health = 500, -- guards health
range = 3, -- guards range
accuracy = 100, -- guards accuracy
aggresiveness = 2, -- guards aggresiveness - 0 stand / 1 defensive / 2 offensive / 3 ultra offensive
alertness = 3, -- guards alertness 3 is the highest one - values from 0 to 3.
armor = 1, -- guards armor
},
[6] = {
pos = vector4(527.12, -3247.11, 4.98, 273.72), -- guards position
ped = 's_m_y_marine_02', -- guards model name
weapon = 'weapon_pistol', -- guards weapon
health = 500, -- guards health
range = 3, -- guards range
accuracy = 100, -- guards accuracy
aggresiveness = 2, -- guards aggresiveness - 0 stand / 1 defensive / 2 offensive / 3 ultra offensive
alertness = 3, -- guards alertness 3 is the highest one - values from 0 to 3.
armor = 1, -- guards armor
},
[7] = {
pos = vector4(528.19, -3255.34, 4.98, 1.35), -- guards position
ped = 's_m_y_marine_02', -- guards model name
weapon = 'weapon_carbinerifle', -- guards weapon
health = 500, -- guards health
range = 3, -- guards range
accuracy = 100, -- guards accuracy
aggresiveness = 2, -- guards aggresiveness - 0 stand / 1 defensive / 2 offensive / 3 ultra offensive
alertness = 3, -- guards alertness 3 is the highest one - values from 0 to 3.
armor = 1, -- guards armor
},
},
Crates = {
[1] = {
pos = vector3(529.2, -3244.62, 4.98), -- Lootable items position
length = 1.5,
width = 1.5,
heading = 0,
minZ = 1.38,
maxZ = 5.38,
distance = 1.5,
isLooted = false, -- MUST BE false, DO NOT EVER CHANGE IT
lootType = 'crate', -- Which type of the loot? 'crate', 'locker'
type = 'items', -- Which type of reward? 'items' or 'money'
reward = {
[1] = {name = 'weapon_assaultrifle_mk2', amount = math.random(5, 6)}, -- Rewards should be added like this if they are items, otherwise check line 58.
[2] = {name = 'rifle_ammo', amount = math.random(30, 60)},
},
},
[2] = {
pos = vector3(529.41, -3238.77, 7.79), -- Lootable items position
length = 0.6,
width = 2.4,
heading = 270,
minZ = 6.69,
maxZ = 8.69,
distance = 1.5,
isLooted = false, -- MUST BE false, DO NOT EVER CHANGE IT
lootType = 'locker', -- Which type of the loot? 'crate', 'locker', 'desk'
type = 'money', -- Which type of reward? 'items' or 'money'
reward = {
[1] = {account = 'cash', amount = math.random(2000, 5000)},
},
},
[3] = {
pos = vector3(526.87, -3238.07, 7.79), -- Lootable items position
length = 0.6,
width = 3.8,
heading = 270,
minZ = 6.69,
maxZ = 8.69,
distance = 1.5,
isLooted = false, -- MUST BE false, DO NOT EVER CHANGE IT
lootType = 'locker', -- Which type of the loot? 'crate', 'locker', 'desk'
type = 'money', -- Which type of reward? 'items' or 'money'
reward = {
[1] = {account = 'cash', amount = math.random(2000, 5000)},
},
},
[4] = {
pos = vector3(528.29, -3241.74, 7.79), -- Lootable items position
length = 0.6,
width = 3.4,
heading = 0,
minZ = 6.69,
maxZ = 8.69,
distance = 1.5,
isLooted = false, -- MUST BE false, DO NOT EVER CHANGE IT
lootType = 'locker', -- Which type of the loot? 'crate', 'locker', 'desk'
type = 'money', -- Which type of reward? 'items' or 'money'
reward = {
[1] = {account = 'cash', amount = math.random(2000, 5000)},
},
},
[5] = {
pos = vector3(527.94, -3236.93, 11.38), -- Lootable items position
length = 1.6,
width = 1.6,
heading =90,
minZ = 9.58,
maxZ = 13.58,
distance = 1.5,
isLooted = false, -- MUST BE false, DO NOT EVER CHANGE IT
lootType = 'desk', -- Which type of the loot? 'crate', 'locker', 'desk'
type = 'item', -- Which type of reward? 'items' or 'money'
reward = {
[1] = {name = 'phone', amount = math.random(15, 25)},
},
},
},
ProgressBar = {
['hackpanel'] = {
duration = 3750,
useWhileDead = false,
canCancel = true,
disableMovement = true,
disableCarMovement = true,
disableMouse = false,
disableCombat = true,
animDict = 'anim@amb@clubhouse@tutorial@bkr_tut_ig3@',
anim = 'machinic_loop_mechandplayer',
flags = 16,
},
['guards'] = {
duration = 5000,
useWhileDead = false,
canCancel = true,
disableMovement = true,
disableCarMovement = true,
disableMouse = false,
disableCombat = true,
animDict = 'missexile3',
anim = 'ex03_dingy_search_case_base_michael',
flags = 49,
},
['keycard'] = {
duration = 5000,
useWhileDead = false,
canCancel = true,
disableMovement = true,
disableCarMovement = true,
disableMouse = false,
disableCombat = true,
animDict = 'anim@heists@keypad@',
anim = 'enter',
flags = 16,
},
['cameras'] = {
duration = 5000,
useWhileDead = false,
canCancel = true,
disableMovement = true,
disableCarMovement = true,
disableMouse = false,
disableCombat = true,
animDict = 'anim@gangops@facility@servers@',
anim = 'hotwire',
flags = 16,
},
['hackcomputer'] = {
duration = 5000,
useWhileDead = false,
canCancel = true,
disableMovement = true,
disableCarMovement = true,
disableMouse = false,
disableCombat = true,
animDict = 'anim@heists@prison_heiststation@cop_reactions',
anim = 'cop_b_idle',
flags = 16,
},
['crate'] = {
duration = 5000,
useWhileDead = false,
canCancel = true,
disableMovement = true,
disableCarMovement = true,
disableMouse = false,
disableCombat = true,
animDict = 'anim@amb@clubhouse@tutorial@bkr_tut_ig3@',
anim = 'machinic_loop_mechandplayer',
flags = 16,
},
['locker'] = {
duration = 5000,
useWhileDead = false,
canCancel = true,
disableMovement = true,
disableCarMovement = true,
disableMouse = false,
disableCombat = true,
animDict = 'anim@amb@clubhouse@tutorial@bkr_tut_ig3@',
anim = 'machinic_loop_mechandplayer',
flags = 16,
},
['desk'] = {
duration = 5000,
useWhileDead = false,
canCancel = true,
disableMovement = true,
disableCarMovement = true,
disableMouse = false,
disableCombat = true,
animDict = 'anim@amb@clubhouse@tutorial@bkr_tut_ig3@',
anim = 'machinic_loop_mechandplayer',
flags = 16,
},
},
}
sendNotification = function(msg, type)
if Config.Notification == 'qb-core' then
QBCore.Functions.Notify(msg, type)
elseif Config.Notification == 'ps-ui' then
exports['ps-ui']:Notify(msg, type)
end
end
policeNotification = function()
if Config.Dispatch == 'ps-dispatch' then
exports["ps-dispatch"]:CustomAlert({
coords = GetEntityCoords(PlayerPedId()),
message = "Attempted Submarine Heist",
dispatchCode = "10-31",
description = "Attempted Submarine Heist",
radius = 0,
sprite = 473,
color = 1,
scale = 0.7,
length = 3,
})
elseif Config.Dispath == 'cd_dispatch' then
local data = exports['cd_dispatch']:GetPlayerInfo()
TriggerServerEvent('cd_dispatch:AddNotification', {
job_table = {'police'},
coords = data.coords,
title = '10-31 - Attempted Submarine Heist',
message = 'A '..data.sex..' robbing a Submarine at '..data.street,
flash = 0,
unique_id = tostring(math.random(0000000,9999999)),
blip = {
sprite = 108,
scale = 0.7,
colour = 1,
flashes = false,
text = '911 - Attempted Submarine Heist',
time = (3*60*1000),
sound = 1,
}
})
else
TriggerEvent('police:client:policeAlert', GetEntityCoords(PlayerPedId()), 'Attempted Submarine Heist')
end
end
firstMinigame = function()
if Config.FirstMinigame == 'ps-ui-circle' then
exports['ps-ui']:Circle(function(success)
if success then
hackSuccess()
else
hackFailed()
end
end, 2, 20)
-- else if
-- you can add yours here
end
end
secondMinigame = function()
if Config.SecondMinigame == 'ps-ui-scrambler' then
exports['ps-ui']:Scrambler(function(success)
if success then
disableSuccess()
else
disableFail()
end
end, "alphanumeric", 30, 0)
-- else if
-- you can add yours here
end
end
thirdMinigame = function()
if Config.ThirdMinigame == 'ps-ui-var' then
exports['ps-ui']:VarHack(function(success)
if success then
hackComputerSuccess()
else
hackComputerFail()
end
end, 5, 10)
-- else if
-- you can add yours here
end
end
Last updated