Page 1 of 1

Blueprint organization issues: a mini rant

Posted: Thu Jan 26, 2023 8:19 pm
by leeux
Hello,

Just posting a long winded post in order to ask others how do they manage their BPs storage? I'm a bit fed up with the state of my BPs atm. and I don't know how I'd even start to organize them :|

Here's what prompted this: after swapping back and forth between different saves that load different mod packs in search of an old BP I had made and I still couldn't find it. So then I thought about posting here on this issue and try to find better ways to handle the BP storage for my own organization.

First, a bit of background: I'm reaching ~3800hs played, and did about ~6 full playthroughs, including at least 4 different mod-packs loads. I have all sort of BPs, for all kind of stages of the game. For example: I have like 4 different train rail set BPs with mainlines, junctions, stations etc, for example (5 if I count the half-assed first attempt I made during my first save game :P)

All that made a mess of my BP repository, I now have BPs all over the place, different versions of the same books for different saves, some of them are in the local BP area of each save, some of them are Global. And I'd want to bring some order to that chaos, but the in-game BP manager is too limited to be able to do that efficiently and in a timely manner, so I normally give up and the mess keeps growing.

I guess most people just use the Global BP storage and stick to that for those reasons, right? That solves things, in a way... but it also makes you unable to update your old BPs and have to create duplicate books each time you start a new playthrough and probably also leads to bloat? (I tend to go back and forth betwen some of my old saves, since they are not completely finished, and I'd want to be able to keep the BPs as they were when used on those saves in case I need to use them, that's why I use the save-local storage area.)

Besides, each mod-pack requires a separate whole BP book, with repeats of other BP items specifically made for that mod-pack, since often entities have new tiers (basic example: power poles/radars in B&A, but there are many more,) that once upgraded won't convert back to vanilla easily, if you lose the original.

What I did was to have a Global BP master books for each mod-pack I played, and when I start a new playthrough, I copy that book from the global area and store it on the local area for that particular save. Then, if I make a new set of BPs (train related for example) while playing a save, I make a new book and add V2, V3, etc. to signal they are supposed to be an evolution over the old ones. If I want to reuse that book in a new save, I make a copy of that BP book to the global area and then, on the new save again, copy from global to local.

That seemed a great idea when it started, but then it quickly lead to having divergent BP versions and also it generated a mess of duplicates, and a bloat of unusable BPs (due to missing entities, for ex.) stored in the Global area for other saves that don't care about them. The bad part about that aspect comes from the Upgrade planners book: over time I made use of several upgrade planners that I always need in any game, and they are stored in my Global area and in my Local save area, so they appear multiple times. Also, to make matters worse: The UI for selecting an upgrade planner also seems to sort Global first rather than Local, so each time I need to upgrade entities inside a BP in my current save, I have to scroll past many many unusable UPs (i.e. K2's based UPs while in a A&B save.)

What I would love to find or see made, or added to the game for these issues:
  • External tools that helped organize the different BP storage files globally across different saves, deduplicate them, generate backups, etc.
    • Perhaps, if there's no external tool available yet, maybe release the BP DAT file format officially so I can make it myself? (**) :)
  • In-game: A way to find duplicates and see which one is the latest edited one (game don't show this at all.)
  • In-game: A way to organize BPs storages with folders (not by using more books in the same storage,) perhaps with a way of closing a BP archive and opening a new one right from the game? That way we could store all A&B BPs in a file separated from say, K2-only BPs.
  • In-game: A way to hide Upgrade planners stored in the Global area from appearing in the upgrade selection list (and viceversa too? i.e. maybe a HIDDEN attribute per-BP?)
  • In-game: Add a LAST-UPDATED date attribute to each BP item, and show that in-game (or maybe a version number incremented each time you SAVE, or even maybe both.)
  • In-game: A way to add TAGS to BP items, and be able to filter by TAGS when looking at our BP storage. I'd use those tags first to be able to separate BP books/items by mod-packs, for example.
My personal global BP file is ~45MB atm. and I feel that it's reaching a point when I'll start having issues in-game due to the big size if I keep growing it, I don't think it was intended to grow indefinitely, right?

So, what's your own strategies for dealing with all this in your games? I'd love to know! Specially from people that play multiple saves at the same time, with different mod loads, and/or keep copies of different sets of BPs.

BTW, are there any LUA APIs to handle the BP storage in-game at all? Like, look through the BP storage listing items and maybe generate some kind of HASH for each BP item and store it to a file to have a quick way to find duplicates? That kind of thing.

As an aside, I found the way DSP handled the BPs items great. It's just a folder in the disk and each individual BP is a file in the file system. That way you don't need specialized tools to manage your BPs at all! I'd love to have an alternative storage option like this for Factorio BPs too :)

(**) I've been doing some research, and I know that there is at least one other person that requested this, and some, maybe the same person don't recall, that tried to reverse engineer the format. But IMHO that's not a feasible solution: i.e if it's not official, the format can change from game version to the next breaking people's BPs in the process if they use an external tool to manipulate them. And I wouldn't want to be on the receiving end of that nor I would want to be the cause of that if I make a tool myself.