Save Editing – Cave Story’s Secret Santa

admin

Learn how to view and edit your save.

Locating your save file

At least on Windows, you can find your save file in the installation folder for the game. The full path depends on where you installed Steam or the game, but from the Steam directory it should be here:

Steam\steamapps\common\CSSecretSanta\secret_santa.dat

 

Opening and saving your save file

tl;dr: Save files are just a Base64 encoded JSON.

You should quit the game before doing this. Any changes you make will not apply if you don’t restart the game.

I wholeheartedly encourage you to get all achievements by playing the game as intended, rather than resorting to save editing. Remember: cheated cookies taste awful!

While the .dat extension might lead some to believe the file contains binary data, it’s actually plaintext. However, if you try opening it in a program like Notepad, you’ll be greeted by a jumble of letters and numbers. Something like this:

eyJtX1N0YWdlSW5mbyI6W3sibV9OYW1lIjoiU1RBR0VfTkFNRV9TQU5UQVNfSE9VU0UiLCJtX0lzD...
...you get the point.

That’s because the save file is Base64 encoded. You’ll need to use a tool that can decode Base64 to transform it into something usable. You can easily find a decoder by typing something like ‘base64 decode’ into your search engine of choice.

After decoding it, you will end up with something more readable, but pretty cramped. Something like this:

{"m_StageInfo":[{"m_Name":"STAGE_NAME_SANTAS_HOUSE","m_IsComplete":true,"m_Time":,...
...you get the point.

This is a minified JSON file. While you could start reading and editing it as is, it would be more convenient if you prettified/formatted it first. You can also search for a tool that does this. The end result is the exact same JSON file, but presented in a much more appealing way. Something like this:

{
 "m_StageInfo": [
 {
 "m_Name": "STAGE_NAME_SANTAS_HOUSE",
 "m_IsComplete": true,
 "m_Time": "0:16",
 "m_Bonus": "NONE",
 "m_Index": 2
 },
 {
 "m_Name": "STAGE_NAME_MALCOS_HOUSE",
 "m_IsComplete": true,
 "m_Time": "0:17",
 "m_Bonus": "NONE",
 "m_Index": 17
 },
...etc etc.

At this point, you can start reading the save file’s content and make guesses as to what’s what. You can start modifying it as well, if you wish. Read the next section of the guide for a description of each part of the save file.

If you did any modifications to your save, you will now need to apply all the steps to opening the file in reverse in order to save it and see it applied in-game. This consists of:

  1. Minifying the JSON file. You can also search for a tool that does this. I don’t think it’s strictly necessary to do this, but I recommend doing it anyways.
  2. Encoding it to Base64. Usually, any tool that can decode Base64 will also have a complimentary utility to encode to Base64.
  3. Replacing the contents of secret_santa.dat with the Base64 encoded text and saving it.

Afterwards, you should be able to start the game up and select ‘CONTINUE’ to load up the save along any changes you’ve made!

Save file contents

The following are descriptions of what each part of the save file means.

NameDescription
m_StageInfoThis is a list of any stages you’ve played through, with information for each one. You can find more info about them on the ‘Stage data’ section below
m_LocationThis is a number corresponding to the spot on the map on which you will spawn when you load your game. It could be the m_Index of a stage, or another number.

For example, Jenka’s House is number 16.

m_LanguageThe language your game is set to. 0 for English, 1 for Japanese.
m_ViolenceHow many patrols you have womped.
m_CaughtHow many times you’ve been caught.
m_MinimapWhether you have found the Map System. You can find it somewhere in the Shack. It displays a minimap of the current area, akin to the original game, when paused on the map screen. Can be ‘true’ or ‘false’.

Thanks to cubee – [steamcommunity.com]  for the info!

m_EffectsWhether you have the extra visual effects turned on. Can be ‘true’ or ‘false’.

 

Stage data

The following are found for each stage listed in m_StageInfo.

NameDescription
m_NameThe internal name for the stage. Can be one of the following:

 

  • STAGE_NAME_SANTAS_HOUSE
  • STAGE_NAME_MALCOS_HOUSE
  • STAGE_NAME_CHAKOS_HOUSE
  • STAGE_NAME_STRANGE_HOUSE
  • STAGE_NAME_DUCK_HOUSE
  • STAGE_NAME_CEMETERY_HOUSE
  • STAGE_NAME_DANGEROUS_HOUSE
  • STAGE_NAME_L_SHAPED_HOUSE
  • STAGE_NAME_HI_TECH_HOUSE
  • STAGE_NAME_DONUT_HOUSE
  • STAGE_NAME_ISLAND_HOUSE
  • STAGE_NAME_SNAKE_HOUSE
  • STAGE_NAME_HALLWAY_HOUSE
  • STAGE_NAME_DARK_HOUSE
  • STAGE_NAME_MESSY_HOUSE
  • STAGE_NAME_RUNDOWN_HOUSE
  • STAGE_NAME_TOP_HEAVY_HOUSE
  • STAGE_NAME_TANKER_HOUSE
  • STAGE_NAME_CURLYS_HOUSE
m_IsCompleteWhether the stage has been completed. Can be ‘true’ or ‘false’.
m_TimeEither your best time or latest time when beating a stage, I’m not sure. Stored as a string in the format %-M:%S / m:ss / (minutes):(zero-padded seconds).

Examples: “1:03” or “0:35”.

m_BonusThe bonus you collected on the stage. Can be “NONE” if you didn’t collect anything or “Cookies!”/”クッキー!” if you collected the milk and cookies in the stage. Whether the cookie text is in English or Japanese depends on the language you are playing on.
m_IndexA number unique to each stage, corresponding to a position on the map, not the order they are played in. The default numbers for each stage are as follows:

 

StageID
STAGE_NAME_SANTAS_HOUSE2
STAGE_NAME_MALCOS_HOUSE17
STAGE_NAME_CHAKOS_HOUSE21
STAGE_NAME_STRANGE_HOUSE3
STAGE_NAME_DUCK_HOUSE8
STAGE_NAME_CEMETERY_HOUSE9
STAGE_NAME_DANGEROUS_HOUSE10
STAGE_NAME_L_SHAPED_HOUSE5
STAGE_NAME_HI_TECH_HOUSE12
STAGE_NAME_DONUT_HOUSE19
STAGE_NAME_ISLAND_HOUSE20
STAGE_NAME_SNAKE_HOUSE7
STAGE_NAME_HALLWAY_HOUSE6
STAGE_NAME_DARK_HOUSE4
STAGE_NAME_MESSY_HOUSE11
STAGE_NAME_RUNDOWN_HOUSE14
STAGE_NAME_TOP_HEAVY_HOUSE15
STAGE_NAME_TANKER_HOUSE18
STAGE_NAME_CURLYS_HOUSE23

 

Written by Pwnage Block

This is all we can share for Save Editing – Cave Story’s Secret Santa for today. I hope you enjoy the guide! If you have anything to add to this guide or we forget something please let us know via comment! We check each comment! Don’t forget to check XIXGO.COM for MORE!

Share This Article