Factorio HD Age: Modpack


This modpack bundles all of the Factorio HD Age mods for the Base Game and the Space Age DLC. It doesn't contain any content itself. It only references to the other Factorio HD Age mods as required dependencies. A total of at least 13 GB of VRAM is recommended.

Mod packs
a month ago
2.0
13.8K
Factorio: Space Age Icon Space Age Mod
Transportation Logistics Trains Combat Armor Enemies Environment Mining Fluids Logistic network Circuit network Power Storage

g Scaling of entity positions is breaking other mods

23 days ago
(updated 23 days ago)

Error

Failed to load mods: Error while loading entity prototype "aop-advanced-assembling-machine" (assembling-machine): PipeConnectionDefinition: position must be inside of entity bounding box. position={-1.000, -2.000}, leftTop={-1.949, -1.949}, rightBottom={1.949, 1.949}
Modifications: Age of Production › Factorio HD Age: Base Game - Logistics › Factorio HD Age: Base Game - Production › Bottleneck Lite › Exteros' QoL System › PlanetsLib

Posted on github: https://github.com/Ingo-Igel/Factorio_HD_Age_and_Factorio_QoL_Age/issues/2

Mod that breaks: https://mods.factorio.com/mod/Age-of-Production

Related: https://github.com/AndreusAxolotl/Age-of-Production/issues/54

Investigation

The v2.0.0 "new faster loading method" introduced a bug affecting mods with machines that have edge pipe connections (like Age of Production).

Cause: In texture-loading.lua (in both logistics and production mod modules), the adjustDataDotRaw() function scales ALL position fields found in tables containing .png paths:

local pos = pathed_data["position"]
if type(pos) == "table" and type(pos[1]) == "number" and type(pos[2]) == "number" then
    pathed_data["position"] = { floor(pos[1] * val_sf), floor(pos[2] * val_sf) }
end

Since v2.0.0 now traverses all of data.raw (including modded entities), this can inadvertently modify pipe connection positions when mods reference base game pipe graphics.

Suggested fix: Add a path check to skip scaling position fields inside fluid_boxes or pipe_connections structures, as these are entity positions, not texture sprite positions.

22 days ago
(updated 21 days ago)

Hi, I'm trying to reproduce the error, but I can't seem to do so.
When all the listet Mods.

Modifications: Age of Production › Factorio HD Age: Base Game - Logistics › Factorio HD Age: Base Game - Production › Bottleneck Lite › Exteros' QoL System › PlanetsLib

The machine that appears in your error message is displayed in the game as follows:

As I assumed, the textures of the pipe connections are now being displayed in HD and in the correct positions.
What you mention as a possible cause of the error is intentional, since the texture of the pipe connections is also loaded in HD in the same way.
I suspect that, for whatever reason, another mod changed the positions afterwards and that it is not due to Age of Production or my HD mods, or a combination of all three.

To help me narrow down the cause of the error, could you please list all mods that were active when the error message appears?
It would also be helpful, if you could perform a counter-test by activating only the mods listed in the error message to see if the error still occurs.

21 days ago

Hey, thanks for the response.

Here's the list in the order they are loaded in the logs.

belt-visualizer 2.0.2
OilOutpostPlanner 1.6.7
AutoDeconstruct 1.0.10
Automatic_Train_Painter 2.0.1
AutoSwitchTechs 1.8.1
BeltThreadUpgrades 1.4.4
DiscoScience 2.0.1
even-distribution 2.0.2
factorio_hd_age_base_game_base 2.0.0
factorio_hd_age_base_game_decorative 2.0.0
factorio_hd_age_base_game_enemies_nauvis 2.0.0
factorio_hd_age_base_game_logistics 2.0.0
factorio_hd_age_base_game_military 2.0.0
factorio_hd_age_base_game_production 2.0.0
factorio_hd_age_base_game_railway 2.0.0
factorio_hd_age_base_game_terrain_nauvis 2.0.0
FilterHelper 0.2.22
informatron 0.4.0
inventory-repair 20.0.3
light-overhaul 0.2.2
mining-patch-planner 1.7.14
nixie-tubes 2.0.9
RailSignalPlanner 2.0.3
RealisticReactorGlow 1.200.7
Shortcuts-ick 2.0.7
train-trails 1.1.1
Warehousing 1.0.3
BottleneckLite 1.3.4
circuit_visualizer 2.0.2
factorio_hd_age_elevated_rails 2.0.0
factorio_hd_age_modpack_base_game_only 2.0.0
factorio_hd_age_modpack_base_game_optional 2.0.0
factorio_hd_age_quality 2.0.0
nanobots-refined 4.0.6
PipeVisualizer-Updated 2.4.4
RateCalculator 3.3.7
Accumulator-V2 1.0.6
comfortable-loader 1.4.2
EditorExtensions 2.5.2
electric-tiles 1.2.10
Exteros-QoL-System 0.1.4
factorio_hd_age_space_age_base 2.0.0
factorio_hd_age_space_age_decorative 2.0.0
factorio_hd_age_space_age_enemies_gleba 2.0.0
factorio_hd_age_space_age_enemies_vulcanus 2.0.0
factorio_hd_age_space_age_logistics 2.0.0
factorio_hd_age_space_age_military 2.0.0
factorio_hd_age_space_age_production 2.0.0
factorio_hd_age_space_age_terrain_aquilo 2.0.0
factorio_hd_age_space_age_terrain_fulgora 2.0.0
factorio_hd_age_space_age_terrain_gleba 2.0.0
factorio_hd_age_space_age_terrain_vulcanus 1.1.2
galore_lib 1.6.2
logistics-insights 1.0.9
no-minimap-on-platforms 1.0.3
PlanetsLib 1.15.1
Better_Starmap_Background 2.2.0
blueprint-sandboxes 3.2.2
SolarMatrix 1.0.6
vanilla_galore_continued 1.2.6
visible-planets 1.6.1
space_age_galore 1.5.6
Age-of-Production 1.8.0
factorio_hd_age_modpack 2.0.0
factorio_hd_age_modpack_optional 2.0.0
21 days ago

I suspected it was probably something related to squeak through (within Exteros' QoL System) given that seemed like the most likely mod to mess with things. I disabled that mod and it started working. I wonder why it doesn't work with your minimal setup of mods though.

21 days ago

Thanks for the list! I'll take a look at it tomorrow.

Based on what you've found and the mods you're using, I'd also guess that it's the Exteros QoL system, where values are being changed by overwriting them with absolute values rather than modifying them by a factor.

I don't know why this doesn't cause any errors in my minimal test, but I suppose some settings could influence it.

20 days ago

I've managed to narrow down the error to the Squeak Through function of Exteros's QoL system.
Disabling this should resolve the issue.
I'll take a look at the source code of Exteros's QoL system over the next few days to understand what the exact reason is.

20 days ago

I had some time left to experiment.

Please see if the problem also occurs when you deactivate my HD mods. I was able to reproduce the error without them.

I received the following error message:

Failed to load mods: Error while loading entity prototype "aop-advanced-assembling-machine" (assembling-machine): PipeConnectionDefinition: position must be inside of entity bounding box. position={-1.000, -2.000}, leftTop={-1.949, -1.949}, rightBottom={1.949, 1.949}
Modifications: Age of Production › Exteros' QoL System › PlanetsLib

With these minimal modsetup enabled:

0.666 Loading mod core 0.0.0 (data.lua)
0.680 Loading mod base 2.0.72 (data.lua)
0.825 Loading mod elevated-rails 2.0.72 (data.lua)
0.855 Loading mod quality 2.0.72 (data.lua)
0.872 Loading mod space-age 2.0.72 (data.lua)
1.166 Loading mod Exteros-QoL-System 0.1.4 (data.lua)
1.178 Loading mod PlanetsLib 1.15.2 (data.lua)
1.193 Loading mod Age-of-Production 1.8.0 (data.lua)
1.240 Loading mod base 2.0.72 (data-updates.lua)
1.251 Loading mod quality 2.0.72 (data-updates.lua)
1.268 Loading mod space-age 2.0.72 (data-updates.lua)
1.278 Loading mod Exteros-QoL-System 0.1.4 (data-updates.lua)
1.288 Loading mod PlanetsLib 1.15.2 (data-updates.lua)
1.299 Loading mod Age-of-Production 1.8.0 (data-updates.lua)
1.311 Loading mod Exteros-QoL-System 0.1.4 (data-final-fixes.lua)
1.321 Loading mod PlanetsLib 1.15.2 (data-final-fixes.lua)
1.337 Loading mod Age-of-Production 1.8.0 (data-final-fixes.lua)

Of course, the Squeak Through function of the Exteros QoL system is explicitly activated (since it is not the default setting).

Therefore, in my opinion, the error is not due to my HD mods, as it also occurs without them.
It also works perfectly well without the Exteros QoL system's Squeak Through function.
Accordingly, Exteros QoL system is colliding here in some way.

20 days ago

Yea, that all makes sense. Appreciate the deep dive on this despite it not being your fault. Definitely seems like either the squeak through isn't handling some edge cases or the mod adding the machines is doing something slightly non-standard.

New response