About this mod
Simplify Sunless Sea modding with Sunless Data Loading Simplified. Both a modders tool and clientside mod, it can both be used to create distributable mods, or to load special SDLS mods. It also adds QOL features and improves performance!
- Requirements
- Permissions and credits
- Donations
Sunless Data Loading Simplified
It also increases loading speed with FastLoad, and adds quality of life features like LoadIntoSave!
New in 1.6.0:
- Fixed a crash when launching the game with the mod before the game had extracted into persistentDataPath.
- Increased basegame loading speed by about 15%.
- Added a loading bar to show FastLoad progress.
How does it work?
When creating a mod, a mod author can leave any values that their story or quality doesn't use blank, as well as not having to include any unused fields, which are plentiful as holdouts from Fallen London. Once the mod is created, they can rename the file to `filename`SDLS.json or `filename`.sdls, which will get recognized by the plugin as valid files. These files can be placed in the same place as regular mods would go.
On startup, before any game logic executes, SDLS looks for valid SDLS files in your addon directory, recursively loops through the data, constructs a temporary data structure, a "dummy tree", and casts the values of the original file into it. It then saves this data next to the original SDLS file, as a .json file, which the game then loads. As a modder, you can distribute the SDLS files, as well as the generated json files, for those who do and don't have SDLS installed. As a user, you can use SDLS to load SDLS mods, if the modder doesn't provide the json files alongside them.
How to install
- Automatic: Install using Vortex.
- Manual: Extract the contents of the zip file into your SunlessSea folder. This is the folder where the Sunless Sea.executable is found. If you are installing the plugin only version, go into the BepInEx/plugins folder and put the .dll file there.
Current Support and experimental features
During certain phases of the game's startup, the game tries to load these 16 files:
- qualities
- areas
- events
- exchanges
- personas
- TileRules
- Tiles
- TileSets
- CombatAttacks
- CombatItems
- SpawnedEntities
- Associations
- Tutorials
- Flavours
- CombatConstants
- NavigationConstants
The highlighted entries are officially supported. The others will still work, but this is experimental. I cannot guarantee I didn't make any mistakes.
What this mod DOESN'T DO
- Create a new mod format. SDLS simplifies mod creation by allowing you to omit unused fields, but the mod format stays the same.
- Modify the game's files. SDLS is a compatibility layer, meaning it runs before the game is loaded, and does not touch the game's files at all.
- Fix mistakes you make, or assume default values when you don't enter one. Some values such as BaseHullDamage have been defaulted to 0 in SDLS, but do not rely on this.
- Mod compatibility. Have a config option to merge mods to resolve compatibility issues.
- Expanded official support for all loaded .json files.
- Additional QOL features similar to FastLoad and LoadIntoSave.
- Additional small performance patches.
Special thanks
- Desblat and CleverCrumbish for helping me with realizing and refining the concept.
- Exotico for creating the excellent reference document on which the SDLS reference is based.
- The people in the BepInEx Discord