Configuration
All configuration lives in the config/ folder. None of these files is encrypted.
| File | Contents |
|---|---|
config/config.lua | General, admin, currencies, organizations, ranks, treasury, levels, XP, lab slots, interaction, police |
config/config_labs.lua | Interiors, lab types, upgrades, production, lab shop, missions, street sales, heat, lending, quality, wars, contracts. See Labs and production and Sales, police and wars |
config/config_integrations.lua | Inventory, stash, garage, wardrobe, dispatch. See Integrations |
config/config_server.lua | Discord webhooks (server only) |
General
Config.Framework = 'auto' -- 'esx' | 'qb' | 'qbox' | 'auto'
Config.Locale = 'en' -- 'en' | 'es' | 'de' | 'fr' | 'it' | 'pt'
Config.AutoInstallSQL = true -- create / update the tables on start
Config.NotifySystem = 'kyoNotify' -- 'default' | 'kyoNotify' | 'okok_notify' | 'vms_notifyV2'
Config.Debug = false
Config.AccentColor = '#E8B04B' -- accent colour of the interface
Admin
Config.Admin = {
Commands = { 'admineb', 'adminempirebuilder' },
AcePermission = 'kyo.empire.admin',
Identifiers = {
-- 'license:xxxxxxxx',
},
}
A player is an admin if they have the ACE permission or one of the listed identifiers (license:, steam:, discord:…).
Currencies
Every price in the script points to a currency by its key.
Config.Currencies = {
cash = { type = 'account', name = 'money', label = 'Cash' },
bank = { type = 'account', name = 'bank', label = 'Bank' },
dirty = { type = 'account', name = 'black_money', label = 'Dirty money' },
-- vip_item = { type = 'item', name = 'vip_coin', label = 'VIP coins' },
-- vip_export = { type = 'export', resource = 'kyoVip', get = 'GetCoins', remove = 'RemoveCoins', label = 'VIP coins' },
}
| Type | Meaning |
|---|---|
account | A framework account. Use the ESX names (money, bank, black_money); on QBCore / Qbox they are translated with Config.QBMoney |
item | An inventory item, for example a VIP coin |
export | Another resource. get(src) must return a number and remove(src, amount) must return true / false |
QBCore / Qbox money
Config.QBMoney = {
money = 'cash',
bank = 'bank',
black_money = 'crypto',
}
Use a money type (cash, bank, crypto) or 'item:<name>' for an inventory item, for example black_money = 'item:black_money' with ox_inventory.
Organizations
Config.Orgs = {
Purchasable = true, -- false = only admins create organizations
Price = 500000,
Currency = 'bank',
BuyAtNPC = true, -- buy at the NPC
BuyCommand = 'buyorg', -- false = no command, NPC only
ShopNPC = {
model = 'a_m_m_hasjew_01',
coords = vector4(-1.3542, -1814.5032, 29.1500, 228.0),
scenario = 'WORLD_HUMAN_STAND_IMPATIENT',
blip = { enabled = true, sprite = 500, color = 2, scale = 0.75, label = 'Underground Contact' },
},
NameMinLength = 3,
NameMaxLength = 24,
PanelCommand = 'org', -- false = the panel only opens at the boss point
BossPoints = { ... }, -- see below
MaxMembers = 30,
InviteTimeout = 60, -- seconds to accept an invite
DefaultRanks = { ... }, -- ranks created with every new organization
MaxRanks = 10,
}
Fully IC servers: set
BuyCommand = falseandPanelCommand = false. Organizations are bought at the NPC and the panel only opens at the boss point.
Boss points
Lets the owner decide whether bosses can create, move and delete their own points (boss panel, stash, garage, wardrobe).
BossPoints = {
Enabled = true, -- false = only admins place points
Types = { 'boss', 'stash', 'garage', 'wardrobe' },
OnePerType = true, -- one of each type outside, and one of each inside every lab
InsideLabs = true, -- bosses can also place points inside their own labs
Price = 25000, -- cost to place or move a point, from the treasury (0 = free)
MinDistanceOtherOrgs = 25.0, -- metres away from other organizations' points (0 = no limit)
Command = 'org', -- used only when PanelCommand = false
},
- With
PanelCommandset, the boss gets a Points tab in the panel. - With
PanelCommand = false,Commandopens only the points screen, and only for bosses. This lets a boss who bought the organization at the NPC place the first boss point without an admin. Set it tofalsetoo and an admin has to place the first boss point. - Points are placed where the boss stands. Moving costs the same as placing; deleting is free.
- A point cannot be moved between outside and a lab. It has to be deleted and placed again.
Default ranks
DefaultRanks = {
{ name = 'Boss', boss = true },
{ name = 'Lieutenant', perms = { 'invite', 'kick', 'lab_enter', 'lab_collect', 'lab_supplies', 'lab_upgrade', 'stash', 'garage', 'wardrobe', 'treasury_deposit', 'missions', 'war_assault' } },
{ name = 'Soldier', perms = { 'lab_enter', 'lab_collect', 'lab_supplies', 'stash', 'garage', 'wardrobe', 'treasury_deposit', 'missions', 'war_assault' } },
{ name = 'Recruit', perms = { 'lab_enter', 'wardrobe', 'missions' } },
},
The boss rank has every permission. The boss can edit, create and reorder ranks later.
Rank permissions
| Permission | Allows |
|---|---|
invite | Invite players |
kick | Kick members |
manage_ranks | Create, edit and reorder ranks |
lab_enter | Enter the organization’s labs |
lab_collect | Collect product |
lab_supplies | Add supplies (ingredients or purchase) |
lab_upgrade | Buy lab upgrades |
lab_lend | Lend labs to other organizations |
lab_buy | Buy and sell labs |
stash | Use the stash |
garage | Use the garage |
wardrobe | Use the wardrobe |
treasury_deposit | Deposit into the treasury |
treasury_withdraw | Withdraw from the treasury |
missions | Start supply and sale missions |
war_declare | Declare war |
war_assault | Force and loot rival labs during a war |
Treasury
Config.Treasury = {
Currency = 'dirty', -- account used for deposits and withdrawals
MinDeposit = 1000,
}
Levels and XP
Config.Levels = {
{ xp = 0, maxLabs = 1 },
{ xp = 2500, maxLabs = 1 },
{ xp = 7500, maxLabs = 2 },
-- ...
{ xp = 400000, maxLabs = 6 },
}
Config.XP = {
PerProduct = 1, -- per unit produced
PerSaleMission = 150,
PerStreetSale = 4,
PerSupplyMission = 120,
Territories = { -- kyoGangTerritories (optional)
Enabled = true,
Resource = 'kyoGangTerritories',
PerZonePerHour = 60,
},
}
maxLabs is how many lab slots an organization may open at that level. Opening a slot is paid:
Config.LabSlots = {
Currency = 'dirty',
Prices = { 0, 750000, 1500000, 3000000, 5000000, 8000000 },
}
kyoGangTerritories
An admin links an organization to a gang (job name) in Admin panel > Organizations. Every hour the organization earns PerZonePerHour XP for every zone that gang holds.
Interaction
Config.Target = 'auto' -- 'auto' | 'ox_target' | 'qb-target' | 'none' (E key)
Config.InteractKey = 38 -- E
Config.DrawDistance = 12.0
Config.InteractDistance = 1.6
Config.Marker = { type = 1, size = vector3(0.8, 0.8, 0.35), color = { 232, 176, 75, 140 } }
Police
Config.Police = {
Jobs = { 'police', 'sheriff' },
RequireDuty = true, -- QBCore / Qbox on-duty flag (ESX has none)
RamItem = 'police_ram',
BreachTime = 12, -- seconds
}
Config.ExcludedJobs = { police = true, sheriff = true } -- never see criminal blips
Discord webhooks
config/config_server.lua is loaded only on the server.
Config.Webhooks = {
Name = 'kyoEmpireBuilder',
Avatar = '',
Urls = {
orgs = '', -- organizations, members, ranks
treasury = '', -- deposits, withdrawals, purchases
labs = '', -- labs bought / sold / upgraded, production collected
lending = '', -- lending offers and agreements
missions = '', -- supply / sale missions and stolen cargo
police = '', -- raids
wars = '', -- wars and assaults
admin = '', -- everything done from /admineb
},
}
Leave a URL empty to disable that category.