Adjustable Fuel Stats


Customize fuel stats (energy, acceleration, top speed).

Tweaks
10 months ago
2.0
201
Trains Cheats

i Mod compatible?

8 days ago

Hello,

I play a massive mod

https://mods.factorio.com/mod/Spaghetorio <- I take no credit.

And was wondering if you are ok to add the fuel in your mod? I asked the ai to write me the script and also no NOT include any bio fuel just because there are just to many this overhaul mod adds.

Here is the script the AI wrote and yes, no clue if any issues. I personally just asked it to create me a separate lua (since i don't upload mods especially since it's not my mod) but yeah, i much more prefer to have it clear like your mod does

-- FILE: data-final-fixes.lua
---@diagnostic disable: undefined-global

-- keep existing uranium-fuel-cell line (if you already have it)
data.raw["item"]["uranium-fuel-cell"].fuel_value = settings.startup["uranium-fuel-cell-config-mj"].value .. "MJ"

local fuels = {
  "wood", "coal", "solid-fuel", "rocket-fuel", "nuclear-fuel"
}

local fuels_space_age_dlc = {
  "carbon", "yumako-seed", "jellynut-seed", "tree-seed",
  "yumako", "jellynut", "spoilage", "yumako-mash",
  "jelly", "biter-egg", "pentapod-egg",
}

-- ADD THIS (Spagetorio fuels, only when mod is active)
local fuels_spagetorio = {
  "sp-coke",
  "sp-fuel",
  "sp-advanced-fuel",
  "sp-thorium-fuel-rod",
  "sp-uranium-fuel-rod",
  "sp-mox-fuel-rod",
  "sp-plutonium-fuel-rod",
  "sp-charged-antimatter-fuel-cell",
  "sp-dt-fuel",
}

local function update_fuels(fuel_list)
  for _, fuel_name in ipairs(fuel_list) do
    local item = data.raw["item"][fuel_name]
    if item then
      local setting_name = fuel_name .. "-config-mj"
      if settings.startup[setting_name] then
        item.fuel_value = settings.startup[setting_name].value .. "MJ"
      else
        log("Setting '" .. setting_name .. "' does not exist!")
      end

      local accel_setting = settings.startup[fuel_name .. "-config-fuel-accel"]
      if accel_setting then
        item.fuel_acceleration_multiplier = accel_setting.value
      end

      local speed_setting = settings.startup[fuel_name .. "-config-fuel-max"]
      if speed_setting then
        item.fuel_top_speed_multiplier = speed_setting.value
      end
    else
      log("Fuel item '" .. fuel_name .. "' was not found!")
    end
  end
end

update_fuels(fuels)

if mods["space-age"] then
  update_fuels(fuels_space_age_dlc)
  data.raw["item"]["fusion-power-cell"].fuel_value = settings.startup["fusion-power-cell-config-mj"].value .. "MJ"
end

-- ADD THIS LINE
if mods["Spagetorio"] then
  update_fuels(fuels_spagetorio)
end
-- FILE: settings.lua
---@diagnostic disable: undefined-global

-- ADD THIS BLOCK (Spagetorio fuels settings, only when Spagetorio is active)
if mods["Spagetorio"] then
  data:extend({
    -- MJ values
    { type="double-setting", name="sp-coke-config-mj",                      setting_type="startup", default_value=4.0,      minimum_value=0.1, order="fuel-config-sp-a01" },
    { type="double-setting", name="sp-fuel-config-mj",                      setting_type="startup", default_value=12.0,     minimum_value=0.1, order="fuel-config-sp-a02" },
    { type="double-setting", name="sp-advanced-fuel-config-mj",             setting_type="startup", default_value=100.0,    minimum_value=0.1, order="fuel-config-sp-a03" },
    { type="double-setting", name="sp-thorium-fuel-rod-config-mj",          setting_type="startup", default_value=8000.0,   minimum_value=0.1, order="fuel-config-sp-a04" },
    { type="double-setting", name="sp-uranium-fuel-rod-config-mj",          setting_type="startup", default_value=8000.0,   minimum_value=0.1, order="fuel-config-sp-a05" },
    { type="double-setting", name="sp-mox-fuel-rod-config-mj",              setting_type="startup", default_value=12000.0,  minimum_value=0.1, order="fuel-config-sp-a06" },
    { type="double-setting", name="sp-plutonium-fuel-rod-config-mj",        setting_type="startup", default_value=16000.0,  minimum_value=0.1, order="fuel-config-sp-a07" },
    { type="double-setting", name="sp-charged-antimatter-fuel-cell-config-mj", setting_type="startup", default_value=40000.0, minimum_value=0.1, order="fuel-config-sp-a08" },
    { type="double-setting", name="sp-dt-fuel-config-mj",                   setting_type="startup", default_value=40000.0,  minimum_value=0.1, order="fuel-config-sp-a09" },

    -- Acceleration multipliers
    { type="double-setting", name="sp-coke-config-fuel-accel",                      setting_type="startup", default_value=1.05, minimum_value=0.0, maximum_value=20.0, order="fuel-config-sp-b01" },
    { type="double-setting", name="sp-fuel-config-fuel-accel",                      setting_type="startup", default_value=1.40, minimum_value=0.0, maximum_value=20.0, order="fuel-config-sp-b02" },
    { type="double-setting", name="sp-advanced-fuel-config-fuel-accel",             setting_type="startup", default_value=2.10, minimum_value=0.0, maximum_value=20.0, order="fuel-config-sp-b03" },
    { type="double-setting", name="sp-thorium-fuel-rod-config-fuel-accel",          setting_type="startup", default_value=2.90, minimum_value=0.0, maximum_value=20.0, order="fuel-config-sp-b04" },
    { type="double-setting", name="sp-uranium-fuel-rod-config-fuel-accel",          setting_type="startup", default_value=2.90, minimum_value=0.0, maximum_value=20.0, order="fuel-config-sp-b05" },
    { type="double-setting", name="sp-mox-fuel-rod-config-fuel-accel",              setting_type="startup", default_value=3.20, minimum_value=0.0, maximum_value=20.0, order="fuel-config-sp-b06" },
    { type="double-setting", name="sp-plutonium-fuel-rod-config-fuel-accel",        setting_type="startup", default_value=3.50, minimum_value=0.0, maximum_value=20.0, order="fuel-config-sp-b07" },
    { type="double-setting", name="sp-charged-antimatter-fuel-cell-config-fuel-accel", setting_type="startup", default_value=4.00, minimum_value=0.0, maximum_value=20.0, order="fuel-config-sp-b08" },
    { type="double-setting", name="sp-dt-fuel-config-fuel-accel",                   setting_type="startup", default_value=4.00, minimum_value=0.0, maximum_value=20.0, order="fuel-config-sp-b09" },

    -- Top speed multipliers
    { type="double-setting", name="sp-coke-config-fuel-max",                      setting_type="startup", default_value=1.05, minimum_value=0.0, maximum_value=20.0, order="fuel-config-sp-c01" },
    { type="double-setting", name="sp-fuel-config-fuel-max",                      setting_type="startup", default_value=1.15, minimum_value=0.0, maximum_value=20.0, order="fuel-config-sp-c02" },
    { type="double-setting", name="sp-advanced-fuel-config-fuel-max",             setting_type="startup", default_value=1.25, minimum_value=0.0, maximum_value=20.0, order="fuel-config-sp-c03" },
    { type="double-setting", name="sp-thorium-fuel-rod-config-fuel-max",          setting_type="startup", default_value=1.50, minimum_value=0.0, maximum_value=20.0, order="fuel-config-sp-c04" },
    { type="double-setting", name="sp-uranium-fuel-rod-config-fuel-max",          setting_type="startup", default_value=1.50, minimum_value=0.0, maximum_value=20.0, order="fuel-config-sp-c05" },
    { type="double-setting", name="sp-mox-fuel-rod-config-fuel-max",              setting_type="startup", default_value=1.70, minimum_value=0.0, maximum_value=20.0, order="fuel-config-sp-c06" },
    { type="double-setting", name="sp-plutonium-fuel-rod-config-fuel-max",        setting_type="startup", default_value=1.90, minimum_value=0.0, maximum_value=20.0, order="fuel-config-sp-c07" },
    { type="double-setting", name="sp-charged-antimatter-fuel-cell-config-fuel-max", setting_type="startup", default_value=2.50, minimum_value=0.0, maximum_value=20.0, order="fuel-config-sp-c08" },
    { type="double-setting", name="sp-dt-fuel-config-fuel-max",                   setting_type="startup", default_value=2.50, minimum_value=0.0, maximum_value=20.0, order="fuel-config-sp-c09" },
  })
end

New response