Skip to content

Fuel & consumption

Fuel & consumption

Fuel types

Four ship by default. The key is what every vehicle, pump and station price refers to.

config.lua
Config.FuelTypes = {
    gasoline = { label = 'Gasoline', colour = '#e0973f', wholesale = 0.90, price = 2.00, electric = false },
    diesel   = { label = 'Diesel',   colour = '#3fd07f', wholesale = 0.70, price = 1.50, electric = false },
    premium  = { label = 'Premium',  colour = '#5b6cf0', wholesale = 1.40, price = 3.00, electric = false },
    electric = { label = 'Electric', colour = '#41b8c9', wholesale = 2.10, price = 4.50, electric = true  },
}
Field Meaning
wholesale Wat de eigenaar per liter betaalt bij het bestellen van voorraad
price De literprijs waarmee een nieuw station opent. Een eigenaren kunnen deze zelf aanpassen op de Fuel types pagina
electric Rekent af per kWh bij een lader in plaats van per liter bij een pomp

Config.FuelOrder bepaalt de volgorde waarin ze verschijnen in de selector in de wereld.

What a vehicle drinks

Wordt in deze volgorde bepaald: het model staat in Config.VehicleFuel.Electric → een exacte match in Config.VehicleFuel.Model → de voertuigklasse in Config.VehicleFuel.Class → gasoline.

config.lua
Config.VehicleFuel = {
    Class = {
        [0] = 'gasoline', [1] = 'gasoline', [2] = 'diesel',   [3] = 'gasoline',
        [4] = 'premium',  [5] = 'gasoline', [6] = 'premium',  [7] = 'premium',
        [8] = 'gasoline', [9] = 'diesel',   [10] = 'diesel',  [11] = 'diesel',
        [12] = 'diesel',  [17] = 'diesel',  [18] = 'diesel',  [19] = 'diesel',
        [20] = 'diesel',
    },
    Model = {
        -- ['sultanrs'] = 'premium',
    },
    Electric = {
        'voltic', 'voltic2', 'surge', 'neon', 'omnisegt', 'cyclone', 'tezeract',
        'imorgon', 'dilettante', 'dilettante2', 'khamelion', 'raiden', 'iwagen',
        'rcbandito', 'caddy', 'airtug',
    },
}

Alles in de Electric lijst werkt alleen bij een lader — een pomp weigert het voertuig.

Tank sizes

Literinhoud van een volle tank per klasse. 0 betekent dat die klasse nooit brandstof nodig heeft — fietsen (13) en treinen (21) zijn zo ingesteld.

config.lua
Config.Consumption.Tank = {
    [0] = 45, [1] = 60, [2] = 75, [3] = 55, [4] = 70, [5] = 55, [6] = 65,
    [7] = 80, [8] = 15, [9] = 80, [10] = 300, [11] = 90, [12] = 90,
    [13] = 0, [14] = 200, [15] = 400, [16] = 500, [17] = 90, [18] = 90,
    [19] = 150, [20] = 120, [21] = 0,
}
Config.Consumption.Default = 65

Brandstof wordt bijgehouden als een percentage in het voertuig, dus de tankgrootte bepaalt hoe ver je komt met één procent. Een industriële truck van 300 liter verliest per ingeschonken liter veel langzamer percentages dan een motorfiets van 15 liter.

Burn rate

Twee factoren worden met elkaar vermenigvuldigd: een tarief per klasse en het toerentalbereik (RPM-band) waarin de motor zich op dat moment bevindt.

config.lua
Config.Consumption.Rate = {
    [0] = 0.6, [2] = 1.2, [4] = 1.6, [6] = 1.4, [7] = 2.0, [8] = 0.4,
    [10] = 3.0, [15] = 3.5, [16] = 4.0,
}
Config.Consumption.RateDefault = 1.0

Config.Consumption.Rpm = {
    [1.0] = 0.13, [0.9] = 0.10, [0.8] = 0.08, [0.7] = 0.065, [0.6] = 0.05,
    [0.5] = 0.04, [0.4] = 0.03, [0.3] = 0.022, [0.2] = 0.015, [0.1] = 0.008,
    [0.0] = 0.0,
}
Config.Consumption.Tick = 1000

De RPM-tabel doet het meeste werk. Elke tick wordt het huidige toerental van de motor gekoppeld aan de hoogste band die gelijk is aan of lager is dan dat toerental, en dat aantal liter wordt verbruikt, geschaald op basis van het klasstarief en de tankgrootte. Het gaspedaal diep indrukken bij een Super verbruikt ongeveer zestien keer zoveel als stationair draaien met een compacte auto. Verbruik geldt alleen voor de bestuurder van een voertuig met een draaiende motor, dus geparkeerde auto's en passagiers kosten niets.

Bij een lege tank slaat de motor af.

Om brandstof over de hele linie wat zuiniger te maken, kun je de hele Rpm-tabel naar beneden schalen — halveer elke waarde en alles op de server gaat twee keer zo lang mee, waarbij de onderlinge verhoudingen tussen voertuigen intact blijven.

Low-fuel warning

config.lua
Config.Consumption.LowWarning = 15
Config.Consumption.LowWarningSound = true
Config.Consumption.WarnTick = 2000
Config.Consumption.IdleTick = 3000

Onder het percentage ingesteld bij LowWarning krijgt de bestuurder een melding en, optioneel, een geluidssignaal. Dit wordt eenmalig per voertuig afgevuurd en niet per tick, zodat het nooit vervelend wordt.

Spawn fuel

config.lua
Config.Consumption.SpawnFuel = { min = 40, max = 80 }

Dit is de allerbelangrijkste instelling voor de brandstofeconomie. Elk voertuig dat het script nog nooit heeft gezien — elke geparkeerde NPC-auto, elke garage-spawn, elk door een admin gespawned voertuig — rolt een willekeurig niveau in dit bereik de eerste keer dat iemand ernaar kijkt.

Laat dit op 40–80 staan zodat de meeste auto's die een speler vindt al halfvol zijn, waardoor tanken af en toe nodig is. Verlaag dit naar { min = 5, max = 25 } en de pompen krijgen het direct druk. Zet beide op 100 en niemand hoeft ooit een gloednieuwe auto te vullen.

Zodra een voertuig is gezien, wordt het brandstofniveau opgeslagen in de entity state bag en vandaaruit gedeeld tussen clients, zodat er niet opnieuw voor wordt gerold.

Wrong fuel

Diesel in een benzineauto gooien, of een jerrycan met verkeerde brandstof in een elektrische auto, heeft