> ## Documentation Index
> Fetch the complete documentation index at: https://axeldevelopment.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# About the Script ESX, QB, QBOX SUPPORTED

> Revolution roleplay with the ultimate ALL IN ONE Gas Station V2 system.

<img className="w-full rounded-xl shadow-lg border border-white/10" src="https://mintcdn.com/axeldevelopment/-_12m6JzoVU_MDNz/images/Gas-StationV2.png?fit=max&auto=format&n=-_12m6JzoVU_MDNz&q=85&s=17bfcff13038e63ea3181ae98c58b6ca" alt="Gas Station Banner" width="1920" height="1080" data-path="images/Gas-StationV2.png" />

# ⛽ Advanced Gas Station + Fuel System Script V2

The most advanced Gas Station script for FiveM. Fully optimized, secure, and packed with features to create a realistic business environment for your players.

## 🎥 Video Preview

<Card title="VIDEO PREVIEW" icon="youtube" href="https://www.youtube.com/watch?v=gPY3wyLcO94">
  Watch script preview here.
</Card>

***

## Key Features :

### 🏢 Business & Management

* **Buy & Sell:** Players can purchase gas stations or sell them back to the state.
* **Custom Branding:** Rename your station and update its map blip in real-time.
* **Employee System:** Hire players and assign ranks (**Basic** / **Advanced**).
* **Station Safe:** Deposit or withdraw station earnings anytime.

### ⛽ Fuel & Refueling

* **Physical Nozzle & Hose:** Grab the hose, plug it into the car with custom sounds and animations.
* **3 Fuel Types:** Vehicles require specific fuel — **Gasoline**, **Diesel**, or **Electricity (EV)** — each with its own pricing and stock logic.
* **NPC Refueling:** NPC drivers stop at stations to refuel, creating passive income for owners.
* **Ownable Refinery:** Process crude oil into fuel types and sell wholesale to stations.

### 🚛 Missions & Progression

* **Resupply Missions:** Drive trucks & tankers across **5 difficulty levels** to restock fuel.
* **XP & Leveling:** Earn XP per liter sold to unlock larger fuel capacity and better missions.
* **Stock Tracking:** Real-time stock indicators for Gasoline, Diesel, and Electricity.

### 💰 Economy & Taxes

* **Custom Pricing:** Owners set prices for each fuel type per liter within server limits.
* **Loyalty Cards:** Hand out discount cards (`gas_loyalty_card`) to loyal customers.
* **Daily Taxes:** Unpaid daily taxes trigger state repossession.
* **Inactivity Check:** Automatically reclaims stations from inactive owners.

### ⚡ Performance & Admin

* **0.00ms Idle:** Optimazed
* **Admin Command:** Use `/gasadmin` to add fuel, give XP, or manage ownership.

***

### CONFIG.LUA FILE

## 🚀 Ready to start?

<CardGroup cols={1}>
  <Card title="Installation Guide" icon="download" href="/gas-station/installation">
    Follow our step-by-step guide to get the script running in minutes.
  </Card>
</CardGroup>

```lua expandable theme={null}
Config = {}
Config.Locale = 'en' -- bg, en, el, de, it, fr, pt, tr, es etc.
Locales = {} 

Config.Debug = false

-- IMPORTANT : XP is given to you as people charge from your station

-- ====================================================================================
--                      Configurable Settings
-- ====================================================================================
Config.Framework = 'esx'      -- Options: 'esx', 'qb', 'qbox'
Config.Inventory = 'ox'   -- Options: 'ox', 'qb', 'jaksam'
Config.Target = 'ox_target'   -- Options: 'ox_target', 'qb-target', 'none'

Config.UsePed = true          -- true = Use NPC, false = Use Marker bellow
Config.MarkerSettings = {     -- settings if UsePed = false
    Type = 21,           -- icon type
    Color = {r = 0, g = 255, b = 0, a = 150}, -- color
    Scale = {x = 1.0, y = 1.0, z = 0.5},      -- size
    OffsetZ = -0.3,         -- Height offset  
    Rotation = {x = 0.0, y = 0.0, z = 0.0}, -- Left, Right
    Spin = false,             -- If true marker will spin 
    BobUpAndDown = false,
    FaceCamera = false
}

-- ====================================================================================
--                                 TEXTUI SETTINGS
-- ====================================================================================
Config.TextUI = 'ox_lib' -- Choice: 'jg-textui' or 'ox_lib'

-- ====================================================================================
--                                VEHICLE KEYS
-- ====================================================================================
Config.VehicleKeys = 'auto' -- Choice: 'auto', 'wasabi_carlock', 'qb-vehiclekeys', 'qbx_vehiclekeys', 'qs-vehiclekeys', 'jaksam-vehicles-keys', 'mk_vehiclekeys', 'cd_garage', 'okokGarage', 't1ger_keys', 'MrNewbVehicleKeys', 'Renewed', 'tgiann-hotwire', 'none'

-- ====================================================================================
--                                INTEGRATION
-- ====================================================================================
Config.FuelSystem = 'axel_fuel' -- ONLY AXEL FUEL (BEST FUEL OPTIMIZING SCRIPT SUPPORTED)

-- ====================================================================================
--                                SOCIETY
-- ====================================================================================
Config.SocietySettings = { 
    Enabled = false,   
    --False: When someone buys a station or pays tax, the money is removed from them and deleted from the server (Money Sink).
    --True: The money is transferred to the specific job/society bank account defined in Account.
    -- WHICH SYSTEM TO USE FOR SOCIETY MONEY?
    -- 'esx_addonaccount' (Standard ESX)
    -- 'qb-management'    (Standard QBCore)
    -- 'qbx_management'   (Qbox)
    -- 'okokBanking'      (Okok Banking Integration)
    -- 'tgg-banking'      (TGG Banking Integration)  
    -- 'none'             (Disable society payments)
    System = 'esx_addonaccount', 

    Account = 'society_cityhall',   -- The account name
    
    PurchasePercent = 50, -- % of station price goes to society
    TaxPercent = 100      -- % of daily tax goes to society
}

-- ====================================================================================
--                                      NPC & BLIPS
-- ====================================================================================
Config.PedModel = 's_m_m_ccrew_01' 
Config.TargetDistance = 2.5 

Config.Blips = {
    Unowned = { Sprite = 361, Color = 0, Scale = 0.6, Display = 4 },
    Owned = { Sprite = 361, Color = 2, Scale = 0.7, Display = 4 }
}

function _U(str, ...)
    if Locales[Config.Locale] and Locales[Config.Locale][str] then
        return string.format(Locales[Config.Locale][str], ...)
    else
        return 'Translation missing: [' .. Config.Locale .. '][' .. str .. ']'
    end
end

-- ====================================================================================
--                                      ECONOMY
-- ====================================================================================
Config.DailyTax = 250      
Config.RenamePrice = 1000    
Config.XPPerLiter = 0.6      
Config.MaxEmployees = 3
Config.MissionCost = 250     
Config.SellRefundPercent = 50 
Config.CheckIntervalDays = 7        
Config.MinimumWeeklyEarnings = 10000 
Config.UnownedFuelPrice = 35.0 
Config.DefaultOwnerPrice = 25.0 

Config.DefaultJerryCanPrice = 100 -- If station no have owner can price
Config.DefaultJerryCanElecPrice = 50 -- If station no have owner can price

Config.PriceLimits = {
    Fuel = {
        diesel = { Min = 5, Max = 30, label = "DIESEL", lcd_color = "linear-gradient(135deg, #1e3a8a 0%, #0d9488 100%)" },
        premium = { Min = 10, Max = 45, label = "PREMIUM", lcd_color = "linear-gradient(135deg, #15478a 0%, #095ead 100%)" },
        benzin = { Min = 5, Max = 35, label = "BENZIN", lcd_color = "linear-gradient(135deg, #7f1d1d 0%, #b91c1c 100%)" }
    },
    Electricity = { Min = 5, Max = 30 },  -- Min and max prices
    JerryCan = { Min = 250, Max = 1000 },  -- Min and max prices
    JerryCanElec = { Min = 250, Max = 1000 }  -- Min and max prices
}

Config.WholesalePrices = {
    diesel = 10,
    premium = 15,
    benzin = 12
}

-- ====================================================================================
--                                  ELECTRICITY SYSTEM
-- ====================================================================================
Config.Electric = {
    MaxStock = 200,         
    RegenAmount = 2,        
    RegenInterval = 5,      
    PricePerUnit = 25.0,    
}

-- ====================================================================================
--                      ELECTRIC UPGRADES (TIERS 1 - 5)
-- ====================================================================================
Config.ElectricUpgradeTiers = {
    [1] = { cost = 1000,  reqLevel = 2, multiplier = 1.15, label = "Tier 1: Solar Assist" },
    [2] = { cost = 2000,  reqLevel = 4, multiplier = 1.35, label = "Tier 2: Fast Charge Grid" },
    [3] = { cost = 5000,  reqLevel = 5, multiplier = 1.50, label = "Tier 3: Power Capacitor" },
    [4] = { cost = 10000, reqLevel = 6, multiplier = 1.75, label = "Tier 4: Ultra Turbine" },
    [5] = { cost = 20000, reqLevel = 8, multiplier = 2.00, label = "Tier 5: Fusion Battery Matrix" }
}

-- ====================================================================================
--                  PROFIT BONUSES & LOYALTY CARD
-- ====================================================================================
Config.AttendantIncomeBonuses = {
    [1] = 1.00, -- Tier 1: Standard income (100%)
    [2] = 1.10, -- Tier 2: +10% Bonus income
    [3] = 1.20, -- Tier 3: +20% Bonus income
    [4] = 1.30, -- Tier 4: +30% Bonus income
    [5] = 1.50  -- Tier 5: +50% Bonus income
}

Config.LoyaltyCardLimits = {
    MinDiscount = 5,  -- Minimum allowed discount (%)
    MaxDiscount = 30  -- Maximum allowed discount (%)
}

Config.RefinerySettings = {
    PropModel = 'p_oil_pjack_01_s', 
    RegenInterval = 5,
    MaxStock = 1000,
    FilterDecayRate = 2, 
    
    Tiers = {
        [1] = { 
            cost = 15000, 
            reqRank = 2, 
            regen = 15,
            repairCost = 250,
            label = "Tier 1: Basic Pumpjack" 
        },
        [2] = { 
            cost = 30000, 
            reqRank = 3, 
            regen = 30,
            repairCost = 500, 
            label = "Tier 2: Premium Wellhead" 
        },
        [3] = { 
            cost = 45000, 
            reqRank = 4, 
            regen = 45, 
            repairCost = 750, 
            label = "Tier 3: Advanced Piping" 
        },
        [4] = { 
            cost = 60000, 
            reqRank = 5, 
            regen = 60, 
            repairCost = 1000, 
            label = "Tier 4: Automated Pump" 
        },
        [5] = { 
            cost = 80000, 
            reqRank = 6, 
            regen = 80, 
            repairCost = 1500, 
            label = "Tier 5: Industrial Refinery" 
        }
    }
}

Config.AttendantsRoster = {
    {
        id = "rookie_bob",
        name = "Bob Fueler",
        model = "s_m_m_ups_02",
        img = "img/fueler.png",
        cost = 50000,
        reqRank = 1,
        tier = 1,
        desc = "Normal Fueler 1+ years experience"
    },
    {
        id = "senior_djon",
        name = "Djon Fueler Boost",
        model = "s_f_y_scrubs_01",
        img = "img/fueler2.png",
        cost = 100000,
        reqRank = 3,
        tier = 2,
        desc = "Senior Fuler 5+ years experience"
    },
    {
        id = "manager_alex",
        name = "Alex - Manager Fueler",
        model = "u_m_m_streetart_01",
        img = "img/fueler3.png",
        cost = 250000,
        reqRank = 5,
        tier = 3,
        desc = "Manager Fueler Faster Load 10+ years experience"
    }
}

-- ====================================================================================
--                                    DELIVERY 
-- ====================================================================================
Config.Levels = {
    [1] = { xp = 0, storage = 150, vehicle = "phantom", trailer = "tanker", pumpProp = "prop_gas_tank_04a" }, 
    [2] = { xp = 500, storage = 350, vehicle = "phantom", trailer = "tanker", pumpProp = "prop_gas_tank_04a" }, 
    [3] = { xp = 1500, storage = 500, vehicle = "phantom", trailer = "tanker", pumpProp = "prop_gas_tank_04a" }, 
    [4] = { xp = 3000, storage = 750, vehicle = "phantom", trailer = "tanker", pumpProp = "prop_gas_tank_04a" },
    [5] = { xp = 5000, storage = 1000, vehicle = "phantom", trailer = "tanker", pumpProp = "prop_gas_tank_02b" },
    [6] = { xp = 8000, storage = 1250, vehicle = "phantom", trailer = "tanker", pumpProp = "prop_gas_tank_02b" },
    [7] = { xp = 12000, storage = 1500, vehicle = "phantom", trailer = "tanker", pumpProp = "prop_gas_tank_01a" },
    [8] = { xp = 18000, storage = 2000, vehicle = "phantom", trailer = "tanker", pumpProp = "prop_gas_tank_01a" }
}
-- ====================================================================================
--                             NPC ATTENDANT UPGRADE
-- ====================================================================================
Config.AttendantUpgrade = {
    RequiredRank = 1,
    Price = 50000,
    Model = 's_m_y_gas_01'
}

-- ====================================================================================
--                              DEPOT LOCATIONS (For Missions)
-- ====================================================================================
Config.Depots = {
    ['terminal'] = {
        label = "Southern Logistics Port",
        coords = vec4(924.5521, -1548.0176, 30.8564, 86.2152),
        priceModifier = 0.90,
        desc = "South dock refinery. High stock and lower rates."
    },
    ['docks'] = {
        label = "Merryweather Docks Storage",
        coords = vec4(895.9257, -1253.9030, 25.7818, 343.8549),
        priceModifier = 1.00,
        desc = "Express harbor depot with fast transit access."
    },
    ['chumash'] = {
        label = "Chumash Western Depot",
        coords = vec4(863.4904, -1142.8062, 24.1134, 180.3885),
        priceModifier = 1.10,
        desc = "West coast hub. Convenient with higher fees."
    },
    ['senora'] = {
        label = "Grand Senora Desert Warehouse",
        coords = vec4(731.1595, -1369.7754, 26.4384, 89.4660),
        priceModifier = 0.85,
        desc = "Desert warehouse. Cheap fuel, long distance."
    },
    ['paleto'] = {
        label = "La Mesa Urban Refinery",
        coords = vec4(1449.3344, -1688.7924, 66.3090, 99.3784),
        priceModifier = 0.80,
        desc = "Industrial zone crude oil processing plant."
    },
    ['refinery'] = {
        label = "My Backyard Pumpjack Depot",
        coords = {
            vec4(1450.2631, -1689.2131, 66.3494, 88.3992),
            vec4(1701.9106, -1435.5618, 112.9444, 235.4360),
            vec4(1527.0942, -2073.5132, 77.2642, 254.3513),
            vec4(1423.7476, -2285.9253, 66.4100, 119.9828),
            vec4(1212.9198, -2198.0474, 41.4232, 303.3700),
            vec4(1677.6880, -1846.3573, 109.1917, 281.5835)
        },
        priceModifier = 0.0,
        desc = "Oil field for crude extraction and tanker pickup."
    }
}

-- ====================================================================================
--                 RAFINERY RANDOM LOCATIONS
-- ====================================================================================
Config.RandomRefineryLoadPoints = {
    vec3(290.50, -1255.00, 29.30),
    vec3(1182.00, -320.00, 69.20),
    vec3(830.00, -1025.00, 26.50),
    vec3(-1425.00, -245.00, 46.30),
    vec3(150.00, -1000.00, 29.00)
}

-- ====================================================================================
--                                        STATIONS
-- ====================================================================================
Config.DeliveryPropModel = 'm24_1_prop_m41_orbital_screen_01a'

-- ====================================================================================
--                                      STATIONS
-- ====================================================================================
Config.Stations = {
    ['gas_grove'] = {   
        label = "Gas Station 1 (Grove)",
        price = 120000,
        coords = vec4(289.5357, -1266.8649, 29.4407, 89.4950),
        holoCoords = vec3(265.3842, -1261.0681, 32.7910),
        truckSpawn = vec4(293.2956, -1246.3188, 29.2909, 91.9931),
        trailerSpawn = vec4(283.4217, -1272.9427, 29.2497, 4.0302),
        refineryLoadCoords = vec3(290.0, -1240.0, 29.2),
        refineryCoords = vector4(295.2542, -1242.3124, 29.2822, 180.0931), 
        deliveryPropCoords = vec4(290.9954, -1252.0513, 29.6080, 183.6)
    },
    ['gas_mirror'] = { 
        label = "Gas Mirror Park",
        price = 120000,
        coords = vec4(1167.3638, -323.7064, 69.2648, 272.7788),
        holoCoords = vec3(1180.6021, -329.9445, 72.1681),
        truckSpawn = vec4(1186.9768, -314.3059, 69.1812, 278.0726), 
        trailerSpawn = vec4(1174.4865, -316.1386, 69.1782, 263.3433), 
        refineryCoords = vector4(1176.0492, -310.2149, 69.2083, 277.7809), 
        deliveryPropCoords = vec4(1165.2611, -314.1729, 69.7022, 103.8)
    },    
    ['gas_vinewood'] = { 
        label = "Gas Station 2 (Vinewood)",
        price = 80000,
        coords = vec4(818.2001, -1040.8921, 26.7510, 5.0266), 
        holoCoords = vec3(819.5167, -1028.8055, 31.0240),
        truckSpawn = vec4(824.8608, -1057.6312, 27.9424, 345.2625),
        trailerSpawn = vec4(840.7227, -1046.2081, 27.6754, 76.0766),
        refineryCoords = vector4(832.4994, -1031.5076, 26.9283, 1.2024), 
        deliveryPropCoords = vec4(814.8293, -1041.4647, 27.2105, 267.0)
    },
    ['gas_bahama'] = { 
        label = "Gas Station 3 (Bahama)",
        price = 65000,
        coords = vec4(-1428.2236, -268.2069, 46.2221, 132.1956), 
        holoCoords = vec3(-1438.2394, -277.6465, 50.7295),
        truckSpawn = vec4(-1441.8619, -257.6555, 46.2079, 132.4339),
        trailerSpawn = vec4(-1428.4229, -244.9709, 46.3572, 132.7722),
        refineryCoords = vector4(-1423.0255, -241.4471, 46.3792, 131.8423), 
        deliveryPropCoords = vec4(-1415.1220, -276.4254, 46.5740, 42.6)
    },    
    ['gas_little_1'] = {
        label = "Gas Station 5 (Little Seoul 2)",
        price = 75000,
        coords = vec4(-703.4025, -937.4698, 19.2119, 89.3570), 
        holoCoords = vec3(-724.2209, -935.7131, 22.7424),
        truckSpawn = vec4(-728.6353, -914.1932, 19.0139, 181.6747),
        trailerSpawn = vec4(-702.6265, -921.3069, 19.0057, 95.7499),
        refineryCoords = vector4(-729.0841, -910.8978, 19.0139, 179.4167), 
        deliveryPropCoords = vec4(-719.9662, -916.6705, 19.5210, 357.0)
    },   
    ['gas_glbanka'] = { 
        label = "Gas Station 6 (Bank)",
        price = 75000,
        coords = vec4(642.1487, 260.5821, 103.2955, 57.6262), 
        holoCoords = vec3(620.3554, 268.8788, 106.7690),        
        truckSpawn = vec4(646.1127, 278.7325, 103.1593, 143.2169),
        trailerSpawn = vec4(640.4182, 281.2466, 103.1896, 149.8202),
        refineryCoords = vector4(654.6404, 277.7747, 103.2936, 147.6304), 
        deliveryPropCoords = vec4(648.5384, 270.6601, 103.6777, 235.6)
    },            
    ['gas_magistrala_1'] = { 
        label = "Gas Station 7 (Highway 2)",
        price = 55000,
        coords = vec4(2673.7209, 3266.9424, 55.2407, 246.7915), 
        holoCoords = vec3(2675.0232, 3267.0173, 58.9123),
        truckSpawn = vec4(2656.3359, 3274.9172, 55.2407, 55.6135),
        trailerSpawn = vec4(2660.1318, 3277.5657, 55.2407, 68.1788),
        refineryCoords = vector4(2659.2651, 3276.0032, 55.2407, 61.6886), 
        deliveryPropCoords = vec4(2664.4508, 3264.6438, 55.5221, 342.8) 
    },  
    ['gas_krai'] = { 
        label = "Gas Station 8 (Paleto)",
        price = 50000,
        coords = vec4(167.4718, 6631.0591, 31.5559, 190.7935), 
        holoCoords = vec3(179.4658, 6602.9614, 35.2881),
        truckSpawn = vec4(183.6836, 6627.7285, 31.6455, 197.8763),
        trailerSpawn = vec4(196.4187, 6627.2715, 31.5670, 175.1810),
        refineryCoords = vector4(199.1321, 6627.8921, 31.5457, 161.4168), 
        deliveryPropCoords = vec4(186.6715, 6608.8019, 32.3319, 104.2)
    },  
    ['gas_grove3'] = { 
        label = "Gas Grove Street",
        price = 75000,
        coords = vec4(-62.9699, -1764.3152, 29.2617, 81.0858), 
        holoCoords = vec3(-70.9461, -1761.5233, 33.2933),
        attendantCoords = vec4(-62.4015, -1762.6501, 29.2617, 69.5654),
        truckSpawn = vec4(-28.3059, -1759.8440, 29.3850, 61.7870),
        trailerSpawn = vec4(-20.0762, -1767.8195, 29.1959, 24.7516),
        refineryCoords = vector4(-60.0399, -1744.9868, 29.3527, 44.6854), 
        deliveryPropCoords = vec4(-38.9718, -1751.8964, 29.8519, 48.5)
    },   
    ['gas_more'] = { 
        label = "Gas Beach Street",
        price = 60000,
        coords = vec4(-2072.9160, -327.2644, 13.3160, 88.0674), 
        holoCoords = vec3(-2095.2749, -319.1416, 15.8086),
        truckSpawn = vec4(-2078.0959, -306.8757, 13.1075, 84.3542),
        trailerSpawn = vec4(-2064.4419, -307.0587, 13.1429, 110.5820),
        refineryCoords = vector4(-2064.5833, -308.0565, 13.1429, 85.2257), 
        deliveryPropCoords = vec4(-2088.1172, -315.7924, 13.4861, 276.4)
    },      
    ['gas_magistrala4'] = { 
        label = "Gas Left Highway",
        price = 60000,
        coords = vec4(-2543.9517, 2315.9395, 33.2161, 10.4357), 
        holoCoords = vec3(-2554.2837, 2333.8936, 36.0922),
        truckSpawn = vec4(-2535.4414, 2343.4922, 33.0600, 215.5713),
        trailerSpawn = vec4(-2528.2698, 2343.5088, 33.0599, 212.4828),
        refineryCoords = vector4(-2569.4353, 2312.1511, 33.2156, 4.9907), 
        deliveryPropCoords = vec4(-2554.3365, 2341.6060, 33.4199, 354.4)
    },   
    ['gas_sandyy'] = { 
        label = "Gas Sandy",
        price = 40000,
        coords = vec4(2001.3802, 3779.8752, 32.1808, 213.6086), 
        holoCoords = vec3(2005.0735, 3774.2839, 36.7700),
        truckSpawn = vec4(1978.7296, 3761.2891, 32.1813, 210.6507),
        trailerSpawn = vec4(1982.2006, 3780.8323, 32.1808, 214.0622),
        refineryCoords = vector4(1982.8467, 3784.2676, 32.1807, 211.2593), 
        deliveryPropCoords = vec4(1994.1759, 3779.0095, 32.6845, 25.2)
    },        
    ['gas_grad'] = { 
        label = "Gas 837",
        price = 80000,
        coords = vec4(167.2879, -1553.7268, 29.2617, 213.0337),
        holoCoords = vec3(175.1857, -1562.2689, 34.5508),
        truckSpawn = vec4(184.5605, -1554.4865, 29.2069, 219.9015),
        trailerSpawn = vec4(180.1754, -1545.9399, 29.1533, 215.3963),
        refineryCoords = vector4(151.8233, -1560.3636, 29.2053, 225.7875), 
        deliveryPropCoords = vec4(180.1462, -1563.0513, 29.7348, 215.0)
    },                          
    ['gas_paleto'] = { 
        label = "Gas Station 10 (Paleto 2)",
        price = 60000,
        coords = vec4(1706.0050, 6425.6172, 32.7689, 165.6898),
        holoCoords = vec3(1706.2286, 6424.4326, 36.3158),
        truckSpawn = vec4(1718.3282, 6421.2422, 33.3217, 154.7002),
        trailerSpawn = vec4(1685.1837, 6435.4263, 32.3276, 199.5346 ),
        refineryCoords = vector4(1684.3379, 6437.8457, 32.2791, 239.2562), 
        deliveryPropCoords = vec4(1703.7720, 6415.7560, 33.1360, 165.0)
    },
    ['gas_bennysmechanic'] = { 
        label = "Gas Station 11",
        price = 60000,
        coords = vec4(-342.3357, -1482.9403, 30.7019, 271.9983),
        holoCoords = vec3(-320.2256, -1471.9812, 33.7479),
        truckSpawn = vec4(-334.1663, -1489.6328, 30.6597, 355.5010),
        trailerSpawn = vec4(-336.2611, -1463.8085, 30.5422, 271.4999),
        refineryCoords = vector4(-338.6902, -1468.2499, 30.5790, 272.0457), 
        deliveryPropCoords = vec4(-342.8048, -1479.4143, 31.0641, 91.2)
    },    
}
-- ====================================================================================
--                                  ADMIN PERMISSIONS
-- ====================================================================================

Config.AllowedAdmins = {
    "license:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", -- License id premmisions
    "discord:595592091342733335",   
    "discord:1514215489138593813",                   -- Discord id premmisions
    -- you can add from here more
}

Config.CheckAdmin = function(source)
    if not source then return false end

    if IsDuplicityVersion() then
        local identifiers = GetPlayerIdentifiers(source)
        if identifiers then
            for _, id in ipairs(identifiers) do
                for _, adminId in ipairs(Config.AllowedAdmins) do
                    if id == adminId then 
                        return true 
                    end
                end
            end
        end

        if IsPlayerAceAllowed(source, 'command') or IsPlayerAceAllowed(source, 'admin') then
            return true
        end

        if Config.Framework == 'esx' then
            if GetResourceState('es_extended') == 'started' then
                local ESX = exports['es_extended']:getSharedObject()
                if ESX then
                    local xPlayer = ESX.GetPlayerFromId(source)
                    if xPlayer then
                        local group = xPlayer.getGroup()
                        if group == 'admin' or group == 'superadmin' or group == 'helper' or group == 'mod' or group == 'moderator' then
                            return true
                        end
                    end
                end
            end
        elseif Config.Framework == 'qb' or Config.Framework == 'qbox' then
            if GetResourceState('qb-core') == 'started' then
                local QBCore = exports['qb-core']:GetCoreObject()
                if QBCore and QBCore.Functions then
                    if QBCore.Functions.HasPermission(source, 'admin') or QBCore.Functions.HasPermission(source, 'god') or QBCore.Functions.HasPermission(source, 'mod') then
                        return true
                    end
                end
            end
            if GetResourceState('qbx_core') == 'started' then
                if exports.qbx_core and exports.qbx_core:HasPermission(source, 'admin') then
                    return true
                end
            end
        end
        return false
    else
        if lib and lib.callback then
            return lib.callback.await('gas_station:checkAdmin', false)
        end
        return false
    end
end
```
