📃CONFIGURATION FILE

🛠 1. Configuration (config.lua)

All settings are managed through config.lua. Make sure to configure the following:

💬 Discord Webhook

Config.DiscordWebhook = "DISCORD_WEBHOOK_HERE"

🎯 Target System

Config.TargetSystem = "auto"

📦 Inventory System

Config.InventorySystem = "ox_inventory" 

Supports:

  • qb-inventory

  • ox_inventory

  • custom inventories

🛒 Items

Blackmarket items, prices, categories, and tiers:

Config.Items = { ... }

✔ All items you add here will be automatically inserted into SQL on first server start. No manual SQL imports needed.


📍 2. Location Setup (locations.lua)

All black market areas, tier zones, target points, and NPC positions are edited in:

locations.lua

⚠️ Do not forget to configure your locations here.


🗄 3. SQL System (Automatic)

This script creates and maintains its own SQL tables automatically.

All items added to Config.Items will sync to SQL on first run:

  • Name

  • Label

  • Description

  • Price

  • Stock

  • Tier

  • Category

No manual SQL work required.


Config = {}


-- Discord Webhook
Config.DiscordWebhook = "DISCORD_WEBHOOK_HERE" -- Discord webhook URL'nizi buraya ekleyin
-- Target System Configuration
-- Options: 
-- "qb-target" - Force use qb-target
-- "ox_target" - Force use ox_target  
-- "auto" - Auto-detect available target system (recommended)
Config.TargetSystem = "auto" 

-- Target Options
Config.TargetOptions = {
    DefaultDistance = 2.5,
    DefaultSize = vec3(1.5, 1.5, 2.0)
}

-- Inventory System Configuration
Config.InventorySystem = "ox_inventory" -- Options: "qb-inventory", "ox_inventory", "custom"

-- Inventory Image Paths for different systems
Config.InventoryImagePaths = {
    ["qb-inventory"] = "nui://qb-inventory/html/images/",
    ["ox_inventory"] = "nui://ox_inventory/web/images/",
    ["custom"] = "nui://your-custom-inventory/images/" -- Customize this path
}

-- Default fallback image path
Config.DefaultImagePath = "img/items/"

-- Admin System Configuration
Config.AdminCommand = "blackmarketadmin" -- Admin command 
Config.AdminPermissions = {
    "AMW98263",
    "UGU52491",
    "LMT70078",
}



Config.Items = {
    -- TIER 1 Items
    {
        name = "tier2keycard",
        label = "Tier 2 Keycard",
        price = 300000,
        category = "keycards",
        description = "Tier 2 bölgesine erişim sağlayan güvenlik kartı",
        stock = 10,
        tier = 1
    },
    {
        name = "weapon_ceramicpistol",
        label = "Ceramic Pistol",
        price = 22500,
        category = "weapons",
        description = "Susturuculu seramik tabanca",
        stock = 5,
        tier = 1
    },
    {
        name = "weapon_dp9",
        label = "Diamondback DB9",
        price = 22500,
        category = "weapons",
        description = "Kompakt 9mm tabanca",
        stock = 8,
        tier = 1
    },
    {
        name = "weapon_browning",
        label = "Browning",
        price = 22500,
        category = "weapons",
        description = "Kompakt 9mm tabanca",
        stock = 8,
        tier = 1
    },
    {
        name = "weapon_vintagepistol",
        label = "FN Model 1922",
        price = 22500,
        category = "weapons",
        description = "Klasik tabanca",
        stock = 8,
        tier = 1
    },
    {
        name = "weapon_fnx45",
        label = "FN FNX-45",
        price = 22500,
        category = "weapons",
        description = "Modern tabanca",
        stock = 7,
        tier = 1
    },
    {
        name = "advancedlockpick",
        label = "Advanced Lockpick",
        price = 700,
        category = "general",
        description = "Gelişmiş kilit kırma aleti",
        stock = 15,
        tier = 1
    },
    {
        name = "towingrope",
        label = "Towing Rope",
        price = 150,
        category = "general",
        description = "Sağlam halat",
        stock = 20,
        tier = 1
    },
    {
        name = "lockpick",
        label = "Lockpick",
        price = 50,
        category = "general",
        description = "Basit kilit kırma aleti",
        stock = 25,
        tier = 1
    },
    {
        name = "pistol_ammo",
        label = "Pistol Ammo",
        price = 150,
        category = "ammo",
        description = "9mm mermi",
        stock = 1000,
        tier = 1
    },
    {
        name = "armor",
        label = "Armor",
        price = 6500,
        category = "armor",
        description = "Koruyucu zırh",
        stock = 30,
        tier = 1
    },
    {
        name = "femaleseed",
        label = "Weed Seed",
        price = 100,
        category = "general",
        description = "Esrar yetiştirmek için tohum",
        stock = 100,
        tier = 1
    }, 
    {
        name = "methlab",
        label = "Deney Tüpü",
        price = 100,
        category = "general",
        description = "Deney Yapmak için tüp",
        stock = 100,
        tier = 1
    }, 
    {
        name = "lithium",
        label = "Lithium",
        price = 50,
        category = "general",
        description = "Lithium Brother",
        stock = 100,
        tier = 1
    },
    {
        name = "acetone",
        label = "Acetone",
        price = 50,
        category = "general",
        description = "Acetone Broooo",
        stock = 100,
        tier = 1
    },
    {
        name = "thermite",
        label = "Thermite",
        price = 2500,
        category = "general",
        description = "Patlıyosun kankiiii",
        stock = 100,
        tier = 1
    },
    {
        name = "usb_green",
        label = "Usb Drive",
        price = 2500,
        category = "general",
        description = "Usb Takarsın bi yerlere",
        stock = 100,
        tier = 1
    },


    -- TIER 2 Items
    {
        name = "weapon_mp9",
        label = "MP9",
        price = 67500,
        category = "weapons",
        description = "Kompakt PDW",
        stock = 8,
        tier = 2
    },
    {
        name = "tier3keycard",
        label = "Tier 3 Keycard",
        price = 550000,
        category = "keycards",
        description = "Tier 3 bölgesine erişim sağlayan güvenlik kartı",
        stock = 8,
        tier = 2
    },
    {
        name = "weapon_machinepistol",
        label = "TEC-9",
        price = 37500,
        category = "weapons",
        description = "Yarı otomatik tabanca",
        stock = 10,
        tier = 2
    },
    {
        name = "weapon_minismg",
        label = "Scorpion",
        price = 60000,
        category = "weapons",
        description = "Modifiye edilmiş scorpion",
        stock = 7,
        tier = 2
    },
    {
        name = "weapon_glock18c",
        label = "Glock 18C",
        price = 62500,
        category = "weapons",
        description = "Tam otomatik tabanca",
        stock = 8,
        tier = 2
    },
    {
        name = "weapon_mac10",
        label = "MAC-10",
        price = 37500,
        category = "weapons",
        description = "Kompakt otomatik silah",
        stock = 8,
        tier = 2
    },
    {
        name = "weapon_pumpshotgun",
        label = "Mossberg M500",
        price = 75000,
        category = "weapons",
        description = "Pompalı tüfek",
        stock = 6,
        tier = 2
    },
    {
        name = "weapon_sawnoffshotgun",
        label = "Sawn-off Shotgun",
        price = 80000,
        category = "weapons",
        description = "Kısaltılmış av tüfeği",
        stock = 7,
        tier = 2
    },
    {
        name = "weapon_dbshotgun",
        label = "Double Barrel",
        price = 35000,
        category = "weapons",
        description = "Çift namlulu av tüfeği",
        stock = 7,
        tier = 2
    },
    {
        name = "weapon_molotov",
        label = "Molotof",
        price = 6000,
        category = "general",
        description = "Yanıcı bomba",
        stock = 10,
        tier = 2
    },
    {
        name = "smg_ammo",
        label = "SMG Ammo",
        price = 900,
        category = "ammo",
        description = "SMG mermisi",
        stock = 100,
        tier = 2
    },
    {
        name = "shotgun_ammo",
        label = "Shotgun Ammo",
        price = 600,
        category = "ammo",
        description = "Av tüfeği fişeği",
        stock = 100,
        tier = 2
    },

    -- TIER 3 Items
    {
        name = "weapon_aks74",
        label = "AK-S 74",
        price = 250000,
        category = "weapons",
        description = "Otomatik tüfek",
        stock = 5,
        tier = 3
    },
    {
        name = "tier4keycard",
        label = "Tier 4 Keycard",
        price = 600000,
        category = "keycards",
        description = "Tier 4 bölgesine erişim sağlayan güvenlik kartı",
        stock = 8,
        tier = 3
    },
    {
        name = "weapon_compactrifle",
        label = "Draco",
        price = 182500,
        category = "weapons",
        description = "Kompakt otomatik tüfek",
        stock = 5,
        tier = 3
    },
    {
        name = "weapon_gusenberg",
        label = "Gepard",
        price = 350000,
        category = "weapons",
        description = "Yüksek güçlü tüfek",
        stock = 4,
        tier = 3
    },
    {
        name = "rifle_ammo",
        label = "Rifle Ammo",
        price = 3000,
        category = "ammo",
        description = "Tüfek mermisi",
        stock = 50,
        tier = 3
    },

    -- TIER 4 Items
    {
        name = "weapon_m4",
        label = "M4 Carbine",
        price = 250000,
        category = "weapons",
        description = "M4 Carbine",
        stock = 5,
        tier = 4
    },
    {
        name = "weapon_ak47",
        label = "AK 47",
        price = 450000,
        category = "weapons",
        description = "AK 47",
        stock = 3,
        tier = 4
    },
}

Config.Categories = {
    weapons = {
        label = "Weapons",
        icon = "fas fa-gun"
    },
    ammo = {
        label = "Ammunition",
        icon = "fas fa-bullets"
    },
    general = {
        label = "Tools",
        icon = "fas fa-general"
    },
    misc = {
        label = "Miscellaneous",
        icon = "fas fa-box"
    }
}


Config.PaymentMethods = {
    cash = {
        label = "Cash",
        icon = "fas fa-money-bill",
        enabled = true
    },
    card = {
        label = "Card",
        icon = "fas fa-credit-card",
        enabled = true
    },
    item = {
        label = "Black Money",
        icon = "fas fa-coins",
        enabled = true,
        itemName = "black_money",
        exchangeRate = 1
    }
}

Config.Settings = {
    maxPurchaseAmount = 1000000,
    minPurchaseAmount = 1000,
    maxItemsPerPurchase = 10,
    stockUpdateInterval = 3600
}

-- Payment settings
Config.AcceptCash = true
Config.AcceptCard = true
Config.AcceptItem = true
Config.CardPaymentFee = 0.03
Config.ItemName = "black_money" 
Config.ItemLabel = "Black Money" 
Config.ItemExchangeRate = 1 -- 1 item = kaç para değerinde bu şöyle, eğer istersen 1 blackmoneyi 2 cash değerinde sayabiliyorsun 





Config.accessMessage = "You need a Level %s Keycard to access this area!"
Config.stockNotAvailableMessage = "Not enough stock available!"
Config.cardPaymentInactiveMessage = "Card payment is currently disabled!"
Config.insufficientBankBalanceMessage = "You don't have enough money in your bank account!"
Config.cashPaymentInactiveMessage = "Cash payment is currently disabled!"
Config.insufficientCashMessage = "You don't have enough cash!"
Config.invalidAmountMessage = "Invalid amount!"
Config.stockUpdatedMessage = "%s stock updated to %d!"
Config.purchaseSuccessfulMessage = "Purchase successful!"
Config.keycardPurchasedMessage = "Keycard purchased!"
Config.insufficientMoneyMessage = "You don’t have enough money!"
Config.missingKeycardMessage = "You don’t have the required Keycard!"
Config.invalidKeycardMessage = "Invalid Keycard!"
Config.keycardUsedMessage = "Keycard used! Remaining durability: %d%%"
Config.keycardBrokenMessage = "Keycard has broken!"

-- New messages
Config.insufficientItemMessage = "Not enough %s! Required: %d"
Config.invalidPaymentMethodMessage = "Invalid payment method!"
Config.insufficientWeightMessage = "Not enough space in your inventory!"

-- Additional messages
Config.itemPaymentInactiveMessage = "Item-based payment is currently disabled!"
Config.keycardCreationFailedMessage = "Keycard could not be created, money refunded!"
Config.noPermissionMessage = "You don't have permission to use this command!"

-- UI Messages
Config.emptyCartMessage = "Your cart is empty!"

-- Discord Log Messages
Config.discordLogUsername = "Black Market Logs"
Config.discordPurchaseTitle = "🛍️ New Purchase"
Config.discordKeycardTitle = "🔑 Keycard Usage"

-- Log Message Templates
Config.purchaseLogTemplate = [[
**Player Information:**
Name: %s
CitizenID: %s
License: %s
Discord: %s
Steam: %s
IP: %s

**Purchase Details:**
Item: %s (%s)
Description: %s
Amount: %s pcs
Unit Price: $%s
Total Price: $%s
Payment Method: %s
Location: %s
]]

Config.keycardLogTemplate = [[
**Player Information:**
Name: %s
CitizenID: %s
License: %s
Discord: %s
Steam: %s
IP: %s

**Keycard Usage Details:**
Tier: %s
Location: %s
Status: %s
%s
]]

-- Status Messages
Config.successStatus = "✅ Success"
Config.failureStatus = "❌ Failed"
Config.keycardBrokenText = "**CARD BROKE AND HAS BEEN DELETED!**"
Config.remainingDurabilityText = "Remaining Durability: %d%%"
Config.serialNumberText = "Serial No: %s"
Config.discordLogTimeText = " • "



-- Admin UI Language Configuration
Config.AdminLanguage = {
    title = "Black Market Admin Panel",
    stockManagement = "Stock Management",
    itemManagement = "Item Management",
    currentStock = "Current Stock",
    increase = "Increase",
    decrease = "Decrease",
    addItem = "Add Item",
    removeItem = "Remove Item",
    itemName = "Item Name",
    itemLabel = "Item Label",
    itemPrice = "Item Price",
    itemCategory = "Item Category",
    itemTier = "Item Tier",
    itemImage = "Item Image",
    itemDescription = "Item Description",
    save = "Save",
    cancel = "Cancel",
    confirm = "Confirm",
    close = "Close",
    success = "Success",
    error = "Error",
    stockUpdated = "Stock updated",
    itemAdded = "Item added",
    itemRemoved = "Item removed",
    noPermission = "You don’t have permission to use this command!",
    invalidAmount = "Invalid amount!",
    itemNotFound = "Item not found!",
    enterAmount = "Enter amount:",
    enterItemData = "Enter item details:",
    confirmRemove = "Are you sure you want to remove this item?"
}



Last updated