Skip to content

Configuration

Configuration

Everything lives in config.lua, which is heavily commented and is the source of truth. This page is a map of the blocks in it.

General

config.lua
Config.Debug = false
Config.Inventory = 'auto'
Config.Target = 'auto'
Config.Interaction = 'target'
Config.Account = 'bank'

Interaction is 'target' (eye/third-eye, needs a target resource) or 'textui' (a prompt and a keypress, no target resource needed). Account is which money account refuels are charged from and wages paid to — it falls back to the other if the player is short. Debug draws pump zones and prints while you are placing stations; leave it off in production.

Fuel and vehicles

Config.FuelTypes and Config.FuelOrder define the liquids. Config.VehicleFuel decides what each vehicle drinks. Both are covered on Fuel & consumption.

Consumption

Config.Consumption holds tank sizes, class rates, the RPM curve, tick intervals, the low-fuel warning and SpawnFuel. See Fuel & consumptionSpawnFuel is the setting with the largest effect on how often anyone visits a pump.

Wrong fuel

Config.WrongFuel.Modeoff, slow, damage, break or explode — plus the numbers each mode uses and the Grace litres before it lands.

Jerry can

Config.JerryCan sets the item name, prop, capacity, fill and pour rates, distances, and whether stations sell a full can. See The jerry can.

Electric

Config.Electric sets the charger and cable props, battery capacity in kWh, the fast and normal rates, distances, and the battery-swap item. See Electric charging.

Stations, marker, blips

Config.Stations is the list of 27, Config.ManageMarker styles the $, Config.PumpProps lists the models that count as pumps, and Config.Blip styles the map markers. See Stations.

Refuelling

config.lua
Config.Refuel = {
    LitrePerTick = 0.5,
    Tick         = 300,
    HoldEngineOff = true,
    Presets = { 20, 50, 'full' },
    PriceLimits = { min = 0.1, max = 25.0 },
}

Plus the distance settings — VehicleSearch, MaxDistance, NozzleLeash, TargetDistance, PumpSearch, PromptDistance, CapDistance.

Stock and deliveries

config.lua
Config.Deliveries = {
    Depot   = vec4(2796.0, 1560.0, 24.5, 180.0),
    Tanker  = 'tanker',
    Spawn   = vec4(2810.0, 1570.0, 24.5, 90.0),
    MinOrder = 1000,
    MaxOrder = 25000,
    FillRate = 200,
    ReturnRadius = 30.0,
    StarterStock = 0.5,
}

StarterStock is how full the tanks are the moment somebody buys the place, as a fraction of storage. 0 hands over a completely dry forecourt.

Ownership

config.lua
Config.AllowTransfer = true
Config.AllowSellBack = true
Config.SellBackRate = 0.3

Employees and upgrades

Config.Employees sets the staff cap, the four permission keys, the default wage and the pay interval. Config.Upgrades sets the three upgrade tracks. Both are covered on The dashboard.

Admin

Config.Admin sets the two command names and who may run them. See Admin.

Anti-cheat

Config.AntiCheat holds the rate limit, session ceilings and value clamps. See Anti-cheat.

Interface

config.lua
Config.UI = {
    Accent = '#5B6CF0',
    ManageCommand = 'station',
    CloseOnEscape = true,
    Sounds = true,
    Keys = {
        Interact  = 38,     -- E
        Switch    = 23,     -- F
        Cancel    = 73,     -- X
        Secondary = 47,     -- G
    },
    WorldDrawDistance = 12.0,
    WorldTick = 16,
    ImagePath = false,
}

Keys are GTA control indices for the in-world pump and charger panels. WorldTick is milliseconds between position updates for those panels — 0 is every frame and looks glued to the pump, 16 is still smooth and leaves the browser much more room on a busy forecourt. ImagePath only needs setting for a renamed inventory fork, e.g. 'nui://my-inventory/web/images/'.

Webhook

config.lua
Config.Webhook = {
    Enabled  = false,
    Url      = '',
    Username = 'BUPA Fuel',
    Log = {
        Purchase = true,
        Sale     = false,
        Withdraw = true,
        Stock    = true,
        Employee = true,
        Admin    = true,
    },
}

Each event type has its own colour under Config.Webhook.Colors.

Sale logs every single refuel. On a busy server that is a message every few seconds. It ships off for a reason.