Fuel
Read and set a vehicle's fuel level through whichever fuel script the server runs.
Fuel goes through ai-core, never through a fuel script's own exports, decorators or state bags (ai-fuel included). ai-core forwards each call to the active fuel script: the one the panel's Fuel script setting picks, or the first one running (ai-fuel, ox_fuel, LegacyFuel and the others in the compatibility list). Without a fuel script, the level is just the vehicle's fuel state bag.
A level is a number from 0 (empty) to 100 (full). A vehicle is a server entity handle.
GetFuelSystem
The resource name of the fuel script ai-core forwards to.
Side: Server · Waits: no · Lib: fuel.provider()
GetFuelSystem(): string | nulllocal system = exports['ai-core']:GetFuelSystem() -- 'ai-fuel', 'ox_fuel'... or nilParameters
None.
Returns
string | null: the fuel script's resource name. null when none runs.
Example
import { addCommand, resourceExport } from "@aicore-fivem/lib/server";
const core = resourceExport("ai-core");
addCommand("fuelsystem", { help: "Shows the fuel script in use", restricted: true }, () => {
console.log(core.GetFuelSystem() ?? "none: fuel is only the state bag");
});GetVehicleFuel
A vehicle's fuel level.
Side: Server · Waits: no · Lib: fuel.get (server); on the client the client lib's fuel.get(vehicle) reads the state bag ai-core keeps
GetVehicleFuel(vehicle: number): number | nulllocal level = exports['ai-core']:GetVehicleFuel(vehicle) -- 0-100 or nilParameters
Prop
Type
Returns
number | null: the level, 0-100. null when the vehicle has no level yet, or vehicle is not an existing vehicle.
Example
import { onClientCallback, resourceExport, vehicleNearPlayer } from "@aicore-fivem/lib/server";
import { fail, oneArg, readId } from "@aicore-fivem/lib/shared";
const core = resourceExport("ai-core");
// A mechanic reads the tank of the car in front of them.
onClientCallback("myscript:checkTank", { args: oneArg(readId) }, (source, netId) => {
const vehicle = vehicleNearPlayer(source, netId, { metres: 4 });
if (!vehicle) return fail("TOO_FAR");
return { ok: true, level: core.GetVehicleFuel(vehicle) };
});SetVehicleFuel
Sets a vehicle's fuel level.
Side: Server · Waits: no · Lib: fuel.set (and spawnVehicle({ fuel }) sets it at creation)
SetVehicleFuel(vehicle: number, level: number): booleanlocal ok = exports['ai-core']:SetVehicleFuel(vehicle, 100.0)Parameters
Prop
Type
Returns
boolean: true when the level was handed to the fuel script (or written to the state bag when none runs). false when vehicle is not an existing vehicle, level is not a finite number, or the fuel script failed.
For fuel scripts that keep fuel on the players' games, the new level reaches the vehicle through its owner's game a moment later.
Example
import { onClientCallback, resourceExport, vehicleNearPlayer } from "@aicore-fivem/lib/server";
import { fail, oneArg, readId } from "@aicore-fivem/lib/shared";
const core = resourceExport("ai-core");
// A jerry can adds 25% to the car next to the player.
onClientCallback("myscript:jerryCan", { args: oneArg(readId), lock: true }, (source, netId) => {
const vehicle = vehicleNearPlayer(source, netId, { metres: 3 });
if (!vehicle) return fail("TOO_FAR");
if (!core.RemoveItem(source, "jerrycan")) return fail("NO_JERRYCAN");
core.SetVehicleFuel(vehicle, (core.GetVehicleFuel(vehicle) ?? 0) + 25);
return { ok: true };
});