What is wrong with my script? (Badges)

Hi,
I am trying to make a badge that is awarded to players after a minute of playtime. I got the script of a YouTube video and added the wait(), here it is:

game.Players.PlayerAdded:connect(function(plr)
if plr then
		wait(60)
		game:GetService('BadgeService'):AwardBadge(plr.UserId, 2124633610)
	end
end)

I’ve checked the Badge ID and it is the correct one.
What have I done wrong?

Many thanks.

There’s a list of conditions listed in the link below here:

The function has conditions for it to work. If one is not met, it will fail to work. If it’s none of the list and it still doesn’t work, it is likely that you misplaced the script somewhere.

Oh, sorry I forgot to mention that the Script is in the Workspace, is that ok?

It should be generally fine there, but it is canonically recommended to put it in ServerScriptService as previously stated in another reply.

2 Likes

Or you can instance a new value in a player and keep on adding +1 every second with a while do loop and check if the value is however you want it to be so then it can give the badge.

1 Like

Thanks it’s working now!

Also thanks @Alexmidis

1 Like