Module - TempBadgeService
Welcome!
Hello! I’m dand and I’ve been scripting for a while and I came across this problem multiple times so I started this project and I think it would be helpful to small developers like myself to utilize.
This is also my first time making a Community resource so any feedback I would be grateful!
What is TempBadgeService?
It is a module created by me to help developers with little funds or people who don’t wanna spend money on Badges straight away on a game!
Basically it just holds as a subsitute until you want/can afford to use badges.
Example
First off make sure to use the Setup function so the datastore it is ready to be used. (Execute in command bar)
require(game.ServerStorage.TempBadgeService):Setup()
Lets say your game is in alpha and you’re not sure whether to spend robux on badges (aka Alpha tester badge) but you can use this module instead as a subsitute until you have a definite answer!
local TempBadgeService = require(script.TempBadgeService)
local id = TempBadgeService:CreateTempBadge('AlphaTester')
print(id) -- 2
game.Players.PlayerAdded:Connect(function(player)
TempBadgeService:AwardTempBadge(player.UserId, id)
end)
Later in the future bind it to a real badge:
TempBadgeService:BindBadgeId(2, BadgeId) -- BadgeId is the id of a real badge.
If you think you’ve lost a badge just use this code to get its id and name!
print(TempBadgeService:GetTempBadges()) -- returns a dictionary of ids (key) and names (value)
Usage
I would suggest making as little calls as you can since it uses DataStoreService to check and store Temporary badges and if you’ve been developing for a while you know how robust it is.
Use in console command bar so it doesn’t duplicate badges with in game scripts.
Functions
CreateTempBadge(name, icon)
parameter | type | description |
---|---|---|
name | string | A name |
icon | string | A decal link |
Description: Creates a new temp badge with the given name and icon that returns the id of the new temp badge.
Returns: number
RemoveTempBadge(id)
parameter | type | description |
---|---|---|
id | number | A temp badge’s id |
Description: Removes a temp badge with the given id.
Returns: nil
GetTempBadge(id)
parameter | type | description |
---|---|---|
id | number | A temp badge’s id |
Description: Returns the name of the temp badge with the given id
Returns: string
GetTempBadges()
Description: Returns a dictionary with the keys being the id and the value being the name
Returns: dictionary
BindTempBadge(temp_id, real_id)
parameter | type | description |
---|---|---|
temp_id | number | A temp badge’s id |
real_id | number | A real badge’s id |
Description: Binds a temp badge with a real badge so when a player joins they get awarded the real badge.
Returns: nil
UnbindTempBadge(id)
parameter | type | description |
---|---|---|
id | number |
Description: Unbinds a temp badge from a real badge so when a player joins they don’t get awarded the real badge.
Returns: nil
AwardTempBadge(userid, id)
parameter | type | description |
---|---|---|
userid | number | A player’s userid |
id | number | A temp badge’s id |
Description: Awards a temp badge to a player so if it is/gets binded the player will be awarded.
Returns: nil
WithdrawTempBadge(userid, id)
parameter | type | description |
---|---|---|
userid | number | A player’s userid |
id | number | A temp badge’s id |
Description: Removes a temp badge from a player so the player will not be awarded.
Returns: nil
PlayerOwnsTempBadge(userid, id)
parameter | type | description |
---|---|---|
userid | number | A player’s userid |
id | number | A temp badge’s id |
Description: Returns a bool on whether a player owns the given temp badge.
Returns: boolean
Updates
If you think this could be useful please reply it’ll push me to make more updates!
- Expect a plugin to help manage these custom badges.
- Maybe some improvement uses with MemoryStoreService
- Some client sided updates, will be read only.
Extras
Conclusion
Hopefully you find use in using my module!
Any bugs just private message me on the DevForum.
Thanks for reading,
Dandcx