I have a badge awarding script in my game that works in Roblox Studio but not in the game. I've checked to make sure that it's active and it is and I've also disowned my badge and tried getting it again but it didn't work. Here's my script,
01 | local BadgeService = game:GetService( "BadgeService" ) |
02 |
03 | local function awardBadge(player, badgeId) |
04 | local success, badgeInfo = pcall ( function () |
05 | return BadgeService:GetBadgeInfoAsync(badgeId) |
06 | end ) |
07 | if success then |
08 | if badgeInfo.IsEnabled then |
09 | local awarded, errorMessage = pcall ( function () |
10 | BadgeService:AwardBadge(player.UserId, badgeId) |
11 | end ) |
12 | if not awarded then |
13 | warn( "Error while awarding badge" , errorMessage) |
14 | end |
15 | end |
16 | else |
17 | warn( "Error while getting badge info" ) |
18 | end |
19 | end |
When you earn a badge in studio, it is already earned meaning it can not be earned again.
For example, Getting a Level 10 badge in a game. You can't get Level 10 on the same account.
Hope this helped!