Configuration
Complete reference for all configuration options in oxide-blackmarket.
Complete reference for all configuration options in oxide-blackmarket.
Config File: shared/config.lua
Core Settings
Basic resource configuration.
| Setting | Type | Default | Description |
|---|---|---|---|
Config.Debug | boolean | false | Enable debug console output |
Config.RelocationInterval | number | 2700000 | Dealer relocation time in ms (45 min) |
Config.DealerWeapon | string | 'WEAPON_PISTOL' | Dealer's default weapon |
Config.DealerModel | string | 's_m_y_dealer_01' | Ped model for dealer |
Config.Debug = false
Config.RelocationInterval = 45 * 60 * 1000 -- 45 minutes
Config.DealerWeapon = 'WEAPON_PISTOL'
Config.DealerModel = 's_m_y_dealer_01'
Blip Settings
Configure the proximity-based blip discovery system.
| Setting | Type | Default | Description |
|---|---|---|---|
Config.BlipDetectionRange | number | 200.0 | Distance to trigger blip flash |
Config.BlipDuration | table | See below | Blip visibility duration by tier (ms) |
Config.BlipCooldown | number | 120000 | Cooldown between flashes (2 min) |
Config.BlipSprite | number | 140 | Blip icon (dollar sign) |
Config.BlipColor | number | 1 | Blip color (red) |
Config.BlipDetectionRange = 200.0
Config.BlipDuration = {
[0] = 3000, -- Unknown: 3 seconds
[1] = 4000, -- Street: 4 seconds
[2] = 5000, -- Connected: 5 seconds
[3] = 6000, -- Trusted: 6 seconds
[4] = 10000, -- Inner Circle: 10 seconds
}
Config.BlipCooldown = 120000
Config.BlipSprite = 140
Config.BlipColor = 1
Reputation Settings
Configure the reputation/tier system.
| Setting | Type | Default | Description |
|---|---|---|---|
Config.KillPenalty | number | 500 | Rep lost for killing dealer |
Config.KillPenalty = 500
Tier Definitions:
| Tier | Name | Min Rep |
|---|---|---|
| 0 | Unknown | 0 |
| 1 | Street | 100 |
| 2 | Connected | 300 |
| 3 | Trusted | 600 |
| 4 | Inner Circle | 1000 |
Config.Tiers = {
[0] = { name = 'Unknown', minRep = 0 },
[1] = { name = 'Street', minRep = 100 },
[2] = { name = 'Connected', minRep = 300 },
[3] = { name = 'Trusted', minRep = 600 },
[4] = { name = 'Inner Circle', minRep = 1000 },
}
Pager Settings
Configure the burner pager item.
| Setting | Type | Default | Description |
|---|---|---|---|
Config.PagerSuccessChance | table | See below | Success rate by tier |
Config.PagerCooldown | number | 300000 | Cooldown in ms (5 min) |
Config.PagerSuccessChance = {
[2] = 0.40, -- 40% at Tier 2
[3] = 0.70, -- 70% at Tier 3
[4] = 1.00, -- 100% at Tier 4
}
Config.PagerCooldown = 300000
Pager Behavior by Tier:
| Tier | Success Rate | Result |
|---|---|---|
| 2 | 40% | General area name |
| 3 | 70% | General area name |
| 4 | 100% | Exact location + phone email + waypoint |
Phone notifications at Tier 4 are handled automatically via Community Bridge, which supports multiple phone systems (lb-phone, qb-phone, etc.).
Police/Arrest Settings
Configure police interaction mechanics.
| Setting | Type | Default | Description |
|---|---|---|---|
Config.ArrestReward | number | 5000 | Cash reward to arresting officer |
Config.DepartmentCut | number | 2500 | Society fund deposit |
Config.ArrestRespawnDelay | number | 900000 | Respawn delay after arrest (15 min) |
Config.DeathRespawnDelay | number | 600000 | Respawn delay after death (10 min) |
Config.SubduedDeathPayout | number | 500 | Society payout if surrendered dealer killed |
Config.ArrestDistance | number | 3.0 | Max distance to show arrest prompt |
Config.PoliceJobs | table | See below | Job names allowed to arrest dealer |
Config.ArrestReward = 5000
Config.DepartmentCut = 2500
Config.ArrestRespawnDelay = 900000 -- 15 minutes
Config.DeathRespawnDelay = 600000 -- 10 minutes
Config.SubduedDeathPayout = 500
Config.ArrestDistance = 3.0
Config.PoliceJobs = { 'police', 'sheriff', 'bcso', 'sast', 'sasp' }
Customizing Police Jobs: Add or remove job names from Config.PoliceJobs to control which jobs can arrest the dealer and trigger surrender mechanics.
Dispatch Alert Settings
Configure police dispatch alerts. These use Community Bridge's dispatch system, which supports ps-dispatch, cd_dispatch, and many others automatically.
| Setting | Type | Description |
|---|---|---|
Config.DispatchAlerts.transaction | table | Alert on buy/sell transactions |
Config.DispatchAlerts.proximity | table | Alert when police get near dealer |
Each alert type has these fields:
| Field | Type | Description |
|---|---|---|
enabled | boolean | Enable/disable this alert type |
chance | number | Probability (0.0 - 1.0) per trigger |
message | string | Alert message text |
code | string | Police code (e.g., '10-31') |
icon | string | Font Awesome icon class |
time | number | Blip duration on map (ms) |
blip | table | { sprite, color, scale } |
Config.DispatchAlerts = {
transaction = {
enabled = true,
chance = 0.15, -- 15% chance per transaction
message = 'Anonymous tip: possible illegal exchange in progress',
code = '10-31',
icon = 'fas fa-exchange-alt',
time = 30000,
blip = {
sprite = 161,
color = 1,
scale = 0.8,
}
},
proximity = {
enabled = true,
chance = 0.10, -- 10% chance
range = 150.0, -- Detection range
message = 'Reports of a suspicious individual in the area',
code = '10-66',
icon = 'fas fa-eye',
time = 30000,
blip = {
sprite = 161,
color = 1,
scale = 0.8,
}
},
}
Death & Cleanup Settings
Configure dealer death behavior.
| Setting | Type | Default | Description |
|---|---|---|---|
Config.BodyFadeDelay | number | 45000 | Time before body fades (45 sec) |
Config.DeathNotifyRadius | number | 500.0 | Notification radius |
Config.DeathNotifyMinTier | number | 1 | Min tier to receive notification |
Config.BodyFadeDelay = 45000
Config.DeathNotifyRadius = 500.0
Config.DeathNotifyMinTier = 1
Loot Drop Settings
Configure loot drops on dealer death.
| Setting | Type | Default | Description |
|---|---|---|---|
Config.LootDropEnabled | boolean | true | Enable loot drops |
Config.LootCashMin | number | 500 | Minimum cash drop |
Config.LootCashMax | number | 2500 | Maximum cash drop |
Config.LootStockPercent | number | 0.3 | Percent of stock that drops (30%) |
Config.LootMaxItems | number | 5 | Max item types to drop |
Config.LootBagModel | string | 'prop_cs_heist_bag_01' | Loot bag prop model |
Config.LootBagDespawnTime | number | 300000 | Despawn time (5 min) |
Config.LootDropEnabled = true
Config.LootCashMin = 500
Config.LootCashMax = 2500
Config.LootStockPercent = 0.3
Config.LootMaxItems = 5
Config.LootBagModel = 'prop_cs_heist_bag_01'
Config.LootBagDespawnTime = 300000
Target Interaction Settings
Configure target system interactions. The target system (qb-target, ox_target, etc.) is detected automatically by Community Bridge.
| Setting | Type | Default | Description |
|---|---|---|---|
Config.TargetDistance | number | 2.5 | Interaction distance |
Config.TargetIcon | string | 'fas fa-handshake' | Font Awesome icon |
Config.TargetLabel | string | 'Trade with Dealer' | Interaction label |
Config.TargetDistance = 2.5
Config.TargetIcon = 'fas fa-handshake'
Config.TargetLabel = 'Trade with Dealer'
Hit Squad Settings
Configure hit squad retaliation.
| Setting | Type | Default | Description |
|---|---|---|---|
Config.HitSquadEnabled | boolean | true | Enable hit squad |
Config.HitSquadEscapeDistance | number | 500.0 | Distance to escape |
Config.HitSquadCheckInterval | number | 1000 | AI check frequency (ms) |
Config.HitSquadFootEngageDistance | number | 50.0 | Distance for on-foot combat |
Config.HitSquadDriveSpeed | number | 80.0 | Vehicle chase speed |
Config.HitSquadDifficulty | string | 'medium' | Difficulty preset |
Config.HitSquadCombatMovement | number | 2 | Combat movement style (0=stationary, 1=defensive, 2=offensive, 3=suicidal) |
Config.HitSquadCombatRange | number | 2 | Combat range (0=near, 1=medium, 2=far) |
Config.HitSquadEnabled = true
Config.HitSquadEscapeDistance = 500.0
Config.HitSquadCheckInterval = 1000
Config.HitSquadFootEngageDistance = 50.0
Config.HitSquadDriveSpeed = 80.0
Config.HitSquadDifficulty = 'medium' -- 'easy', 'medium', 'hard'
Config.HitSquadCombatMovement = 2
Config.HitSquadCombatRange = 2
Vehicle Options:
Config.HitSquadVehicles = {
'sultan',
'sultan2',
'oracle',
'oracle2',
'schafter2',
'tailgater',
}
Ped Models:
Config.HitSquadPedModels = {
'a_m_m_business_01',
'a_m_y_business_01',
'a_m_y_business_02',
'a_m_m_soucent_01',
'g_m_m_mexboss_01',
}
Weapons by Difficulty:
| Difficulty | Weapons |
|---|---|
| Easy | 4x WEAPON_PISTOL |
| Medium | WEAPON_PISTOL50, 2x WEAPON_SMG, WEAPON_PUMPSHOTGUN |
| Hard | WEAPON_COMBATPISTOL, 2x WEAPON_ASSAULTRIFLE, WEAPON_CARBINERIFLE |
Combat Ability by Difficulty:
| Difficulty | Combat Ability (0-100) |
|---|---|
| Easy | 50 |
| Medium | 75 |
| Hard | 100 |
Dealer Surrender/Flee Settings
Configure dealer behavior when confronted by police.
| Setting | Type | Default | Description |
|---|---|---|---|
Config.FleeDistanceThreshold | number | 8.0 | Distance for flee chance trigger |
Config.FleeChance | number | 0.35 | 35% chance to flee per check |
Config.FleeCheckInterval | number | 1000 | Check interval in ms |
Config.SurrenderCooldownTime | number | 1000 | Cooldown after flee attempt |
Config.AimSurrenderDistance | number | 10.0 | Police aim range for surrender |
Config.IdleWanderCheckDistance | number | 50.0 | Distance to check for idle dealer |
Config.FleeDistanceThreshold = 8.0
Config.FleeChance = 0.35
Config.FleeCheckInterval = 1000
Config.SurrenderCooldownTime = 1000
Config.AimSurrenderDistance = 10.0
Config.IdleWanderCheckDistance = 50.0
Spawn Locations
Configure dealer spawn points. Area names are resolved automatically from coordinates using GTA natives (GetNameOfZone/GetLabelText).
Config.Locations = {
vector4(889.39, -2185.3, 30.52, 357.26), -- Cypress Flats
vector4(33.57, -1906.16, 21.76, 137.9), -- Davis
vector4(-690.83, -724.43, 28.72, 84.58), -- Little Seoul
vector4(1065.79, -720.8, 56.77, 143.09), -- Mirror Park
vector4(-3062.4, 599.71, 7.46, 113.42), -- Banham Canyon
vector4(1867.5, 3744.72, 33.0, 211.69), -- Sandy Shores
vector4(2259.36, 4759.79, 39.22, 343.04), -- Grapeseed
vector4(346.51, 2578.13, 43.52, 29.79), -- Grand Senora Desert
}
Items File: shared/items.lua
Sellable Items
Items players can sell to the dealer. Each item specifies a cash payout and reputation gain.
Config.SellableItems = {
-- Drugs
['cokebaggy'] = { price = 150, rep = 5 },
['crack_baggy'] = { price = 200, rep = 7 },
['meth'] = { price = 250, rep = 10 },
['oxy'] = { price = 100, rep = 3 },
['weed_brick'] = { price = 500, rep = 15 },
['coke_brick'] = { price = 800, rep = 20 },
['weed_white-widow'] = { price = 80, rep = 2 },
['weed_skunk'] = { price = 70, rep = 2 },
['weed_purplehaze'] = { price = 75, rep = 2 },
['weed_ogkush'] = { price = 85, rep = 2 },
['joint'] = { price = 30, rep = 1 },
['xtcbaggy'] = { price = 180, rep = 6 },
-- Stolen Goods
['goldbar'] = { price = 1500, rep = 25 },
['diamond'] = { price = 500, rep = 10 },
['rolex'] = { price = 300, rep = 5 },
['goldchain'] = { price = 250, rep = 4 },
['diamond_ring'] = { price = 400, rep = 8 },
['10kgoldchain'] = { price = 500, rep = 10 },
-- Electronics
['tablet'] = { price = 200, rep = 3 },
['laptop'] = { price = 350, rep = 5 },
['phone'] = { price = 100, rep = 2 },
}
Shop Inventory
Items available for purchase, organized by tier. Weapons include info = { serie = '' } to remove serial numbers.
Format:
{ item = 'item_name', label = 'Display Name', price = 1000, stock = 10 }
-- Weapons: { item = 'weapon_name', label = 'Name', price = 5000, stock = 2, info = { serie = '' } }
Tier 0 - Unknown:
Config.ShopInventory[0] = {
{ item = 'lockpick', label = 'Lockpick', price = 300, stock = 10 },
{ item = 'joint', label = 'Joint', price = 50, stock = 20 },
{ item = 'rolling_paper', label = 'Rolling Paper', price = 10, stock = 50 },
{ item = 'lighter', label = 'Lighter', price = 15, stock = 20 },
}
Tier 1 - Street:
Config.ShopInventory[1] = {
{ item = 'advancedlockpick', label = 'Advanced Lockpick', price = 800, stock = 5 },
{ item = 'pistol_ammo', label = '9mm Ammo', price = 15, stock = 100 },
{ item = 'radio', label = 'Radio', price = 500, stock = 5 },
{ item = 'cokebaggy', label = 'Bag of Coke', price = 200, stock = 10 },
{ item = 'bandage', label = 'Bandage', price = 100, stock = 15 },
}
Tier 2 - Connected:
Config.ShopInventory[2] = {
{ item = 'blackmarket_pager', label = 'Burner Pager', price = 2500, stock = 2 },
{ item = 'weapon_pistol', label = 'Pistol (No Serial)', price = 5000, stock = 2, info = { serie = '' } },
{ item = 'weapon_snspistol', label = 'SNS Pistol', price = 3500, stock = 3, info = { serie = '' } },
{ item = 'smg_ammo', label = 'SMG Ammo', price = 25, stock = 100 },
{ item = 'security_card_01', label = 'Security Card Tier 1', price = 1500, stock = 3 },
{ item = 'thermite', label = 'Thermite', price = 3000, stock = 5 },
}
Tier 3 - Trusted:
Config.ShopInventory[3] = {
{ item = 'weapon_microsmg', label = 'Micro SMG', price = 12000, stock = 2, info = { serie = '' } },
{ item = 'weapon_pumpshotgun', label = 'Pump Shotgun', price = 15000, stock = 1, info = { serie = '' } },
{ item = 'rifle_ammo', label = 'Rifle Ammo', price = 50, stock = 100 },
{ item = 'shotgun_ammo', label = 'Shotgun Ammo', price = 40, stock = 50 },
{ item = 'security_card_02', label = 'Security Card Tier 2', price = 3000, stock = 2 },
{ item = 'electronickit', label = 'Electronic Kit', price = 4000, stock = 3 },
{ item = 'armor', label = 'Body Armor', price = 5000, stock = 5 },
}
Tier 4 - Inner Circle:
Config.ShopInventory[4] = {
{ item = 'weapon_assaultrifle', label = 'Assault Rifle', price = 35000, stock = 1, info = { serie = '' } },
{ item = 'weapon_carbinerifle', label = 'Carbine Rifle', price = 40000, stock = 1, info = { serie = '' } },
{ item = 'weapon_smg', label = 'SMG', price = 20000, stock = 2, info = { serie = '' } },
{ item = 'heavyarmor', label = 'Heavy Armor', price = 10000, stock = 3 },
{ item = 'drill', label = 'Drill', price = 8000, stock = 2 },
{ item = 'trojan_usb', label = 'Trojan USB', price = 6000, stock = 3 },
{ item = 'coke_brick', label = 'Coke Brick', price = 1200, stock = 5 },
}