I have made a BadgeService that has 2 main functions module:AwardBadge(userId: number, badgeId: number) module:AwardBadges(userId: number, badgeIds: {number}) module:PostInChat(userId: number, badgeId: number)
and module:GetBadgeInfoAsync(userId: number)
There is a event that gets fired when a badge is awarded. module.BadgeAwarded:Connect(function(userId: number, badgeId: number))
module:GetBadgeInfo(BagdeId) -- prints its name, image, etc..
module:PostInChat(PlayerId,BadgeId) -- Posts in chat when a player has unlocked a badge
module:GiveBadges(PlayerId,{}) -- Gives the player all the badges provided in the {}.
why do that when you could just put it in serverscriptservice
if it needs to be accessed in both the client and the server why not just replicate a client version of the module with only the client functions