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

Tool Saving Script Is not Working and not Saving???

Asked by 3 years ago

HI i have a problem i followed a youtube video and did everything alright but still the tools are not being safed.

local rs = game:GetService("ReplicatedStorage")
local ds = game:GetService("DataStoreService")
local store = ds:GetDataStore("saveStore")
local library = rs:WaitForChild("Library")

--< directory functions

local dir = {}

local function edit(player, list)
    dir[player.Name] = list
end

local function setup(player, list)
    for i = 1, #list do
        local tool = library:FindFirstChild(list[i])
        if tool then
            local clone = tool:Clone()
            clone.Parent = player.Backpack
        else
            print(list[i] .. " not found")
        end
    end
end

--< player events

game.Players.PlayerAdded:connect(function(player)

local ready = false

    player.CharacterAdded:connect(function(char)

    local bp = player.Backpack
    local data = nil

    if ready == false then
        ready = true

        data = store:GetAsync(player.UserId)

        if data then
            setup(player, data)
            edit(player, data)
        end
    end 

    char.Humanoid.Died:connect(function()
        char.Humanoid:UnequipTools()

        local old = player.StarterGear:GetChildren()
        for i = 1, #old do
            old[i]:Destroy()
        end

        local new = player.Backpack:GetChildren()
        for i = 1, #new do
            new[i].Parent = player.StarterGear
        end     
    end)    

    --< adjuster

    local count = 0

    local function adjust()

    if char.Humanoid.Health > 0 then

        local list = {}

        local equipped = char:FindFirstChildOfClass("Tool")
        if equipped then
            table.insert(list, equipped.Name)
        end 

        local tools = bp:GetChildren()
        for i = 1, #tools do
            table.insert(list, tools[i].Name)
        end

        if count ~= #list then
            edit(player, list)
            count = #list
        end
    end
    end

    --< child events

    bp.ChildAdded:connect(adjust)   
    bp.ChildRemoved:connect(adjust) 

    char.ChildAdded:connect(function(child)
        if child.ClassName == "Tool" then
            adjust()
        end
    end)

    char.ChildRemoved:connect(function(child)
        if child.ClassName == "Tool" then
            adjust()
        end
    end)    

    end)
end)

game.Players.PlayerRemoving:connect(function(player)
    store:SetAsync(player.UserId, dir[player.Name])
    dir[player.Name] = nil
end)

--< safety

game:BindToClose(function()
    wait(5)
end)

0
Are API Services for studio enabled for your game? nekosiwifi 398 — 3y
0
yes they are you_success -50 — 3y

Answer this question