Mekanism

Mekanism

111M Downloads

Ore Shards Randomly Spit Out Of Logistical Pipes

DizzyDJW opened this issue ยท 10 comments

commented

Issue description: I have an ore quadrupling system, 100% mekanism blocks until the last one which imports into Refined Storage. The issue is that the logistical transport pipes going from the Injecting Factory to the Purifying Factory are causing shards to fall onto the ground. I can only imagine it is because the machine is full of one type of shard and will not accept another type so the pipe spits it out rather than try to push it backwards back into the machine's output. So with nowhere to place the item, rather than holding onto it and waiting, it throws it out altogether.

Steps to reproduce:

  1. Set up ore quadrupling: Chemical Injection -> Purification -> Etc...
  2. Put several types of ores into a chest of some kind and have it try to feed into the system
  3. Watch as once the Purifying Machine is full, the pipes will spit the shards out onto the ground if there is no room for a new type in the machine.

Version (make sure you are on the latest version before reporting):

Forge: 36.0.14
Mekanism: 10.0.19.446
Other relevant version:

Suggestion:

Give Logistical Transport pipes item buffers similar to how the other pipes get gas/liquid/etc buffers. This would temporarily stop this issue from occuring. Or allow the machines to accept new types even when full by moving around it's internal inventory. Such as: If a factory has all 7 spots filled with copper shards, but none of the spots are full stacks, allow the machine to consolidate in order to make one spot empty to accept the new type of item.

commented

I have "fixed" both of these issues for 10.1, the one this issue is about (single length transmitters dropping things instead of idling even if they have a path, see 934056e for more details), and also the second "pathing" issue, which is intended for performance reasons to not check a path if it goes "too far" from the destination. I "fixed" that by making it so that at very close distances it can check up to about three blocks away so as to behave slightly better if you are having to build around existing transmitters.

commented

Don't know if it is rude to comment on a closed ticket, but I saw my test world in a backup and loaded it with the new (
1.16.5-10.1.1.456) version and can verify it works on that old test case, thanks!

commented

Logistical transporters should never dump items on the ground unless they aren't attached to anything and are a single lone pipe... Can you please provide some pictures of your setup?

commented

2021-03-04_16 31 08
2021-03-04_16 30 30
Ignore the bad cable management. After some more testing this seems to occur even when the machines are touching directly. So it doesn't seem to be the Logistical Transport Pipes. It seems as though it's related to too many different types of shards, (because it is only shards dropping), trying to enter a factory that is already full of varying other types of shards.

commented

I am guessing this is probably a yes, but just one more thing so when I have time and am looking into this further I can try to replicate properly, but do you have auto sort on in the destination factory?

commented

Wait you are able to reproduce it dropping items on the ground with no transporter in between them at all? And if so can you reproduce this with just those two machines in a fresh environment that only has Mekanism installed?

commented

What would be the reason of turning it off?? So yes, auto-sort is on.

But if you simply place the Chem Injection Chamber next to the Purification Chamber and have it auto eject and make sure you feed as many different ore types into it as possible, you'll see shards randomly spit out on the ground.

commented

That's a BIG ask. As I would have no way to know how to set up a way for ores to randomly generate and enter the machine. As it only seems to occur when multiple types of ores are entering, not when only a single ore type is used. But I'm not going to set up an ore quadrupling for each of the ore types it accepts. That'd be slow and wasteful.

I have found a way around it using a separate mod's block, and with no transport pipe instead, it works without dropping anything, however the block being used does have an internal buffer so that may be why it runs fine.

I am currently testing this bug in a separate flat world using the same setup and same modpack.

commented

I'm having the same problem (Forge 36.0.45, Mekanism 1.16.5-10.0.21.448) with two chemical crystalizers outputting to a chemical injection chamber, which then directly outputs to a purification chamber and so on: one crystalizer is next to the injection chamber and outputs directly to it, let's call it Crystalizer 1, the other is above the first and uses a logistical transporter, let's call it Crystalizer 2.

What I see happening is that when the chemical injection chamber has some space (lets say enough for 2 units), Crystalizer 2 might start sending 1 unit, but if the other crystalizer have enough units to fill it up, then it is faster, since it's directly attached, and the injection chamber will take those units.
Therefore when the single unit outputted by Crystalizer 2 arrives to the injection chamber and finds it full, then it's kicked out of the transporter.

This doesn't seem specifically related to these machines though; I can reproduce the problem in a "similar" way with two energized smelters attached to a vanilla chest.
There are two setups where I saw this happening:

  1. One energized smelter is attached directly to the chest, the other is attached via logistical transporter.
    The chest is filled up with stuff and I simulate a free slot that then fills up, by quickly taking out some items and putting the back in.
    The ingots from the smelter directly attached always arrive first, while the others from the other smelter get spit out.
  2. Both energized smelters are attached via logistical transporters, which are not connected with one another. Again here someone wins, and the loser get spit out of the transporter.

Worth noting that if both smelters are attached via logistical transporters and the transporters do connect with one another, it seems the issue doesn't happen and instead the ingots get added into the transporter buffer until there's space and they keep going back and forth (without re-entering back in the smelters).

When both smelters are directly attached to the chest, the issue doesn't reproduce too, but there's a delay where I can remove an item and put it back into the chest, so it might just be that they are too fast for me to cause issues.

commented

I can confirm this as well, in my setup I have a tower of 7 crystalizers feeding into an injection factory, that then feed down into the next machine, etc. Often when it loads in, though not always I will find random intermediate products have been spat some distance. Granted I am abusing every piping system as the point is to build a big complicated refinery that looks cool.
vertical
looks_cool
All the piping works great, and I am having a ton of fun, great mod. I have noticed the items falling out of pipes happens even when there are free slots in the next machine, none of the machines in my setup are set to distribute input to insure all 7 ores can always be processed simultaneously. On occasion I have noticed that there will be say iron crystals in two slots, even when no stack is larger than say 5-10, even when sorting is set to off.

There is one other bug with routing. If i pipe gets too close to the injecting factory, and then moves away for no particularly good reason, the crystalizer will not auto-eject into a pipe.
Routing_example
In this case the near and far setups work fine. However the center crystalizer will never eject. If the chest is connected (past the injector input) then the crystals will travel to the chest and go past the crystalizer input. If the connection to the chest is broken while the crystal is in transit the crystal will go into the injector.