Skip to content

Stations

Stations

All 27 GTA gas stations ship configured in Config.Stations. A station owns every pump prop inside its radius, sells the fuels you list, and can be bought by a player or left as a public forecourt.

What a station entry looks like

config.lua
{
    id = 'strawberry', label = 'BUPA Strawberry', district = 'Strawberry',
    coords = vec3(264.95, -1259.45, 29.14), radius = 30.0,
    manage = vec3(289.5, -1267.0, 28.44),
    fuels = { 'gasoline', 'diesel', 'premium', 'electric' },
    purchasable = true, price = 480000, storage = 25000,
    charger = vec4(292.85, -1268.03, 28.44, 72.9),
},
Field Meaning
id The database key. Changing it on a live server orphans that station's save row
coords / radius The forecourt. Any pump prop inside it belongs to this station
manage Where the $ marker sits — usually the shop door or the kiosk. false removes it
fuels Which Config.FuelTypes this station sells
purchasable false means nobody can ever own it
price What a player pays to buy it. Shipped prices run 320,000 to 480,000 by district
storage Litres of stock it holds per fuel before a delivery run is needed
charger vec4 for the EV charge point. Optional — leave it out and the station has no charger
blip false hides this station's blip, or a table of sprite / colour / scale to override the defaults

Purchasable and public

A purchasable station starts unowned. Anyone who can afford the price and walks to the $ marker gets the offer, and on purchase the tanks are filled to Config.Deliveries.StarterStock of capacity — half, by default.

A public station (purchasable = false) can never be owned. Its tanks are held permanently full, it skips stock and deliveries entirely, and the money spent there goes nowhere. That makes it the right choice for a starter-town pump you never want to run dry. The shipped senoraeast station is set up this way, with its blip hidden too:

config.lua
{
    id = 'senoraeast', label = 'BUPA Grand Senora East', district = 'Grand Senora East',
    coords = vec3(2539.33, 2594.61, 37.94), radius = 30.0,
    manage = false,
    fuels = { 'gasoline', 'diesel', 'premium' , 'electric' },
    charger = vec4(2542.83, 2594.61, 37.94, 90),
    purchasable = false, price = 320000, storage = 25000,
    blip = false,
},

An admin can also flip a station between purchasable and public at runtime from /fueladmin. That override is stored per station and survives restarts, so it wins over what the config says.

The $ marker

Every station with a manage coordinate gets a floating dollar sign. Walk into it and press [E]:

  • Owner or staff — the management dashboard opens.
  • Anyone else, station purchasable and unowned — the purchase offer opens.
  • Anyone else, station owned — nothing happens.

Owners and staff can also open the dashboard with /station while standing on the forecourt.

config.lua
Config.ManageMarker = {
    Enabled = true,
    Type = 29,              -- 29 is the dollar sign
    Size = vec3(0.8, 0.8, 0.8),
    Colour = { 63, 208, 127, 220 },
    Height = 1.0,
    Spin = true,
    Bob = true,
    DrawDistance = 18.0,
    Distance = 1.6,
}

Pumps

A pump is any prop from Config.PumpProps standing inside a station's radius — no per-pump coordinates to place.

config.lua
Config.PumpProps = {
    'prop_gas_pump_1a', 'prop_gas_pump_1b', 'prop_gas_pump_1c', 'prop_gas_pump_1d',
    'prop_gas_pump_old2', 'prop_gas_pump_old3', 'prop_vintage_pump',
    'prop_gas_pump_1a_lm', 'prop_gas_pump_1b_lm',
}
Config.NozzleProp = 'prop_cs_fuel_nozle'

If you have a custom station MLO, add its pump model to that list and the station picks it up.

Blips

config.lua
Config.Blip = {
    Enabled = true,
    ShowUnowned = true,
    ShortRange = false,
    Sprite = 361,
    Colour = 47,
    Scale  = 0.8,
}

Enabled = false removes every station blip at once. To hide one station, put blip = false on that station's entry; to restyle one, give it blip = { sprite = 361, colour = 1, scale = 0.9 }.

Adding a station

Copy an existing entry, give it a new id, and set coords on the forecourt with a radius that covers the pumps. Set manage somewhere a player can stand. Turn Config.Debug on while you do it — it draws the zones so you can see what the station thinks it owns.