Hi there. It gets stuck in an endless loop, if Planet Muluna is enabled. If you disable Muluna, Factorio starts since Hot metals doesn't find itself in the endless loop.
In Planet Muluna version 2.0.0, they added this:
- Added "Crushed aluminum" item, made by crushing aluminum plates.
Which I think works (I haven't reached the planet, started a new game).
- Hot metals tries to add a hot version of aluminum plates.
- The normal plates have no weight, so it tries to determine the weight from the base ingredients of a recipe resulting in the plate, nothing special so far.
- But the first recipe it finds that produces the plates is "aluminum-crushing", which has results aluminum-crushed - but ALSO a 0.05 chance of producing aluminum-plates, again, so the script thinks it has found some sort of "base recipe" from its ingredients it could calculate the weight of the plate.
- The base ingredient is an aluminum plate itself, the script tries to determine its weight - but it hasn't got a weight (as already seen in step 2), and thus recursively starts the weight searching process again for aluminum plate. That results in an endless loop.
For contrast, for copper plates that works, because the script finds the recipe "copper-plate", its base ingredient is copper ore, which has got a weight, end of recursive search.
I don't think Muluna did something wrong here, I believe Hot metals' script isn't expecting a recipe (e.g. aluminum-crushing) which has an item (aluminum-plate) both as ingredient and as result - AND, for this item, a hot variant should be added.
I don't know how to fix this, but I believe this is the base issue (added loglines into Hot metals). Maybe ignore results with less than probablilty 1? Or maybe do something special for Muluna, since compatibility is already added anyway...
Hope this helps to track it down. It's in prototypes/hot-metals.lua, in getWeight(). "aluminum-crushing" is found in line 25, line 32 matches, ingredient in line 34 is "aluminum-plate", and from there on the script is doomed.
Edit: actually, I tried to change line 35 to:
if ingredient.type == "item" and ingredient.name ~= item.name then
Then, Factorio starts (with both Muluna and Hot metals active), and there's indeed a hot aluminum plate... don't know if this modification has unintended sideeffects, though, or if it's a good idea to solve it that way...