SkyrimDB
Summary
- Goal: Improving Skyrim alchemy 'workflow'.
- Languages: C#
- Tech Stack: N/A
- Notable Achievement: Databse-like queries
- Status: Semi-Complete (Hampered due to technical limitations)
Completed Features
- Modifiable ingredient database. [1]
- Ingredient searching and matching.
- String similarity scoring for typo-correction suggestions. [2]
- Partial Skyrim save file parsing (limited by available knowledge of file format).
Description
Born of frustration at the lack of tools to compare, combine, and prepare ingredients for potions in Skyrim, this project is at its core a simple database capable of being added to, searched through based on criteria, and removed from. It also contains some QoL features such as input error resoltion for ingredient names and effects using a levenshtein distance based algorithm, and JSON serialisation. Though not very useful in its current state, it also features partial decoding of Skyrim savefiles and mod files. The reasons these remain unfinished are discussed below.
Challenges
While this project for the most part was fairly straightforward, it became significantly more complex once I attempted to automatically parse the installed mods and the skyrim save file for ingredient and inventory data respectively. The files are compressed and encoded into binary with varying levels of documentation from user experimentation on the UESP wiki. At the time of building this program (and likely still) there was incomplete information available on parsing "extraData" forms. which were an integral part of how items were stored in the inventory. That is to say, the parser works up until it actually gets to the player's inventory, which is no small feat on its own.
The mod file parser was much easier to get working than the inventory parser, though I never ended up implementing it fully into the program as I had lost interest in my Skyrim playthrough by this point. The mod file parser can get a list of all added ingredients from a single mod file in its current state.
Future considerations
Were I ever to retrun to Skyrim (Which I almost certainly will), I would like to finish implementing the mod parser, though unfortunately I believe I've exhausted options in regards to the inventory parser, even going so far as to contact a former lead programmer on the project for their advice.