For the complete documentation index, see llms.txt. This page is also available as Markdown.

Configuration

General Configuration

Config = {}

----------------------------------
------------ General -------------
----------------------------------

Config.framework = {
    name = "auto", -- esx | qb | auto (auto-detects)
    targetScript = "ox_target", -- ox_target | qb-target
    useOxNotify = true, -- use ox_lib notify instead of framework notify
    debug = false, -- developer debug prints
}

Config.moneyOptions = {
    moneyName = "money", -- account name, or item name if moneyIsItem
    moneyIsItem = false,
}

Config.seaBattle = {
    ----------------------------------
    ---------- Event Start -----------
    ----------------------------------

    start = {
        auto = {
            enabled = false,
            interval = 30,
        },
        command = {
            enabled = true,
            name = "startseabattle",
            staffList = {
                ["license:change_me"] = true,
            }
        },
        npc = {
            enabled = true,
            model = "s_m_y_dockwork_01",
            coords = vector4(-1611.922, 5262.081, 3.974, 206.627),
            item = {
                enabled = false,
                itemName = "sea_intel", -- consumed to start when intelItem is enabled
                removeItemOnUse = true,
            },
        },
        requiredPlayers = 0,
        maxConcurrent = 3, -- how many events can be active at once
        cooldown = 10, -- minutes a drop slot stays locked after an event ends
        missionTimer = 30, -- minutes before an undelivered event auto-destructs
    },
    notify = {
        announce = true, -- big scaleform shard announcement
        jobList = {}, -- empty = everyone is notified; else only these jobs
    },

    ----------------------------------
    ---------- Plane & Drop ----------
    ----------------------------------

    plane = {
        lineLength = 600.0, -- plane fly-in line length over the drop point
        planeSpeed = 150.0, -- km/h
        planeModels = { "titan" },
        pilotModels = { "s_m_m_pilot_01", "s_m_y_pilot_01" },
    },
    dropCoords = {
        vector3(-1687.698, 5330.878, 0.324)
    },
    deliveryCoords = {
        vector3(-1661.575, 5159.983, -0.249)
    },

    ----------------------------------
    ------------- Blips --------------
    ----------------------------------

    blipOptions = {
        plane = {
            enabled = true,
            label = "Smuggler Plane",
            sprite = 423,
            color = 1,
            scale = 1.2,
        },
        crate = {
            enabled = true,
            label = "Contraband Crate",
            sprite = 478,
            color = 5,
            scale = 1.0,
        },
        npc = {
            enabled = true,
            label = "Maritime Contact",
            sprite = 410,
            color = 3,
            scale = 0.9,
        },
    },

    ----------------------------------
    --------- Crate & Towing ---------
    ----------------------------------
    bob = {
        enabled = true,
        height = 0.35, -- vertical sway in meters
        speed = 0.75, -- sway cycles per second
        tilt = 1.25, -- pitch/roll sway in degrees
    },
    tow = {
        attachDistance = 3.0, -- proximity radius (m) for the attach/cut text prompt
        secureTime = 120, -- seconds you must hold next to the crate (under fire) before the rope can be grabbed
    },

    ----------------------------------
    ------------- Guards -------------
    ----------------------------------

    guards = {
        enabled = true,
        boatModel = "dinghy5",
        pedModel = "s_m_y_blackops_01",
        pedWeapon = "WEAPON_CARBINERIFLE",
        boatCount = 3, -- guard boats spawned in a ring around the drop
        accuracy = 10, -- ped weapon hit chance (0-100), lower = miss more
        shootRate = 50, -- ped fire rate (0-1000); note: barely affects drive-by / mounted-gun firing
        health = 200,
    },

    ----------------------------------
    ------ Underwater & Sharks -------
    ----------------------------------

    underwater = {
        chance = 100, -- % chance an event also spawns the underwater layer
        searchTime = 5, -- seconds the search progress bar takes
        scuba = {
            item = "rebreather", -- usable item that grants underwater air and is required to search the wrecks
            duration = 120, -- seconds of air per use
        },
        wreckModels = { -- sunken junk to search
            "prop_rub_carwreck_9",
            "prop_rub_carwreck_8",
        },
        wreckAmount = {
            min = 3,
            max = 5,
        },
        searchPointsPerWreck = {
            min = 1,
            max = 3
        },
        shark = {
            enabled = true,
            amount = {
                min = 3,
                max = 5,
            },
            biteDamage = 20, -- damage per bite
            biteCooldown = 1500, -- ms between bites from the same shark
        }
    },

    ----------------------------------
    ------- Equipment & Spear --------
    ----------------------------------

    spear = {
        item = "speargun", -- usable inventory item; on use the weapon is handed to the player
    },

    ----------------------------------
    ---------- Maritime NPC ----------
    ----------------------------------

    npcOptions = {
        rentVehicles = {
            {
                model = "dinghy",
                price = 100,
            },
            {
                model = "seashark",
                price = 50,
            }
        },
        items = {
            {
                label = "Rebreather",
                name = "rebreather",
                price = 50,
            },
            {
                label = "Speargun",
                name = "speargun",
                price = 100,
            },
        },
        spawnCoords = { -- rent vehicles
            vector4(-1602.375, 5260.171, 0.120, 24.24)
        }
    },
}

----------------------------------
------------- Loot ---------------
----------------------------------

Config.seaBattle.lootSystem = {
    surface = {
        itemAmount = function() return math.random(3, 6) end,
        money = function() return math.random(5000, 15000) end,

        categories = {
            {
                name = "weapon",
                chance = 35,
                items = {
                    { itemName = "WEAPON_CARBINERIFLE", chance = 40, amount = function() return 1 end },
                    { itemName = "WEAPON_SMG", chance = 35, amount = function() return 1 end },
                    { itemName = "WEAPON_SNIPERRIFLE", chance = 18, amount = function() return 1 end },
                    { itemName = "WEAPON_RPG", chance = 7, amount = function() return 1 end },
                },
            },
            {
                name = "valuable",
                chance = 40,
                items = {
                    { itemName = "goldbar", chance = 50, amount = function() return math.random(1, 2) end },
                    { itemName = "diamond", chance = 35, amount = function() return 1 end },
                    { itemName = "artifact", chance = 15, amount = function() return 1 end },
                },
            },
            {
                name = "ammo",
                chance = 25,
                items = {
                    { itemName = "rifle_ammo", chance = 50, amount = function() return math.random(60, 120) end },
                    { itemName = "smg_ammo", chance = 30, amount = function() return math.random(60, 120) end },
                    { itemName = "sniper_ammo", chance = 20, amount = function() return math.random(10, 20) end },
                },
            },
        },
    },

    underwater = {
        itemAmount = function() return math.random(1, 3) end,
        money = function() return math.random(1000, 4000) end,

        categories = {
            {
                name = "salvage",
                chance = 60,
                items = {
                    { itemName = "scrap_metal", chance = 60, amount = function() return math.random(2, 5) end },
                    { itemName = "copper", chance = 30, amount = function() return math.random(1, 3) end },
                    { itemName = "electronics", chance = 10, amount = function() return 1 end },
                },
            },
            {
                name = "valuable",
                chance = 40,
                items = {
                    { itemName = "goldbar", chance = 60, amount = function() return 1 end },
                    { itemName = "diamond", chance = 40, amount = function() return 1 end },
                },
            },
        },
    },
}

----------------------------------
------------ Strings -------------
----------------------------------

Strings = {
    ["event_title"] = "Sea Battle",
    ["event_started"] = "A smuggler plane is dropping contraband at sea!",
    ["need_item"] = "You need: x%s %s",
    ["not_staff"] = "You are not allowed to do this.",
    ["no_slots"] = "Too many active operations right now.",
    ["not_enough_players"] = "Not enough players online for an operation.",
    ["spawn_occupied"] = "The boat spawn area is blocked.",

    ["add_item_log"] = "Player: %s\nIdentifier: %s\nItem: %s\nAmount: %s",
    ["add_money_log"] = "Player: %s\nIdentifier: %s\nMoney: $%s",
    ["start_log"] = "Started by: %s\nIdentifier: %s\nTrigger: %s\nEvent: %s",

    ["talk_to_contact"] = "Talk to Contact",
    ["rent_boat"] = "Rent Boat",
    ["rent_boat_desc"] = "Rent a boat to reach the open sea",
    ["buy_item"] = "Buy Item",
    ["buy_item_desc"] = "Dive gear and equipment",
    ["start_operation"] = "Start Operation",
    ["start_operation_desc"] = "Trigger a contraband sea drop",
    ["price"] = "Price: $%s",

    ["grab_rope"] = "[E] Grab Rope",
    ["cut_rope"] = "[E] Cut Rope",
    ["securing_rope"] = "Securing the rope...",
    ["tying_boat"] = "Tying to the boat...",
    ["cutting_rope"] = "Cutting the rope...",
    ["let_go_rope"] = "You let go of the rope.",
    ["attach_to_boat"] = "[E] Attach to boat  [X] Cancel",
    ["go_to_boat"] = "[X] Cancel  -  go to your boat",

    ["delivery_point"] = "Delivery Point",
    ["deliver_prompt"] = "[E] Deliver Crate",
    ["delivering"] = "Delivering...",
    ["delivered"] = "Contraband delivered! You earned $%s.",

    ["sunken_wreck"] = "Sunken Wreck",
    ["search_wreck"] = "[E] Search Wreck",
    ["searching_wreck"] = "Searching the wreck...",
    ["need_rebreather"] = "You need a rebreather to dive here.",
    ["salvaged"] = "Salvaged contraband! You found $%s.",
    ["shark_blip"] = "Shark",
    ["scuba_on"] = "Rebreather on.",
    ["scuba_depleted"] = "Rebreather air depleted.",
}

Heist Configuration

Last updated