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

Why is the GUI going away when the player respawns? [Solved!]

Asked by 1 year ago
Edited 1 year ago

Why does the GUI that I created go away when the player respawns? It's coded to show when the player dies and to only go away when you click the close button.

It's a local script placed in starter player scripts. This is the code:

local players = game:GetService("Players")
local player = players.LocalPlayer
local debounce = false
local messageGui, messageLabel, closeButton, humanoid
-- Create the messageGui and its children
function createMessageGui()
if not messageGui then
    messageGui = Instance.new("ScreenGui")
    messageLabel = Instance.new("TextLabel")
    closeButton = Instance.new("TextButton")
    -- Add the messageGui to the player's PlayerGui
    messageGui.Parent = player:WaitForChild("PlayerGui")
end
-- Set properties for the message label
messageLabel.Size = UDim2.new(1, 0, 0.1, 0)
messageLabel.Position = UDim2.new(0, 0, 0, 0)
messageLabel.BackgroundTransparency = 0.8
messageLabel.TextWrapped = true
messageLabel.TextXAlignment = "Center"
messageLabel.TextYAlignment = "Center"
messageLabel.Parent = messageGui
messageLabel.Visible = false

-- Set properties for the close button
closeButton.Size = UDim2.new(0.1, 0, 0.1, 0)
closeButton.Position = UDim2.new(0.9, 0, 0, 0)
closeButton.Text = "X"
closeButton.Parent = messageGui
closeButton.Visible = false

-- Connect to the close button's MouseButton1Click event
closeButton.MouseButton1Click:Connect(function()
    messageLabel.Visible = false
    closeButton.Visible = false
end)
end
createMessageGui()
-- Connect to the player's Chatted event
player.Chatted:Connect(function(message)
    if debounce then
        player:Kick("You cannot type for 30 seconds after dying.")
    end
end)

-- Connect to the humanoid's Died event
player.CharacterAdded:Connect(function(character)
    humanoid = character:WaitForChild("Humanoid")
    humanoid.Died:Connect(function()
        if debounce then return else debounce = true
            print("Player Died")
            messageLabel.Text = "You died! You can't chat for 30 seconds!"
            messageLabel.Visible = true
            closeButton.Visible = true
            wait(30)
        debounce = false
        end
    end)
end)

UPDATE: T3_MasterGamer solved this problem by adding a

messageGui.ResetOnRespawn = false

when setting the properties. As I can't mark his comment as the answer I am updating my post instead. Thanks!

0
Turn off ResetOnSpawn T3_MasterGamer 2189 — 1y

1 answer

Log in to vote
0
Answered by
pwx 1581 Moderation Voter
1 year ago

StarterPlayerScripts will only run once the player has joined, if you want it to run per respawn you can put it in StarterCharacterScripts.

Ad

Answer this question