Overview
Bucky Fuel turns fuel into a player-run business. Players buy one of 26 stations, set the pump price, truck fuel in from depots by tanker, hire drivers and upgrade the station, while every driver in the city refuels with a nozzle and a retro pump terminal.
| Feature | What it does |
|---|---|
| 26 stations | 3 regions, 5 tiers, from small rural stops to 6–8 pump city stations |
| Real refuelling | Take the nozzle, walk the hose to the car and pay by card or cash at the pump terminal |
| Real stock | Every litre sold comes out of the station's tank. An empty tank means no fuel. |
| Tanker resupply | Owners and employees drive a tanker from one of 5 depots and unload it at the station |
| Pricing | Owners set the price; a demand curve decides how much sells |
| Upgrades | Price certification, tank size, tanker size and termination protection |
| Jerry cans | 50 L cans that fill at the pump, at the station's price, with fuel stored on the item |
| Owner dashboard | Overview, inventory, pricing with a profit gauge, employees, upgrades and protection |
| LegacyFuel bridge | Scripts that call LegacyFuel keep working with no edits |
Requirements
| Resource | Required | Notes |
|---|---|---|
qb-core |
Yes | |
oxmysql |
Yes | |
qb-target |
Yes | Pumps and the station attendant use qb-target |
bucky-reserve |
Yes, in this release | Listed as a dependency in fxmanifest.lua. Station sales, upgrades and taxes are paid into the Central Reserve. |
Works on FiveM and FiveM Enhanced.
Installation
1. Place the resources
resources/
└── [bucky-scripts]/
├── bucky-fuel/
└── LegacyFuel/ -- the included compatibility bridgeRemove any other fuel script (including the original LegacyFuel) first.
2. Database
Import bucky-fuel/sql/install.sql. It creates bucky_fuel_stations and bucky_fuel_employees, and is safe to re-run. Newer columns are added automatically on start.
3. server.cfg
ensure oxmysql
ensure qb-core
ensure qb-target
ensure bucky-reserve
ensure bucky-fuel
ensure LegacyFuelRefuelling
At any pump (models in Config.PumpModels), players use the target menu:
- Get Fuel Nozzle at the pump.
- Insert Nozzle into the vehicle.
- Put Fuel at the refuel terminal, choose the amount and pay by card or cash.
- Remove Nozzle and Return Nozzle when done.
Fuel goes in at Config.RefillTimePerLitre (0.5 s per litre) and comes out of the station's tank. If the station's tank is empty, it can't sell fuel.
Vehicles burn fuel Config.GlobalFuelConsumptionMultiplier times faster than GTA's default (4.5×), and fuel levels sync between players every Config.FuelSyncTime seconds.
Jerry cans
| Action | Where | Cost |
|---|---|---|
| Buy Jerry Can | Pump target menu | A full 50 L at the station's price per litre, plus ContainerFee |
| Refill Jerry Can | Pump target menu, holding the can | Only the litres that are missing |
| Pour | Hold the can at a vehicle | 0.4 s per litre |
The can's fuel is stored on the weapon_petrolcan item, so it shows in the inventory and survives a relog.
Config.JerryCan = {
Capacity = 50, -- litres
ContainerFee = 0, -- extra charge for the can itself
PourTimePerLitre = 0.4,
FillTimePerLitre = 0.2, -- 50 L = 10 s at a pump
}Owning a station
Players buy a station from the attendant at the station ("Talk to Attendant"). Each station has its own price, pump count, tank size and upgrade ceiling, set in Config.Stations.
| Tier | Example | Price | Pumps |
|---|---|---|---|
| 1 | Pillbox Hill, Little Seoul, Downtown Vinewood | $22.5M – $28M | 4–6 |
| 2 | Senora Freeway, Chumash, Pacific Bluffs | $14.5M – $18.5M | 4–8 |
| 3 | Davis, La Mesa, Mirror Park | $9M – $12.5M | 2–4 |
| 4 | Sandy Shores North, Paleto Bay | $5.5M – $7.5M | 2–4 |
| 5 | Grand Senora, Cassidy Trail | $3.5M – $4.8M | 2 |
From the owner dashboard, owners:
- set the pump price
- see stock, income, sales and customers
- start a tanker resupply
- hire and pay employees (
Config.EmployeePayPerDelivery, $500 per delivery) - buy upgrades and protection
- withdraw income
Keep the tank stocked. A station that sits at 0 fuel for more than 24 hours is reset and goes back on sale. Each day of Protection adds 24 hours to that limit.
Tanker resupply
- Start a resupply from the dashboard (
Config.TankerCost, $5,000). - Pick up a
phantomtruck andtankertrailer at one of the 5 fuel depots (Config.FuelDepots). - Drive to the station and unload. Unloading takes
Config.TankerUnloadTime(20 s); pressing X stops it and nothing is delivered.
Each tanker carries Config.TankerCapacity litres (10,000), plus any truck upgrades. Fuel is bought at the wholesale price (Config.WholesaleFuelPrice, $2/L).
Pricing and demand
Owners set the price per litre. Background customers compare it to the station's certified maximum price, so a higher price sells fewer litres:
litres sold × (1 − Elasticity × (price / maxPrice)²)With the default elasticity of 0.41, profit keeps rising with price and peaks at about 92 % of the maximum. Charging the full maximum sells about 41 % fewer litres than charging almost nothing. The dashboard's profit gauge uses the same formula.
Config.PriceDemand = {
Enabled = true, -- false: volume ignores price
Elasticity = 0.41,
}Upgrades
Upgrades are bought from the dashboard and paid into the Central Reserve. Each station caps how far it can upgrade.
| Upgrade | Levels | Effect |
|---|---|---|
| Price certification | $2.5M → $30M | Raises the certified max price to $15, $20, $25 and $50/L |
| Tank | $5M → $50M | +10,000 to +15,000 L of storage per level |
| Truck | $1.5M → $10M | +5,000 to +25,000 L per tanker run |
| Protection | $5M / $15M / $30M | 1, 2 or 3 extra days before an empty station is reset |
Taxes and the Reserve
Bucky Fuel never creates money. Everything owners pay goes into Bucky Reserve's Central Reserve and is written to its ledger:
| Payment | Goes to the Reserve |
|---|---|
| Buying a station from the state | The full price |
| Reselling a station to another player | 20 % resale tax |
| Withdrawing station income | 12 % GST, plus 4 % for each station owned beyond the second |
| Upgrades and protection | The full cost |
Configuration
Everything is in config.lua. It stays editable in the escrowed release.
| Setting | Default | What it does |
|---|---|---|
Config.GlobalFuelConsumptionMultiplier |
4.5 |
Fuel use speed (GTA default is 1.0) |
Config.DefaultFuelPrice |
1.50 |
Price per litre before an owner sets one |
Config.WholesaleFuelPrice |
2 |
Tanker fuel price per litre |
Config.RefillTimePerLitre |
0.5 |
Seconds per litre at the pump |
Config.SyncFuelBetweenPlayers |
true |
Sync vehicle fuel between players |
Config.FuelSyncTime |
10 |
Seconds between syncs |
Config.TankerCapacity |
10000 |
Litres per tanker run |
Config.TankerCost |
5000 |
Cost to start a resupply |
Config.TankerUnloadTime |
20 |
Seconds to unload |
Config.EmployeePayPerDelivery |
500 |
Paid to an employee per delivery |
Config.PriceDemand |
On, 0.41 | Demand curve for background sales |
Config.JerryCan |
50 L | Capacity, fee and pour/fill times |
Config.Upgrades |
Price, Tank, Truck and Protection levels and costs | |
Config.FuelBrands |
Los Santos Fuel, Blaine County Fuel | Brand shown on the dashboard and painted on the canopy |
Config.FuelDepots |
5 depots | Tanker pickup points |
Config.PumpModels |
GTA's pump props | Models that work as pumps |
Config.Stations |
26 stations | Name, tier, pumps, price, sales range, tank size, upgrade caps, image, attendant position |
Config.EnableNPC |
false |
Ambient NPC customers |
Config.TimeCycle |
'game' |
'game' (48-minute day) or 'real' (server clock) |
If you change a station's price here, change the same station in Bucky Reserve's
Config.FuelIntegration.Stationsso its Marketplace shows the same figure.
Commands
Admin commands need the qbcore.admin group.
| Command | Arguments | Description |
|---|---|---|
/setfuel |
[amount] |
Set the fuel of the car you're in (0–100, default 50) |
/fulltank |
[stationId] |
Fill a station's tank to capacity |
/zerotank |
[stationId] |
Empty a station's tank |
/removeupgrades |
[stationId] |
Remove all upgrades from a station |
/seizepump |
[stationId] |
Seize a station and put it back on sale |
/fuelsell |
[stationId] [litres] |
Simulate a sale (testing) |
/forcenpc |
Send a test NPC customer to the nearest station | |
resetfuelstations |
Server console only. Puts every station back on sale. |
Exports
-- Client
local fuel = exports['bucky-fuel']:GetFuel(vehicle) -- 0-100
exports['bucky-fuel']:SetFuel(vehicle, 75.0)Scripts that use LegacyFuel's exports (exports['LegacyFuel']:GetFuel / SetFuel) keep working through the included LegacyFuel bridge, which forwards them to Bucky Fuel. That covers QBCore's jobs, the vehicle shop and cruise control.
Troubleshooting
"Couldn't start resource bucky-fuel". Bucky Reserve must be installed and started; it's a dependency in this release.
Scripts still show fuel from the old system.
Make sure the original LegacyFuel is removed and the included LegacyFuel bridge is started after bucky-fuel.
A station can't sell fuel.
Its tank is empty. Run a tanker resupply, or /fulltank [id] as an admin.
An owner lost their station. It sat at 0 fuel longer than 24 hours plus any Protection days, so it was reset and put back on sale.
The pump target doesn't show.
Check the pump's model is in Config.PumpModels and that qb-target is started before Bucky Fuel.