Configuration
Framework Settings
-- Use "esx" or "qb"
Config.Framework = "qb"
-- If you are using one of the most recent versions of ESX, set the script name. Default = "es_extended"
Config.ESXExport = ""
-- Default ESX: "esx:getSharedObject" | Default QB: "qb-core"
Config.Core = "qb-core"
-- oxmysql, mysql-async or ghmattisql
Config.Mysql = "oxmysql"
General Settings
-- Waiting time to update the gang map (milliseconds)
Config.updateMapTimer = 10000
-- Points needed by the gang to pass each level
Config.PointsToNextLevel = 1500
-- Only the leader can deposit or withdraw money
Config.OnlyLeaderDW = true
-- Font type for floating alerts. Set to 0 for Chinese language
Config.alertTextFont = 4
-- Amount to be added hourly to the cash balance of the stores to be extorted
Config.CollectMoneyAmountPerHour = 60
-- Multiplier of the amount to be generated each hour by the stores
Config.CollectMoneyMultiplier = 2
-- Enable / Disable the use of garages for gangs
Config.useGarages = true
-- Enable / Disable the use of stash
Config.useStash = true
-- Enable / Disable the use of lockers
Config.useLockers = false
-- Maximum number of members allowed in a gang
Config.maxMembers = 8
-- Active if you want to use cron to trigger the actions
Config.useCron = true
-- If the previous option is activated. Hours at which actions will start for the gangs
Config.cronHours = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24}
Gang Features
Garage Integration
Configure the trigger for your garage script:
function openGarage(gangname, location)
-- Example with bit-garage
-- TriggerEvent("bit-garage:open", gangname)
end
Stash Integration
Configure your inventory script trigger to create a stash:
function openStash(gangname, location)
-- Example
-- TriggerServerEvent("inventory:server:OpenInventory", "stash", gangname)
-- TriggerEvent("inventory:client:SetCurrentStash", gangname)
end
Locker Integration
Configure your inventory script trigger to create a locker (optional):
function openLocker(gangname, location)
-- Your locker integration here
end
Gang Actions
Enable/disable specific gang activities:
Actions.Graffiti = true
Actions.CollectMoney = true
Actions.DrugDealing = true
Actions.ContractKilling = true
Actions.ContractKillingCommand = "gangkill"
Actions.Smuggling = true
Actions.SmugglingCommand = "gangsmuggling"
Actions.IllegalPeople = true
Actions.IllegalPeopleCommand = "gangpeople"
Points Configuration
Edit the amount of points to be awarded for each action:
Points.graffiti = 20
Points.graffitiText = "Graffiti creation"
Points.collectMoney = 30
Points.collectMoneyText = "Collect money from store"
Points.drugDealing = 50
Points.drugDealingText = "Drug dealing"
Points.contractKilling = 75
Points.contractKillingText = "Contract of murder fulfilled"
Points.smuggling = 50
Points.smugglingText = "Smuggling of goods"
Points.illegalPeople = 75
Points.illegalPeopleText = "Transportation of illegal people"
Action Options
Drug Dealing
-- Money given to the user when selling drugs (random between min and max)
AO.drugDealingAmount = math.random(50, 200)
-- Percentage of possibility to notify the police
AO.drugDealingPolice = 100
-- Allowed drugs to sell (enter the name of the item)
AO.allowedDrugs = {'weed_white-widow', 'cocaine', 'lsd'}
Contract Killing
-- Money given at the end of the murder contract
AO.contractKillingAmount = math.random(50, 200)
-- Activate if you want the police to be notified when the target is killed
AO.contractKillingPolice = true
Smuggling
-- Money given at the end of the smuggling
AO.smugglingAmount = math.random(50, 200)
-- Prop of the contraband item
AO.smugglingProp = "ex_office_swag_drugbag2"
-- Activate if you want the police to be notified when the shipment is picked up
AO.smugglingPolice = true
Illegal People Transportation
-- Money given at the end of the transport of illegal persons
AO.illegalPeopleAmount = math.random(50, 200)
-- Final point of delivery of illegal persons
AO.illegalPeopleFinalLocation = vector3(555.93, -1797.35, 29.2)
-- Activate if you want the police to be alerted when the player reaches the illegal persons
AO.illegalPeoplePolice = true
Police Dispatch
Configure your dispatch system for police alerts:
function alertDispatch(location, action, message)
-- Example with cd_dispatch:
--[[local data = exports['cd_dispatch']:GetPlayerInfo()
TriggerServerEvent('cd_dispatch:AddNotification', {
job_table = {'police', },
coords = data.coords,
title = action,
message = message,
flash = 0,
unique_id = data.unique_id,
sound = 1,
blip = {
sprite = 431,
scale = 1.2,
colour = 3,
flashes = false,
text = action,
time = 5,
radius = 0,
}
})]]
end
Markers
Marker = {
mtype = 23,
-- RGB COLOR:
r = 11,
g = 236,
b = 188
}
Spray Configuration
Config.sprayPersist = 2 -- Hours the spray will remain
Config.progressBarDuration = 20000 -- Duration to create graffiti (ms)
Config.sprayRemoveDuration = 20000 -- Duration to remove graffiti (ms)
Config.blacklist = {'nigger', 'nazi', 'moron', 'retard', 'faggot'} -- Blacklisted words
Notifications
function notifications(notitype, message, time)
-- Change this trigger for your notification system
TriggerEvent('codem-notification', message, time, notitype)
end
-- Notifications types:
Noti.info = 'info'
Noti.check = 'check'
Noti.error = 'error'
-- Notification time:
Noti.time = 5000
Webhooks
-- Discord webhook for logging actions
WH.Action = ""
-- Discord webhook for operations
WH.Operations = ""
-- Discord webhook for drug sales
WH.SellDrug = ""
Server Functions
Configure server-side functions for your framework:
-- Give money to player
function giveMoney(playerID, amount)
if Config.Framework == "esx" then
local xPlayer = ESX.GetPlayerFromId(playerID)
xPlayer.addAccountMoney('cash', amount)
else
local xPlayer = QBCore.Functions.GetPlayer(playerID)
xPlayer.Functions.AddMoney('cash', amount, "Gangs")
end
end
-- Get player money
function getMoney(playerID)
-- Returns player's money
end
-- Remove money from player
function removeMoney(playerID, amount)
-- Removes money from player
end
-- Get player identifier
function getIdentifier(playerID)
-- Returns player identifier
end
-- Get player username
function getUsername(playerID)
-- Returns player name
end
-- Check if player has item
function checkItem(playerID, item)
-- Returns true/false
end
-- Check item amount
function checkItemAmount(playerID, item)
-- Returns item count
end
-- Remove item from player
function removeItem(playerID, item, amount)
-- Removes item from inventory
end
[!WARNING] Don't touch the first line of the configuration file:
Config, Lang, Noti, WH, Points, Actions, AO = {}, {}, {}, {}, {}, {}, {}