A downloadable package for Windows, macOS, Linux, and Android

Download NowName your own price

A simple save file system for GameMaker

This project is open-source and available on GitHub.
Try out my other GameMaker assets!

While save files can be basic, there are a lot of issues that come from just simply saving and loading raw data.
SSave tackles these problems whilst also having quality-of-life features that make creating save data easier and more secure.

Why use SSave?

  • Comes with a built-in manager so you don't have to create a system to track everything yourself (this can be disabled if you really want to!)
  • Values are typed to prevent game-breaking issues occurring from wrongly typed saved data
  • You can create any number of different file types (like a settings file that is separate from your save file)
  • You can create multiple versions of a save file type (a common use case for this is having multiple slots of save files)
  • Old saves automatically sync with any new data you add to your project that wasn't originally in the save file.
    You can be 100% sure that a value in your save file is ALWAYS there, even if removed from the file
  • Don't want users to tamper with your files? You can both encode or encrypt your files. This information is handled internally, so you can load a protected file without needing to do any extra work
  • Buffers are a supported value type!
StatusReleased
CategoryAssets
Rating
Rated 4.0 out of 5 stars
(1 total ratings)
Authorstoozey_
Made withGameMaker
TagsAsset Pack, encryption, GameMaker, package, save, save-file, save-system, saving, stoozey
LinksSource code

Download

Download NowName your own price

Click download now to get access to the following files:

ssave-1-4-0.yymps 62 kB

Development log

View all posts

Comments

Log in with itch.io to leave a comment.

(+1)

Nice library. Does it work with local storage if running as HTML5? Looks like it just calls buffer_save under the covers, so I'm guessing yes(?). I'm new to GameMaker so not sure

(+1)

Answering my own question after some testing, it does store the data in local storage with HTML5

Can you help me? I am trying to save the highscore of the player.

I have created a persistent obj_manager and in the create event I had this:

new SaveFile();

file = ssave_get(SaveFile, ''save'');

Highscore = file.get("highscore");

file.set_protection(SSAVE_PROTECTION.ENCRYPT);



and in another object I pasted this code:

if (global.points > Highscore) {

file.set("highscore", global.points);

Highscore = global.points;

}


in the script I had this:


function SaveFile() : SSave("save") constructor

{

add_value("highscore", SSAVE_TYPE.REAL, 0);

}


this doesn't work and I don't understand why.

(+1)

You should release a video tutorial or some sort of documentation for this, this tool seems amazing, but the demo isn't very useful and it's practically impossible to understand what I can even do with this tool.

Hey, I definitely plan on making documentation for all my tools at some point--just need to find some free-time to do it. I'll also look into making the demo a little easier to go through/understand. Thanks for the feedback :)

did you find out how it works?

I did! I joined a Gamemaker library Discord and the person that made SSave was in the server so I  just asked them personally when I ran into issues.

Here's the link to the thread: https://discordapp.com/channels/724320164371497020/1152264847392768110
Here's the link to join the Discord: https://discord.gg/8krYCqr

thank you I forgot to delet my message because I figured it out later, but I am still going to join the discord

(+1)

in scr_ssave_manager there is an error in line 173 that breaks all of it. 

(3 edits) (+1)

Hey, thanks for reporting. I've released a hotfix for this, let me know if that fixed it for you, if not could you show me your code and/or the error message you get? Thanks

(+2)

This makes it super easy to save and encrypt arrays in newer versions of Gamemaker. Thanks!

(+1)

:)

(+1)

coooool!!! it remains only to understand how to properly integrate saving and loading )))))ahahhaha