⚙️Configuration

Here's a preview of all the config files of the script

server/config.lua
Server = {}

Server.discordWebhook = "" -- Add webhook for Discord logs https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks

-- With this function it is possible to add logging in the way you want! The function is called server side.
Server.writeLog = function(src, logLine)
    local identifier = GetPlayerIdentifiers(src)[1]
    exports["markhor_bridge"]:sendLog(Server.discordWebhook, "Markhor Containers", string.format("%s - %s", identifier, logLine))
end
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.targetDistance = 2.0 -- Change the distance from where target is triggered. Default: 2.0
Config.language = "EN" -- Choose Language -> "EN" / "NL".
Config.skinEvent = 'skinchanger:getSkin' -- Change this event to your own event name.
Config.skinLoadEvent = 'skinchanger:loadClothes' -- Event to update the clothes.
Config.item = {'tool'} -- Add here the item(s) that should be used to open a container.

Config.breakChance = 5 -- Percent chance of the items "breaking". 1 piece of each item in Config.item is removed
Config.requiredCopCount = 0 -- Number of agents required to open a container.
Config.alarmChance = 50 -- The probability percentage that an alarm will sound as soon as a container is opened.
Config.blipTimer = 15 -- Blip timer in seconds

-- Below is a time frame, within this IR time it is possible to open a container
-- These times are included in a 24-hour clock and therefore range from 00:00 to 23:59
-- We use the system time of the server on which the FiveM server is hosted
Config.useTimeFrame = true -- Once this value is set to false, a container can always be opened. This is then not linked to time
Config.startTimeFrame = "20:30" -- Containers can be opened starting at 8:30 PM
Config.endTimeFrame = "02:00" -- Containers cannot be opened after 2 AM

-- The jobs in Config.blacklistJobs are blacklisted for the option to open a container.
Config.blacklistJobs = {
    -- 'police',
    'army'
}

-- The jobs in Config.alertJobs are alerted when a container is opened.
Config.alertJobs = {
    'police',
    'army'
}

-- In Config.blips the blip settings can be adjusted for the alarm.
Config.blips = {
    alarm = {
        sprite = 161,
        scale = 2.0,
        colour = 3,
        flashes = true,
        text = "",
        time = Config.blipTimer,
        radius = 0,
    }
}

-- 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.
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.

-- In Config.rewards the reward for an container robbery can be set. Only money and items are possible, weapons are not.
-- The number/amount that the player gets is a random number between min and max.
-- The valueItem parameter specifies whether the item should have a specific value. You then get one item with a random number between min and max as value. [QBCORE only]
Config.rewards = {
    { type = 'item', label = 'Bread', item = 'bread', valueItem = false, min = 1, max = 5, percentage = 100},
    { type = 'item', label = 'Black Money', item = 'markedbills', valueItem = true, min = 50, max = 60, percentage = 100},
    { type = 'account', label = 'Bank', item = 'bank', valueItem = false, min = 300, max = 500, percentage = 100},
}

-- With this function it is possible to add a custom way to the police alert. The function is called server side.
Config.policeAlert = function(src, position)
    Config.blips.alarm.text = Language[Config.language].blipName
    exports["markhor_bridge"]:sendPoliceAlert(src, position, Language[Config.language].blipName, Language[Config.language].alarm, Config.blips.alarm, Config.alertJobs)
end

-- Add a container, make sure to copy all options. The only thing that needs to be adjusted is the "pos" and "heading", enter the coordinates of the container here.
Config['containers'] = {
    {
        pos = vector3(2930.38, 4322.7, 50.58), -- ONLY Change the pos coords
        heading = 295.70, -- ONLY Change the heading
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false}, -- Don't change the lock pos coords
        table = vector3(0.0, 0.0, 0.0), -- Don't change the table coords
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false}, -- Don't change golds pos coords
        } 
    },
    {
        pos = vector3(2710.55, 4334.88, 45.85), 
        heading = 213.74, 
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false},
        table = vector3(0.0, 0.0, 0.0),
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false},
        } 
    },
    {
        pos = vector3(1764.03, 3651.45, 34.49), 
        heading = 205.00, 
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false},
        table = vector3(0.0, 0.0, 0.0),
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false},
        } 
    },
    {
        pos = vector3(878.16, 2876.40, 56.70), 
        heading = 336.60, 
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false},
        table = vector3(0.0, 0.0, 0.0),
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false},
        }
    },
    {
        pos = vector3(1213.07, 2729.72, 38.01), 
        heading = 0.64, 
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false},
        table = vector3(0.0, 0.0, 0.0),
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false},
        } 
    },
    {
        pos = vector3(653.53, 681.99, 128.91), 
        heading = 337.00, 
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false},
        table = vector3(0.0, 0.0, 0.0),
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false},
        } 
    },
    {
        pos = vector3(-132.72, -1179.03, 25.29), 
        heading = 272.83, 
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false},
        guard = {pos = vector3(0.0, 0.0, 0.0)},
        table = vector3(0.0, 0.0, 0.0),
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false},
        } 
    },
    {
        pos = vector3(2615.16, 3270.87, 55.25), 
        heading = 61.74, 
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false},
        table = vector3(0.0, 0.0, 0.0),
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false},
        } 
    },
    {
        pos = vector3(2429.48, 3125.09, 48.14), 
        heading = 179.14, 
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false},
        table = vector3(0.0, 0.0, 0.0),
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false},
        } 
    },
    {
        pos = vector3(869.13, 2349.44, 51.70), 
        
        heading = 93.31, 
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false},
        table = vector3(0.0, 0.0, 0.0),
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false},
        } 
    },
    {
        pos = vector3(59.46, 152.27, 104.63), 
        heading = 159.88, 
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false},
        table = vector3(0.0, 0.0, 0.0),
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false},
        } 
    },
    {
        pos = vector3(490.73, -520.13, 24.75), 
        heading = 356.63, 
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false},
        table = vector3(0.0, 0.0, 0.0),
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false},
        } 
    },
    {
        pos = vector3(699.14, -1257.20, 26.16), 
        heading = 178.57, 
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false},
        table = vector3(0.0, 0.0, 0.0),
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false},
        } 
    },
    {
        pos = vector3(991.00, -1246.83, 25.36), 
        heading = 125.64, 
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false},
        table = vector3(0.0, 0.0, 0.0),
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false},
        } 
    },
    {
        pos = vector3(1336.86, -690.92, 66.24), 
        heading = 73.35, 
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false},
        table = vector3(0.0, 0.0, 0.0),
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false},
        } 
    },
    {
        pos = vector3(980.98, -85.12, 74.35), 
        heading = 46.40, 
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false},
        table = vector3(0.0, 0.0, 0.0),
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false},
        } 
    },
    {
        pos = vector3(857.93, -951.37, 26.28), 
        heading = 262.52, 
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false},
        table = vector3(0.0, 0.0, 0.0),
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false},
        } 
    },
    {
        pos = vector3(974.07, -1711.14, 30.19), 
        heading = 265.91, 
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false},
        table = vector3(0.0, 0.0, 0.0),
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false},
        } 
    },
    {
        pos = vector3(749.89, -1842.27, 29.29), 
        heading = 264.85, 
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false},
        table = vector3(0.0, 0.0, 0.0),
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false},
        } 
    },
    {
        pos = vector3(506.82, -2120.62, 5.92), 
        heading = 127.46, 
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false},
        table = vector3(0.0, 0.0, 0.0),
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false},
        } 
    },
    {
        pos = vector3(900.19, -2536.89, 28.29), 
        heading = 354.35, 
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false},
        table = vector3(0.0, 0.0, 0.0),
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false},
        } 
    },
    {
        pos = vector3(463.11, -3280.26, 6.07), 
        heading = 177.81, 
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false},
        table = vector3(0.0, 0.0, 0.0),
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false},
        } 
    },
    {
        pos = vector3(270.63, -3154.56, 5.79), 
        heading = 29.95, 
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false},
        table = vector3(0.0, 0.0, 0.0),
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false},
        } 
    },
    {
        pos = vector3(4.32, -2740.82, 6.00), 
        heading = 88.71, 
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false},
        table = vector3(0.0, 0.0, 0.0),
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false},
        } 
    },
    {
        pos = vector3(-472.42, -2682.03, 10.82), 
        heading = 42.21, 
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false},
        table = vector3(0.0, 0.0, 0.0),
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false},
        } 
    },
    {
        pos = vector3(-2625.95, 2950.25, 9.20), 
        heading = 301.66, 
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false},
        table = vector3(0.0, 0.0, 0.0),
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false},
        } 
    },
    {
        pos = vector3(-572.38, 5368.54, 70.23), 
        heading = 71.01, 
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false},
        table = vector3(0.0, 0.0, 0.0),
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false},
        } 
    },
    {
        pos = vector3(-180.68, 6308.90, 31.49), 
        heading = 62.22, 
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false},
        table = vector3(0.0, 0.0, 0.0),
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false},
        } 
    },
    {
        pos = vector3(1421.24, 6354.51, 23.99), 
        heading = 24.60, 
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false},
        table = vector3(0.0, 0.0, 0.0),
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false},
        } 
    },
    {
        pos = vector3(2192.37, 5577.04, 53.81), 
        heading = 0.68, 
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false},
        table = vector3(0.0, 0.0, 0.0),
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false},
        } 
    },
    {
        pos = vector3(3693.24, 4568.86, 25.14), 
        heading = 2.93, 
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false},
        table = vector3(0.0, 0.0, 0.0),
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false},
        } 
    },
    {
        pos = vector3(1732.34, 4777.00, 41.91), 
        heading = 257.77, 
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false},
        table = vector3(0.0, 0.0, 0.0),
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false},
        } 
    },
    {
        pos = vector3(59.29, 3701.27, 39.75), 
        heading = 145.46, 
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false},
        table = vector3(0.0, 0.0, 0.0),
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false},
        } 
    },
    {
        pos = vector3(662.82, 3496.82, 33.85), 
        heading = 273.83, 
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false},
        table = vector3(0.0, 0.0, 0.0),
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false},
        } 
    },
    {
        pos = vector3(2172.64, 3379.22, 45.40), 
        heading = 45.40, 
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false},
        table = vector3(0.0, 0.0, 0.0),
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false},
        } 
    },
    {
        pos = vector3(1562.48, 2183.65, 78.89), 
        heading = 90.07, 
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false},
        table = vector3(0.0, 0.0, 0.0),
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false},
        } 
    },
    {
        pos = vector3(1110.68, 46.78, 80.76), 
        heading = 86.99, 
        lock = {pos = vector3(0.0, 0.0, 0.0), taken = false},
        table = vector3(0.0, 0.0, 0.0),
        golds = {
            {pos = vector3(0.0, 0.0, 0.0), taken = false},
        } 
    }
}shared/shared/config.lua
language.lua
Language = {
	["EN"] = {
		["startCut"] = "Press ~INPUT_PICKUP~ to open the container",
		["startGather"] = "Press ~INPUT_PICKUP~ to collect the items",
		["targetLabel"] = "Open container",
		["targetLoot"] = "Get loot",
		["targetTooFar"] = "You're too far away!",
		["areCop"] = "You're a cop. You cannot open this container!",
		["needItem"] = "You need a %s",
		["itemBroke"] = "Your %s broke",
		["receivedAccount"] = "You have found ~r~$%i %s ~w~. ~g~Congratulations!",
		["receivedItem"] = "You have found ~r~%ix %s ~w~. ~g~Congratulations!",
		["inventoryFull"] = "Your inventory is full, so your %s is gone",
		["lessCops"] = "Too few cops to start the robbery!",
		["alarm"] = "A container has been opened!",
		["blipName"] = "Container robbery",
		["timeFrame"] = "A container can only be opened between 8:30 PM and 2:00 AM",

		["logOpenedContainer"] = "is opening a container. Coords: %s",
		["logReceivedAccount"] = "received $%s %s",
		["logReward"] = "received %s %s",
	},

	["NL"] = {
		["startCut"] = "Druk op ~INPUT_PICKUP~ om te slijpen",
		["startGather"] = "Druk op ~INPUT_PICKUP~ om de items te verzamelen",
		["targetLabel"] = "Open container",
		["targetLoot"] = "Get loot",
		["targetTooFar"] = "You're too far away!",
		["areCop"] = "Je bent een agent. Je kan deze container niet openen!",
		["needItem"] = "Je hebt een %s nodig",
		["itemBroke"] = "Jouw %s is kapot gegaan",
		["receivedAccount"] = "Je hebt ~r~$%i %s ~w~gevonden. ~g~Gefeliciteerd!",
		["receivedItem"] = "Je hebt ~r~%ix %s ~w~gevonden. ~g~Gefeliciteerd!",
		["inventoryFull"] = "Je inventory zit vol, hierdoor is je %s verdwenen",
		["lessCops"] = "Te weinig agenten om de overval te starten!",
		["alarm"] = "Er is een container geopend!",
		["blipName"] = "Container overval",
		["timeFrame"] = "Een container kan alleen tussen 20:30 uur en 02:00 uur worden geopend",

		["logOpenedContainer"] = "is een container aan het openen. Coords: %s",
		["logReceivedAccount"] = "ontving $%s %s",
		["logReward"] = "ontving %s %s",
	}
}
main.lua
ContainerAnimation = {
    ['objects'] = {
        'tr_prop_tr_grinder_01a',
        'ch_p_m_bag_var02_arm_s'
    },
    ['animations'] = {
        {'action', 'action_container', 'action_lock', 'action_angle_grinder', 'action_bag'}
    },
    ['scenes'] = {},
    ['sceneObjects'] = {}
}

GrabGold = {
    ['objects'] = {
        'hei_p_m_bag_var22_arm_s'
    },
    ['animations'] = {
        {'enter', 'enter_bag'},
        {'grab', 'grab_bag', 'grab_gold'},
        {'grab_idle', 'grab_idle_bag'},
        {'exit', 'exit_bag'},
    },
    ['scenes'] = {},
    ['scenesObjects'] = {}
}

Last updated