HomeGame GuidesHow To Edit And View Save Files - Cave Story's Secret Santa

How To Edit And View Save Files – Cave Story’s Secret Santa

Published on

ADVERTISEMENT

By Pwnage Block

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 . 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 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: StageIDSTAGE_NAME_SANTAS_HOUSE2STAGE_NAME_MALCOS_HOUSE17STAGE_NAME_CHAKOS_HOUSE21STAGE_NAME_STRANGE_HOUSE3STAGE_NAME_DUCK_HOUSE8STAGE_NAME_CEMETERY_HOUSE9STAGE_NAME_DANGEROUS_HOUSE10STAGE_NAME_L_SHAPED_HOUSE5STAGE_NAME_HI_TECH_HOUSE12STAGE_NAME_DONUT_HOUSE19STAGE_NAME_ISLAND_HOUSE20STAGE_NAME_SNAKE_HOUSE7STAGE_NAME_HALLWAY_HOUSE6STAGE_NAME_DARK_HOUSE4STAGE_NAME_MESSY_HOUSE11STAGE_NAME_RUNDOWN_HOUSE14STAGE_NAME_TOP_HEAVY_HOUSE15STAGE_NAME_TANKER_HOUSE18STAGE_NAME_CURLYS_HOUSE23

Latest articles

Final common season MLB The Show 22 roster update sees Albert Pujols, Carlos Correa go Diamond

October 7 was a busy day for each MLB followers and those that play...

Netizens Notice That Lee Young Ji Gave BTS’s Jin Special Treatment On Her Show

ARMYs are extremely anticipating BTS Jin‘s appearance on Lee Young Ji‘s YouTube web series My Alcohol...

TF2’s Scream Fortress 2022 update helps you to develop into an overpowered large

What it's essential to knowTeam Fortress 2's Scream Fortress 2022 occasion features a map...

Nerdle October 8 2022 Answer (10/8/22)

While most individuals try to place collectively 5 letter phrases, there’s now...
ADVERTISEMENT

More like this

Final common season MLB The Show 22 roster update sees Albert Pujols, Carlos Correa go Diamond

October 7 was a busy day for each MLB followers and those that play...

Netizens Notice That Lee Young Ji Gave BTS’s Jin Special Treatment On Her Show

ARMYs are extremely anticipating BTS Jin‘s appearance on Lee Young Ji‘s YouTube web series My Alcohol...

TF2’s Scream Fortress 2022 update helps you to develop into an overpowered large

What it's essential to knowTeam Fortress 2's Scream Fortress 2022 occasion features a map...