Hey, thanks for answering, I appreciate it a lot.

TBH, I expected no one would bother reading such an unnecessarily long post, let alone answer.
Nightinggale wrote:So basically you are saying we should bug the developers to add better ghost entity support in blueprints?
I think we should bug them to add better
real-entity support in the field, so these ghosts need not overlap in the first place.

But I've no idea whether that can be done, let alone how much work it is. I'm fine with the game's progress, it's improving pretty well right now, so no hurries for me.
Nightinggale wrote:Actually I have since come up with a vanilla memory, which is significantly smaller than that. (...)
That's a really clean and small set-up, thumbs up.

It looks a bit like the D-latch I made for my friend when I started (
https://en.wikipedia.org/wiki/D_latch). However, as you mentioned (I think), your circuit won't work if your write signal (i.e. A) is in your data. E.g., what if you want to store a value of "A=42" in your memory? Or even "A=-1"? What if you have 26 memory blocks that use "A..Z=1" as their write condition and you get data from the signal strings library (
https://mods.factorio.com/mods/justaran ... nalstrings)? I had to split the write signals out of the data and handle them by a duplicate circuit, then merge them in at the end - one reason why it is so large. And my friend hasn't been using it, so I have little reason to remove the design-phase clutter. *cough*
Ultimately, I wanted a memory that could store not only item counts, but anything, even full-fledges programs if needed (write signals in the data would be common). Then, all you'd need to do, is, write a handy little compiler script, and then set the program through signals. There you go, arbitrary programs executed by circuits in-game. Of course, that needs a simple CPU, but the arithmetic combinators lend themselves to that easily. But you also need an instruction decoder, and a data fetcher, and an address decoder, and so on... You probably see why I dropped that idea and just looked for a Lua Combinator Mod (there is one for 0.15 now). After all, we already *have* full program execution in-game.
Oh, btw: My only vanilla application for memory is a far-away, autonomous storage for specific items. It should automatically detect how many items of its chosen types are scattered around in storage chests (they get dumped by messy / lazy team-mates in multiplayer all the time

), calculate the excess, and pull them in when logistic traffic is low. On the other hand, when on-base storage of the items is low, it should make them available in storage chests (so they get picked first) or push them out to the base. And since you don't want such stock-keeping to go on all the time, it should only do this once every few minutes (preferably also for outposts, via trains). It's easy to program such a thing, but hard to wire it into circuits.
My only *other* idea would be a completely dynamic assembling array that is assigned to production automatically, as needed.
Nightinggale wrote:This can be set up as combinators in a single row, which allows building lots of rows, hence making a big memory bank. You can replace A=1 with anything you want, in which case you can have one wire, which goes to all memory cells, but the control signal will ensure that max one will be active at once. You can for instance use an AAI unit scanner and then use vehicle IDs, effectively store data for each vehicle. You can say loop all miners and then connect all outputs and that wire will have total ore hold of all miners. Personally I mainly use it for crafting combinators where each memory cell supplies 4 assemblers. This in turn means one wire, which connects to all assembler stations which in turn allows some combinators somewhere to set how many assemblers should produce each item according how many I have in storage and if I have the needed input items available.
Kinda like that, just bigger.

Whenever you hit a production shortage of any kind, you should just need to place a blueprint of the dynamic array somewhere within range, and the circuit control and bots should handle everything else. You'd never have to think about production management again; it's kind of a self-regulating FPGA. But you cant' do that in vanilla because assemblers can't be controlled with circuits. They can with mods, but then again, mods can also automate the blueprint-placing, so you could automate base expansion and building. Just make yourself obsolete, thanks to memory.

I haven't looked into AAI, though, so I can't talk about that.
Nightinggale wrote:I agree. It's very useful as it is, but the lack of blueprint support makes it more useful for setups where you need one, but not as much for setups you want to copy because you want 30 of them and you have 2 switches in each. That's a lot of manual setup afterwards.
As said, I'll check out some other mod options and report back how they relate to this one. Maybe there are nice combinations you could do with the switch, or fill in for the switch until it's blueprintable.
Nightinggale wrote:
I have the same feeling with Factorio. Particularly when I need to get the timing right. An example would be to set up a circuit, which can be pipelined, meaning it has new data each tick, but it takes multiple ticks to complete. If it branches and one branch takes 5 ticks, then the others need to take 5 ticks as well in order to get the right data to merge. I then add one tick delays with combinators, which outputs the input. Ticks needed for each iteration is also an important performance factor in game time and much needed concerns if you plan to move vehicles manually. Factorio is likely the game where you can make best use of engineering degrees ingame. Most games have the engineering requirements in mod making only.
Yeah, factorio is really fun in that respect.

<3 However... tbh, I'm a computer scientist, so people expect better stuff from of me than my buggy designs so far.

But it's not like you really "make" circuits in computer science. Even a hobby electronics builder just types down a formula for the circuit, and the computer does the rest, down to circuit board prototyping. So, automate yourself.
