Easy Save - The Complete Save Game & Data Serializer Asset

Easy Save
The Complete Save Game & Data Serialization System for Unity

Contact Us | Guides | Docs | Forum | Discord | Getting Started | Home

░░░░░░░░░░░░░░░░░░░░░░░░░░

★ On the Asset Store since 2011 ★

Why use Easy Save?

It’s easy
Save your game with just a few clicks using Auto Save, or just two lines of code

It’s reliable
Don’t risk your save data becoming unusable because your save system is no longer supported, we’ve been supporting Easy Save since 2011

Regularly updated with new features…
Including Encryption, Compression, Cloud Save, PlayMaker actions, Caching, CSV Spreadsheets, File IO and more

Serialize much more than other solutions…
Including class, struct, GameObject, Prefab Instances, Component, ScriptableObject, Arrays, Dictionaries, Lists, HashSets, Queues, even References to Unity objects, and much more

For Amateurs…
It’s easy to use and well documented, with or without code

For Experts…
A fast, feature-rich and extremely flexible save system

░░░░░░░░░░░░░░░░░░░░░░░░░░░

Compatible with
PC, Mac, Linux, Windows Universal, iOS, tvOS, Android, Oculus, Steam, WebGL
C#, Unity Visual Scripting, PlayMaker, Bolt
Integrate with other storage APIs such as consoles or cloud services**

░░░░░░░░░░░░░░░░░░░░░░░░░░░

Fully documented & source code included
Guides | Examples & Tutorials | API Reference | Getting Started

Save using C#, or without code using Auto Save
C# Reference | Auto Save

Support for PlayMaker, Bolt and Unity Visual Scripting*
Access Easy Save from Bolt and Unity Visual Scripting graphs
Save and load using PlayMaker actions
Third-party NodeCanvas & FlowCanvas integration**

Save almost any type
Our serializer was developed specifically for Unity
Unlike other systems, it can even serialize references

Fast and lightweight serializer
Using our JSON serializer developed specifically for Unity

5-star customer support
via email, dedicated forum and Discord

Secure save data with encryption
Encrypt save data

Compact save files with compression
Makes save files 85% smaller on average

Save & load from the cloud
Upload to cloud database using PHP & MySQL

Also works with Steam Auto Cloud, Android Backup and iCloud Backup

Cross-platform save system
Use save files & code on all supported platforms

Serialize data to spreadsheet
In CSV format for Excel

Much more flexible than PlayerPrefs
But just as simple to save

Unlike PlayerPrefs, it has File IO
Serializer stores data straight to file
Store strings/bytes as files

░░░░░░░░░░░░░░░░░░░░░░░░░░░

How do I use Easy Save?
See the Getting Started guide for how to use it for your game

░░░░░░░░░░░░░░░░░░░░░░░░░░░

Contact Us | Guides | Docs | Forum | Discord | Getting Started | Home

*PlayMaker, Bolt, NodeCanvas, FlowCanvas are purchased separately.

** We take no responsibility for third-party integrations or APIs, and support for them is provided by the third-party rather than ourselves.

2 Likes

If anyone has any questions about Easy Save then please feel free to ask them here or using the form on the website and I’ll get back to you as soon as possible.

A fair number of you have bought it but I’ve not received any questions, so I can only assume that it’s working great for all!

where does it save data when using webplayer? Playerprefs?

Hi zemog86,

We store in IsolatedStorage via PlayerPrefs on Web Player so that is compliant with the WebGL specification.

Edit: We will be adding the ability to upload to server (and download from server) soon, which could be used to save data in the Web Player. We’ve used this method in our app SculptPad, and also has the advantage of being able to use the same save file on all platforms.

How much?

Using Application.persistentDataPath is terrible idea. It is hidden folder under Windows. Using playerprefs is even worse - it is Windows Register. There should be variable like public string saveFolder = “SaveGame” initialized automaticly according to current OS.

$40 at the moment, which is the price which Unity suggested that we put it up at.

Hi there,

Application.persistentDataPath is the only place guaranteed to be writable and to have permissions. Making your own folder is strongly advised against, and on most platforms is impossible. However, Easy Save allows you to use your own path if you wish to do this.

All the best,
Joel

A quick update.

We’re including the variables ‘public static windowsDataPath’ and ‘public static osxDataPath’ which will allow you to set a custom data path for Windows and OSX. If left blank, it will default back to the Application.persistentDataPath. Because mobile devices are more security conscious, we’ve not included the option for iOS or Android.

With any luck we should have the update out in the next 48 hours, which will also include functions which allow you to load a JPG or a PNG from the web into a texture.

Thanks for the support everyone, and please do keep the feedback coming!

Edit: The update has been submitted to Unity, so I’m just waiting for them to upload it to the Asset Store.

This script/tool is a Great purchase! Very very useful, and well crafted.

Thanks for the addition of the custom data path support.

Are there any plans to add support for encrypting/decrypting the save files easy save creates.
Are there any plans on creating a tool to send the save files Easy Save creates to a server via PHP?

Thanks for the praise, zhx. It really does mean a lot to us to get some feedback.

You’re not the first person to ask about encryption, so we’ve put it on our list of things to add in the near future, possibly even in the next release.

As for sending save files to a server using PHP, that’s definitely coming in the next update. We’ve actually already implemented it in our game ‘SculptPad’ for iOS, but we’re in the process of making it more user-friendly. This will also mean that you can use the Web Player to then load files you’ve saved using iOS/PC/Mac etc.

If anyone else has any suggestions for what they would like to see in the next release, then please do let us know.

How about a file integrity check to prevent tampering

Are there any videos or something?

That’s a great idea, and shouldn’t be too difficult to implement. It will most likely comprise of an MD5 hash with a password.

There’s full documentation HERE, and there are examples and unit tests provided with the asset. We don’t feel that a video is really necessary because it’s so simple to use.

I am not having usage problems, I want to see how it works and what it does before I even bother buying it.

The documentation outlines what it does and how it works. If you wanted to save an array of Vector3, you would call:
EasySave.save(myArrayOfVector3, “myFileName.file”);

And then to load it up again you could call:
Vector3[ ] newArray = EasySave.load(“myFileName.file”);

That’s how it works, and what it does is save the specified data types. More info can be found on the Asset Store Page which I linked in the original post.

What does this give you beyond normal binary serialization? I’m assuming there is more to it beyond just dumping the object to a file.

Primarily Easy Save is to save you the hassle of writing your own save/load functions, and also to simplify the process for people with less programming knowhow, in a package which has been well tested and is compatible with most platforms. It uses System.IO functions because they’re fast and reliable; there’s no point overcomplicating things.

What makes it more than just ‘normal binary serialization’ are the features that we’re constantly adding. A read of the posts above will give a taste of what’s to come. The best way to think of assets (or any middleware for that matter) is ‘How much time is it going to save me in the long run?’. At $40, even if we weren’t developing it any further, it would still pay for itself in time saved alone.

Okay, these statements sold me :slight_smile: You will see a purchase from me when I get home tonight.

Anything to assist the passing of data to an online database and retrieving it again, especially with encryption and the ability to do it field by field is going to save me so many hours of building that I can devote to other things.

Thanks

Regards

Graham

Hiya Graham,

We’re working on getting that functionality out sometime next week, so we won’t keep you waiting too long :slight_smile:

WHOA, did I just hear you properly? PHP support in the next update. IMPRESSIVE, one of the best Asset Store purchases we’ve made yet, hands down! Great support, awesome updates, and a big time-saver. 5 star rating made in the Asset Store!

As soon as you get encryption, on top of a PHP means of transferring saves/saved-data, this is going to be a powerhouse of a toolset. Thank you VERY much for your continued support and development of this tool. I cant wait to use easy-save for leaderboards soon too.

a few more questions:
Do you have a target version of PHP you’re targeting? 4,5, etc?

This might seem VERY off topic: are there any plans on adding support for the encoding of entire (C#)scripts and/or gameobject, thus sending entire files, to and from a server via php? For example, sending a gameobject, with colliders, and scripts, by passing itself to an Easy Save call? This would allow for the ability to send immediate updates to bugs, without a full app update(executed in mid-gameplay, so useful), but also opening the doors to some serious delegate trickery, potentially ;-). I find myself having to do a lot of parsing and tweaking to add more than 1 variable to a file, for easy reading.
Perhaps most importantly though, this could allow for a developer to create(and share) virtual “prefabs”(complete with scripts, colliders, etc) that can be saved online or offline, and recalled(at any time) similar to a save-state for a gameObject; which would be GREAT in sooooo many ways, for soooo many things. I’m sure this isn’t any small task, but just wondering.