Bayat - Save System - An ultimate data management solution

Bayat Presents
Save System
An ultimate data management, multi-purpose storage and save system for Unity game engine.

Homepage | Asset Store | Documentation | Discord









Homepage | Asset Store | Documentation | Discord

:heart: Thanks for reading and watching :heart:

Made with :heart: by Bayat

It is now live on the Unity Asset Store

Hey there, just a quick question, I own Save Game Pro - Gold, is that no longer going to be relevant?

2 Likes

Thanks for the question, the Save Game Pro will be in maintenance mode, that means it will only receive bug fixes and patches, no new features, for having new features and capabilities I’d suggest you to use the new system, but if you’re already using Save Game Pro for your projects, you’re good to go with them as long as you don’t want the new features, cause it’ll remain as it is, with just few patches and bug fixes.

Added FAQ to the manual, let me know if you’ve any other questions, so it might be added to the FAQ as well.

Hi, Does this save system have any cloud sync functionality via native API’s for IOS(iCloud) or Android (Google storage)?
How long do you plan to run special launch promotion for this save system so that i can plan accordingly.

Thanks.

Hello, thanks for the question.
Unfortunately, no, there is no integration available for iCloud and Google Play Games Services (Saved Games) yet, but they’re both on our roadmap which we’re going to implement both of them as soon as possible and also we’re planning to add integrations with cross-platform plugins available on the asset store such as Cross Platform Native Plugins and Ultimate Mobile Pro too.

Check out the Roadmap for more information.
Also, the launch sale will be around for 2 months.

Bought it yesterday. I have 2 questions so far:

  • When saving and loading basic basic forms like (cube, sphere) it’s pretty fast when with my enemies, saving & reloading like 10-12 characters is slowing it down a bit ( save file is around 15mb). So my first question is how can i just save the location and things like health and respawn a prefab with new loaded position ?

  • second question is about auto-save: I like the feature but trying to use with additive scenes. Anyway to add OnSceneLoaded () trigger to the list ?

Thx

1 Like

Thanks for the questions.

In your case it would be better to create a data model just for position, health and enemy data at all, something like this:

public class EnemyData {

    public Vector3 position;
    public float health;
  
    // add more properties here

}

Which you can extend it for other enemies:

public class OtherEnemyData : EnemyData {

    public int headHealth;
    public int bodyHealth;

}

Then save and load it like this:

// Loop through your enemies and fetch the data and fill this list
List<EnemyData> enemiesData = new List<EnemyData>();

// Loop here ...

// Save the data
await SaveSystemAPI.SaveAsync("enemies.dat", enemies);

// Load back the data
List<EnemyData> enemiesData = await SaveSystemAPI.LoadAsync<List<EnemyData>>("enemies.dat");

// Then instantiate enemies based on the EnemyData type maybe?
if (enemiesData[i] is OtherEnemyData) {
    // Instanitate otherenemy prefab ...
}

This is the solution I’ve got in my mind so far, but I’m pretty sure you might be able to do it simpler or better anyway.

Or maybe instead of doing it all, just create an object converter for Enemy component and get a list of your enemies and save it like this:

Enemy[] enemies = FindObjectsOfType<Enemy>();

// Save the enemies component data which is managed by its own Object Json Converter
await SaveSystemAPI.SaveAsync("enemies.dat", enemies);

// Load the data back into enemies (components)

// Use Load if the enemies (components) are referenced by Scene Reference Resolver, otherwise use LoadInto to directly load the data into them
await SaveSystemAPI.LoadAsync("enemies.dat");
await SaveSystemAPI.LoadIntoAsync("enemies.dat", enemies);

Learn more about Creating a Custom Object Converter.

And for your second question, that would be a good addition, but for now, I think you can extend the AutoSave class to add this event or just modify the AutoSave script.
But I’ll try to include this event in the next update.

Learn more about sceneLoaded event.
Thanks :heart:

Thank you so much. That’s exactly the alignment i needed !!

1 Like

The new version is now live on Asset Store, 1.0.3:

New features

  • Added On Scene Loaded event to AutoSave Manager

Bug fixes

  • Fixed LoadAsync and LoadIntoAsync encryption issue

  • Enforcing .NET 4.x using a dialog box

Thanks for staying with us :heart:

We’ve found an issue with serializing MeshFilter component, which saves the mesh property instead of saving only sharedMesh property, so the whole mesh data is saved instead of just saving the reference of it.

This issue has been addressed and will be fixed in the next update.

Added pagination to the Asset Reference Manager and Scene Reference Manager windows for optimizing the performance with a large pool of references:

5468277--559134--Annotation 2020-02-11 210012.png

Stay tuned :heart:

Sounds good!

I see you’ve listed “consoles”. Does it work on Nintendo Switch?

I haven’t tested it yet, but if Nintendo Switch supports File storage or PlayerPrefs then it works there too.
By the way, Nintendo Switch support is on our roadmap so if it requires a native integration, we would have to develop it at that time. (I’m not able to provide an ETA for it though)

Thanks.

Thanks for the quick reply. Not sure how much I can say in response to that without breaching any NDAs but I appreciate the response. :slight_smile:

1 Like

For multi-scene saving and loading, how does Save System handle this? Can you save scenes before unloading them, and reload the saved data before they’re reloaded? Also, does it have Ludiq Bolt integration?

Also, how long is the launch sale for?

Thanks for the question.
As I stated in the reply at #7 the sale will be around for 2 months.

You can do that pretty well and easy using Save System, but I didn’t fully understand what you meant on your second question, but as far as I know there must be at least 1 active scene which you can operate on and spawn objects or at least access the objects references, so when you load a scene, then you can load the data in Awake or Start events as soon as possible in your case.

The Bolt works with almost all scripts and assets automatically using its powerful reflection API, you can find a small guide on how to add Save System to Bolt assembly options and use the API there.

The new version has been submitted for review, will be live on Asset Store soon, 1.0.6:

New features

  • Added Pagination to Asset Reference Manager and Scene Reference Manager Window

Bug fixes

  • Fixed saving MeshFilter component mesh property issue

  • Fixed inconsistent line endings issue

Thanks for staying with us :heart:

Thanks, I don’t know why I always ask about Bolt integration, Bolt works with everything :smile:

So I guess for multiple scenes, if a scene is unloaded then reloaded, it is the same as it was left when it was unloaded, I think? Unless it resets the scene entirely when it is is unloaded? And during save, if a scene has been unloaded, how would it be saved, since it should technically be saved, it just isn’t loaded at the time.