I'm not sure if this is just a UI anomaly or a potential performance issue to be improved, so I'm asking here instead of posting in bugs yet.
Is this behavior to be expected, and I've just never noticed it?
At normal speed, it flickers very fast.
Ran the game at 0.05 speed so that it can be seen:
https://imgur.com/a/G7voYVs
Save:
https://drive.google.com/file/d/1yyVyEU ... share_link
[1.1.80] Inserter is idle, but fluctuating between "working"
[1.1.80] Inserter is idle, but fluctuating between "working"
- Attachments
-
- factorio-previous_inserter_flicker.log
- (17.31 KiB) Downloaded 56 times
Re: [1.1.80] Inserter is idle, but fluctuating between "working"
That's expected. The belt contents change when items flow towards the end which wakes up inserters looking to pick up items off the belt. The inserter wakes up, scans the belt, sees nothing new is there it can use and goes back to sleep.
You can enable the debug option under the F4 menu to show transport lines. You'll see the belt is merged with the previous one (and possibly more). When merged all sleep/wake logic is merged for those belts.
You can enable the debug option under the F4 menu to show transport lines. You'll see the belt is merged with the previous one (and possibly more). When merged all sleep/wake logic is merged for those belts.
If you want to get ahold of me I'm almost always on Discord.
Re: [1.1.80] Inserter is idle, but fluctuating between "working"
Ahh, I gotcha.
Explaining all of that, especially the sleep/wake and merging of other belts, is interesting and really helpful to better understand the mechanics. Thanks!
Explaining all of that, especially the sleep/wake and merging of other belts, is interesting and really helpful to better understand the mechanics. Thanks!
Re: [1.1.80] Inserter is idle, but fluctuating between "working"
I'll move this to Not a bug to have it as reference.
Re: [1.1.80] Inserter is idle, but fluctuating between "working"
Well, it seems like it's mostly unrelated to belts, and is a mathematical/computation problem of the assembling machine, instead.
It seems complicated, to me, because I can't perfectly narrow it down without being able to see data in plain-English that I want to see (like the formulas and variables at a particular tick for a particular machine). However, I feel confident that it is a bug, and an unusual one which I can't interpret or explain well so it seems like it's "not a bug" on the surface, much like the battery charging bug I found, which I also extrapolated to (seemingly) some type of math issue.
The issue (seemingly) only occurs on an inserter if it is pulling retrieving from a belt for an ingredient, but that's where belt contribution seems to end.
The issue seems to stem from math of the assembling machine, which it then uses to instruct SOME inserters on what to do. It seems that the assembling machine stores a numerical value of its previous production run up through when its output was full and if the output produced was either an even number (it produced, say, 8 items), or the resulting "full output" was even (resulting in, say, 18 total, ready to be removed).
In a reproducible scenario, manually inserting ONE additional iron plate after it finished its production run and is waiting for output room, does not disrupt the "working" flicker UNTIL the next run. The flicker is nonexistent after the next production run, and an odd number in the output slot is visible. If left to run a third time, the flicker returns.
It seems like there are maybe 6-10+ ticks/instances during which at least one input inserter per assembling machine is "working" when it isn't actually working.
Scenario attached.
It seems complicated, to me, because I can't perfectly narrow it down without being able to see data in plain-English that I want to see (like the formulas and variables at a particular tick for a particular machine). However, I feel confident that it is a bug, and an unusual one which I can't interpret or explain well so it seems like it's "not a bug" on the surface, much like the battery charging bug I found, which I also extrapolated to (seemingly) some type of math issue.
The issue (seemingly) only occurs on an inserter if it is pulling retrieving from a belt for an ingredient, but that's where belt contribution seems to end.
The issue seems to stem from math of the assembling machine, which it then uses to instruct SOME inserters on what to do. It seems that the assembling machine stores a numerical value of its previous production run up through when its output was full and if the output produced was either an even number (it produced, say, 8 items), or the resulting "full output" was even (resulting in, say, 18 total, ready to be removed).
In a reproducible scenario, manually inserting ONE additional iron plate after it finished its production run and is waiting for output room, does not disrupt the "working" flicker UNTIL the next run. The flicker is nonexistent after the next production run, and an odd number in the output slot is visible. If left to run a third time, the flicker returns.
- Changing the speed of the assembling machine seems to affect it; very slow "normal" speeds don't seem to matter.
- Not all inserters of the same ingredient are necessarily affected--not in the scenario I saved, but in another I was able to have multiple input inserters for wire from belts, but only 1 of those 3 would flicker, same for the iron inserters when there were multiple. (before I narrowed it down to assembling machine even/odd output slot and/or production)
- When some inserters were affected, one time only the inserters at the end of a 2-belt-length line were affected; another time, 1 of 3 on each side would flicker, both being the "middle" of the 3 inserters, but all were fed from independent infinity chest/belts at a length of 1 belt.
- Recalculation seems forced upon the belt-based input inserters on the tick when an output inserter pulls from the assembling machine, and when the assembling machine continues to produce the ~4 surplus ingredients after the input inserters have stopped.
- There must be a surplus of wire before the flicker will begin, even if the output is producing steady even numbers.
- The "math" of the inserters and speed of the machine seems to affect it; a certain surplus threshold or ratio must be met on a particular tick, possibly, because a small iron surplus with even output won't produce the flicker...this can be seen by changing wire input to be belt-based, unless multiple belts are added and a wire surplus exists.
- I didn't try hard, but I don't think the issue is possible with vanilla smelters and their "hard" upper-limit, which may be the same as chemical plants and centrifuges, so the issue may be strictly isolated to any "production" machines which have a "soft" upper-limit of production which can be exceeded, such as assembling machines.
It seems like there are maybe 6-10+ ticks/instances during which at least one input inserter per assembling machine is "working" when it isn't actually working.
Scenario attached.
- Attachments
-
- flicker_confusing2.zip
- (391.81 KiB) Downloaded 44 times
Re: [1.1.80] Inserter is idle, but fluctuating between "working"
Here's a good blueprint, possibly with more info to look into.
The iron inserters flicker after every other run (don't flicker when there's excess iron).
The wire inserters flicker after every run (there's never excess wire).
EDIT:
Change the output to 2, and neither inputs ever flicker, despite a similar-seeming ending of surplus iron, but no surplus wire:
EDIT2:
The output at 3 is very interesting, it actually causes a "stutter" of the inserters, 1-3 runs it's normal, then 1-3 runs it stutters and flickers:
EDIT3:
Video of stutter:
https://www.youtube.com/watch?v=s_wi8Bx5P-A
The iron inserters flicker after every other run (don't flicker when there's excess iron).
The wire inserters flicker after every run (there's never excess wire).
EDIT:
Change the output to 2, and neither inputs ever flicker, despite a similar-seeming ending of surplus iron, but no surplus wire:
EDIT2:
The output at 3 is very interesting, it actually causes a "stutter" of the inserters, 1-3 runs it's normal, then 1-3 runs it stutters and flickers:
EDIT3:
Video of stutter:
https://www.youtube.com/watch?v=s_wi8Bx5P-A
Re: [1.1.80] Inserter is idle, but fluctuating between "working"
Flickers "working" pulling from a wire chest, too, on the top left assembling machine for 3 or 4 ticks on the return swing, before coming to a stop. I don't think it's consistent (it was after every 8th 180degree rotation at one point before I tinkered with it, but maybe that was another assembling machine), so you'll just have to watch.
All of the assembling machines' inserters exhibit different types of flickering and/or stuttering of "working" (not waiting for source) on various inserters at various rates.
I think the bottom right assembling machine filter inserters will flicker "waiting for source" and stutter, drawing power. Being that they're filter inserters, I thought would eliminate it from functioning on items it can't grab, based on the activity I observed about inserters, so it created yet a different flicker and stutter of functionality when "waiting for source"...which would be fine and understandable if it was just waiting, but the filter inserter moves during that tick.
All of the assembling machines' inserters exhibit different types of flickering and/or stuttering of "working" (not waiting for source) on various inserters at various rates.
I think the bottom right assembling machine filter inserters will flicker "waiting for source" and stutter, drawing power. Being that they're filter inserters, I thought would eliminate it from functioning on items it can't grab, based on the activity I observed about inserters, so it created yet a different flicker and stutter of functionality when "waiting for source"...which would be fine and understandable if it was just waiting, but the filter inserter moves during that tick.
- Attachments
-
- flicker_on_chest_too.zip
- (354.59 KiB) Downloaded 42 times