Burner Leech


Burner Inserters can take fuel from any entity (ie. furnaces)

Utilities
4 months ago
0.17 - 1.1
417

b my inserters unload fuel from machines to belts and other machines that don't need fuel :-(

4 years ago
(updated 4 years ago)

until a few days ago, i used factorio 0.17.65(?) and version 1.0.6 of this mod, and it worked quite nicely (besides some "lazyness", see other threads), but when i just started the most current versions (factorio 0.17.68 and this mod 1.0.7), all my belts got messed up and also assemblers and smelters got stuck.
btw: i am using the Fantario mod that modifies and adds inserters, but the old version of this mod worked fine, and to me it looks as if it could be related to changes in how many fuel is forwarded (which was changed in the last version), maybe this mod behaves differently, or has different interactions with other mods than it had before.

messed up belts: as i understood, fuel should only be forwarded/inserted to other machines (assemblers/smelters/etc), and not put on belts !? but when one inserter fills a smelter with coal and on the other side an inserter empties the coal onto a belt, the whole mod becomes unsusable ...

messed up machines: i had one assembler that used wood as an ingredient, and then an inserter that fueled itself with this wood, and forwarded seeds which were produced by that assembler to the next assembler. after the latest changes in factorio, this mod, and other mods, the inserter mostly forwarded seeds, but when it needed to refuel itself it seems to have been stuck on that item type, grabbing more wood and not being able to deliver it to the second assembler which requires no wood and no fuel (or in case of a belt as target, it put the fuel on the belt). by rotating the inserter, i could see that it dropped fuel on the ground that the second assembler didn't accept. similar happened also at several other machines that needed either no fuel or that already were filled with different types of fuel (eg wood vs coal, etc), and jammed my whole factory :-(

simple guess without looking at the source: would it be possible that inserters only check which fuel they can get from the first machine and how much of THAT fuel type is in the second machine, and when that machine needs no fuel or different fuel (or is a belt), the result is "0" and thus the inserter tries to insert that fuel, of course without success and jamming everything.

4 years ago

That's quite a read and an odd bug you're encountering.

I won't have time to look at the specifics of this until the weekend.
My only suggestion at this pin t would be to roll back the burner leech mod to 1.0.6 until I can replicate and fix the bugs you've mentioned.

I would also recommend that if you are going to roll back to save, remove the mod, save, add the older version back in, this will clear and rebuild the global tables.

4 years ago

thanks for having a look at it in the next days ...

it's always a good idea to have a savegame before updating factorio or lots of mods: i don't simply rely on autosave, and i also have edited Factorio/config/config.ini to use nine autosaves before the oldest one is replaced with a new one :-) using that save (i didn't/couldn't play with the problem and didn't work on my factory) rolling back will simply require to delete the mod, install the older version, and use the same "last save" ...

ps: done, using an identical modset now, only exception being 1.06 instead of 1.07 of this mod, and everything works again, no longer (or chronologically "not yet") messing up the output to belts and machines which can't accept the specific fuel. evidence that this mod caused the problem hardened :-) :-(

4 years ago
(updated 4 years ago)

additional observations on a smelter (chest>inserter>smelter>inserter>belt) when testing again with 1.0.7:

both inserters fill themselves only with ONE fuel each, the first inserter does that quickly and also quickly fills the smelter with 5 fuel. then it takes up to 14 seconds (i have 840 inserters and 840/60=14) until the second inserter fills itself with ONE fuel that of course is immediately used, and then fills itself to 1 fuel 14 seconds later, and afterwards it moves one fuel item from the smelter onto the belt in front of it every 14 seconds.

As soon as i manually fill the second inserter with exactly 5 (or more) fuel, it stops misbehaving and no longer moves fuel onto the belt, while the first inserter keeps moving one additional fuel into the smelter every 14 seconds. (the smelter has nor ore and thus doesn't use up any fuel itself). the first inserter stops this behavior too when i manually fuel it with 5+ fuel.

just seen an inserter which has a condition set to keep a chest at some minimum level (coal<50) that currently evaluates to false and thus the inserter should not work, but it still moves one coal every 14 seconds. this seems to confirm that this is not the item to fill the chest but the fuel for the inserter itself (which coincidentally both are coal in this case)

yet one more test: absolutely no other mods, new map, and it still happens. in a setup "chest > inserter > smelter > inserter > chest", i put a stack of iron ore and a stack of coal in the first chest, both inserters started to "jiggle" strangely, and a moment later both inserters had 1 coal each, the smelter was empty again, and all coal was in the second chest. for a brief moment i could see that the smelter had smelted two iron plates that were waiting to be put into the second chest while the second inserter was still "jiggling". thus it seems that the (incorrectly working) refueling had priority before normal transport.

btw: when i did this fresh install, i saw that there are one "historic" deprecated mod by Klonan, one version for 0.17 by someone else, and two versions by you, none of them deprecated!? does the second version still have a purpose besides compatibility for older savegames ? and what are the differences ?
in the description of Oktokolo's version, the following issue was described: "Known issues: Inserters don't leech for themselves if their fuel inventory is not empty. Tried making them grabbing more fuel, but they refused to keep it for themselves. Because of that, burner inserters only leech fuel for themselves if their burner inventory is empty"
This looks just like what now happens here too ...

another observation, probably unrelated: I'm using some machines that get wood as input ingredient and as fuel, to make coal as output. the inserter on the output seems to fill itself always with coal which is not the fuel of that machine but the output item. is this intended (because afaik vanilla factorio does this since it can't fuel the inserter from the fuel of machines), or when already using a mod to leech fuel shouldn't the inserter prefer to fuel itself with the fuel from the machine (eg to not accidentally fuel itself with any more valuable items that by chance have some power value set) ? as annoying as some people might find this, i like to have lots of mod options :-) and maybe "fuel with machine's fuel instead of its products" could be a new mod option (default true), or even a list of fuels (could be a whitelist or blacklist) which should or shouldn't be used as fuel for inserters when leeching.

4 years ago

Could you possibly provide a save game which displays the bugs you are encountering?
I haven't been able to replicate them as yet.

4 years ago

I encountered the same problem with using industrial revolution.
Savegame:
https://www.file-upload.net/download-13713798/0.17Industrial_Revolution.zip.html

4 years ago

I'm experiencing the same thing, probably also courtesy of IR. Downgrading to 1.0.6 fixes it. In my case, the "normal" fuel that the burner inserter is keeping in stock is 1. I'm presuming that with the 1.0.7 upgrade, that increases to 5, but since the inserter only wants 1, it takes the extra available and puts it on the output belt.

4 years ago
(updated 4 years ago)

Could you possibly provide a save game which displays the bugs you are encountering?
I haven't been able to replicate them as yet.

absolutely no other mods, new default map, and it still happens. (steam as well as standalone)
it only took me 2 or 3 minutes to build that small chain on a new map in vanilla ...
1. put one stack of coal and some ore in the left chest, and watch ALL coal going to the right chest
2. repeat test1 but first manually put 5+ fuel in the right inserter and the smelter's fuel will get all coal
3. repeat test2 but additionally manually put 5+ fuel in the left inserter and everything works fine

0eNqNkl1OxDAMhO8yzylK211YchWEUH8MWNo6VZICVdW7k7SAVmwRfYtjz+ex7An1eaDesQSYCdxY8TAPEzy/SHVOf2HsCQYcqIOCVF2KfLBC2fPgpGoIswJLSx8w+az+1b5b25JkzSv5cCEt5kcFksCBafWwBOOTDF1NLrL/6K7QWx9VVlLLSMr0zVFhXB9zcvSLVGx7uQaVC0ZvMcofRh19kMtYPLkQU9eY4guj0LKjZk3dbkAP+6H5XuZx57DfJtMaloWZi9tQeCPnl+K7Uuene60Pp1j7CdNFv00=

if you really need a save, i could do that, but would have to clean up several settings afterwards :-(

@zeb: it is not IR that caused the problem since it also happens in vanilla without any other mods besides the leech mod. as i read in the changenotes and as i wrote somewhere in the lengthy description above, version 1.0.7 tried to leech 5 items, and another burner leech mod had the same problem listed under "known issues" : "tried to implement that, but failed since the machines wouldn't keep the larger amount and instead forward it to belts etc".


my guess as to why this happens and would require a different approach:
(sorry that this again is a bit long, but i try to make it detailed enough to be understood by anybody interested)

to enable people using the same item type as fuel for the inserter AND as fuel for the machine, AND as ingredient (for some specific machines/recipes), factorio might first decide whether some item should be grabbed at all by the inserter, and then have some hardcoded mechanism that causes inserters to only accept items as fuel when the fuel slot is empty. as soon as it is not empty, anything (including more of the same type of fuel) is treated as fuel or ingredient for the machine behind it without doing all this evaluation again (it was already determined that it was either fuel for an unfueled inserter or something for the machine) and thus when you force more of that item type to the inserter, the item starts its travel, but the inserter no longer accepts it as fuel and pushes it to the machine (which is ok in vanilla) or when using a leech mod to any machine (which gets jammed when it doesn't accept it as fuel or ingredient), or to a belt or chest etc (which accept anything and thus get polluted with wrong items, as well as the input gets emptied by trying to move more "fuel" forever).

this behavior would be a simple solution for vanilla and even modded inserters to have no need for multiple UPS-intensive evaluations of who wants or accepts items, as long as they don't use up their own fuel faster than the time period of checking for the next fuel. thus the alternatives to this approach (of having more fuel) could be to use fuel with more power (eg solid or rocket fuel instead of wood or coal, or even new items with even less power) to last long enough, or to make the max time to the next check shorter (see the other thread about organizing queues differently to not have periods of 10, 100 or more seconds (which sometimes still could use up all fuel even with 5 or more fuel items).

ps: afaik, the inserters fuel themselves with one swing (not only one item) and thus by respecting the stack bonuses inserters can have more than a single piece of fuel. but they only will refill themselves (accept fuel) when the fuel slot is empty and they "live" on the buffered power that was created by using that last piece of fuel. this also would eliminate all problems caused by having one type of fuel in the fuel slots and trying to fill the fuel slot up with another type of fuel. by only working on empty fuel slots, this automatically would be a "no-issue".
i have no idea whether some "trickery" could be done, like emptying the fuel into a virtual stack, adding more leeched fuel to this virtual stack, and then inserting this combined virtual stack with a high stack bonus (of eg 5 items :-) into the (now empty) fuel slot of the inserter again.

4 years ago

I get the same problem, burner inserters unload coal from a furnace onto a belt which is not so useful. They do fuel themselves from the furnace.

4 years ago

Alright.

I see the issue.
Inserters don't default to filling themselves higher than 1, therefore trying to do so makes them simply transfer the fuel to the next entity.

The "inserter-putting-coal-on-my-belts" bug is fixed in 0.1.8.

4 years ago

It looks like it is still broken to me. The inserter grabs some coal when it is out, and instead of using it internally, it appears like it is trying to place it on the belt. It just freezes. I havent tried without the Industrial Revolution mod, so maybe there is something different because of that. So at least coal is not going on the belt.

New response