Blueprint Exporter


Exports the entire blueprint library (My blueprints + Game blueprints) recursively to script-output as exchange strings, for git-friendly backups.

Utilities
4 months ago
2.1
34

g Possible JSON output

4 months ago
(updated 4 months ago)

Most excellent tool. Thank you.
To make it really git-friendly you could add the ability to export the blueprints as JSON strings.
With the strings in JSON diff routines can actually compare the changes rather than merely recording the blobs.
To improve the human readability you could make it pretty printed JSON.
If done, it should be an option. JSON, even minified, is going to take around 4x the file space, and pretty printed will nearly double that.
Of course, the JSON string may not be available to the mod unless the user has turned on that option in the hidden settings 'allow-blueprint-export-to-json'.
Another advantage for JSON, especially pretty printed, is that not only can it be diff-ed, it can be hand edited to make improvements, or even variations of the print for later use.
While pretty printed has the advantage of being easy for humans to read, in Linux (I cannot test in Win/Mac) the pretty printed file cannot be imported by drag/drop, and in Linux the pretty printed string cannot be imported by drag/drop. (Win/Mac cannot import any string by drag/drop).
[Bug reports filed on both Linux issues, but it's not looking promising.]
My Perl script makes fast work of the conversion already, but others may benefit from the option.
Still, a great, and sorely missing, tool for big print users. Thanks!
Speedrunners should be singing your praise on high.

4 months ago

I was thinking about JSON, but it needlessly complicates things. It introduces an extra conversion layer on import. The whole point of the mod was to quickly export blueprints that are ready to import in-game.

4 months ago

Works just fine for me. The file size for a JSON is no joke. I only mentioned it since you'd brought up git in the description.
All mine are stored in JSON, but I've got the Perl script to handle it solo or in batches, so it makes no difference in my workflow.
Still. having the ability to just dump the whole library is excellent. Great tool and already on my permanent list of tools for designing with.

a month ago

May the mod's author forgive me, I finished the mod, now it exports blueprints to JSON.
The fields in the JSON are sorted in alphabetical order, so doing a diff with git, as well as editing blueprints manually, should be convenient. Additionally, the new version of the mod puts the reverse conversion scripts json -> txt into the folder script-output\blueprint-exporter\tools.
The folder naming algorithm has also been changed, to avoid conflicts with excessively long paths - BBCode and other special characters are stripped from book names, but a small file is created that allows the book name to be restored "in place" during reverse conversion.

I should note that the blueprint imports perfectly fine without conversion to TXT, directly from JSON.

Dear author, I will not publish the mod without your permission, since all the credit for its development belongs to you. I only finished it up a little, with the help of AI.

If you don't mind including my changes, I'm ready to discuss the technical part of how best to do it :)

Thank you for your mod, I've long dreamed of a tool like this!

a month ago

And that's the beauty of open-source software. You don't need to ask for permission. Publish it, I'd love to test it out!

a month ago

Thank you, I'll hold off for now, I need to finish a few things. It turned out that sorting the fields makes no sense at all. When a change is made to a blueprint, the game apparently changes it quite significantly. Besides that, the version of all exported blueprints changes, so ALL files become modified. I don't have any ideas yet on how to handle this correctly :)
I also want to finish the reverse converter, which will make a BOOK of blueprints out of a folder of JSON files, for example if someone wants to bring all the names to some unified standard :)

If it's not too much trouble, maybe you could publish your version on GitHub? I'll fork it, upload mine, and make a pull request. I think that's how it's done in the open-source community? :)

a month ago

New response