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

How do I make these saves/loads work for universes?

Asked by 10 years ago

-- Save 1

local Players = game:GetService("Players")

Players.PlayerAdded:connect(function(Plr)
    Plr.Backpack.ChildAdded:connect(function(Item)
        if Plr.DataReady then
            for _, v in pairs(Plr.PlayerGui.Inventory.Frame.Items:GetChildren()) do
                if v ~= nil then
                    Plr:SaveString(v.Name,v.Name)
                end
            end
        end
    end)
end)

Players.PlayerRemoving:connect(function(Plr)
    if Plr.DataReady then
        for _, v in pairs(Plr.PlayerGui.Inventory.Frame.Items:GetChildren()) do
            if v ~= nil then
                Plr:SaveString(v.Name,v.Name)
            end
        end
    end
end)

-- Load 1

game:GetService("Players").PlayerAdded:connect(function(Plr)
    Plr.CharacterAdded:connect(function(Char)
        Plr:WaitForDataReady()

        for _, v in pairs(game:GetService("ReplicatedStorage").Buttons:GetChildren()) do
            if Plr:LoadString(v.Name) == v.Name then
                print(Plr:LoadString(v.Name))
                cl = v:Clone()
                cl.Parent = Plr.PlayerGui.Inventory.Frame.Items
            end
        end
    end)
end) 

-- Save 2

local Stats = { ["Swordsmanship"] = 0, ["Cooking"] = 0, ["Blacksmithing"] = 0, ["Woodcutting"] = 0, ["Mining"] = 0, ["Beast Taming"] = 0, ["Foraging"] = 0, ["Alchemy"] = 0, ["Detection Skill"] = 0, ["Farming"] = 0, }

local SwordStats = { ["Short Blades"] = 0, ["Long Blades"] = 0, ["Great Blades"] = 0, ["Axes"] = 0, ["Rapiers"] = 0, ["Hammers"] = 0, ["Katanas"] = 0, ["Spears"] = 0, }

local Plr = script.Parent.Parent

local StatsDirectory = script.Parent.Parent.Stats local SwordStatsDirectory = script.Parent.Parent.SwordStats

repeat wait() until SwordStatsDirectory repeat wait() until StatsDirectory

function saveStats() for _, v in pairs(StatsDirectory:GetChildren()) do Plr:SaveNumber(v.Name,v.Value) end for _, v in pairs(SwordStatsDirectory:GetChildren()) do Plr:SaveNumber(v.Name,v.Value) end end

function updateStats() for _, v in pairs(StatsDirectory:GetChildren()) do Stats[v.Name] = v.Value end end

function updateSwordStats() for _, v in pairs(SwordStatsDirectory:GetChildren()) do SwordStats[v.Name] = v.Value end end

function loadData() for _, v in pairs(StatsDirectory:GetChildren()) do v.Value = Plr:LoadNumber(v.Name) or 0 updateStats() end for _, v in pairs(SwordStatsDirectory:GetChildren()) do v.Value = Plr:LoadNumber(v.Name) or 0 updateSwordStats() end end

for _, v in pairs(StatsDirectory:GetChildren()) do v.Changed:connect(function() updateStats() end) end

for _, v in pairs(SwordStatsDirectory:GetChildren()) do v.Changed:connect(function() updateSwordStats() end) end

My friend scripted these for me, mainly because I'm not good with any kind of data persistence (I understand them to an extent, just can't rewrite them) From what I've recently read, it's got something to do with Data Store and not Data Persistence.

1 answer

Log in to vote
0
Answered by
Gamenew09 180
10 years ago

Use DataStores, Data Persistence will not transfer place to place in a universe. Need help with data stores? Click here to look at a tutorial on the Roblox official wiki.

Ad

Answer this question