Skip to content
First 10 customers get 70% off any script

Bucky Fuel

26 ownable fuel stations, tanker resupply, pricing, upgrades, jerry cans and the LegacyFuel bridge.

  • v1.0.0
  • ● Live
  • 8 min read
Get Bucky Fuel
View script →

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 bridge

Remove 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

cfg
ensure oxmysql
ensure qb-core
ensure qb-target

ensure bucky-reserve
ensure bucky-fuel
ensure LegacyFuel

Refuelling

At any pump (models in Config.PumpModels), players use the target menu:

  1. Get Fuel Nozzle at the pump.
  2. Insert Nozzle into the vehicle.
  3. Put Fuel at the refuel terminal, choose the amount and pay by card or cash.
  4. 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.

lua
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

  1. Start a resupply from the dashboard (Config.TankerCost, $5,000).
  2. Pick up a phantom truck and tanker trailer at one of the 5 fuel depots (Config.FuelDepots).
  3. 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.

lua
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.Stations so 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

lua
-- 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.