The shown number of needed science packs and the remaining-time estimate is correct for normal techs, but for repeatable (infinite) ones it is too short by exactly the map's technology price multiplier.
Cause is in scripts/rqtech.lua, where research_unit_count is determined:
- finite branch uses tech.research_unit_count (LuaTechnology), which already has the price multiplier applied
- infinite branch evaluates research_unit_count_formula, whose raw result does not
The speed estimate in control.lua also uses LuaTechnology.research_unit_count, so the ETA in actions.lua divides a count without the multiplier by a rate with it. The science pack totals under the queue are off the same way.
Suggested fix for the infinite branch (assisted by: anthropic/claude):
local count = helpers.evaluate_expression(
tech.research_unit_count_formula, { L = level, l = level })
if not tech.prototype.ignore_tech_cost_multiplier then
count = math.ceil(count * game.difficulty_settings.technology_price_multiplier)
end
research_unit_count = count
Replace the if infinite then branch of the research_unit_count block in scripts/rqtech.lua (lines 83-89 in 0.6.24); the else branch stays as is.
Shame there is no public repository despite the MIT license - I would happily have sent this as a pull request instead.