Lignumis


Dive into the world of Lignumis, a moon of Nauvis offering only the most basic technologies.

Content
a day ago
2.0
12.4K
Factorio: Space Age Icon Space Age Mod
Planets Logistics Environment Mining Fluids Manufacturing

b Compatibility with Helmod

4 months ago

First of all, I'm neither sure that's a "bug" nor if it's a Lignumis or Helmod issue. It's not a blocker at all, it's just sad since I can't use Helmod the way I wanted. Although, maybe this hints to other issues...

What I observe are two things:

  1. When I want to add the recipe "wood-liquefaction", Helmod prints "Entity is not boiler or fusion-reactor" to the console in game ("@helmod/model/Player.lua:32" in factorio-current.log), and it just doesn't work in Helmod (nothing ist calculated). When I add "wood-liquefaction-steam", there's no error and everything works as expected. However, I'd like to not use this recipe, since it needs at least assemblers 2 and they're not "native to Lignumis".

  2. When I want to figure out how many agricultural towers I need to produce wood from tree seeds, some time ago I could choose "tree seed" from Helmod's "special" Helmod section (hard to describe, the last category in its recipe selector). I don't really understand that section to be honest, but I could choose tree seed and then it guessed how many agricultural towers I need (this didn't work very well, but it was a hint). Now, that recipe's gone; I still have the saved production line from that time, and the tree seed recipe is there (using agricultural towers), but an error ist printed to the console: "attempt to get length of local 'raw_products' (a nil value)" ("@helmod/model/Player.lua:32: helmod/model/RecipePrototype.lua:151: attempt to get length of local 'raw_products' (a nil value)" in factorio-current.log). I don't know why the tree seed recipe is no longer in the Helmod section.

Maybe you can guess what the reason for the first issue is - the second seems rather obscure, I have no clue where to look to find out about that...

Thank you!

4 months ago

Ah, the second issue has to do with Diversitree, if I disable that one, Helmod acts as before. That makes sense, I added Diversitree some time later. Still, odd... maybe I can find out more and report to Diversitree mod.

4 months ago
(updated 4 months ago)

Ok. It's not the recipe wood-liquefaction, it's the steam-assembling-machine. When choosing this, Helmod throws the error, regardless of the selected recipe.

Digging around in Helmod and online, modyfing the steam assembler like this seems to work:


...
assembling_machine.energy_source = {
type = "fluid",
maximum_temperature = 165,
effectivity = 1,
emissions_per_minute = { noise = 50 },
fluid_box = {
filter = "steam",
production_type = "input",
...


https://forums.factorio.com/90613

not sure what the side effects are, need to check again...

Helmod tries to calculate the fuel needed for a given number of machines. Steam assembling machine uses fluid, so it branches that way. It correctly determines that the energy source is an instance of https://lua-api.factorio.com/latest/classes/LuaFluidEnergySourcePrototype.html.

Then, it tries to calculate the fluid consumption by fetching some data from the machine and the fuel. One of these values is the "target temperature" of the machine. Crucially, if this is not valid, Factorio (not Helmod) throws an error; this is the "Entity is not boiler or fusion-reactor" message, which for the life of me I could not find a source for; I believe now that this is hard coded in Factorio's sources.

So what happened. No one said that the Steam assembling machine should be a boiler or a fusion-reactor, fine. But target temperature can only be set on those it seems; from https://lua-api.factorio.com/latest/classes/LuaEntityPrototype.html#target_temperature:
"Can only be used if this is Boiler or FusionReactor" (that's why I believe that is a hard coded check within Factorio).

Playing around with properties of https://lua-api.factorio.com/latest/types/FluidEnergySource.html, the combination mentioned above seems to yield the best results... and I think the constraint to only use steam should be moved to the FluidBox...

4 months ago

Thank you for the report. I'll check it on the weekend.

4 months ago

Ah, the second issue has to do with Diversitree, if I disable that one, Helmod acts as before. That makes sense, I added Diversitree some time later. Still, odd... maybe I can find out more and report to Diversitree mod.

Diversitree is fixed: https://mods.factorio.com/mod/Diversitree/discussion/67f6f52c44171a95f1c776a9

4 months ago
(updated 4 months ago)

I've been playing my save a bit with the settings I described above, it seems to work quite well. I can use the steam assembler in Helmod. And when placing it and using it in the factory, it consumes steam and produces what I set it to. No idea of side effects though.

I've noticed https://mods.factorio.com/mod/RateCalculator is off when producing wood-liquefaction; for wood pulp, it says +1.667 and -0.833. https://mods.factorio.com/mod/MaxRateCalculator does it right (I've seen differences between these two calculators in other places, so that doesn't surprise me). Maybe with my settings above RateCalculator thinks the steam assembler uses some of the produced wood pulp for itself - no idea.

When I use your unmodified steam assembler, RateCalculator correctly reports +1.667 wood pulp (no subtractions) - but claims that "some machines have no input fluid", which again is not correct (the steam assemblers have full steam and produce normally).

That's just another observation. I don't know what's the best way to handle this... I believe the basic challenge is "how do you correctly set up an assembler that consumes a fluid as energy source"? By "correctly" I mean such that it works as intended by Factorio - which is a bit hard since there seems to be no other production machine using fluid as energy and there seem to be a number of flags and behaviours which probably have to be set very carefully to work together...

Finally, if you can't/won't fix this, no worries - it's sad that I can't use Helmod then, but on other planets, I probably won't use steam assemblers, so it's just inconvenient for Lignumis. :-)

(the link above https://forums.factorio.com/90613 links to a thread about Krastorio where they maybe have such machines, but I'm definitely not going down the rabbit hole and digging through Krastorio code - understanding Helmod took me enough hours :-D).

(just in case you want to see where it throws the error in Helmod (2.0.17), it's in https://github.com/Helfima/helmod/blob/f7033d053bee853025802bc6ad7cd6f88a318cc5/model/EntityPrototype.lua#L308 (be careful, their source in GitHub doesn't match the current version 2.0.17...). The "or 0" doesn't work, since Factorio throws an error even when accessing target_temperature (not returning nil or something but raising "Entity is not boiler or fusion-reactor")).

(Actually, I think I'll report the last bit to Helmod, that doesn't seem right...; edit: https://mods.factorio.com/mod/helmod/discussion/67f93d5fc39e47d5d183bf73)

4 months ago

Thanks for investigating the problem in such detail. So the fuel category needs to be deleted and max temperature and the filter seem to be crucial. I'll put that change in the next release.

4 months ago
(updated 4 months ago)

Hey! I'm one of the devs for Helmod. Yes, it definitely seems to be a bug in Helmod. I'll get that fixed soon!

However even with that fixed, there's two issues that I can see with the Lignumis' Steam assembling machine. First issue (as you've already worked out) is that it's not defining a fluid filter. This means that the machine will happily consume any fluid that has temperature. Here's a screenshot of it using molten gold as it's "fuel". For comparison, I've included a screenshot of Bob's steam powered assembling machine, showing it has a filter defined.

Setting the max temperature is completely optional.

https://imgur.com/a/kySPEmw

The second issue is that the entity icon is not correctly defined. The entity icon is used in tooltips and in the bonus screen gui. Screenshot of this included too.

4 months ago
(updated 4 months ago)

Fixed in Helmod v2.0.18

4 months ago

Thank you. Weird that the icon is broken on your end. For me it looks correct. I added an icon size just to be sure.

4 months ago

Release is out.

4 months ago

terrific, thanks a lot! :-)

4 months ago

Just for info, regarding this (which was just a side note above):

When I use your unmodified steam assembler, RateCalculator correctly reports +1.667 wood pulp (no subtractions) - but claims that "some machines have no input fluid", which again is not correct (the steam assemblers have full steam and produce normally).

Behaves still like this after your update. I guess it's wrong on RateCalculator's side, thus: https://github.com/raiguard/RateCalculator/issues/206

I'm curious what they'll respond...

4 months ago

There are multiple different (completely valid) ways of defining a steam powered machine. This definitely sounds like a Rate Calculator issue. Especially if it works fine in game and Helmod (now) calculates it correctly!

This thread has been locked.