GameMaker (all)
Icon

SafeSave - INI & More

GM++

You must be logged in to obtain assets

Description

Fully compatible with GMS:1 and GMS:2

Securely save data on your user's devices!

Whether you are used to using INI files or are looking for a more complicated solution to encrypt data structures this extension will cater to your needs.

Features

  • Fully encrypted and unrecognizable INI files or regular data (see modes below)
  • Tamper proof mechanism ensures data cannot be changed
  • Prevents users from sharing save files & data
  • Can be used to store IAP data and much more
  • More compressed than an INI (smaller filesize)
  • Compatible with all exports
  • Option of encryption with RC4 (default) or 128-bit AES (available separately)

INI MODE To fully encrypt and make your INI files tamper-proof, all you have to do is prefix all "ini_" functions in your project with "safe_", and change *ini_open(filename) to safe_ini_open(filename, key) where key is a random string of letters that is used to encrypt your INI file. This is all that is required.

ADVANCED MODE If you need more flexibility when you are saving data, safe_save will take a ds_map and a filename and write it to the disk fully encrypted with built in tamper-proofing. It will fully save and reconstitute all embedded data structures as well.

There are examples of both modes in use included. To activate AES encryption instead of RC4 please read the Readme.txt

Sample Save File

End User Licence Agreement (EULA).

Age Rating: 4+

Versions

GMS2 - Version 1.0.2. Published January 24, 2017

Updated for GMS:2

GMS1 - Version 1.0.3. Published February 22, 2017

Some new features! Backwards compatible with all versions of SafeSave

  • Optional: Support for 128-bit AES to strengthen the encryption of your save files for storage and transmission (available separately)
  • Filesize reduction of up to 33%
  • Typos fixed and Readme updated
  • General bug fixes
Loading, please wait

Package contents

Loading, please wait

What is the issue?

Loading, please wait