Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Using the same Data Store on multiple places?

Asked by 6 years ago

I have a game that teleports you to a place inside the place. You guys know what I am talking about right? Anyways the wiki says places inside places can use the same data store but how would I go about doing this. I cant find any tutorials or anything.

Heres what ive done so far that hasent been working.

I have this data saving script inside the main place.

local DSService = game:GetService("DataStoreService"):GetDataStore("1302851773")

game.Players.PlayerAdded:connect(function(player)
    local uniquekey = "id-" .. player.UserId
    local leaderstats = Instance.new("IntValue", player)
    local Units = Instance.new("IntValue", leaderstats)
    local Crystals = Instance.new("IntValue", leaderstats)

    leaderstats.Name = "leaderstats"
    Units.Name = "Units"
    Units.Parent = leaderstats

    Crystals.Name = "Crystals"
    Crystals.Parent = leaderstats

    local GetSaved = DSService:GetAsync(uniquekey)
    if GetSaved then
        Units.Value = GetSaved[1]
        Crystals.Value = GetSaved[1]
    else
        local NumbersForSaving = {Units.Value, Crystals.Value}
        DSService:SetAsync(uniquekey, NumbersForSaving)
    end
end)

game.Players.PlayerRemoving:connect(function(player)
    local uniquekey = "id-" .. player.UserId
    local Savetable = {player.leaderstats.Units.Value, player.leaderstats.Crystals.Value}
    DSService:GetAsync(uniquekey, Savetable)
end)

And in the second place I have the exact same script. I was hoping it would work but it hasnt been. Anyone have any ideas?

Thank you for your time! :)

0
Try using GlobalDataStore Laedere 0 — 6y
0
local DSService = game:GetService("GlobalDataStore"):GetDataStore("1302851773") That errors and gives me a nil value? GottaHaveAFunTime 218 — 6y
0
I changed it to this and it also errors local DSService = game:GetService("GlobalDataStore"):GetGlobalDataStore("1302851773") GottaHaveAFunTime 218 — 6y
0
Well I changed it to this now and it doesnt error but it also doesnt save at all local DSService = game:GetService("DataStoreService"):GetGlobalDataStore("1302851773") GottaHaveAFunTime 218 — 6y

2 answers

Log in to vote
0
Answered by
H4X0MSYT 536 Moderation Voter
6 years ago

Ah. A game is defined as 1 or more places. Places are the levels which users can play on. Places in a universe share their datastore. Meaning you can share data across places.

Ad
Log in to vote
0
Answered by 6 years ago

What is a universe in Roblox

In the image here "Current game" represents a universe. It consists of only one start place zero or more places which you can teleport to freely. You cannot join a place directly and you will be redirected to the start place. The only way to get to a place is from the start place or another place within the same universe.

Data Store

There are only two types of data stores in Roblox OrderedDataStore which only holds integers as values in an ordered set and GlobalDataStore which can hold a variety of types but has no order to its data.

Data Stores are accessibly by any place within the universe which makes it vital that you save and get the data in the same way for all places else the data will be out or sync with others.

One method would be to use a Linked script or you could use a private module and require it with its id.

Either way you will need to think how you can make sure that the data is saved correctly for all places. It may also be useful to include a save version number ie {ver = 1, data = some_data} to allow you to handle different versions of saved data.

I hope this helps.

Answer this question