Skip to content
MagicJinn edited this page Nov 29, 2024 · 22 revisions

Revolutionize Simplify Sunless Sea modding with Sunless Data Loading Simplified

The Proper Channels

Have something to say? Here's where you can say it:

What is SDLS?

Sunless Data Loading Simplified (SDLS) is both a modders tool and a clientside mod that allows for Sunless Sea mod creation and loading, without (most of) the jank. About 65% of the fields in a Sunless Sea .json are unused, and this mod allows you to safely remove them!

It also increases loading speed, and adds quality of life features like LoadIntoSave!

For players

Current features

  • SDLS allows players to load .sdls mods natively*, meaning mod authors can distribute the SDLS mod without having to convert it to a .json file.
  • Fastload: Reduces load times by up to 15-20 seconds by frontloading data repositories asynchronously, even with no mods installed.
  • LoadIntoSave: Immediately loads the most recent save when the game starts (as if the continue button is pressed) to remove the requirement for manual interaction.

* SDLS is a compatibility layer, meaning the mods are converted to .json files before being loaded into the game.

Planned features

SDLS will allow for merging of SDLS mods, which will combine all mod JSON into a single JSON file, enhancing compatibility for mods that touch the same areas, edit the same qualities, add new shops, etc.

Currently, adding new events to a location or new shops to the game overwrites existing content, causing compatibility issues between mods. SDLS will address this by allowing:

  • Combine events, shops, and quality edits from multiple mods without overwriting existing content.
  • Logging of conflicts to make diagnosing issues easier.
  • And more!

With these future updates in mind, I urge mod creators to adopt SDLS and provide .sdls files alongside .json files. I also encourage players to use SDLS for mod loading, easing the transition to mod merging when it launches.

SDLS does not touch the game's files, so regular mods can still be used alongside SDLS mods. As of 1.5.0, SDLS runs async, meaning it won't freeze your game while loading.

For modders

Current features

  • Mod creation simplified: SDLS allows mod authors to create mods without having to include unused fields, reducing the mod size (and thus complexity) by about 65%. This includes:
    • Top-level objects: Some fields are completely unused, while others are not always necessary but crash your game if left blank.
    • Nested objects: The game requires certain fields to be present, but does not use their values.
  • .sdls to .json conversion: SDLS automatically converts .sdls files to .json files when you launch the game, so you can still distribute the .json files for anyone who doesn't have SDLS installed.

See below an example of the difference between a basegame JSON quality and an SDLS JSON quality.

Basegame JSON

SnowChildJSON

SDLS JSON

SnowChildSDLS

Planned Features

  • Skeleton Key modding: A way to mod existing (basegame or other mods) JSON files without overwriting all values, but instead creating a skeleton path of the JSON, only changing what is necessary. This allows for targeted modifications to specific elements within the JSON structure. Here's an example demonstrating how this would work:
Example: Changing an image nested 3 levels deep in an event

SkeletonKeyModdingExample

What SDLS DOESN'T do

SDLS does not:

  • 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.

Future plans

  • Mod merging. The ability to merge all mods into a single mod internally, allowing for compatibility between mods that touch the same areas, edit the same qualities, add new shops, etc.
  • Additional official loaded data support. Currently, SDLS officially supports Qualities, Events, Shops, and Constants, but the other moddable JSONs will be refined.

Special thanks: