Hi Tony,
I wanted to start off by saying that I use the Dialogue System and Quest Machine assets in my game, and I absolutely love them! They are fantastic assets. Thanks for creating them for all of us to use!
I'm at a point now where I want to get a save system working. I have decided to go with the easy save asset. I'm making a game with tasks that the player completes on each level (similar to Untitled Goose Game). The player must complete a certain number of tasks in order to advance to the next level. I'm using Quest Machine. Each level has 1 quest that is given to the player at the start of the level. The quest has about 4 nodes(tasks) that the player must complete in order to advance to the next level. See our previous discussion awhile back here: https://www.pixelcrushers.com/phpbb/vie ... 680#p15680
https://imgur.com/a/wAABFjc Image Link on imgur for task list on single quest
So the question I have now is how can I save it each time one of the nodes or tasks is completed in the single quest? For example, if the first task "get into the garden" was completed...and then the player restarted the level. How could I first save when that the tasks get into the garden was completed? How can I mark that task as completed the next time the player loads the level so now they only need to do the remaining 3 tasks in order to progress?
Also, when a player first starts a new level...how can the save system be notified that there are say 4 tasks left to do that need to be completed in order to progress?
As a general note. I do have it currently set up with just 1 quest per level that lists all the tasks needed to be completed, but if you think for some reason it would be better to have a single quest for each task to complete...I might be able to make that change as well. The only tricky part would be how to notify the game once all the required quests were completed to advance. It was easier to have the tasks all in one quest for that reason (especially since the tasks are pretty straightforward).
Thanks for your help!
Saving Quest Progress With Easy Save
Re: Saving Quest Progress With Easy Save
Hi,
If you haven't set up the save system at all yet, I recommend downloading the Save System Prefabs package from the Dialogue System Extras page. Although it's hosted on the Dialogue System Extras page, it also works with Quest Machine since they share the same save system.
Import the package into your project, add the Save System prefab to your scene(s) (at the very least, the first scene in your build settings), and add the LoadingScreen scene to your build settings, too. You can customize the appearance of the LoadingScreen if you want.
Inspect your player's Quest Journal. Make sure Save Settings > Include In Saved Game Data and Save Across Scene Changes are ticked, and Save Key is set to a value that's unique from any other Saver scripts. (However, the Save Key should be the same for the Quest Journal components in all scenes.)
When you save a game, the save system will record the state of the Quest Journal.
To save the game as soon as a task is completed, you can configure a SaveSystemMethods component. For example, configure a UnityEvent to call SaveSystemMethods.SaveToSlot(#) and choose a slot #.
To load a game, use SaveSystemMethods.LoadFromSlot(#) or in C# use SaveSystem.LoadFromSlot(#).
To tie Easy Save into this, remove the PlayerPrefsSavedGameDataStorer from the Save System prefab. Download the Easy Save SavedGameDataStorer package, import it, and add the ESSavedGameDataStorer script to the Save System prefab. This will let you configure the Save System to use Easy Save for saving.
I realize I went into detail on some of the info above and glossed over other points, so if you have any questions please let me know.
If you haven't set up the save system at all yet, I recommend downloading the Save System Prefabs package from the Dialogue System Extras page. Although it's hosted on the Dialogue System Extras page, it also works with Quest Machine since they share the same save system.
Import the package into your project, add the Save System prefab to your scene(s) (at the very least, the first scene in your build settings), and add the LoadingScreen scene to your build settings, too. You can customize the appearance of the LoadingScreen if you want.
Inspect your player's Quest Journal. Make sure Save Settings > Include In Saved Game Data and Save Across Scene Changes are ticked, and Save Key is set to a value that's unique from any other Saver scripts. (However, the Save Key should be the same for the Quest Journal components in all scenes.)
When you save a game, the save system will record the state of the Quest Journal.
To save the game as soon as a task is completed, you can configure a SaveSystemMethods component. For example, configure a UnityEvent to call SaveSystemMethods.SaveToSlot(#) and choose a slot #.
To load a game, use SaveSystemMethods.LoadFromSlot(#) or in C# use SaveSystem.LoadFromSlot(#).
To tie Easy Save into this, remove the PlayerPrefsSavedGameDataStorer from the Save System prefab. Download the Easy Save SavedGameDataStorer package, import it, and add the ESSavedGameDataStorer script to the Save System prefab. This will let you configure the Save System to use Easy Save for saving.
I realize I went into detail on some of the info above and glossed over other points, so if you have any questions please let me know.
-
- Posts: 2
- Joined: Thu Nov 02, 2023 6:18 am
Re: Saving Quest Progress With Easy Save
Hey Tony, i have a small issue with Quest saving, I made a quest for the player to play 2 matches, when the player completes 1st match then the counter value is showing as 1 from 0 but when player starts another match, the counter re starts, how to save the Quests progress, even if player goes to lobby and start the game again....
this count is updatedin the above image is when player completed 1st match.....
this count is updatedin the above image is when player completed 1st match.....
- Attachments
-
- Screenshot 2023-11-02 144602.png (37.97 KiB) Viewed 5195 times
Re: Saving Quest Progress With Easy Save
Hi,
Set up the save system. I'll link to the Dialogue System's save system page because it's easily accessible online, and the Dialogue System and Quest Machine share the same save system: Save System
Then change scenes using the save system. See: How To: Change Scenes With Save System
Set up the save system. I'll link to the Dialogue System's save system page because it's easily accessible online, and the Dialogue System and Quest Machine share the same save system: Save System
Then change scenes using the save system. See: How To: Change Scenes With Save System