Easy Save - The Complete Save Game & Data Serializer System

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 without code using Auto Save,

or with just two lines of code:


ES3.Save("key", value)

var value = ES3.Load<Type>("key");


It's reliable

Don't risk your users' 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 Save Slots, Encryption, Compression, Cloud Save, Backups, PlayMaker actions, Caching, Spreadsheets, File IO and more


Serialize much more than other solutions...

Including class, struct, positions, 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


Create save slots with a single click

Fully customisable save slots UI


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.


Tags: save game system, load game, serialize, serializer, playerprefs, storage, upload, download, serialization, serialisation, game serialiser, JSON, serialise, autosave, auto, save file, save slots, import, export file, encryption, cloud save, excel, database, playerprefs, auto save, compression, gzip, es3, easysave

Release Notes

! Always backup your project and save data before updating Easy Save !


3.5.26

- Updates for Unity 6.5

- Performance and UX updates for referencing.

- You can now specify that only GameObjects with ES3Referenceable Components will be added to the reference manager from within settings.

- Reuse of WaitForSeconds to reduce GC.

- Added RuntimeInitializeOnLoad attributes to ES3Type templates as required by latest version of Unity.


3.5.25

- Added ES3.LoadImageInto methods allowing you to load data into an existing Texture2D.


3.5.24

- Resolved issue where a lower priority ES3Type might be used instead of the higher priority one.

- Worked around bug at Unity's end where initialisation method wasn't called, so Easy Save's global manager never gets created.


3.5.23

- Added 'Auto cache file on load' option to the settings.

- Resolved edge case where ES3Spreadsheet would return an empty string rather than null.

- Resolved issue where TMPro wasn't automatically added to Asmdef.

- Resolved issue where Easy Save reference gathering routine would be called upon importing objects on some versions of Unity.


3.5.22

- Added automatic caching options which are revealed when changing your location to Cache in the settings.

- Changed ES3File/Caching so that it's representation of inheritence matches that of File.

- Type checking now checks for inheritance (IsAssignableFrom).

- Added an On After Create Slot event to the Save Slots.

- Added an option to save slots to automatically select the slot after the player creates it.

- Resolved issue where save slot list was not being cleared.

- Small UX changes for save slots.

- Exposed Reference Mode in the default settings.


3.5.21

- You can now select what is saved from an ES3AutoSave Component.

- OnBeforeSerialize and OnAfterDeserialize are now automatically called when a class is an ISerializationCallbackReceiver.

- Added option to automatically create save file when the user creates a new save slot.

- Fixed bug with save slots where slots weren't deleted in some cases.

- Worked around bug at Unity's end where they apply the incorrect HideFlags for TextureAtlas and it's underlying Texture, causing a "Could not extract GUID in text file" error.


3.5.20

- Added support for Nullable types.

- Resolved issue where a Debug.Log call was not stripped from the release package.


3.5.19

- NEW: Added Save Slots functionality (see https://docs.moodkie.com/easy-save-3/es3-guides/creating-save-slots/).

- All dependency Texture2Ds of a SpriteAtlas will be automatically excluded from reference managers.

- Added option to Set Reference ID in context menus, allowing people to add or change a reference to use a specific reference ID.

- Resolved issue where ES3.GetFiles would not work with some types of relative path.

- Resolved issue where CharacterController isn't always re-enabled after loading.

- Resolved issue where excluding references from a manager would not persist in specific situations.


3.5.18

- Asset Store metadata changes (no changes to code base, change log in package will still show as 3.5.17)


3.5.17

- Changed referencing so that in most cases it will find any reference manager if it can't find one in the relevant scene and outputting a warning when this happens.


3.5.16

- Moved methods in ES3.cs inside of DISABLE_ENCRYPTION define so they are also stripped accordingly.


3.5.15

- Resolved issue where a scene not in the build list could cause the Prefabs window to fail to open.


3.5.14

- Resolved issue on some versions of Unity where the Editor would throw a harmless MissingReferenceException after removing an Easy Save 3 Manager.


3.5.13

- Resolved issue where adding a manager to scene or enabling Auto Save would throw a NullReferenceException.


3.5.12

- References in DontDestroyOnLoad are now added to the first available reference manager rather than requiring it's own manager.


3.5.11

- GameObjects and Components are now added to their scene's reference manager when using additive scenes.

- Resolved issue where enums were incorrectly generated in ES3Types due to the type list not being initialized intermittently.

- Resolved harmless bug where an ArgumentException is thrown when trying to add scene which has already been added to scene manager.


3.5.10

- Resolved issue where loading a value with a dervied type using caching would cause it to be loaded as it's parent type.


3.5.9

- Added support for Unity 6.


3.5.8

- Separated Add References to Mgr into Add References to Mgr and Add Dependencies to Mgr.

- Resolved issue where references were added to manager when Auto Add References was disabled as Component was created in scene.

- Resolved issue in some cases where Optimize would not remove cached references to deleted objects.

- Resolved issue where creating an ES3Type for an object which has generic collection field with an element of the same type as itself would cause a stack overflow in certain edge cases.


3.5.7

- Removed legacy dependency-gathering code which requires the UnityEngine.UI library.

- Resolved issues where ES3UserTypes aren't added to the reference manager on occasion.

- Reference managers are now no longer merged when using additive scenes.

- Worked around bug at Unity's end causing the Auto Save window to throw errors on Unity 2021.

- Resolved issue where ES3Prefab would throw an ArgumentException for writing the same item in the localToGlobal Dictionary.

- Resolved issue where saving primitives using PlayMaker actions with caching would cause a format error.

- Worked around issue with PlayMaker where assigning NULL to a GameObject invalidates the type of the FsmVariable.

- Made a change to ES3Cloud so that an error is manually sent when misconfigured servers reject POST parameters but continue to execute the PHP script.

- Resolved issue where priority of built-in types conflicted with user-generated types.


3.5.6

- ES3GameObject Component is now automatically moved to end of Components List to ensure that it's loaded after the Components it references.

- Resolved merge issue where cached data was being stored with it's generic type rather than actual type.

- Resolved issue where private members of inherited types wouldn't be saved in specific circumstances.


3.5.5

- References are now gathered when saving a scene and when changes are made in a scene, not when entering playmode.

- Added option to refresh reference managers in all scenes (Tools > Easy Save 3 > Refresh References for All Scenes).

- Added option to exclude references from being added to the manager (right-click > Easy Save 3 > Exclude Reference(s) from Manager).

- Added GetColumnLength and GetRowLength methods to ES3Spreadsheet.

- Resolved issue where enums would cause a FormatException when they were fields of a class with an ES3Type.

- Worked around Unity bug where initialisation events are sometimes not called when importing Easy Save.

- Worked around Unity bug where GetDirectoryName fails to work with a path to a file.

- Auto Saves are now processed in order of their position in the hierarchy.

- Resolved issue where members would be serialized twice when it was marked as ES3Serializable in both concrete and base classes.

- Worked around Unity bug where Unity would throw an error when trying to set a scripting define symbol for Stadia.

- Accounted for change in 2022.3 LTS where Unity have fixed a typo in their Editor API ("ToolbarSeachTextField")


3.5.4

- You can now enable Assembly Definition Files for Easy Save by going to Tools > Easy Save 3 > Enable Assembly Definition Files.

- Accounted for edge case where ES3File would be merged rather than overwritten, preventing keys from being deleted from the stored file.

- Resolved issue where reference collection can cause an InvalidOperationException (Collection was modified).

- Worked around bug with Unity Runner Template which prevented Easy Save types from loading.

- overrideSprite is no longer saved when saving UI.Image as Unity now returns the Sprite rather than null when this is unassigned.

- Resolved issue where Auto Save's events sometimes did not update when changing the active scene in the Editor.


3.5.3

- Attempting to save a Material with a RenderTexture will now throw a warning indicating that the RenderTexture won't be saved.

- Added filtering by tag in the Auto Save window by prefixing 'tag:' to the search query.


3.5.2

- Resolved issue where RectTransform was loaded incorrectly as parent is deserialized before anchoredPosition.

- Removed warning regarding Transform parents being set using the accessor rather than the SetParent method.

- ES3.CopyFile now automatically creates the target directory if it doesn't exist.

- Added an option to encrypt/compress raw cached data if the setting is defined for the cached file (postprocessRawCachedData).

- 'Add References to Manager' now permanently adds prefabs to the manager if 'Auto Add Prefabs to Manager' is enabled.

- Assembly names are now in alphabetical order so changes in order aren't registered as a change in version control.

- Using 'Add References to Manager' on a folder now adds all supported assets in that folder to the reference manager.


3.5.1

- Reverted changes to LoadRaw methods when using Cache as it caused regression issues.

Basic Information
Latest Version
3.5.26 (11 Apr 2026)
Publisher
Moodkie
Category
Tools/Utilities
Size
248.6 KB
Price
€27.14
Asset Rating
(1033)
Extended Information
Unity Versions
2019.4.38, 2020.3.29, 6000.0.48
State
Published