Ad
Log in to vote
0

Why doesn't PlayerAdded fire? [closed]

Asked by
Everesty 976
4 years ago

I'm trying to use PlayerAdded but whenever I test in Play Solo it doesn't work! No output or anything!

game.Players.PlayerAdded:connect(function(Player)
    local h = Instance.new("Hint", game.Workspace)
    h.Text = Player.Name.." has entered the game!"
    game:GetService("Debris"):AddItem(h, 3)
end)

Locked by Everesty

This question has been locked to preserve its current state and prevent spam and unwanted comments and answers.

Why was this question closed?

2 answers

Log in to vote
2
Answered by 4 years ago

In Play Solo mode, sometimes the player will actually join the game before the script runs. Thus, your function won't run, since the event was fired before it was set up.

You can avoid this by using Server+Player test mode, or explicitly running the function for Player1 if it exists at the time of execution.

4
It also doesn't fire on local scripts, from what I hear. Quenty 205 — 4y
1
You should also loop through each player and use the same code as in your connecting event before you connect your event incase the above described happens. Quenty 205 — 4y
Ad
Log in to vote
0
Answered by
Ekkoh 610
4 years ago

What I like to do is instead of anonymously connecting the PlayerAdded event to you function create a variable for it and then run it on each player that exists before the connection to PlayerAdded has been established. So yours would look something like this-

function PlayerAdded(Player)
    local h = Instance.new("Hint", game.Workspace)
    h.Text = Player.Name.." has entered the game!"
    game:GetService("Debris"):AddItem(h, 3)
end

for _, plr in pairs(Game.Players:GetPlayers()) do
    PlayerAdded(plr)
end

Game.Players.PlayerAdded:connect(PlayerAdded)