Usage — Fuel Stations | Quasar Store | Quasar Store
Documentation
Usage
How Fuel Stations works in game: refuelling with the pump screen, EV charging, jerrycans, the station creator, the economy panel, fuel consumption, market prices, station stock and the tanker delivery job.
Fuel Stations has three interfaces, and it helps to know which is which from the start:
Screen
Opened with
What it is for
The pump screen
E at a pump or charger
Every player. Grades, prices, amounts, payment, jerrycans and the live gauge while fuelling.
The station creator
/fuelcreator
Admins. Placing stations and pumps, and the Economy tab: prices, consumption and vehicle grades.
The delivery panel
Talking to the depot foreman
Players running the tanker job: contracts, level, deliveries and the salary.
With Config.UseTarget = true, every E prompt on this page becomes an option on your target eye instead — on the pump, on the vehicle, on the tanker and on the foreman.
Park beside a pump, get out and press E. The pump screen shows the grades this station sells, the price of each — with a ▲ or ▼ when the market is moving — the station's remaining stock, and a gauge of the nearest vehicle's tank.
Take the nozzle
The screen closes so you can walk the hose to the vehicle. The hose is a real rope: about 3.5 m of slack, and it tears off if you pull it past 7 m.
Plug it in
Press E at the filler cap. The screen comes back in fuelling mode. Choose Fill it up, a quick amount (10, 20 or 40) or any amount on the slider, pick Cash or Card, and start.
Pay and hang up
Litres and the total climb live. When the target is reached, the tank is full or you press Stop, you are charged for exactly what went in. Take the nozzle out of the car with E and hang it back on the pump with E.
Key
Where
Does
E
At a pump
Opens the pump screen — or, with the nozzle in hand, hangs it back up.
E
At a filler cap
Plugs the nozzle in, or takes it back out.
Left click
Holding a petrol nozzle
Sprays fuel on the ground while held. Config.ThrowFuel turns it off; Config.ThrowFuelKey changes the key.
G
At a pump, holding a jerrycan
Refills the can. The prompt shows the price.
E
After the hose tore
Drops the loose nozzle.
While fuel flows the vehicle is switched off, frozen and locked, so nobody drives off with the hose in. The session stops on its own if the player walks more than 8 m away, dies, or loses the nozzle — and they still pay for what went in.
A grade the vehicle cannot take is shown but locked, with the reason: diesel does not go into a petrol car, and an EV needs a charging point. The filler cap is found from the vehicle's petroltank bone, or the rear wheels when it has none; for models where that lands in the wrong place, Config.CustomOffsets holds hand-placed points — it already covers dozens of helicopters, boats and planes.
The payment methods offered come from Config.FuelPaymentMethods. The pump remembers the last one each player used. If the chosen account cannot cover the whole bill, what is in it is taken.
Chargers work the same way as pumps, with a connector instead of a nozzle, an energy gauge, and prices per kWh. A few things are different on purpose:
Charging points never run dry — they draw from the grid, so station stock and the delivery job only concern petrol and diesel.
An EV cannot be plugged into a fuel pump, and a petrol car cannot be plugged into a charger.
No spraying and no jerrycans at a charger.
Energy flows at 1.2 kWh per second by default, against 2.0 L for petrol and 2.2 L for diesel — see Config.FlowRate.
Which vehicles are electric is decided in the creator, under Economy → Vehicles. The default list covers every electric car in the base game, from the voltic to the raiden. A vehicle's capacity is read from its handling file (fPetrolTankVolume), or 50 L / 65 kWh when the handling has none.
A jerrycan is bought from the pump screen of any station that sells them, for Config.JerryCanCost (100 by default). Holding one at a pump, G refills it; the refill costs up to Config.JerryCanRefillCost, in proportion to how empty it is. Both are paid in cash.
To pour, hold the can at a vehicle's filler cap and press E: the pump screen opens in fuelling mode and the can empties as the tank fills. A full can holds 4,500 rounds of ammunition — 45 per litre, so 100 L. Cans cannot be used on electric vehicles.
Config.EnableJerrycan turns jerrycans off server-wide; the Sells jerrycans switch turns them off per station.
Buying or refilling a can takes Config.JerryCanStationLevel (20%) of that station's stock.
On ESX, Config.JerryCanItem decides whether the can is given as an item or as a weapon.
/fuelcreator opens the creator for anyone with access (see Installation). It has two tabs: Stations and Economy.
The left panel lists every station, with a search box and an All / Petrol / Electric filter. Each card shows the station's grades, a custom-price badge when it overrides the base price, and a button that teleports you there. The + button creates a station of the kind you are filtered to.
Display name, internal name (the unique database key), radius in metres (5–500), fuel in stock (%), and whether it sells jerrycans.
Placement
The station centre, which anchors the blip and the radius, and the delivery point where the tanker job unloads. Without one, deliveries go to the centre.
Grades & Prices
A switch per grade it sells, and an optional price per grade that overrides the base price for this station only.
Pumps & Chargers
The hardware: a model and Place to spawn a new one, or Use existing to adopt a pump the map already has. Each row can be teleported to or removed.
Map Blip
On or off, name, icon, colour and scale — picked from searchable lists with pictures — and whether it is short range.
Every position — centre, delivery point, pump — is placed by pressing its button: the window closes and you get a free camera with a ghost of the prop under the cursor.
Key
Does
W A S D · Q / E
Fly the camera, and climb or descend.
Left click
Place at the cursor.
Z / X
Rotate the prop.
Mouse wheel
Raise or lower the prop, up to 5 m either way.
Backspace · Esc
Cancel and go back to the window.
Use existing works the same way, but you point at a prop instead: a blue marker means it is a pump or charger the script knows, a red one means it is not. An adopted pump is marked MAP PROP and is never spawned twice. The camera's speeds and keys are in CameraOptions and ActionControls at the bottom of the config.
A station owns every pump inside its radius, so the game's own prop_gas_pump_* props keep working without being listed one by one — that is how the 27 default petrol stations work. A fuel pump belongs to the nearest station that sells petrol or diesel; a charger to the nearest one that sells electric. A pump outside every station's radius does nothing.
The models the creator offers are in Config.PumpModels: the four prop_gas_pump_1* pumps, the vintage and old pumps, and the electric_charger. Add your own prop with its hose height (offsetZ) and, for chargers, electric = true and the connector model.
Press Save and the station reaches every player at once — blip, pumps and prices — with no restart.
Applies to the whole server, live, the moment you press Save changes. Discard throws away what you have not saved.
Section
What it holds
Base Prices
What a litre or kWh of each grade costs before any station override. With the market on, it also shows the current factor and trend of each grade.
Consumption Model
The master switch, three presets, the idle draw and damage penalty, and a card per grade with live readouts of how long a tank lasts parked, cruising and flat out.
Vehicle Classes
A multiplier per GTA class, from Compacts to Open Wheel. 0 means that class never burns fuel — bicycles ship at 0.
Vehicles
Per spawn name: which grade it takes (Auto means petrol), a consumption multiplier, and a switch that makes it never burn fuel. Add any vehicle, addons included, by typing its spawn name.
Preset
Feels like
Casual
A tank lasts most of a session. Fuel is flavour, not a chore.
Balanced
The shipped defaults. Around an hour of normal driving per tank.
Hardcore
Fuel is a real constraint. Expect regular stops at the pump.
These values live in the fuel_settings table, not in config.lua. The config only supplies them the first time the table is empty.
GTA burns fuel off a single handling value, which makes idling almost as expensive as full throttle and gives EVs a petrol engine's habits. Fuel Stations takes the drain over and works it out four times a second from what the engine is actually doing:
lua
-- % of the tank per minute
drain = base × class × model × damage × (idle × idleRate + throttle × t + rpm × r + speed × s)
-- electric only, while braking
drain = drain − regen × brake × speed
Term
Meaning
base
The grade's overall thirst — what the creator calls Overall thirst.
t · r · s
Live readings from 0 to 1: throttle pressed, engine RPM, and speed against the vehicle's top speed. Each is multiplied by its weight for that grade.
class · model
The class and per-vehicle multipliers from the Economy tab. Supercars, helicopters and planes ship thirstier than sedans; motorcycles lighter.
damage
Up to damageFactor extra as engine health drops — a wrecked engine burns 25% more by default.
regen
Energy recovered under braking. Only electric has it by default.
The result: electric drivetrains barely sip at idle and are punished by speed rather than revs, diesel is a little cheaper to run than petrol, and an engine that is off burns nothing. Only the driver's seat counts, and blacklisted models never burn fuel. Switching the model off in the Economy tab hands fuel drain straight back to the game engine.
'static' — a station charges its override if it has one, otherwise the base price. Nothing moves.
'market' — the shipped default. Every tickMinutes the server moves each grade by a random step, pulls it back towards the base price, and now and then applies a sudden shock. Pumps show ▲ or ▼ next to a grade that is moving, and the state survives restarts.
lua
Config.Market = {
tickMinutes = 30, -- how often the price moves
volatility = 0.010, -- size of a typical step, as a fraction of the base
reversion = 0.05, -- pull back to the base each tick (0 free, 1 snaps)
minFactor = 0.85, -- floor, as a fraction of the base price
maxFactor = 1.20, -- ceiling
shockChance = 0.01, -- chance per tick of a sudden jump, 0 disables
shockSize = 0.05, -- size of that jump
stationSpread = 0.03, -- stations sit ±3% apart-- Volatility per grade. 0 pins a grade to its base price.
types = { petrol = 1.0, diesel = 1.15, electric = 0.35 },
}
Each station sits a fixed few percent above or below the others (stationSpread), so it pays to shop around. A station with its own price override still rides the market, but without the spread. Admins can read the market and force a move with /fuelmarket — see Commands and Exports.
With Config.EveryStationHasFuelLevel on, every station has a stock from 0 to 100%, shown on the pump screen and saved in the database. Petrol and diesel sales drain it; a station at 0% refuses to sell until a delivery driver refills it. Charging points are never affected.
Setting
Default
Effect
Config.DivideStationLevel
2
Each litre sold takes 1 ÷ this % of stock. Higher = stations last longer.
Config.JerryCanStationLevel
20
Stock taken per jerrycan bought or refilled.
Config.AddStationFuelLevel
{ 10, 20 }
Stock added per delivery, at random between the two.
Stock depends on the delivery job. Setting Config.EnableJob = false also turns stock off, so stations can never run dry with nobody to refill them.
A tanker job that keeps the city's stations stocked. The depot is marked on the map as Fuel Delivery; the foreman stands at Config.PedCoords. Talking to him zooms the camera onto his face and opens the delivery panel: the contracts on offer, your level and bonuses, and the deliveries you have made this shift.
Contract
Deposit
You get
Truck and tanker
Config.TruckPrice (5,000)
A packer truck and a tanker2 trailer. You need nothing of your own.
Tanker only
Config.TankPrice (2,000)
Just the trailer — bring your own truck. Same pay.
Take a contract
The deposit is taken from the Config.PayType account and the vehicles spawn at the depot with their keys. A quest tracker appears on screen.
Load the tanker
Hitch the trailer and drive to the storage tank marked on your GPS. Take its nozzle, open the trailer menu and fill the tanker.
Deliver
The GPS sends you to a station that is running low, to its delivery point. Park, connect the hose from the trailer, walk it to the marked spot and refuel the station. Its stock rises and you earn experience.
Repeat
One load serves Config.MaxFuelDeliveries stations (5). Then the GPS sends you back to the depot to fill up again.
Collect your salary
Back at the foreman, Collect salary pays every station delivered this shift and ends it.
Each station pays a random amount from Config.PayPerFueling (1,200–2,500), plus your level's pay bonus, into Config.PayType ('bank' or 'money'). The deposit is the price of the contract and is not returned. Leave work with unpaid deliveries warns you once — leaving anyway loses them, along with the tanker and the route.
Stations below 100% are picked first. When every one is full, Config.JobRespectStock decides: false (default) keeps giving work anyway, true closes the contracts with "Every station is full right now".
Every driver has a level, saved per character in fuel_job_levels. Each station delivered gives experience; each level makes the next one cost a little more and raises both pay and experience, up to a cap.
lua
Config.JobLevels = {
BaseExperience = 100, -- experience to reach level 2
GrowthFactor = 1.18, -- each level costs this much more
ExperiencePerDelivery = 25, -- experience per station refuelled
PaymentBonus = 1.0, -- % extra pay per level
ExperienceBonus = 0.5, -- % extra experience per level
MaxBonusLevel = 60, -- no further bonus past this level
}
With these values a level 20 driver earns 20% more per station and gains experience 10% faster; at level 60 and above, 60% and 30%.
Everything about the depot is in the Fuel delivery job section of the config: Config.JobBlip, the foreman's model and position (Config.PedType, Config.PedCoords), where the truck and trailer spawn, where the tanker is filled (Config.RefuelLocation), the vehicle models, and how long each refuel takes (Config.RefuelDuration, 15 seconds). Config.JobPedName, Config.JobPedGreeting and Config.JobContractImages restyle the panel.
Each station's blip is set in the creator. A station without one uses Config.StationBlips. With Config.ShowNearestStations = true, only the nearest station is shown on the map, updated every ten seconds — useful on servers with a crowded map.