We are making some changes to how badges work. What this means for you is that whenever you create a badge, you will now need to start using these new Lua APIs instead of the ones you are accustomed to; otherwise they may not function correctly. After July 16th, all new badges that get created will not be assets and must use these new methods.
The existing APIs will continue to work for all existing badges to avoid breaking games.
The old method BadgeService:UserHasBadge() was initially meant to be specific to badges, and we realize it is commonly used to check asset ownership. In order to avoid breaking games, we had to create a new method.
Getting badge information
Use BadgeService:GetBadgeInfoAsync() as a replacement for MarketplaceService:GetProductInfo()
This new method exposes the following fields:
Name
Description
Icon image Id
Whether or not the badge is enabled
MarketplaceService:GetProductInfo() is intended for items that have products (sellable items,) and a badge cannot be sold so we felt it made more sense to create a new method on BadgeService.
Let us know if you have any questions or concerns!
All badges will work for both newly created methods. The only thing to be aware of is that badges created after July 16th will not work with the existing two methods mentioned. (GetProductInfo, and UserHasBadge)
So yes, the new methods will work on badges that were created as assets.
So if a badge was about to be created with the same ID as an asset which is a badge, it would skip that ID and go onto the next one? That’s pretty cool.
Not quite, badges being created right now up until July 16th are still being created as assets, so there’s no need to skip or reserve an ID because they’re still on the same system.
On July 16th this will change and IDs will start colliding and badges will no longer be created as assets, this is why we must provide these new methods to get and check this information.
But surely if the new methods work with the previous badge assets then newly created badges on the new badge system will have to avoid the IDs of assets which are badges?
As @ProbableAI mentioned badge IDs will start picking up where asset IDs left off at the time. This means any badge created before badges stop being assets won’t collide with new badge IDs.
We don’t currently have any plans to expand upon our badges system. See our roadmap for information on what features we will be working on in the near future.