[PAID] [ESX/QB] Advanced Pawn Shop | legal business - illegal deals

Welcome to our Advanced Pawnshop!

This script is a pawnshop and black market system in one. Once you’ve gained enough trust (by selling items to the pawnshop), the seller can give you contact information for a dealer who will buy illegal goods from you. The more you sell to the pawnshop, the better the dealer you can get, with whom you can also gain trust.

:bulb:Features

  • Pawnshop NPC with an interaction target and custom blip
  • NUI dialog flow for pawnshop and dealer interactions
  • Sell legal items at the pawnshop with configurable prices
  • Illegal dealer system with multiple dealer tiers
  • Dealer unlocks based on pawnshop sales
  • Dealer locations rotate on a timer
  • Loyalty system with level-based price bonuses
  • Price check menu for dealer items
  • Police dispatch chance when asking for illegal contacts
  • Dealer contact messaging with optional waypoint and phone message
  • Postal-based location info for dealer messages
  • Persistent player stats (sales, dealer levels) stored in MySQL
  • Admin command to reset a player’s blackmarket stats
  • Configurable UI theme colors and dialog speed)

Option to integrate your own dispatch, target, framework, inventory, notification and phone script

:computer:Requirements

  • oxmysql

:muscle:Supporting

  • ox_inventory and qb_inventory
  • ox_target and qtarget
  • esx and qbcore
  • qs-smartphone
  • esx notifications and ox lib notifications

:film_projector:Preview

Click here for some pictures
Click here for the Config
Config = {}

-- Language
Config.Locale = 'en'

-- Leave this
if SetLocale then
    SetLocale(Config.Locale)
end
CurrentLocale = Config.Locale

Config.Bridge = {
    Framework = 'esx',     -- 'esx', 'qb'
    Inventory = 'ox_inventory', -- 'ox_inventory', 'qb-inventory'
    Target = 'ox_target',    -- 'ox_target', 'qtarget'
    Notify = 'esx',        -- 'esx', 'qb', 'ox_lib'
    Phone = 'qs'           -- 'qs'
}

-- Pawnshop Configuration
Config.PawnShop = {
    Location = vector3(182.52, -1319.19, 29.32),
    BlipSprite = 431,
    BlipColor = 5,
    BlipScale = 0.8,
    BlipName = "Pawnshop",
    
    -- NPC Configuration
    NPC = {
        Model = 'g_m_m_chicold_01',
        Coords = vector4(182.1608, -1319.6080, 29.3152, 244.1258),
        Scenario = 'WORLD_HUMAN_CLIPBOARD'
    },
    
    -- Chance of calling the Dealer (in %)
    DealerContactChance = 90,
    
    -- Chance of calling the Police (in %)
    PoliceCallChance = 10,
    
    -- How many Sales needed for being able to contact the dealer
    MinSalesForDealerContact = 3,
    
    -- Item which can be sold in the pawnshop
    Items = {
        {item = 'gold_ring', price = 150},
        {item = 'diamond', price = 500},
        {item = 'rolex', price = 800},
        {item = 'laptop', price = 300},
        {item = 'phone', price = 100},
    }
}

Config.DealerNotify = {
    enableWaypoint = false, -- true/false
    enablePhoneMessage = true, -- true/false (right now only working with qs-smartphone)
    phoneDelayMs = 2000 -- Phone Delay SMS in Milliseconds
}


-- Dealer Configuration
Config.Dealers = {
    -- Level 1 Dealer (Starter)
    {
        id = 'dealer_noob',
        name = 'Jimmy',
        requiredSales = 3, -- How many sales required in the Pawnshop to unlock him 
        priceMultiplier = 0.6, -- 60% of the price 
        
        -- Spawn Locations 
        locations = {
            vector4(1208.36, -3115.23, 5.54, 90.0),
            vector4(45.82, -1864.33, 23.27, 135.45),
            vector4(-1222.65, -1339.28, 4.15, 289.29)
        },
        
        npc = {
            model = 'g_m_y_ballasout_01',
            scenario = 'WORLD_HUMAN_SMOKING'
        },
        
        -- Items which can be sold 
        items = {
            {item = 'lockpick', price = 50},
            {item = 'weaponparts', price = 200},
            {item = 'stolen_jewelry', price = 300}
        }
    },
    
    -- Level 2 Dealer
    {
        id = 'dealer_medium',
        name = 'Marcus',
        requiredSales = 10,
        priceMultiplier = 0.75,
        
        locations = {
            vector4(696.17, -1022.62, 22.59, 94.36),
            vector4(-1625.50, -505.07, 36.31, 312.19),
            vector4(1124.87, -1010.36, 44.68, 101.4)
        },
        
        npc = {
            model = 'g_m_m_armboss_01',
            scenario = 'WORLD_HUMAN_STAND_MOBILE'
        },
        
        items = {
            {item = 'lockpick', price = 60},
            {item = 'weaponparts', price = 250},
            {item = 'stolen_jewelry', price = 400},
            {item = 'cocaine', price = 800},
            {item = 'meth', price = 700}
        }
    },
    
    -- Level 3 Dealer (Premium)
    {
        id = 'dealer_pro',
        name = 'Boss',
        requiredSales = 25,
        priceMultiplier = 0.9,
        
        locations = {
            vector4(-1314.58, -602.95, 29.38, 308.72),
            vector4(967.59, -1829.31, 31.23, 351.39),
            vector4(-3161.22, 1113.11, 20.85, 66.96)
        },
        
        npc = {
            model = 'g_m_m_korboss_01',
            scenario = 'WORLD_HUMAN_AA_SMOKE'
        },
        
        items = {
            {item = 'lockpick', price = 75},
            {item = 'weaponparts', price = 300},
            {item = 'stolen_jewelry', price = 500},
            {item = 'cocaine', price = 1000},
            {item = 'meth', price = 900},
            {item = 'weed', price = 600},
            {item = 'goldbar', price = 2500},
            {item = 'weapon_pistol', price = 5000}
        }
    }
}

-- Dealer Position Rotation (in Minutes)
Config.DealerRotationTime = 30

-- Loyality-System
Config.Loyalty = {
    -- Bonus for every Level (multiplicativ)
    bonusPerLevel = 0.05, -- 5% more per Level
    
    -- Sales required, to unlock next Level
    salesPerLevel = 5,
    
    -- Maximum Level
    maxLevel = 10
}

-- Dispatch System 
Config.Dispatch = {
    enabled = true,
    script = 'codem-dispatch', -- 'codem-dispatch', 'cd_dispatch', 'ps-dispatch', 'custom'
    
    -- For  Custom Dispatch
}

-- UI Configuration
Config.UI = {
    primaryColor = '#1a1a1a',
    accentColor = '#d4af37',
    textColor = '#ffffff',
    dialogSpeed = 50 -- Milliseconds
}

-- Enable to print bridge debug messages
Config.DebugBridge = false

:link:Links

Get the Escrow Version here
You can find our Discord here

For any help or questions about our script please contact us!

Code is accessible No/Bridge Folder is open
Subscription-based No
Lines (approximately) 2600
Requirements oxmysql
Support Yes
2 Likes