Page 1 of 1

Requests shouldn't copy paste if set by circuit network

Posted: Fri Jan 12, 2018 10:53 pm
by golfmiketango
This came up during Mojo's stream yesterday and I think it's worth an "official suggestion":

Let's say I have requesters A through Z, each with different circuit-network connections. A has "set requests from circuit network" set; B-Z do not; they have no requests set, and nothing in them physically. And let's say requester "A" is currently requesting something really expensive: 48 Rocket Silos (lord knows why, perhaps I am making a fireworks display or something). Now I want to configure chests B-Z to also set requests from the circuit network. I've already set up all the circuits so that all the right data are on the various wires to get the stuff I need; I just need to change their configuration so they will set requests from the network.

Instead of manually going into each chest and checking the box, I have a better idea: I'll just copy the configuration of chest "A" and paste that onto all the other chests so that they will also set requests from the circuit network. This will save me precious minutes that I would have otherwise spent manually opening each chest's gui and checking the box. However, I am in for a surprise. When I copy chest "A", I have not only copied the checkbox, but the request for 48 rocket silos. So when I paste "A"'s configuration onto each additional chest, here is what actually happens:
  • Tick 0: The chest is configured to request 48 rocket silos and to set requests from the circuit network.
  • Tick 1: 48 Rocket silos are scheduled for delivery to the chest. The chest now changes it's request to whatever it is actually supposed to be, according to the circuit network.
  • Tick 2: The correct contents of the chest are also scheduled for delivery.
Something very bad is about to happen to the poor protagonist. Robots are now going to go fetch 25*48 = 1200 rocket silos. If I have relied on back-pressure in my rocket-silo production, and have a bunch buffered, not only will I now build that many more silos, but having given my bots conflicting orders for what to put in the chest, I will now observe a robotic race to fill each box with silos or with whatever is actually intended to go in them, with each box randomly getting stuffed with silos or not depending on robot and item proximity factors. At this point it might actually be cheaper to literally nuke my chests, any bots I see flying around, and my rocket production (if I can avoid destroying my buffers in the process), than to sort things out manually.

Of course once I learn the hard way that this is how it works, I could just connect a chest to a power pole via a red wire, and copy-paste from that to avoid the whole problem. But this behavior definitely did not do what I meant. Furthermore, I can't see any benefit to copy-pasting both the requests and the contents of the checkbox for a chest which will be immediately changing its requests, in the next tick, to the contents of a connected circuit network.

So, my request is that, when pasting the information from a chest configured to set requests from the circuit network onto a second chest which is indeed physically connected to a circuit network, the requests not be copied (even though it's in the "clipboard" virtually), and only the checkbox be applied. Likewise, when blueprinting a chest configured to set requests from the circuit network, I would propose the game also does not copy the actual requests, if either the chest is physically connected to a circuit network, or configured to become so, in the blueprint application process (a determination that notably could only be made after the game has decided which entities are going to be placed, and which not, if the blueprint is being ordered to be constructed with the shift key depressed, which could still lead to some wierd unexpected requests getting filled, .... I guess another idea would be to just ignore the issue that the circuit network might not actually be connectable and not copy the requests, regardless, if the item was connected in the original blueprint).