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

Is there anyway I can make this DataStore script shorter/more organized?

Asked by 8 years ago

Before I saw someone on this site say to use Table's when you plan on storing ton's of stuff in DataStore, so I tried doing it for testing purposes and came out with this, it work's fine, but I was wondering if there is anyway I can make this script shorter/make it more organized.

Any help appreciated.

It is GUI based, but I converted it to hint's for ScriptingHelpers.

Script:

-- December 6, 2015

-- Settings
local ToSave = {"Cash"}

-- Variables
local Player = script.Parent.Parent.Parent.Parent
local Stats = Player:WaitForChild("leaderstats")

local Button = script.Parent.Parent.TextButton
local Button2 = script.Parent.Parent.TextButton2

local DataStore = game:GetService("DataStoreService"):GetDataStore("GameService")

local Debounce = false

-- Main script
local h =  Instance.new("Hint",workspace)
h.Text = "Waiting for DataReady."

Player:WaitForDataReady()

h.Text = "Got DataReady."

wait(1)

function Load()
    for i = 1,#ToSave do
        wait(0.1)
        h.Text = "Loading "..ToSave[1]:lower().."."
        wait(1)
        if DataStore:GetAsync(ToSave[1]..Player.userId) then
            Stats:FindFirstChild(ToSave[1]).Value = DataStore:GetAsync(ToSave[1]..Player.userId)
        end
        h.Text = "Loaded "..ToSave[1]:lower().."."
    end
    Debounce = false
end

function Save()
    for i = 1,#ToSave do
        wait(0.1)
        h.Text = "Saving "..ToSave[1]:lower().."."
        wait(1)
        DataStore:SetAsync(ToSave[1]..Player.userId,Stats:FindFirstChild(ToSave[1]).Value)
        h.Text = "Saved "..ToSave[1]:lower().."."
        print("Successfully saved "..ToSave[1])
        table.remove(ToSave,1)
    end
    ToSave = {"Cash"}
    Debounce = false
end

Button.MouseButton1Click:connect(function()
    if not Debounce then
        Debounce = true 
        Save()
    end
end)

Button2.MouseButton1Click:connect(function()
    if not Debounce then
        Debounce = true 
        Load()
    end
end)

Answer this question