Sunless Sea

Sunless Sea

276 Bewertungen
Save File Editing
Von Drake Ravenwolf
Tips and tricks on editing your save files; includes Stats, Echoes, Officers, Game variables like SAY and more.
3
3
7
2
   
Preis verleihen
Favorisieren
Favorisiert
Entfernen
Preface
A few things before we dig into actual save file editing.
  • 1 - Where are these files we are talking about?

    Save file Locataion:
    C:\Users\name\AppData\LocalLow\Failbetter Games\Sunless Sea\saves

    "name" will be YOUR name or your user name on that computer

    Qualities.json file location:
    C:\Users\name\AppData\LocalLow\Failbetter Games\Sunless Sea\entities

    All "entities" in this game use an ID reference number instead of their name; eg Echoes are not labeled as Echoes in your save file but instead as 102028, you can look up any ID reference number not covered in this guide by searching for it in the Qualities.json file.

    For Mac users I am told the place to look is:
    Library/Caches/Unity.failbetter games/Sunless Sea

  • 2 - Useful tools - not required by any means but helpful

    Link to NotePad++ for easier editing and searching:
    https://notepad-plus-plus.org/

    ctrl-f allows you to search for reference ID numbers
    Notepad++ has a nifty feature in that if you put your text insertion point at an opening or closing bracket - Notepad++ will highlight the bracket that pairs with it later in the text making it easier to identify code blocks.
    PS. Word Wrap can be enabled under View -> Word Wrap

    Link to Sunless Sea wiki page with TexMod for viewing your game's map without the black fog:
    http://sunlesssea.gamepedia.com/Map
    or the mod directly:
    http://social.bioware.com/project/2015/

    Da has writen an in-development save file editor, I'll include the links below.
    https://github.com/grmcdorman/SunlessSeaSaveEditor
    https://github.com/grmcdorman/SunlessSeaSaveEditor/archive/master.zip

  • 3 - The longer you play the game, the bigger your save file becomes, it also gets littered with multiple references to the same ID number making editing your file more and more confusing.
    Thus I would reccomend editing a new game before you do anything else; eg pick a class (or no class) then save and start editing.

  • 4 - As always when editing save files ALWAYS BACKUP before changing anything so you can revert to earlier versions if you mess something up.

  • 5 - Always remember that coma at the end of a code block - each code block should have one coma in front of it and one behind it unless otherwise noted.

  • 6 - Make a change, then test it. Make a change, then test it. This way if you make a mistake you do not lose large amounts of changes that you made all in one go.
Stats
I set all my starting stats to 50 since this is how you would start the game if you had collected all the legacy books on a previous play-through. Just open your save file in a text editor, search for one of the following reference ID numbers and edit the “Level”: in-front of that reference ID number to be 50 or w/e you'd like the base value to be.
102894 = Iron
102895 = Mirrors
102896 = Veils
102897 = Hearts
102898 = Pages

Example code block for Iron:
{"Name":null, "EquippedPossession":null, "Relationships":[], "XP":0, "EffectiveLevelModifier":1, "TargetQuality":null, "TargetLevel":null, "CompletionMessage":null, "Level":50, "AssociatedQuality":null, "AssociatedQualityId":102894, "QualityName":null, "QualityDescription":null, "QualityImage":null, "QualityNature":null, "QualityCategory":null, "QualityAllowedOn":null, "Id":0},

One thing to note here is that this is your BASE stat value, aka before any modifiers are applied like officer, ship or equipment stat bonuses or penalties.

Some other useful ID numbers include:
102025 = Terror
102026 = Supplies
102027 = Fuel
102028 = Echoes
102029 = Hull
102030 = Crew
102032 = Secret
102328 = Objective: An Admiralty Commission - check wki
102973 = Something Awaits You - use the wiki to deciede what to change the "Level": to
108545 = Fragments
109124 = Acquaintance: Sojourning with the Sisters - check wki
109775 = Deliveries from the Salt Lions - check wki
110310 = Favours: A Drop of Darkness - check wki
110360 = Another Day: Time, the Healer
110364 = A New Recruit
110370 = Objective: Collecting Cargo for the Cheery Man - check wki
112704 = Principles' End: Principality - check wki
115051 = Memoirs: Beginner's Luck - this one you would have to delete the whole code block it is in to remove the attribute
116006 = Lineage: Captains Lost - set to 1+ to unlock The Labyrinth of Tigers in London
117204 = Menaces: Yearning, Burning

I justify editing Echoes since you can move over 100% of your previous captains wealth with a Scion and picking Pupil and Scavenger.
Officers
To add officers:
  • 1) UNassign ALL officers then save the game
  • 2) Search the save file for an easy to copy code block like the one for the Comatose Ferret (107457)
  • 3) Copy the eg. reference ID 107457 code block and paste it back in right under the original code block then change the "AssociatedQualityId": to be whatever officer you want it to be eg. the Sly Navigator (107459)
  • 4) Save the file and check in-game if the change you made had the desired effect

Example code block for Sly Navigator:
{"Name":null, "EquippedPossession":null, "Relationships":[], "XP":0, "EffectiveLevelModifier":0, "TargetQuality":null, "TargetLevel":null, "CompletionMessage":null, "Level":1, "AssociatedQuality":null, "AssociatedQualityId":107459, "QualityName":null, "QualityDescription":null, "QualityImage":null, "QualityNature":null, "QualityCategory":null, "QualityAllowedOn":null, "Id":0},

If you forget to unassign the officer before you save there will be two code blocks with the same reference ID number to that officer in your save file which is much more complicated to deal with. I'll include a list of all the starter officers but you can add in ANY officer with this method; just do a reference ID lookup in your Qualities.json file.

PLEASE NOTE! You should search your save file for the officer id you want to add in to make sure it is not already present in your save file, adding in a 2nd code block for the same officer may result in a non-viable save that fails to load. This can also happen if you put the new code block in the wrong place which can happen if you did not unassign the officer before saving.

Longshanks Gunner (107458)
Sly Navigator (107459)
Shady Cook (107460)
Gall-Eyed Engineer (107461)
Plausible Surgeon (107462)

Here is my starting crew:
Upgrading Items (eg Weapons, Engine)
I added in The Serpentine and Memento Mori – since a legacy character could potentially have both of these at the start of the game by having a Scion and choosing Rival and Shipmate.
For these it is easiest to replace an existing item in your hold (unequip first) then just search your save file for the reference ID number of that item and change it to the reference ID number of the desired item.
109343 = Elderly Steeple-Engine
109929 = The Serpentine
107144 = Leadbeater & Stainrod 'Seaworm
109003 = Memento Mori

Example code block for The Serpentine:
{"Name":null, "EquippedPossession":null, "Relationships":[], "XP":0, "EffectiveLevelModifier":0, "TargetQuality":null, "TargetLevel":null, "CompletionMessage":null, "Level":1, "AssociatedQuality":null, "AssociatedQualityId":109929, "QualityName":null, "QualityDescription":null, "QualityImage":null, "QualityNature":null, "QualityCategory":null, "QualityAllowedOn":null, "Id":0},
Rearranging the World Map
UPDATE! I made some tweaks to my ideal map since these screenshots were taken; basically I made it so that THE EYE would always be included and shuffled 5 of the SW tiles around into a better arrangement. Also if you want to be able to SEE the map you can just replace all instances of 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 with 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 in your save file.

This is where it gets REALLY complicated, do not attempt this one unless you are sure your backup is up-to-date and are ready for a lot of work.
(Or just copy/paste my solution into your game, see the end of this section for that)

First off in-case you do not know the world map is pseudo randomized with each new game - this has the potential to make some trade routes really short or really long and thus not worth the effort. For reference, the western and southern shores never change and neither does the top right corner. However, the other regions are randomized, but only within their region:

So, what I did was I mapped out all the trade routes detailed in the other community guides, and made the following image:
The above images used my own in-game map.

From this better understanding of trade routes I designed my ideal map that minimizes distances between trade route destinations that still respects the limits of normal randomization within the game – eg The Empire of Hands still had to be on the eastern boarder but I placed it right next to Irem. Here is what I came up with:

From this design I used the TexMod from the Sunless Sea wiki to view my current map's arrangement and then shifted the tiles around within the save file to match my ideal map – this involves not just changing the x and y coordinates but also rearranging the code blocks to match the new arrangement – do it wrong and either no change to the map will be made or you get a blank screen when you try and load into it.
Search for "TileIndexX":0,"TileIndexY":0 and just replace the x and y coordinates with the ones for the tile you want to move, then change that tile.
For reference, the bottom left corner is 0,0 the top right corner is 5,5.

Like I said this part is really complicated so do not attempt it without making a backup and test the save after each tile change to make sure you didn't make a mistake – also check with TexMod each time to verify the change actually took place if you went ahead and installed it.

That said, if you'd rather not go through the effort of moving each tile individually like I did, I'll include my WHOLE map's code block below in case you like the one I came up with. You just have to make sure to replace EVERYTHING from your save file's map code block with my map code block and again this should only be done at the very start of a new game.
https://www.dropbox.com/s/6bru7ywmcqu7brh/My%20Ideal%20Map%20Code.txt?dl=0
With this you would REPLACE everything in your save file from the very first { to just before "CurrentTileName" including the coma, but not including that first quotation mark.


Example code block for Tile 4,5
{"Position":{"TileIndexX":4,"TileIndexY":5}, "Name":"Stormbones3", "DiscoveredSpawnPoints":[], "DiscoveredTerrain": [{"Name":"Stormbones/RaggedCrow","UpdatedPrefab":null}, {"Name":"Generic/buoyblue","UpdatedPrefab":null}, {"Name":"Generic/buoyblue","UpdatedPrefab":null}, {"Name":"Generic/buoyblue","UpdatedPrefab":null}, {"Name":"Generic/Fog500_500","UpdatedPrefab":null}, {"Name":"Generic/Fog500_500","UpdatedPrefab":null}, {"Name":"Generic/subrock1","UpdatedPrefab":null}, {"Name":"Generic/subrock2","UpdatedPrefab":null}, {"Name":"Generic/Abyss1","UpdatedPrefab":null}, {"Name":"Generic/Abyss1","UpdatedPrefab":null}, {"Name":"Generic/subrock2","UpdatedPrefab":null}], "DiscoveredLabels":[], "Discoveredphenomena":[], "FogOfUnknownState":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1], "IsGeneric":false, "BaseName":null},
Ship Slots / Capacity
It is possible to add equipment slots (eg. a forward weapon to a merchant vessel) or change the hold capacity (eg. let a Dreadnaught carry 120 cargo)

Since we are talking about editing your save file, these alterations will be lost anytime you change ships. This does not (or should not at least) change the base ship characteristics, only the one you happen to be riding around in.

To change Hold size (cargo capacity) search for reference ID number 102031 in your save file and edit the "Level": in front of that reference ID number to whatever value you think it ought to be. "Level" will be ADDED to the "EffectiveLevelModifier" which is the base ship's capacity.

To add equipment slots your class of ship normally does not have;
First, search for the equipment slot reference ID number you want to add (102965 for Aft or 102968 for Forward) if it already exists simply change the "Level":0 in-front of it to a "Level":1
Only if the reference ID number does not exist yet should you proceed.
  • 1) Make sure to unequip the deck weapon
  • 2) Search your save file for reference ID number 102966
  • 3) Copy the code block containing that reference ID number
  • 4) Paste the copied code block just after the existing code block and change the reference ID number to the equipment slot you want to add – 102965 for Aft or 102968 for Forward
  • 5) NOTE if there is already a code block for the given reference ID number, adding in a 2nd code block will result in a nonviable save file.

Example code block for Deck Weapon:
{"Name":null, "EquippedPossession":null, "Relationships":[], "XP":0, "EffectiveLevelModifier":0, "TargetQuality":null, "TargetLevel":null, "CompletionMessage":null, "Level":1, "AssociatedQuality":null, "AssociatedQualityId":102966, "QualityName":null, "QualityDescription":null, "QualityImage":null, "QualityNature":null, "QualityCategory":null, "QualityAllowedOn":null, "Id":0},
Enabling Locked Content
The information below will allow ANY owner of Sunless Sea to experience ALL locked content other than the Zubmarine DLC which you must actually purchase.

The method is quite simple, all you have to do is go to:
C:\Users\YOURNAME\AppData\LocalLow\Failbetter Games\Sunless Sea\users\user.json
  • 1) Make a backup of this file in case you mess up
  • 2) Paste in the code blocks in the link below as shown in the picture below; between the last code block's } and ]
    https://www.dropbox.com/s/p0bkd66ys46zoc9/SS%20DLC.txt?dl=0

  • 3) Once this is done save user.json, right click on the file, select properties, and set it to be Read-Only

Everything in User.json is about entitlements; the FL unlockables are handled exclusively client side. The publicly available "new stories" neither require nor add new entitlements so making the file read-only will not affect them. The reason we make it read-only is so you do not lose the entitlements, since the game will remove the entitlements if it is allowed to.

I'll now explain what each code block in that file does;
109921 = unlocks a Fallen London reward; you can experience a short event in London “The Navigator's Boon” that rewards 3x Secrets each time you start a new game
110432 = unlocks Parabolan Panther mascot each time you start a new game
110558 = unlocks Parabolan Kitten mascot each time you start a new game
116075 = unlocks a Fallen London reward; you get 1x Soothe & Cooper Long-Box in your cargo each time you start a new game
116130 = Whisper-Locked Puzzle-Box DLC from Fallen London; requires a new game I believe
121347 = The Pirate-Poet DLC; does NOT require a new game
121348 = The Cladery Heart DLC; does NOT require a new game
125688 = The Zubmarine DLC; not included in this file but may be present in your user.json if you bought that DLC

PLEASE NOTE! This does NOT work with the Zubmarine DLC and thus has no current financial impact on the company.

If you want to get The Whisper-Locked Puzzle-Box DLC in your current game rather than having to start a new one just copy/paste the following code blocks into your save file after the code block that contains reference ID 102028 (echoes)
https://www.dropbox.com/s/jgydeu1kb0495l4/Whisper%20Locked%20Puzzle%20Box.txt?dl=0

Here is a screenshot showing what it looks like ingame once the DLC is enabled:
http://steamcommunity.com/sharedfiles/filedetails/?id=788268179
Conclusion
If you have any constructive critismism or helpful comments - I welcome such feedback.
Or if you have any questions I'll do my best to help out.
Otherwise thank you for taking a look at my guide. :)
And remember to rate, like, and favorite this guide if you found it helpful :D
243 Kommentare
Affinity 27. Nov. 2024 um 6:08 
As a sidenote, i ended up fiddling a bit with S.Skies and the Github Save Editor, came across some of your old comments on the Save Editing guide btw which were helpful, so it is possible to add the Obviously Delicious rabbit and the Cyclopean Owl to the Bank, and from there retrieve them for each new captain, they just won't unlock and equip by default for each new captain if you don't own the DLC proper, which is a bit of a shame, but at least it's possible.
Affinity 26. Nov. 2024 um 22:17 
I see, i'm not even aware of how much gated content there is in the first place, but i remember they had 2 Officer Pet companions that were KS exclusive, the Owl and the Delicious Rabbit, but unlike SSeas, they handled them as DLC, so i'm unaware if it'd be possible to unlock them.

Maybe with a save editor? I'd have to try Skies again. Do let me know if you find out eventually!
Drake Ravenwolf  [Autor] 26. Nov. 2024 um 8:07 
Its been a while since I last played Sunless Skies iirc you could do similar manipulations there, but I hadn't found the right steps to unlock gated content there (as I recall)
Affinity 26. Nov. 2024 um 5:42 
What a beast, great to find a way to unlock the Parabolean now that i'm returning to the game after all these years.
Are you aware if there's a method to unlock gated content for Sunless Skies too?
Mr. Vakarian 12. Apr. 2024 um 16:39 
@Fire
The Wiki is your best bet. Each Officers page has the corresponding ID.
Fire 11. Apr. 2024 um 16:32 
where to find a list of officer id's?
Drake Ravenwolf  [Autor] 7. März 2024 um 16:42 
@Mr. Vakarian
The file linked in the "Rearranging the World Map" section ought to already include the Eye, can be used as a referrence guide or as is.

@Supay
It's been many years since I played/modded this game so I'm not certain how you'd go about it but it should be possible
Bagwit 7. März 2024 um 16:17 
Excellent guide, thank you. I have over time while playing ground through every achievement except finding the Unexploded Unclear Bomb. I have never seen it even having gone back and forth across the map in lines trying to spot it. I wanted to do it naturally, but with it also having a 50% chance to succeed, the idea of eventually finding it only to lose and have to go hundreds more hours seeking it again is too much for me.

Is there anyway to either locate it from the savefile so that I can go try it, or can it be set to generate please?
Mr. Vakarian 6. Jan. 2024 um 2:23 
If you want to spawn the Eye in your generated world, here is the entry:

{"Position":{"TileIndexX":4,"TileIndexY":2},"Name":"GenericEye","DiscoveredSpawnPoints":[],"DiscoveredTerrain":[],"DiscoveredLabels":[],"Discoveredphenomena":[],"FogOfUnknownState":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],"AbyssBuff":[],"ProceduralTerrain":[],"ProceduralDecals":[],"DiscoveredFlavourItems":[],"IsGeneric":true,"BaseName":"GenericPurple"},

This entry should replace GenericRocksX (1-4) entry in the south seas. So Search for "GenericRocks" with control F in the .txt, find the one that has a TileIndex of 1/1 2/1 3/1 4/1 or 4/2 (these are the possible spots on the map the eye can occupy.
Once you found it, replace the whole Text Block with the Entry, Make sure adjust the TileIndex to the one you just deleted.

For example, if you deleted the Generic rocks at {"TileIndexX":1,"TileIndexY":2} then you need to adjust the above Entry to reflect the same TileIndexes.
Zukazan 22. Sep. 2023 um 23:17 
Great guide, works well. Thanks!