I would like to use badges to track dev product purchases. As opposed to just using gamepasses, this would give me the option to sell the final good for multiple prices, including the ability to grant it for free to certain players.
To be clear, I am asking if there would be any moderation issue with doing this. I don’t believe this is how badges were intended to be used so I want to make sure this is safe before proceeding.
I think your question should be more about the different prices for your dev product rather than the use of badges to do so. If it’s allowed, I’m sure you can use badges to do it however you want.
Players won’t expect to have badges tied to purchases in-game – bad idea.
You should be able to do this fully through datastores. I don’t see where badges are necessary in this. If you want to gift a player an item, then you edit their data directly (there are plugins available that make editing datastore keys easy).
Adding onto what @buildthomas said, you shouldn’t do this, but if you are going to then make sure you also track purchases in-game.
The only reason I can think of for doing this is that maybe you’re worried your own mistake will lose their data. If this is why, then sure reward the badge, and reward it in-game.
When checking if a player owns it, check their data first in-game. If they own it in-game but don’t have the badge anymore, reward the badge again. If they don’t have it in-game, then check if they have the badge. If they have the badge, save their data as owning it.
It seems like a lot of work to do though. For player purchases like this, you should never really have to worry about an error in your code. If you use UpdateAsync and make your function so that it will never change any ownership to false, then you’ll be fine. I would give an example, but I’m not on my computer at the moment.