Hello! So I am making a game and I am struggling on just this one part, and it is DataStores between servers since I never thought I would need DataStores.
Whenever the player loads in to the game, they get an option if they want to create a new game (brings them to a “create slot” frame) or if they want to continue (warps them into the main game).
I am trying to make it so that when the player joins the game, it loads all of their data such as armor equipped, inventory, quests active, quests completed, level, etc.
Could anyone please give me an explanation on how I would make this work? Thank you!
This requires the knowledge of tables, datastores and scopes.
I suggest you utilise scopes for saving multiple datastores.
For the Armor, first you can make a folder with all armors inside of it in server storage. Next you can simply save the Armor name when a player leaves. When the player joins in again, you can get the Armor name by using GetAsync() and you can look for the saved Armor inside the folder containing all Armors and then clone it and apply it on the player’s character.
Secondly, quests. You can simply save the quest progress and its name when player leaves and load it back and look for the quest (probably do the same as before and put all quest inside a folder in server storage) using its name inside the quest folder and clone it and place inside the quest GUI u have or whatever and set the progress (I’m assuming that progress of each quest is a number) to the saved details of the quest.
Thirdly, inventory. I’m pretty sure you can do this like the Armor one. Save all the items by using their name in a table, make a folder containing all items in server storage and server storage ONLY!!! and when the player joins back again, simply get the table by using GetAsync() and the specified scope and using a for loop, get all the names inside the table and find them inside the items folder and clone it and give them to the player [Player.Backpack].