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

Roblox crashing when pressing button?

Asked by 2 years ago

Hello! I have a gui setup with multiple buttons. When these buttons are pressed, the item will be removed and the other items will be moved over to fill the gap, sort of like an inventory system. My only problem is that when any of the buttons are pressed a few seconds after starting up the game, roblox instantly crashes. I don't know if this is an issue with the multiple for loops and connections running for each item, or something different. I could use some help!

local hov = require(script.Hov)

game.StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Backpack,false)

local data = game.ReplicatedStorage.Remotes.GetInfo:InvokeServer()
print(data)
for l,d in ipairs(data.Inventory) do
    if l <=5 then

        game.ReplicatedStorage.PreviewModels[d]:Clone().Parent = script.Parent[tostring(l)].View.WorldModel
        script.Parent[tostring(l)].Tooltip.Text = d
        script.Parent[tostring(l)].Name = d
    end
end

game.Players.PlayerRemoving:Connect(function(plr)
    if plr.UserId == game.Players.LocalPlayer.UserId then
        local list = {}
        for i,v in ipairs(script.Parent:GetChildren()) do
            if v:IsA('TextButton') then
                if v.Name ~= v.Text then
                    table.insert(list,v.Name)
                end
            end
        end
        game.ReplicatedStorage.Remotes.SaveTowers:FireServer(list)
    end
end)
for i,v in ipairs(script.Parent:GetChildren()) do
    print(v)
    if v:IsA('TextButton') then

        print('sup')
        local e,l = hov.MouseEnterLeaveEvent(v)
        local active = false
        e:Connect(function()
            v:TweenSize(UDim2.new(0,74,0,74),Enum.EasingDirection.Out,Enum.EasingStyle.Quad,0.1)

            v.Tooltip.Visible = true
        end)
        l:Connect(function()
            if not active then
                v:TweenSize(UDim2.new(0,70,0,70),Enum.EasingDirection.Out,Enum.EasingStyle.Quad,0.1)

                v.Tooltip.Visible = false
            end
        end)
        v.MouseButton1Click:Connect(function()

            v.View.WorldModel:FindFirstChildWhichIsA("Model"):Destroy()
            v.Tooltip.Text = "Empty"
            v.Name = v.Text
            for r,d in ipairs(script.Parent:GetChildren()) do
                if d:IsA('TextButton') and tonumber(d.Text) > tonumber(v.Text) and d.Name ~= d.Text then
                    for p,k in ipairs(script.Parent:GetChildren()) do
                        if k:IsA('TextButton') and tonumber(k.Text) == tonumber(d.Text)-1 and tonumber(d.Text) ~=1 then
                            if d.View.WorldModel:FindFirstChildWhichIsA("Model") then
                                d.View.WorldModel:FindFirstChildWhichIsA("Model").Parent = k.View.WorldModel
                                k.Tooltip.Text = d.Tooltip.Text
                                d.Tooltip.Text = "Empty"

                            end
                        end
                    end
                end
            end
        end)




    end
end




0
sometimes when a for function goes too fast it does that. it just a guess but try adding a wait() after you started the for function VAnkata20 135 — 2y

1 answer

Log in to vote
0
Answered by 2 years ago

Its crashing probably because there Isn't a wait() command In It

I would recommend you using wait() (Or task.wait() I guess) so that way, It would not crash

Also, I would recommend adding a debounce for your script

0
Thats what i am saying VAnkata20 135 — 2y
Ad

Answer this question