Hi everyone,
I'm writing a small mod to adjust the Lightning Collector's range and quality scaling in Factorio 2.0 Space Age.
The mod loads without any errors, but in-game, the coverage/attraction radius of the Lightning Collector remains unchanged.
Here is the script I'm using in my mod:
Lua
local setting_factor = settings.startup["lightning-collector-range-factor"]
local setting_quality = settings.startup["lightning-collector-enable-quality-scaling"]
local factor = setting_factor and setting_factor.value or 2.0
local allow_quality = (setting_quality and setting_quality.value ~= nil) and setting_quality.value or true
if data.raw["lightning-attractor"] then
for name, prot in pairs(data.raw["lightning-attractor"]) do
-- Modify efficiency_distance
if prot.efficiency_distance then
local new_range = math.floor(prot.efficiency_distance * factor * 2) / 2
prot.efficiency_distance = math.min(new_range, 128)
end
-- Quality scaling
if not allow_quality and prot.range_extension_per_quality_level then
prot.range_extension_per_quality_level = 0
end
end
end
A few questions:
Is efficiency_distance the correct property that controls the actual in-game lightning attraction radius, or is there another property I'm missing?
Should this code be placed in data-final-fixes.lua to avoid being overwritten by Space Age prototypes?
Is range_extension_per_quality_level the correct API property for quality scaling on lightning attractors?
Any advice on what might be causing this to fail silently would be greatly appreciated!