TL;DR
I like to use the same blueprints in the early game, mid game, and late game, I like to keep things modular and extensible and "build out" over time, rather than making a messy starter base manually and then slapping down fully upgraded blueprints when I get bots. This obviously means either upgrading or downgrading the items in my blueprints will be necessary at some point, and the current blueprint book upgrade system is not very good because it permanently modifies the blueprint book, which means if you apply the wrong upgrade planner you might be in trouble.
What?
I feel like the primary method of upgrading blueprints in a book should be through a new "Apply Blueprint Modifications" button, which is a non-destructive method of modifying the book.
Basically, instead of actually upgrading the blueprints in the book, it should instead let you choose any number of upgrade planners and apply them "dynamically" when placing blueprints. So for instance, if my blueprint contains yellow inserters, and I have checked the "Upgrade Yellow Inserters to Blue" upgrade planner in my blueprint book, then when I place it, the yellow ghosts will automatically be replaced with blue ghosts. If multiple are selected and have a conflict, the one further down the list wins.
This allows anyone to create a set of "baseline blueprints" using the minimum available technology, and then apply modifications as necessary to suit their needs without disrupting any of the original blueprints.
With the current "Upgrade all Blueprints" button, it permanently changes every blueprint in the book, which is not only error prone (and a little bit scary!), it also means that when I upgrade everything in the book, I have to then go and downgrade everything again later if I decide to do a new playthrough. If I applied the wrong upgrade planner (maybe I meant to only upgrade from yellow inserters to blue, and accidentally used the generic upgrade planner and now they are all green!), then it's a fiddly and annoying process to fix the error.
The "Upgrade All Blueprints" button should still be available, but less prominent, because it's still useful and I am sure some people prefer that way of doing things, but applying upgrades non-destructively should be the recommended way to upgrade existing blueprints.
There should also be a way to incorporate these upgrades globally using the blueprint library window. When I upgrade to blue inserters, I want to be able to tell ALL blueprints in ALL books to use the new blue inserters where available, so a global upgrade planner list would also be good (as well as per-book).
I know I can accomplish something similar by making a baseline blueprint book, then duplicating it in each playthrough, so I can upgrade the book over time without modifying the original version, which keeps it safely backed up and doesn't require me to downgrade again. However that's fiddly in it's own way, and if I accidentally apply the upgrade to the wrong version of the book, well....then I need to go and fix it.
Why?
I hate having to modify my blueprint book unnecessarily, because it's inherently an error prone process and I don't want to irreversibly damage it.
Dynamically apply Upgrade Planners rather than upgrading blueprint books directly
Moderator: ickputzdirwech
Dynamically apply Upgrade Planners rather than upgrading blueprint books directly
Last edited by sarge945 on Fri Jul 26, 2024 10:24 am, edited 4 times in total.
-
- Fast Inserter
- Posts: 162
- Joined: Sat Oct 07, 2023 6:44 am
- Contact:
Re: Dynamically apply Upgrade Planners rather than upgrading blueprint books directly
I am 99% sure that the upcoming parameterized blueprints could solve this:
https://factorio.com/blog/post/fff-392
You might just have a lot of parameters
https://factorio.com/blog/post/fff-392
You might just have a lot of parameters
Re: Dynamically apply Upgrade Planners rather than upgrading blueprint books directly
I don't think the parameterization can replace buildings (like yellow belts with red belts). I think it can only configure things like recipes.
It would be cool to be able to substitute buildings (as long as they are the same size, or there's room to fit) using the blueprint parameters system.
That said, the parameterisation system probably isn't really the right solution for the job. Parameterisation is designed to allow changing blueprint functionality, recipes etc. This is about having the same blueprint overall, but a more or less powerful version. Having a generic station that can be configured for, say, coal mining or stone mining isn't really relevant to whether or not we want it to have fast inserters or not.
It would be cool to be able to substitute buildings (as long as they are the same size, or there's room to fit) using the blueprint parameters system.
That said, the parameterisation system probably isn't really the right solution for the job. Parameterisation is designed to allow changing blueprint functionality, recipes etc. This is about having the same blueprint overall, but a more or less powerful version. Having a generic station that can be configured for, say, coal mining or stone mining isn't really relevant to whether or not we want it to have fast inserters or not.
Last edited by sarge945 on Fri Jul 26, 2024 9:42 am, edited 2 times in total.
-
- Fast Inserter
- Posts: 162
- Joined: Sat Oct 07, 2023 6:44 am
- Contact:
Re: Dynamically apply Upgrade Planners rather than upgrading blueprint books directly
Ah, you're right. They only ever talk about signals and recipes, not the entities themselves. Hmm.
Most of my other ideas for how to go about this are kind of kneecapped by the lack of a limit on blueprint book nesting. If there were a limit of say a single book within a book you could change blueprint book scrolling to be 2 dimensional and solve this pretty easily by just having books of each configuration. Or maybe you could still do that and have the second dimension only control the position of the innermost book.
Maybe a "tech level" custom attribute per blueprint and the hypothetical second dimension of blueprint book scrolling filters only for blueprints that match the "tech level"?
The way I currently solve the problem you're facing is by just having multiple tech levels of a particular blueprint jammed in the same book. Like for lane balancers I've got a yellow belt one and two lane lane balancer, then also following them in the book are the red and blue belt ones. This works if you keep your books small and don't do the "everything I ever use ever in one big book" style, but fails if you put too many things in.
Most of my other ideas for how to go about this are kind of kneecapped by the lack of a limit on blueprint book nesting. If there were a limit of say a single book within a book you could change blueprint book scrolling to be 2 dimensional and solve this pretty easily by just having books of each configuration. Or maybe you could still do that and have the second dimension only control the position of the innermost book.
Maybe a "tech level" custom attribute per blueprint and the hypothetical second dimension of blueprint book scrolling filters only for blueprints that match the "tech level"?
The way I currently solve the problem you're facing is by just having multiple tech levels of a particular blueprint jammed in the same book. Like for lane balancers I've got a yellow belt one and two lane lane balancer, then also following them in the book are the red and blue belt ones. This works if you keep your books small and don't do the "everything I ever use ever in one big book" style, but fails if you put too many things in.
Re: Dynamically apply Upgrade Planners rather than upgrading blueprint books directly
I think it would be great if you could use SHIFT+Scroll to scroll the invididual blueprints, and CTRL+SHIFT+Scroll to scroll books. Depending on the context, you may want to allow SHIFT+Scrolling to move between books, or to scroll back to the start of whatever book is selected, which would make sense as a checkbox.computeraddict wrote: ↑Fri Jul 26, 2024 8:29 amAh, you're right. They only ever talk about signals and recipes, not the entities themselves. Hmm.
Most of my other ideas for how to go about this are kind of kneecapped by the lack of a limit on blueprint book nesting. If there were a limit of say a single book within a book you could change blueprint book scrolling to be 2 dimensional and solve this pretty easily by just having books of each configuration. Or maybe you could still do that and have the second dimension only control the position of the innermost book.
This really only works for books within books, though. It falls apart when it goes 2 levels deep. But having books inside books inside books is very rare and so there's not really a big issue, the game could simply find all books in all subbooks and add them as a linear collection of books, which would work most of the time.
The real problem with this is that you need to duplicate blueprints. If I have a smelting column for use with yellow inserters, and the same thing again for blue ones, then any change to the blueprint needs to be replicated in multiple places. Worse, this can easily expand out into an exponential problem. What if I want to adjust yellow vs blue inserters, or yellow vs red belts? Now I need 4 copies of the blueprint. Add in the ability to configure wooden power poles vs steel ones, and suddenly there's a lot more combinations.