Troubleshooting
Checks for interactions, payments, displays, placement saves, and streamed models.
I cannot take a nozzle
Check that FS-Lib and FS-Fuel are running. Stand close to the pump and use E, or your target menu if enabled. Its nozzle slots may already be occupied, or you may have reached Config.MaxActiveNozzles (four active connections per player by default). You can hold only one nozzle at a time; connect or return it before taking another.
For a custom map pump, register its model in Config.AdditionalFuelPumpModels. A station map icon alone does not make a pump usable. A model or placement with maxNozzles = 0 disables pickup.
The nozzle will not connect to my vehicle
Stand by the fuel cap. Use a liquid-fuel pump for gasoline or diesel and an electric charger for an EV. Electric charging supports the engine on or off and occupied vehicles. Gasoline supports a running engine with the optional explosion risk.
For add-on vehicles, check Config.Electric.VehicleOverrides and Config.DieselVehicles. Return the nozzle before switching liquid-fuel grades. If the prompt or nozzle position is wrong, see vehicle nozzle adjustments.
A charger, connector, or sign does not appear
The default models are included. Check that the packaged stream/electric/station/, stream/electric/connector/, stream/signs/, and stream/metadata/ folders are intact and that their .ytyp registrations match fxmanifest.lua.
For custom models, check their names and start their model resource before FS-Fuel. See electric charger setup.
Check the saved placement's enabled field and the relevant visibility setting. Placed pumps stream within Config.PumpSpawnDistance (150 meters by default). Signs use Config.GasSigns.Enabled, SpawnDistance (200 meters), and MaxVisible (24 nearest signs).
Physical screens are missing or misaligned
Check Config.GasPumpScreens or Config.ChargerScreens: the group must be enabled and the model must not be set to false. Displays also have their own draw distance and nearby screen limit, separate from prop streaming distance.
Keep the supplied presets matched to the built-in models. Custom meshes need their own measurements in data/pump_screens.lua; changing a style name does not automatically fit a different model. See Custom displays.
For flickering, inspect the panel's local depth and ensure it sits just in front of its backing, behind the bezel. For incorrect sales on a custom pump, check that its nozzle slots match the front/back display assignments and that single-nozzle pumps use singleNozzle = true.
I see a 2D meter or two fuel gauges
Config.ShowPumpUI = false hides the optional meter on supported physical displays. Unsupported or disabled physical profiles retain a fallback meter. To remove a duplicate vehicle HUD gauge, set Config.FuelGauge.Enabled = false; this is independent of pump displays.
The admin panel will not open or save
Check Config.PumpEditor.Enabled and grant the configured ACE to your admin group. By default:
add_ace group.admin fs-fuel.admin allowOpen /fueladmin while on foot in routing bucket 0. Return active nozzles before editing a busy pump. Sessions expire after five minutes, and another admin's save can make your preview outdated; reopen the placement and try again.
There is no eight-meter edit limit. You can select saved placements remotely. Gizmo handles still need to be visible to drag; use coordinate fields or visit the placement with its waypoint.
Placement JSON will not load or edits disappear
The files must be valid JSON documents with version: 1 and a placements array. Entries need unique positive numeric IDs, a valid type, X/Y/Z coordinates, and heading. JSON cannot contain comments, trailing commas, or Lua vectors. See the pump example or the sign example.
Missing or invalid files disable that placement store without overwriting it. Stop the resource, repair the file or restore its .json.bak snapshot, then restart. If saving fails, check the server console and resource-folder write access; a failed save leaves the live snapshot unchanged.
Admin saves update the running resource's JSON. Manual edits need a restart. Updates and source builds can replace these files, so preserve live JSON during updates and copy in-game changes back to source before rebuilding.
A price sign has blank digits or a different price
The supplied sign meshes support prices below $10 per gallon. A price that does not fit leaves the affected row blank and produces an admin warning. Check both the starting price and any automatic adjustment.
Signs use their own position to choose a pricing region. Place them in the same region as the pumps they advertise. A sale already in progress keeps its original quote even when the sign changes to the current price.
It says the money system is unavailable
Start your money resource before FS-Fuel. Check Config.Integrations.money and Config.Money.Account. If several supported money systems are running, choose the one you use instead of auto. Custom integrations must implement the supplied server-side function contracts.
Why has my money not changed while filling?
By default, each nozzle's bill is collected when you return or drop it. Removing it from the vehicle pauses filling. With temporary payment holds enabled, one shared hold is taken first and unused funds are refunded after settlement.
Money integrations settle whole-dollar amounts, so the final debit can round up from the pump's decimal sale total. Spilled fuel is charged too.
Why is fuel priced differently?
Check Config.FuelPrices.GasPerGallon and DieselPerGallon. Regional pricing is on by default; UseRegionalPrices = false uses the Los Santos price for each grade everywhere. Vehicle classification determines which grade is charged.
Prices always end in 9/10 cent. Automatic changes are simulated and off by default; there is no live fuel-price API sync. A sale in progress keeps its original quote. See price settings.
Fuel is draining too quickly or changing by itself
Check for another fuel or vehicle script changing the same fuel-level storage. Adjust Config.Fuel.BaseDrainPerTick or the relevant ClassRates entry for liquid-fuel consumption. Tank capacity is a separate setting. For EV range, start with Config.Electric.Driving.DrivingMinutes; larger values last longer.
The hose breaks or fuel spills
Config.HoseBreakDistance limits total routed hose length, including wraps around pumps and nearby objects. A hose can reach that limit even when the straight-line distance looks short. Unwind it or park closer. Held hoses tug over the final 0.35 meters before the limit.
Overfilling is enabled by default and can cause a brief paid spill when automatic shutoff fails. Set Config.Overfill.Enabled = false to disable that chance, or Config.AllowPouring = false to disable manual pouring. Hose slack is handled internally.
Testing the fuel gauge
While seated in a vehicle, /setfuel 50 sets its fuel gauge to 50%.
Command access
The current /setfuel command is not restricted to admins. It is a testing command; account for this before using the resource on a public server.
Need more details?
Enable Config.Debug, reproduce the problem, and check the F8 client console and server console. Include the error text, vehicle or pump model, and action you were taking. For custom screens, include that model's display entry; for placement errors, include the relevant JSON entry.