Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

How would i be able to make a DataStore script filtering enable compatible to save player's data?

Ok so i think the reason why its not working is because im only changing your values for the client-side. I think you need to do something like make a remote event but i don't know how to do that with my DataStore/saving script.

Here's the script :

local RemoteEvent = game.ReplicatedStorage['RemoteEvent']
RemoteEvent.OnServerEvent:connect(function(player)
local DSService = game:GetService('DataStoreService'):GetDataStore('DBSRData')
game.Players.PlayerAdded:connect(function(p)
    wait(2.5)
    -- Define variables
    local stats = game.ServerStorage.Data:Clone()
    stats.Parent = p
    local uniquekey = 'id-'..p.userId
    local names = {}

    for i, v in pairs(p.Data:GetChildren()) do
        table.insert(names, v.Name)
    end

    -- GetAsync
    local GetSaved = DSService:GetAsync(uniquekey)
    if GetSaved then
        for i, v in pairs(p.Data:GetChildren()) do
            v.Value = GetSaved[i]
        end

        for i=1, #GetSaved do
                --print(i .. ": " .. names[i] .. " = " .. tostring(GetSaved[i]))
        end
    else
        local NumbersForSaving = {}
            for i, v in pairs(p.Data:GetChildren()) do
                table.insert(NumbersForSaving, v.Value)
            end
        DSService:SetAsync(uniquekey, NumbersForSaving)
    end
end)

game.Players.PlayerRemoving:connect(function(p)
    local uniquekey = 'id-'..p.userId
    local Savetable = {}
        for i, v in pairs(p.Data:GetChildren()) do
            table.insert(Savetable, v.Value)
        end

    DSService:SetAsync(uniquekey, Savetable)            
end)
end)

1 comment

0

Look on the wiki if you don't know how to use anything, like Remote Events, besides things that are very undescriptivE on the wiki.

1 answer

✓ Accepted answer

This should be a ServerScript in ServerScriptService. You don't need to use RemoteEvents here. However, you will need to use RemoteEvents/Functions if you're changing the players stats Locally.

4 comments

0

It is in serverscriptservice, can you give me an ex with the remote events/functions?

0

Are you changing the players stats in a LocalScript?

0

Yeah i am, when a player presses E it increases by 15. Do i need to add a remote event for that?

0

Yes. I suggest making a new question with that script.

This discussion is preserved as it was. New answers, comments, and votes are closed.