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 オーナーが在庫を発注する際に1リットルあたりに支払う価格
price 新しいスタンドが営業を開始する際の1リットルあたりの価格。オーナーは「Fuel types」ページから自分で変更できます
electric ポンプでのリットル単位ではなく、充電器でkWh単位で請求されます

Config.FuelOrder は、ワールド内のセレクターに表示される順番を設定します。

What a vehicle drinks

以下の順序で判定されます: Config.VehicleFuel.Electric 内のモデル → Config.VehicleFuel.Model 内の完全一致 → Config.VehicleFuel.Class 内の車両クラス → ガソリン。

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',
    },
}

Electric リストにあるものは充電器でしか機能せず、ポンプでは拒否されます。

Tank sizes

クラスごとの満タン時の容量(リットル)。0 はそのクラスに燃料が一切必要ないことを意味し、自転車(13)や電車(21)がこの設定になっています。

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

燃料は車両のパーセンテージとして追跡されるため、1%でどれだけ進めるかはタンクのサイズによって決まります。300リットルの大型トラックは、15リットルのバイクに比べて、1リットルあたりのパーセンテージの減少がはるかに緩やかです。

Burn rate

クラスごとの消費率と、エンジンが現在稼働しているRPM(回転数)帯の2つの要素を掛け合わせて計算されます。

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

RPMテーブルが処理の大部分を担っています。毎ティック、エンジンの現在のRPMが、それ以下で最も近い帯にマッチングされ、クラスの消費率とタンクサイズによってスケーリングされた量の燃料が消費されます。スーパーカーでアクセルを全開にすると、コンパクトカーでアイドリングしている時の約16倍の燃料を消費します。燃料消費はエンジンがかかっている車両のドライバーに対してのみ実行されるため、駐車中の車両や乗客にコストはかかりません。

燃料がゼロになるとエンジンが停止します。

サーバー全体で燃料の消費を全体的に軽くするには、Rpm テーブル全体の値(すべての値)を半分に下げます。これにより、車両間の相対的な違いを保ったまま、すべての車両の燃費が2倍長持ちするようになります。

Low-fuel warning

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

LowWarning のパーセンテージを下回ると、ドライバーに通知が届き、オプションでチャイム音が鳴ります。ティックごとではなく車両ごとに1回だけ発動するため、しつこく鳴り続けることはありません。

Spawn fuel

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

これは燃費に関する最も重要な設定項目です。 スクリプトがこれまでに認識したことのないすべての車両(駐車中のNPCの車、ガレージでスポーンした車、管理者によってスポーンされた車など)は、誰かが最初に確認した際に、この範囲内でランダムな燃料レベルがロールされます。

40〜80のままにしておけば、プレイヤーが見つける車のほとんどはすでに半分ほど燃料が入っているため、給油はたまに行う程度になります。これを { min = 5, max = 25 } に下げると、すぐにポンプが忙しくなります。両方を100に設定した場合、新しい車に給油する必要は誰もなくなります。

車両が一度確認されると、その燃料レベルはエンティティステートバッグに保存され、そこからクライアント間で共有されるため、再ロールされることはありません。

Wrong fuel

ガソリン車にディーゼルを入れたり、電気自動車にジェリカン(携行缶)で燃料を入れたりすると、それなりの結果を招きます。このモードはサーバー全体に適用されますが、管理者は /fueladmin からスタンドごとに上書きすることができます。

Config.WrongFuel = {
    Mode = 'damage',