Hey there, I saw the blog post of Parametrised blueprints: https://factorio.com/blog/post/fff-392 -
What I've always wanted was a way to place blueprints as a "reference" of the blueprint, instead of just an untracked "instance of" blueprint.
If you've played SpaceChem you'll know this concept...
How that worked in SpaceChem was that for example you created a small 10 by 10 loop, which would be saved as an actual object. So in a later mission, you'd reuse your 10x10 loop block, place it, and place 10 in a row, chain them up, and have a factory of loops...
Then you figure out, "Oh shit, in 1/100 cases my small loop fails", and you can go back inside your initial loop object, change things, and it's updated in all those 10 placed in a row.
In Factorio it would be a bit imba if you can dynamically update your entire map though updating a blueprint, since materials are required, so I was thinking of some ways this could work:
You create a blueprint, and to create a "blueprint-instance" you put the blueprint as output in an assembly machine, and you provide all the required parts for the blueprint, now you have a "blueprint-instance".
When you create the blueprint, you can set some properties, like it being a 10x10 blueprint, and then you can use your blueprint to create "blueprint-instances" from it, as if it's any other machine. Meaning, it's immutable; you cannot place the blueprint-instance and remove stuff or add extra stuff after pasting it. It also takes up the entire predefined space (10x10 if you configured that)
Now, at some point you want to change something, ok, it works the same as upgrading any other thing in Factorio. You change the blueprint, you set your assembly machine to create "blueprintV2-instances".
Then you go to the upgrade planner, select that you want to upgrade "blueprint-instances" to "blueprintV2-instances", and your robot network will do the rest and replace everything with new version of the blueprintV2...
Basically like in programming, what blueprints are now, are a cheat-sheet that you keep, and when you need something, you copypaste from your cheat-sheet and paste it in you level. What you actually want to do is group things (like create classes) so when you want to change something you don't have to go though all your code (level) to figure out where you copypasted your initial version. You wrap your logic in containers and then use and update those containers.
Does anyone know if something like this concept exists? Would it be possible to mod something like this?
Placing blueprints as "references" instead of copies
Moderator: ickputzdirwech
-
- Manual Inserter
- Posts: 2
- Joined: Fri Sep 01, 2023 11:28 am
- Contact:
-
- Filter Inserter
- Posts: 521
- Joined: Mon Feb 05, 2018 10:01 am
- Contact:
Re: Placing blueprints as "references" instead of copies
What you want is essentially version control on placed blueprints.
I'd love that, it would make fixing early mistakes in grid bases so much simpler.
I'd love that, it would make fixing early mistakes in grid bases so much simpler.