config.lua
Preview File Updated: v1.0.0 - 01/20/2026
Config = {}
-- Framework Configuration
Config.AutoDetectFramework = true -- Set to false to manually select framework below
Config.Framework = 'esx' -- Options: 'esx', 'qb-core', 'qbx-core'
-- Notification System
Config.Notification = 'ox_lib' -- Options: 'ox_lib', 'esx', 'qb'
-- UI System
Config.UISystem = 'ox_lib' -- Options: 'ox_lib', 'esx', 'qb'
-- Interaction System
Config.Interaction = {
Method = 'ox_lib', -- Options: 'ox_lib', 'ox_target', 'qb-target'
Distance = 2.5
}
-- Job Restrictions (Leave empty table {} for no restrictions)
Config.AllowedJobs = {
-- Example ESX: ['police'] = false, -- Police cannot access blackmarket
-- Leave empty for everyone to access
-- For ESX: Use job names from your database
-- For QBCore: Use job names from your qb-core
}
-- Gang Restrictions (ESX Only - for gang frameworks)
Config.AllowedGangs = {
-- Example: ['ballas'] = true, -- Ballas gang can access
-- Leave empty for everyone to access or if not using gangs
}
-- Item Whitelist (if you want to require specific items to access)
Config.RequiredItems = {
-- Example: ['blackmarket_membership'] = true, -- Requires membership card
-- Leave empty for no item requirement
}
-- Logging Settings
Config.Logging = {
enable = true, -- Enable logging
webhook = '', -- Discord webhook URL for logs
console = true, -- Print logs to server console
logPurchases = true, -- Log all purchases
logEntries = true, -- Log entries/exits
logExploits = true -- Log exploit attempts
}
-- Blackmarket Configuration
Config.Blackmarket = {
-- Black money account name
BlackMoneyAccount = 'black_money', -- ESX: 'black_money', QBCore/QBox: 'markedbills'
-- Entrance/Exit Locations
EnterLocation = vector3(891.9625, -2205.6714, 30.5094), -- NEW: Outside location
ExitLocation = vector3(576.4731, -410.5549, -69.6470), -- Inside blackmarket location
Heading = 47.3778, -- Heading for when player exits back to entrance
-- Enter Animation Settings
KnockAnimation = {
enabled = true,
duration = 5000, -- milliseconds for knocking animation
enterDuration = 3000, -- milliseconds for entering animation
knockDict = 'timetable@jimmy@doorknock@',
knockAnim = 'knockdoor_idle',
enterDict = 'missheistfbi3b_ig7',
enterAnim = 'lift_fibagent_loop'
},
-- NPCs
WeaponsNPC = {
model = 's_m_y_dealer_01',
coords = vector3(575.0848, -450.1853, -70.6469),
heading = 90.1680
},
ToolsNPC = {
model = 'ig_trafficwarden',
coords = vector3(574.2350, -439.6049, -70.5068),
heading = 4.4397,
name = 'Illegal Tools Dealer'
},
-- Items for sale
Weapons = {
{
category = 'Pistols',
items = {
{name = 'WEAPON_PISTOL', label = 'Pistol', price = 5000},
{name = 'WEAPON_COMBATPISTOL', label = 'Combat Pistol', price = 7500},
}
},
{
category = 'SMGs',
items = {
{name = 'WEAPON_MICROSMG', label = 'Micro SMG', price = 15000},
{name = 'WEAPON_SMG', label = 'SMG', price = 20000},
}
},
{
category = 'Shotguns',
items = {
{name = 'WEAPON_PUMPSHOTGUN', label = 'Pump Shotgun', price = 25000},
{name = 'WEAPON_SAWNOFFSHOTGUN', label = 'Sawed-Off Shotgun', price = 18000},
}
},
{
category = 'Rifles',
items = {
{name = 'WEAPON_ASSAULTRIFLE', label = 'Assault Rifle', price = 35000},
{name = 'WEAPON_CARBINERIFLE', label = 'Carbine Rifle', price = 40000},
}
}
},
Ammo = {
{name = 'pistol_ammo', label = 'Pistol Ammo', price = 100},
{name = 'smg_ammo', label = 'SMG Ammo', price = 200},
{name = 'shotgun_ammo', label = 'Shotgun Ammo', price = 250},
{name = 'rifle_ammo', label = 'Rifle Ammo', price = 300},
},
Attachments = {
{name = 'pistol_suppressor', label = 'Pistol Suppressor', price = 1500},
{name = 'smg_suppressor', label = 'SMG Suppressor', price = 2000},
{name = 'rifle_suppressor', label = 'Rifle Suppressor', price = 3000},
{name = 'pistol_scope', label = 'Pistol Scope', price = 1200},
{name = 'smg_scope', label = 'SMG Scope', price = 2500},
{name = 'rifle_scope', label = 'Rifle Scope', price = 5000},
},
-- Illegal Tools
IllegalTools = {
{name = 'lockpick', label = 'Lockpick', price = 500},
{name = 'advancedlockpick', label = 'Advanced Lockpick', price = 1500},
{name = 'handcuffs', label = 'Handcuffs', price = 800},
{name = 'thermite', label = 'Thermite', price = 3000},
{name = 'c4', label = 'C4 Explosive', price = 10000},
{name = 'armor', label = 'Bulletproof Vest', price = 2000},
{name = 'drill', label = 'Advanced Drill', price = 7500},
{name = 'hacking_device', label = 'Hacking Device', price = 12000},
{name = 'bag', label = 'Duffle Bag', price = 1500},
{name = 'rope', label = 'Rope', price = 600},
{name = 'blowtorch', label = 'Blowtorch', price = 3500},
{name = 'bolt_cutter', label = 'Bolt Cutter', price = 2200}
}
}
-- Language Configuration
Config.Language = {
-- Notifications
notEnoughBlackMoney = 'Not enough black money! Need $%s',
notEnoughSpace = 'Not enough inventory space!',
purchaseSuccessful = 'Purchased %sx %s for $%s black money',
-- ox_target/QB-Target Labels (clean labels without [E])
enterBlackmarket = 'Knock on Door',
exitBlackmarket = 'Exit Blackmarket',
buyWeapons = 'Weapons Dealer',
buyIllegalTools = 'Illegal Tools Dealer',
-- ox_lib TextUI (Shows [E] prompt)
textuiEnterBlackmarket = '[E] Knock on Door',
textuiExitBlackmarket = '[E] Exit Blackmarket',
textuiBuyWeapons = '[E] Weapons Dealer',
textuiBuyIllegalTools = '[E] Illegal Tools Dealer',
-- Progress Bar/Animation Text
weaponsDealer = 'Weapons Dealer',
illegalToolsDealer = 'Illegal Tools Dealer',
knockingOnDoor = 'Knocking on door...',
enteringBlackmarket = 'Entering blackmarket...',
negotiating = 'Negotiating with dealer...',
purchaseCancelled = 'Purchase cancelled',
exploitDetected = 'Exploit detected!',
mustBeInside = 'You must be inside the blackmarket!',
knockSuccess = 'Door opened, entering...',
doorLocked = 'The door appears to be locked... try again',
-- Menu Titles
weaponsDealerMenu = 'Weapons Dealer',
illegalToolsDealerMenu = 'Illegal Tools Dealer',
weaponCategoriesMenu = 'Weapon Categories',
-- Additional messages
enteredBlackmarket = 'You entered the blackmarket',
leftBlackmarket = 'You left the blackmarket',
npcsRespawned = 'NPCs respawned',
notInBlackmarket = 'You are not in the blackmarket',
frameworkNotLoaded = 'Framework not loaded yet',
knockingCancelled = 'Knocking cancelled',
waitCooldown = 'Wait %s seconds before trying again'
}
-- Debug Mode
Config.Debug = false
-- Anti-exploit settings
Config.AntiExploit = {
cooldownTime = 1500, -- 1.5 seconds between purchases
maxPurchaseQuantity = 50, -- Max items per purchase
requireInsideFlag = false, -- Set to false so anyone can exit from inside
blackmarketRadius = 50.0, -- Radius around blackmarket center (for exit detection)
kickOnExploit = true -- Kick players who try to exploit
}
-- Map Blip Configuration (Optional)
Config.Blip = {
enable = true,
coords = vector3(891.9625, -2205.6714, 30.5094), -- Same as entrance
sprite = 110, -- Gun store blip
color = 1, -- Red
scale = 0.8,
name = 'Blackmarket'
}Last updated