* * *
Spiritual Successor is available at the link in my signature: https://spiritualsuccessor.net/
* * *
TABLE OF CONTENTS OF SPIRITUAL SUCCESSOR POSTINGS:
Spiritual Successor - RELEASED!
Development Update #1 - Code Refactoring
How-To #1 - Simple Edit & Export
Development Update #2 - Using RxJS Subjects
Follow Spiritual Successor on Twitter for announcements
Original Post from 27th April 2018:
For some time now, I've been working on a modding tool that reads Deadfire's .gamedatabundle files and allows for their easy editing, and exporting of changes. The editor's initial version is not far from being released, and I expect it will be out shortly (days, weeks) after Deadfire ships.
The editor's basic workflow is:
1. Load a gamedatabundle file into the editor. If you don't load one yourself, the contents of the vanilla gamedatabundle file will be used for modding.
2. Select a category which you want to make changes to - for example progression tables. Make your changes to the progression table you chose and hit Save. A copy of the object you changed is recorded.
2.1 From a progression table you have access to a list of abilities for the object you chose to edit. Selecting an ability from the list will load the ability's object for editing, without need for you to switch screens or do anything manually. From the ability you may proceed to edit the attack associated with that ability, and from that, proceed to edit the status effects applied by that attack. All this is happening through the editor's UI.
3. Go to the tab for exporting changed data. It contains a list of objects which have been changed across all gamedatabundle objects. Review the json code and export it for inclusion in your modded .gamedatabundle file.
The main advantage of the editor is that it fetches game data objects referenced from different gamedatabundle files. So when you are editing a weapon for example, you don't have to go through 3 files (items > attacks > status effects) in order to change the duration of some effect. This saves you time and effort because you don't have to switch between different files, and search manually with ctrl+f in each one.
Secondly, the editor reduces the chance for technical errors and typos, by using input validation on the fields which you are allowed to change. The editor won't allow you to save a field with an invalid value which would break the game, and there is no chance of invalidating the whole gamedatabundle file because you accidentally deleted a comma somewhere.
Thirdly, the editor filters out from view any system fields and/or objects, which are not suitable for modding, letting you concentrate on the stuff that's of interest to a modder.
Stuff you can potentially mod, and which the editor will gradually begin supporting: rebalance abilities, add and remove abilities, rebalance item stats, damage, armor rating, defense bonuses, health points, injuries, skills, and more.
The editor is web based, but there is no server-side logic or functionality which needs a webserver. Everything you do happens on your own machine, in your browser's memory. No data about your mod or usage of the editor is being recorded on the server. In fact once you open the editor, you can safely switch off your internet connection. Changes are being saved in the web browser's memory, which carries the drawback that on refresh of the browser tab, you will lose all changes which you haven't exported. Therefore you should not refresh or close the browser tab until you've exported your changes from the editor.
I haven't been in contact with Obsidian about making the editor, and I haven't been given special support or documentation. I never told anyone in part because I wanted to work on this simply as a pet project. Of course, I will welcome any help and support, mainly with documentation, which would allow me to keep improving the editor and enriching its functionality.
I hope such a tool will make modding more accessible, will liven up Deadfire's modding community, and will encourage Obsidian to increase moddability for Deadfire and for future games.