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