Archived

This topic is now archived and is closed to further replies.

Please be aware that the content of this thread may be outdated and no longer applicable.

wachunga

Offscreen Conveyor Mechanics

Recommended Posts

wachunga    206

As some of you may know there is a bug where material on a conveyor that is offscreen may not transfer heat with the cell that it is in. More specifically, when the conveyor is offscreen to the northeast or southwest quadrants the bug occurs. When offscreen to the northwest or southeast quadrants heat transfer appears to be correct.

The bug seems to be that material on the rail acts as if it's in the cell that originated the length of rail. That is to say the cell with the output of the loader, shutoff, or bridge from whence the material came.

As a workaround, ensure that the output of your loader/shutoff/bridge is in a cell with which you want to exchange heat. For a typical example of running hot igneous through diamond blocks, you must use a bridge that has it's output in the diamond. A loader in vacuum transfers no heat because the game thinks the material is in vacuum regardless of where the rails actually are.

Con1.thumb.png.635fdb39c49f2a9995a0ed865622411c.png

Note that this doesn't avoid the bug, it just minimizes the problem. All the material on the rail transfers heat with the first and only first cell. You must rely on cell to cell to transfer heat further. You'll notice there is a bump above that first cell. This is because when material comes out of the bridge into a solid cell, it jumps above the cell and transfers heat as debris ON a cell, which is slower than debris IN a cell. That bump enables faster heat transfer and again all the transfer is concentrated there.

For your typical loop with an automated shutoff, ensure both the input bridge and loop bridge have their outputs in a heat exchanger cell. Something like this, stolen from Lifegrow :

image.thumb.png.5a278135b2210d3b6da0fb752e0e739c.png

 

The more "creative" of you may already be thinking of dirty tricks to exploit this behavior. Anything that melts on a bugged conveyor melts as if it's in that magic first cell. Each 20 kg conveyor packet behaves as a separate debris pile for heat transfer, so 100 segments of rail = 100 piles of debris. The heat transfer of 100 piles of 20 kg is much, much, MUCH faster than 1 pile of 2000 kg. Do your worst and maybe Klei will pull their finger out long enough to fix this very old bug.

With thanks to Lifegrow for being my muse while I investigated the issue. And as always please share any further discoveries.

Share this post


Link to post
Share on other sites
Steve Raptor    210

I think I might be able to salvage my contraption by adding bridges between transition of mediums (e.g, a bridge between a vacuum area and an area with gas).

 

Question: if i run my rails through gas and not solid tiles, do i still need to account for the "bump"?

Also great work analyzing this bug Wachunga, hopefully Klei will notice this.

Share this post


Link to post
Share on other sites
wachunga    206

The bump thing only happens with a solid tile. Look at the debris at the bridge output, ignore the debris in the box. With no solid tile, the debris is located at the output. With a solid tile at the output, the debris jumps up to the cell above. With a solid tile at both the output and cell above the output, the debris is now captured in a solid tile for maximum heat transfer. It's not just a visual artifact, there is indeed a difference in heat transfer between #2 and #3.

image.thumb.png.8e0cfb2bc5f6c205bd2754ea2465cbc4.png

Share this post


Link to post
Share on other sites
nakomaru    1,433

Awesome, thorough explanation and workaround that has confounded me and led to me to use doors instead. Thank you so much.

Share this post


Link to post
Share on other sites
Steve Raptor    210
3 hours ago, wachunga said:

The bump thing only happens with a solid tile. Look at the debris at the bridge output, ignore the debris in the box. With no solid tile, the debris is located at the output. With a solid tile at the output, the debris jumps up to the cell above. With a solid tile at both the output and cell above the output, the debris is now captured in a solid tile for maximum heat transfer. It's not just a visual artifact, there is indeed a difference in heat transfer between #2 and #3.

image.thumb.png.8e0cfb2bc5f6c205bd2754ea2465cbc4.png

Gotcha, thanks!

Share this post


Link to post
Share on other sites
Steve Raptor    210

So not only i managed to fix my contraption due to Wachunga's temporary solution, i noticed that you can pull some absurd things with it.

I connected the end point of a bridge rail into two tiles of glass inside a closed room and then filled the rest of the room with hydrogen.

What happens offscreen is that the rails registers the last starting point which is glass tile, but doesn't register the hydrogen that comes right after it.

This results in hydrogen having 80,000 heat conductivity in terms of how the game calculates it, and transfers heat in a hilarious efficiency.

 

Share this post


Link to post
Share on other sites
Chthonicone    89
On 9/1/2019 at 8:23 AM, wachunga said:

The bump thing only happens with a solid tile. Look at the debris at the bridge output, ignore the debris in the box. With no solid tile, the debris is located at the output. With a solid tile at the output, the debris jumps up to the cell above. With a solid tile at both the output and cell above the output, the debris is now captured in a solid tile for maximum heat transfer. It's not just a visual artifact, there is indeed a difference in heat transfer between #2 and #3.

image.thumb.png.8e0cfb2bc5f6c205bd2754ea2465cbc4.png

I'm going to write up a bug report for this, but I think I know what exactly is going on thanks to this image and my gold volcano last night where I saw this phenomenon first. Here's what seems to be happening:

Step 1, automation is rail working off screen as normal. It's not actually moving the actual position of the materials when not looked at for performance gains. It only tracks where on the rail it would be.

Step 2, Person looks at the rail causing everything to jump to where it should be.

Step 2a, first the game moves all the materials to where they should be in the world. Anything trapped in a wall isn't moved from the starting tile in the rail.

Step 2b, now the game builds the box for each item on the rail, and puts the item in the box.

Step 3, now you have one or more empty crates on your rail, and at the beginning of the rail you have resources that should be in those empty crates but aren't, and they appear to be floating on the rail without a crate.

The problem is occurring in step 2a in the optimization. It shouldn't matter if the object is in a wall or not, as it's going to be in an automation crate, but something is preventing it from being placed there before it's in a crate. The end result is that the material appears to be at the beginning of the rail instead of inside the crate assigned to it. This makes it look like you have some empty crates on your rail (and in fact the game describes them as being empty) and some floating resources on the rail outside of crates.

I'm not surprised that the resources are acting like they are in the wrong place too, but this shouldn't be terribly hard to fix now that it's been pointed out. I'll post the bug report thread here after I make it:

 

Share this post


Link to post
Share on other sites
wachunga    206

@klei.ruby

Thank you for looking into this issue.

For reference my original bug report is here: 

 

Save used in that report: Conveyor Bug.sav

 

To summarize, select this bit of rail:

image.thumb.png.822539b9f581bd74086d39ecdb79a726.png

Then pan to the far upper right and unpause. After a few moments diamond on the rail will show no temperature change:

image.thumb.png.88393066ac0c6357915ad50db7046c59.png

Pan downwards and once the camera is directly right of the conveyors, heat exchange starts:

image.thumb.png.847782f159c59016370c67637c60e0bd.png

You can pan around and see when heat exchange starts and stops. As far as I can determine this happens when the camera is viewing the quadrants to the upper right or lower left of the conveyor.

 

I made a brand new test, New Conveyor Bug.sav, to verify behavior has nothing to do with the old save. Behavior is the same.

image.thumb.png.4485948c29803c57b5ac6dbfd8ad6cda.png

 

I do not have the save used in the original images, but the new test save demonstrates the difference between the 3 conveyor setups when offscreen.

 

For the sake of completeness, here is another test showing how the conveyed debris behaves as if it's in the bridge's output cell. New Conveyor Bug 2.sav

image.thumb.png.9c6db7f1ff6e9b6720e832dd7ef94420.png

Go offscreen (NE or SW quadrant), unpause, and let the game run for a bit. Pause then return and examine the temperature of the ice on the rails. The ice gradually becomes warmer even with the rails in vacuum, until it melts. When it does melt (the point where the boxes on the conveyor are now empty) the subsequent liquid is produced at the bridge output cell and not halfway along the rail where it should be.

Share this post


Link to post
Share on other sites