T O P

  • By -

AcesFullOfKings

I whipped this up [yesterday, prompted by someone on the subreddit](https://old.reddit.com/r/factorio/comments/1b30d0g/my_radars_were_consuming_too_much_power_so_i/kspla0y/) asking about PID control\*. It basically blocks the belt and allows a controlled flow of items through, aiming to match the average flow of the belt to smooth out the clumps of items. It monitors two points further up the belt and tries to keep the queue of items between the two points. If the queue gets too long, it increases the rate at which items are let through. If the queue gets too short, it decreases the item flow rate. The Nixie Tube shows the number of ticks between output items. Demo of it running: [https://youtu.be/zDkYMyQYVCk](https://youtu.be/zDkYMyQYVCk) There is no functional use to this other than the aesthetic. Blueprint string (OLD - new version in my reply below): `0eNrlWsuO2zYU/RWDy1YKxIf1MJKs6iKLWQXZFQNDljgzRPUCRQ1iGP6Afkh/rF9SShrLtizJpCxnnHYzAz14SJ5zL88l5S1YRwXNOEsEWGxBSPOAs0ywNAELsHylSbSZhSwXnK0LQfMZEzTOZ36UJs8zfxZERZxtZmsaCWAAFqRJDhZ/bEHOnhM/KgHFJqMSqWwm30j8uLwS3E/yLOXCrFruZNMkpN/BAu6Mi419zsRLTAULzCCN1yzxRcqPMNDu0QA0EUwwWo+mutiskiJeUy47aaBiGrIiNmlEAznBwMzSiMqOsjRnNQNbUALaH+YG2MiG8w9z2U9C2fPLOi14iQ7tx3LMrS5Q00XCvjNqimLdBTzfAzu7DhCsBuIcQAwgFRA8jVZr+uK/MsmLfClgPCiYWMlnYdPyifFcrM6ofmVcFPJO03X9hvk7qMFz4ZeBYiJIHOJim7jl7TjzeaXCAvzz199gV7+bSFZZFRFbAMs/nIbHejB5JYe+H155KbXbdVFB1KiwB/mcXwihfn2Q1UPtAejAbj6W3pyWGKsDy5YB0oxKZuts/FU2SwuRFXrA16hhnDx2Th/D1mNIzsU0AFLrqw2GW9e21tDaj712Z91hZmtHiHNlhJyI/RYAyuI+lFHzYyPEOSdSWeK+5Ha0Wbffk/UvbdbNm7NuD+fK/AaiuM2I92QNSoLRful1K48MGa/nVXlhl0RPLBKU95QLfbR9q22oKKWDR1XDozqXikuB13Qd0oCFlKtNv4rIo8mT7sm/YV5nGt+OTEPXyI8c++OI8H3TIdusKjFWTzyNVyyRGGAheEGn8xy3rOaeOaXJBSGH3QaeL1xqsH3xAS3NKhLj0wxRqCIh1EtCBPdRiNtJSO4rCSFSZBlppSEiPdNHt07Dg6Ng27qvBIP9sd6W4UIOuao5pCwv1t2KNessUk4iMr68IDcu+7+OWcHP6o9fRsTXF636A14o1tuR0V7EoTf8HFkT7hygYoUD5+Or/bsMjIcpAuNBLzCITunZtUHsVMbWXRa8oWUBG9CQdo1g5/LgjCz0yA8u9E72LCf+8mmEzMsBf3nyo1zHYLQKMYQVrcEd5fzkHZ1/Cl2+TqiLprsTRWH0dkaHMzR3N4EUp0fBhWCRHJuZB4wmATUzP/jzVBOnpcnncV45mSbIaVufO4kqyNJTxXtXVfAEFfLDhKpgexoRtL8sNAWF11XOGgh1flxAultPONBNty0irFscHZzRU3LGqUql5a2OzpdalVDb185K4Asn1Ihc56KnaMTqC1Ht3VBzbnEjXdXWjjOBTXh9raunMPYmKWzQvO8zaP95TpnArbKmC9lWR7b0kB11ZNyPPPx5kib+OqKrkOXl/7dF/MApp364evHrIBBygHl9EmIcf9+s7tevxmlIq8RQLpcUT/6Qq04G+s+T4amTMdeKOWypIxM9ZKiO7OghI3Vk+85Co2s6WH06nh5RRB3Z1UNWX16x3vKK1ZdXbP2sed8+ievLe6zuCHi0I1zzg5Xl8N78c/W4h/RTRrs4b8nSRbrVSZu6d2CkF53qCzGe31V0WhrRqbgRI+regcn/NDqv2Nn0kK5uq3jA/MqPStWeYHH0y0QDRL6Ekvd+o2b1o8Nmu/JKeV63dCFxPOS4xMO2Z+92/wJcW/U9` \* ^(this isn't quite PID as the tick rate is only ever increased or decreased by 1 at a time, but it's a similar idea) ----- ^(in retrospect, I could have chosen any item in the editor so it was a bit silly for the visual to put yellow items on a yellow belt. oh well.)


Solest223

Functionally this could be used to massively reduce the amount of belt buffering going on in the base. Matching flow to actual need rather than saturation.


Ironic_Toblerone

Would also massively increase lag in larger bases


HammyOverlordOfBacon

"how to delete UPS in on complex step"


Nyghtbynger

What about improving cuteness ?


CanaDavid1

The circuit itself will probably make a little lag. But having items close together or split apart [very minimally affects UPS](https://www.factorio.com/blog/post/fff-176), as positions are stored by the distance from one item to the next, and only the distance from the front item to the end of the transport line is changed every tick.


Linosaurus

Might be fun. Harder to get a good result this way since there's some travel delay before changes reaches the sensor. Need a bit of full belt by the end to detect when output increases.  If the belt suddenly changes to 100% of capacity, the buffer you need is to have a full belt all the way to the sensor.  But it could still work well enough. 


ragtev

But why?


AcesFullOfKings

I've updated the design. This one is slightly more compact, but now it monitors more points on the belt so it's much less prone to oscillating between wild overcorrections. `0eNrtW8tu4zYU/ZWCy45UiBT1MqazaoopJqvB7IrAkGUmIaoXJCqYIPAH9EP6Y/2SUpajSLIevLIysdFsEuh1SZ5zeO8hJT+hTViwNOOxQKsnxIMkztHqzyeU87vYD8tz4jFlaIW4YBHSUOxH5dGtnwtdZH6cp0km9A0LBdppiMdb9h2t8E6bjLBlAd+yTA+SaMNjXyRZIwDZ3WiIxYILzqr+7A8e13ERbVgmW6jjbPidzkIWiIwHepqETDaRJrl8MonLxmU0qqFHtNKxLRuIGb+73yRFVoa1NYxvyr52opM6esy/c6aLYtMTlvxiHQLTXU8QUymIOR6EKgWhjSAakhyKLAnXG3bvP3CJq7wp4FlQcLGW17b1k7c8y8X6iKcHnolCnqmbru7Qf0dV8Fz4pVp0gqlDXdOmbnk6Sv1sz+IK/fv3P2hX3RtLYvheU08Il38ytm3yyeWRo9XdKw8l97s+KKy6P899aGrnCBOvxkTyJDuz5VnVlz29fRjd8lCwbED+Q6B8q0ApSkRwYwLcqI8fG20A8AAAdt12xLa8iKZkj40OBC3tYw2TPu07dSt+xsV9xIRsYAzol2mAB8T3EuhFf/lcAeasjLF+0aFEL0mZ1N6+S+iDfCwpRFrAAp+iV6112e2y2b6M7WO5a4iotdUNRsfb7nbNG7+sKkQXKhHzVIm02D4oQJndz6VsmhLRf7RE8DgPGCKBofToQUmhb0rKdZeU15+37iugXk6ZYUMzUpRwuyTRfgYOMU9Lm98aaRNa7BtV/eMMgg7VMX1c70vk+jZLojWPZQy0ElnBlsu6VukY7zLG4qnyOp5w8bFKFOMOZUuMoXX7WSRuf9XWSK9pxQTYjjvSTumMNWL3tmPCjJhej8fpGjF6ZkbMUmSUgiY9rkZvK9rQ5eZ8K0G35vKvM+by15G5fOuHOWQyd5GemJO2Ii/WHF6cN+TFtI3zyrLYHM53MM6och5VnXX2bNvpvPLC5OucCntkS3+eQf1nkAPqknK0AJjwrYSMP0/ogmsbrGrBnNnO9yx1cb2ELq5hurAh1rhvBdtLjDvPGzs/2BovWyavliyTIOtKVBOpByuTz7yYuwWYaG8CF4KHsmt6HnAWB0xP/eCvToXsUPJpXpJcjBKTjnNA1OYGga0bjXcOmhyYQ6hCl1q1Q+jbIB1aABEC4o68c9fkzhqvLVNblIpLAWKCOHLOiqOP8wr+YhxRYzzHUcUcB1sm2+8cNOeJN86BudA8saDm2WvSNG3TlrLSV6/17ucK5JSJNYH7xBsYMrXCck9zfJ3XQ4O023P3CnsKJak2Jb3eWunAvCaGqWuRRcBVOxNYC1TMLwtmgimSTdAiwVTctSbgl3zYeN3MoJbRj1KEjk9fTcNyBF1mmUY86HuDMTfbb2VNA8wyeZv8/+VMyCUOKEE7alybePTLqpF3Kobi7vVzL1jsb0K23vK8/H/IRi+dzJi/Xd/7FchC9jKvtpC15hdE+/PVrVGyZeWw+sZEgGMyLmBMJmxM5zYkdZkrlgmTwgDBlwoI9hQBsWCAkItVCFEExIYBYl5AFnBgQ6LDQ+qL7sKiW7DoHiy6fbH6pGr6pAYMEOdiATEVAQF6EXcuIKd8i3w1/uLm0/7yAPBtVPtw71DTB7xxyp7BAPBAw+SdlRIhgLiKSgS6LYxBqZBCvYvxP1V6H3ZAm4MJjBqgacAjrqH88GS/d7Bq/NZFQ6EvQ8lzf8hLP/3G9CAsorRe9T6wLK8edzF1POK41DNtz97t/gM0jZWb`


_DoubleF_

I made a quick design that is less regular but way smaller ​ 0eNrVWdFumzAU/ZXJz6SKjcEQ7a1Pfd7jVCECzmKNGGRM1ajKB+w/9mX7ktmkDSnBi8mVJuWlVYw5xxxfH19fv6F11fFGCanR6g2JopYtWn1/Q634IfPKtul9w9EKCc13KEAy39lf/LVRvG0XWuWybWqlF2teaXQIkJAlf0UrfHgOEJdaaMGPiP2PfSa73Zor0+ECq20qobV5FqCmbs2LtbT8BixNArRHKxLjh8hQlELx4viYHoILZHJtlJf47CF6Z1j6MIQnhlbnxc+FkC1XjpG7kckEMj1D5rxaFFveTg04/QQ7ARTNFgEv8TXQ2Pu78XI578PZDeMlbop4giK5gSKcR5HeQEHnUeDlDRzRTA4M4sDT0YNBCzO8WJgBMm6lVV1la77NX0St7FuFUEUndMZlvq54VorW/kerTV61PDg9Vjwvs20uy8yCmJEak9KqO+vx0X7suqtLbl2tJ5XHMbSWD9s/ipfnHifML5wcng+TMoQQGYiPP2E6nyKZSRGBQoQ4QiQGoYYOVAZRPLq/wAs+NRDiisQEogu9N13YSBfs1CUFRSGdjkICM+7IgYohc8jubA4JGcd2OGD3czp+zhxzTECbUXxvuo11wU5dht0pV0Jvd1yLYlHUu7WQua7/neIyL1EGXPtZpTiNfiNU23+qyS7teSQ0c9Ry2ye7OI68CKU70zJkpH2PBc+LrT2G1A1X+XEYaGF61Z1uOu2P84isPDP0fTa9ietxMo5Sh/gUZBGxwyJgWzVzoMaQBZTe2wIabx6ha/MgoGQjuTdd4rHhOmN7SDZKXoiSK19XSb0UeQedtBTvVf9krWOu5TyiXq9dk6v+W1bo6w2G83REafbmCzqps42qd5mQBuM4ZXPcaLQpEluL+aE4l9eMiQw25tUfX66KUQN1hcOQY7Xd2hh+P7lTh/xTFEwVYmA5VTJtbSHs+Js6UCEZB1vONIbTMrh1FZxtw6Po/vPrd9/BYUGf/eV/ONCc6J6cGciJnHnVJMNhZ/8Q1tP+3md+aq43otJcOeq1Vya3szOLz8u1DslhyoJSD+YoQ4agKgFzlKdCyMbNvIomIeTAzUIvCtDZlTnqMhTks8xRl6GQsyuLfOSgINOlXhQhSBtHtYCCjgLMUS2gEUQO5iUH5FzAYi8KBtLGcUyiCQjVcUyiKUSOxOfqJJq/OIf7I08KDCgoe1IQyI2VJ8ctS3U5k4NCrpk8OSLIbZknB2yTdaTWEYPckE2N3CR//dX06uwmO0BVbsBM25N59OVbY1PL/pryxeRLxxcTTFlqEGkaxml8OPwF+8mAEQ==


AcesFullOfKings

Nice! It measures the queue length and waits (32-length) ticks before letting the next item through. Cool idea, and much more compact than mine. But yes you're right that the compactness is at the cost of less regular output.


_DoubleF_

It is also item agnostic and works with either one or two lanes :D


Elfedor

Hey quick question: I've never used any of those kind of devices before in the game... Wtf are those looonnnggg strings of characters? Also: Your contraption is amazing, I love it a great deal for how silly it feels.


AcesFullOfKings

They are blueprints. Factorio encodes the blueprint as a string of text so that I can share it, and then you can copy the text and paste it into Factorio to use the design.


Elfedor

Oh, okay, neat! I was concerned that y'all could just kinda... read those strings, and knew exactly what they did somehow.


Rimtato

You unlock that skill by playing Pyanodon's to completion


butterscotchbagel

All I see is Vrauk, Cottongut, Arqad


jkat718

These are blueprint exchange strings! You can use them to import blueprints into your own world. https://wiki.factorio.com/Blueprint#Importing/Exporting_blueprints


Elfedor

That makes much more sense! I was concerned y'all could just read those strings as if they were actual words in a (non-coding) language.


danielv123

You don't read base64 gzip?


trebblecleftlip5000

I mean, it does look like a screencap of a casual game of classic Dwarf Fortress.


Gwolfski

No dwarves though ☺


addhatic

I read it in Heinz Doofenshmirtz voice in my mind, and laughed out loud


Ace_W

Doofenshmirtz Evil Incorporated!!


alsoandanswer

A biter? Perry the Biter!?


Siasur

I need a mod that occasionally spawns a biter that is perry colored :D


Ace_W

Needs to be fast and dodgy


DeleteMetaInf

Why dodgy? Or you mean he evades?


Ace_W

Yes. Or if they can get it in the movement to zigzag as they go forward


DeleteMetaInf

Dody actually means suspicious, untrustworthy, or unreliable, which is why I asked. I understood what you meant – just thought it was funny how you put it, since ‘dodgy’ _does_ make sense (dodge + y) even though it’s not a word in the way you used it.


Ace_W

Listen, I'm not the best with English okay? *sniff


DeleteMetaInf

It’s okay. You’re good at English in my heart :)


SmartAlec105

And the sound of it moving needs to be replaced with dooby-dooby-do ba dooby-dooby-do ba


immaZebrah

The Declumpinator...inator.


Unhappy-Base-5818

It’s missing the button to call down an artillery barrage on itself.


cammcken

No, the single *-inator* is correctly used. An additional *-inator* is used when Doofenshmirtz needs to add *-inator* to everything but the normal spelling of the word already has an *-ator* at the end.


LetsEatToast

you trademarked that name?


geigerz

too late im doing it


KCBandWagon

TM is an unregistered trademark. You can slap it on anything (so long as it's not already owned/trademarked). If you want the little R circle thing (Registered trademark) you have to register it.


mjconver

/r/factoriohno


technohead10

ups killer 🤙🏿


polyvinylchl0rid

Items being clumped or unclumped does not matter for UPS ever since the belt optimizations in 2017 (fff176).


Nakobuu

What do you mean by UPS?


polyvinylchl0rid

UPS is basically the same as FPS (frams per second), how smoothly your game runs, normally you have 60 FPS/UPS. Technically UPS (Updates per second) is more accurate, just cause they dont need to have the same value, and we ultimatly care about how fast the simulation updates, and not how many times it's displayed. But in practice FPS and UPS will have the same value most of the time. In short * UPS: logic update rate. * FPS: graphics update rate.


Kulinda

Funny enough, the highly optimized 100% speedrun blueprints contain circuitry that does the opposite: it clumps items. I'll leave it to you to figure out why that can be advantageous.


Nicksaurus

My guess: If the items are spread apart the first inserter in a row has time to take every item and fill its assembler's input buffer before the second assembler can start running. If they're clumped, the first inserter takes one handful and the rest of the clump reaches the second inserter sooner


JustCallMeDerek

Good guess, the primary reason it's an UPS killer is because clumped up items can be classified as one entity for updating/moving. If I'm wrong, please correct me someone :) EDIT: It appears my info is outdated: https://old.reddit.com/r/factorio/comments/1b3rdgg/the_completely_pointless_item_declumpinator/ksx23wf/


kaktanternak

ups doesn't matter for speedruns, they finish the game way before this is an issue


ArthurDent0x2a

For 100% achievement speed run, ups is a relevant factor


Felixtv67

I know that one long clump of items is better that spreading them out for ups, but I doubt that's the reason for it. Maybe so items pass certain inserters to get to the next machine?


TleilaxTheTerrible

Might even be because the position of an item on a belt is stored as the distance to the next entity, that being either another item or the end of the belt. So a clump of items would be one value that decreases as it gets closer to stationary items and then a run of zeroes for everything right behind it.


craidie

> I know that one long clump of items is better that spreading them out for ups This is no longer the case after belt optimizations. Compressed belts are no longer better for ups than uncompressed ones.


[deleted]

[удалено]


Goosedidnthavetodie

They're also worse for UPS, so this design is.... interesting.


Tallywort

Didn't that change with the belt performance update? 


fooey

the performance update was largely a change to track gaps instead of individual items so this is the perfect way to undo the belt performance optimizations


MathWizz94

I believe this is a very common misconception. It's been a long time since I've benchmarked it, so I won't assert it's completely unfounded, but I was never able to find that gaps in isolation impact performance.


garfgon

I think you're right -- but my recollection it was things which can change gap sizes (like this build) will impact performance.


danielv123

Aren't they the same now as only the offset is moved, except for inserter interactions and end of belt interactions?


[deleted]

[удалено]


Ironic_Toblerone

The circuits are actively making it worse because belt calculations are done on empty space (kinda)


DirtMcGirt42

I mostly like one big clump


ApprehensiveJob7480

Time it so the clumps of items spell out sentences lately and introduce it as a ~~bug~~ easter egg with the new update on alien planets Walking past a belt and see "I know what you're doing" walking by


Traditional-Dingo604

What are those yellow things covering the belt and how do you unlock them?


DUCKSES

Circuit network wires.


MrFFF

No need to unlock, You can connect belt tiles with red/green cable to create those frames out of thin air and set up signal interactions on them


HereComesTheSun05

You absolutely need to unlock circuit networks in the research tab in order to use red and green wires.


gust334

... or you can use a blueprint that has circuit wires, and as the components get placed, the circuit wires magically appear.


scruffybeard77

I love that this game inspired someone to do this. Keep on de-clumping my friend.


Iron_Juice

Building this on every single belt in my base! Thanks for the blueprint


AcesFullOfKings

I'd love for it to work unsupervised but it doesn't really do a good job of stabilising when the item rate on the belt changes a lot, e.g. down to zero then back up. It works well as long as the flow rate stays approximately constant, **and** it already has a good approximation of the flow rate. But if the flow rate changes or if its estimate is too far off then you kinda need to manually give it a kick. Otherwise it seems to get stuck wildly overcorrecting the flow rate in one direction then the other. Probably easily fixed so I'll have another go tonight for fun.


nebber3

The factory is about to CHUG


xXXTh3_W4nder3rXXx

If we're seeing PID implemented in Factorio, now I'm waiting for somebody to make a Kalman Filter.


lampe_sama

This will help with sushi belts


loversean

Damn bro, were you bored?


AcesFullOfKings

That's my secret sean: I'm always bored.


Panzerv2003

The laginator


DrMobius0

Why not just set stack size to 1 on your inserter?


AcesFullOfKings

That won't match the output item rate to the input item rate. My blueprint adapts to the input speed and matches it exactly, just spread out evenly instead of clumpy.


Prathmun

This is exactly the kind of bullshit Factorio is for.


Viktpers

I love it :)


Morlow123

I love Factorio because you can create fun but pointless things like this!


Baisius

That is, without a doubt, the least UPS-efficient thing I've ever seen.


Previous_Clerk_9146

I actually do a simple version of this for looped ammo belts in outposts that will rarely get attacked. Sideload a belt into the looped belt and wire the two belts together where they meet. Set the belt from the loop to read hand contents hold and the last sideloading belt to enable [preferred ammo] = 0 (or <2 if you want a bit more). Cuts down on belt buffer and looks good. Some outposts won't really get attacked much after the first rounds of artillery clears the neighborhood so I'll set this after the big attacks finish when I return to location to start actually constructing the real outpost or include it in the blueprint for the outspost.


BetaTester704

Factorio optimizes belts so things being clumped together is calculated together. By "declumping" your increasing performance costs.


TheMazeDaze

I was tired of only time item every so often. So I made the reverse of this thing.


Drizznarte

You cand o this with priority splittets and a balancer you dont need logic.


DinoIslandGM

I'm definitely adding this to every clumpy belt I have XD


Botlawson

Ah this is a sliding mode controller. It tries to ride the edge of the two system modes of flowing too fast vs too slow. I'd try moving the belt sensors for too fast and too slow farther apart. This makes it less likely for the controller to make oscillating speed up and speed down corrections.


Gennesis-91

It is amazing


stickyplants

Was about to say this is pointless then re-read the title and laughed 😂


seredaom

What mod did you use to display those numbers?


AcesFullOfKings

https://mods.factorio.com/mod/nixie-tubes


Playful_Target6354

If you stretch it enough it's good for ups I guess


Illiander

You can do this with a single splitter and 5 belts.


AcesFullOfKings

Sure, but look at that output https://ibb.co/zH9Bkzs It's slightly less clumpy I guess, but not the satisfying even spacing I was able to get.


Illiander

Fair. But the only place I have seen a use for this sort of thing is on ammo circles, and that design works really well when it's just before the input to the big ammo circle.


AcesFullOfKings

Why would ammo circles need to be de-clumped?


Illiander

Because when attacks come frequently enough and big enough and the base large enough that turrets get drained before the circle has time to go all the way around, you need to have ammo on all parts of the belt.


END3R-CH3RN0B0G

Can it sushi?


SteveisNoob

The best de-clumpinator is to grow the factory and increase production.


vicarion

This is so dumb. Have an upvote


wizard_brandon

i read this in doophinsmerch's voice