0 of 0

File information

Last updated

Original upload

Created by

MagicJinn

Uploaded by

MagicJinn

Virus scan

Safe to use

Tags for this mod

6 comments

  1. Asesinamen
    Asesinamen
    • member
    • 19 kudos
    So, about the planned mod-merging compatibility-allowing features:

    I assume that the biggest and most valuable thing you'd do would be allowing new branches/options from different mods to be added to the same event/port, as right now an event/port's branhces need to be all listed (vanilla and mod-added) in the last-applied add-on in order for them to be present.


    But are you planning to extend the funcionality even further something like allowing mod-added officers, like the Silent Watchman, to be merged into the list of officers to lose when Eating Your Crew at Kingseater's?
    1. MagicJinn
      MagicJinn
      • member
      • 0 kudos
      Most of SDLS functions blindly, meaning it doesn't necessarily distinguish between different types of data. If it encounters a list—whether it's a list of events/branch options or a list of officers to remove at Kingeaters Castle—it should be able to merge them. That second part, of course, is mostly hypothetical, as mod merging as a feature has been completely scrapped for the release of SDLS 1.5 (and will be re-imagined/rewritten). I'm really glad I made this decision because during the creation of 1.5 and the wiki + reference, I've gained a much better understanding of how the JSON is actually processed.

      Mods intending to make use of mod merging would likely need to be adjusted for it to work reliably. For example, any custom events can remain completely unchanged, but events that merge into/edit the base game would need to be specially written to accommodate this. I don't have an ETA for when mod merging will be a feature, but even after that, it'll take time for people to learn about it and adopt it.
  2. InspectorB
    InspectorB
    • supporter
    • 0 kudos
    I tried to make something similar and failed when I realized that it is a nearly impossible task to have a JSON converter like this that isn't sanitizing the JSON for comments. Right now, the most popular mod is Sunless Stories which uses boatloads of comments. This tool will become immediately more useful the moment it can solve the comment issue but that is no easy feat. There are ways to do it, but none of them are easy.

    I personally am struggling to see the value as a modder as it stands, since most of the time, I won't remember all of the fields I need to change until I am looking at it since there are so many. While I think cutting out the extra junk might be super helpful for modders that have it nailed down to perfection or have already got their mod ready to go, they will find it helpful, but if the goal was to make it new-modder friendly... I am not sure this tool is that helpful based on the blurb. Especially since performance is not a major concern for the mods we make for this game. That being said, I don't exactly have that much information based on your blurb on how to use the tool, or what the use cases are for the tool, and how this tool actually helps me make mods easier. The long and short of it is: I'd like to see how this works in practice before I spend time trying to get your system to work with my mods, when in order to use your tool in the first place it seems like I already have to have my changes ready to upload. I think it probably is useful, but you haven't shown me the real difference of how this is useful in practice, so its hard for me to to commit to learning the framework as a modder, especially when I don't know for certain what parts of the JSON you are taking away.

    While I don't think this is a bad idea per say, I think a more useful tool would be a Vortex Extension that allows Sunless Sea mods to be loaded in the three places mods sometimes need to be loaded (Data files, Story files, and Images). I HATE having to tell users how to install some mods here in this folder, then go to AppData, oh but don't forget to drop those images off. They have to put files in three places, and that really really sucks. Those mods that have to be deployed in multiple locations could do so from one point with a Vortex Extension. I would honestly love a structure that lets me put all of the different components of my mods into respective folders so that a Vortex Extension knows where to deploy those mods without needing to do anything other than click "Slow Download" on the nexus page.




    TL'DR / Summary: I think all you would really need to convince me is some kind of tutorial or video that shows the differences your tool makes against just doing a change normally, and I would be a lot more confident in trying it out.
    1. MagicJinn
      MagicJinn
      • member
      • 0 kudos
      A few things:

      • Removing comments from json files is indeed a nightmare. I might try to find a system that works again later, but for now, people making SDLS mods can use the "Notes" and "Tag" fields in the json for comments. That's what they were intended for.
      • The mod does not improve performance. Sadge.
      • Mods like Sunless Stories using comments doesn't matter, since that mod already exists, and SDLS doesn't change the behaviour of loading mods. SDLS is a modding utility, you can load traditional json mods just fine with it.
      • I tried/am trying to create a Vortex extension for Sunless Sea, but ironically it's a bit harder than coding this mod.


      I plan on making a detailed guide on how the mod works at some point, but I'll try to explain what this mod does do (as I already made a section about what it doesn't do in the mod description 😁)
      When you create a Sunless Sea mod, there are millions of json fields, of which most are unused. This can create significant confusion for people trying to get into modding. I've seen plenty of people talk in the Failbetter Discord about wanting to mod the game, but as soon as they even open a single json file they are overwhelmed and give up (myself included). The amount of unused fields in the game's provided events.json and qualities.json are about 70%. This is because of 3 reasons:

      • Unused fields. Some fields are completely unused, and depending on the field, the game might throw a hissy fit if it's absent. (I call these fields Trash). I'd say these account for about 30% of the bloat. An example is HimbleLevel. Completely unused, but cannot be null.
      • Optional fields. Some fields are (or should) be optional. Not every quality has Enhancements, so when you remove this field, the game should still work, but of course it doesn't. (I call these Empties)
      • Dry fields. These happen when you, for example, create a LinkToEvent field. This creates an entire new event object in the field (41 lines), but only 1 line is used. This makes it so that if a quality or event has a Dry, it (at minimum) doubles the size of it.

      When you create a SDLS mod, you don't have to worry about Trash, Empties or Dry's. If your quality only has a Name, Id, 1 Enhancement, a Description and a Category, then you only need to include those fields. That will cut the size of your quality from around 70 to about 5.

      When you launch the game with SDLS installed, the mod looks for files with "`filename`SDLS.json" or "`filename`.sdls". Normal json files are entirely ignored. The game then loads these files, loops through them, and finds all the missing Trash, Empties and Dry's, and fills them in. After this is done, it spits out a Trashed (fixed) .json file next to the SDLS file. Once SDLS has processed all the files, the game launches, and can load the json files SDLS has produced.

      I hope this helps! If you have any questions, don't hesitate to reply to my message, or reach out to me on Discord, as I can respond in a timely manner there since Nexus doesn't really send me notifications. My username is magicjinn. I'm also in the Failbetter Discord. I'm more than happy to help or explain anything that might be confusing. It'll also help me write the guide I inevitably have to write at some point.
    2. InspectorB
      InspectorB
      • supporter
      • 0 kudos
      Absolutely, this is exactly what I needed to know. I was a bit confused what you were meaning at first, but I think I get it now and I will have to try this out. I appreciate the response!
    3. MagicJinn
      MagicJinn
      • member
      • 0 kudos
      No problem! Also wanted to mention I created a Vortex extension, but it's under review by the Nexusmods people, and their backlog stretches back to April 5th.