[REPLACED BY V2] BadgeService3

Hm, you can just remove the notifications part of the code and make your own system using the Remote Event. It gives you some info, so…

But I wanna add a like: “module.OnBadgeAwarded:Connect()” soon.

Custom notification image support added.

There’s a setting called: useBadgeImageForNotifications on the MainModule which you can set to true or false. If there’s an image associated to the badge then, it will show it.

It’s a bit broken right now, don’t worry you can prepare it already.

So, I’m probably gonna end up updating my data store method for this module. Here’s the thing, :GetOwnedBadges() was something I made after everything was done. I saved the values for if a player owns a badge by saving their userIds and the badge Id on a key. So I had to have another system for GetOwnedBadges, which used tables. Problem is, not only am I literally calling a save everytime a player redeems / gets a badge removed. It’s doing that twice with the OwnedBadges table also.

Should I consider remaking this, which I will, but should I make it a v2? Or should I just update this? I’m not sure.

My new data store method would be way more safe and just better. By getting their OwnedBadges only in the start and using the caching to check for badges instead. And removing the old method completely. It should be compatible with the current version. But it would be better. Also renaming stuff would be great. Like virtualBadges. Why did I make it that name? I don’t know.

I think it should just be an update. Your already in BadgeService3. You don’t want BadgeService3 V2 Update 29

2 Likes

This is a great module! I will be using them in my new game! Do you want to be included in the description for making the model?

1 Like

If you want to, sure. But not needed. It you want to, if you have a badge gui for example you could hide credits there if you REALLY wanted to. :).

1 Like

This has been removed on the current version. It isn’t worth it to not have the options and functions show up

1 Like

New update incoming! Remaking of the data store system. Now you DO NOT need to worry about debounces, or anything similar. Everything is cached, and then LATER saved to the player. Wayy better optimized now!

I’ll keep you updated when the new version gets released. Just doing bug testing now.

Also thinking of having a post in #bulletin-board for the updates. Updates for this module are really important and I’m not sure if anyone is using it. If you are. Please update it. Its not hard to do so. And also keep an eye for a bulletin board post soon. So that you can follow that.

Here’s the update log post, please follow that as a source of updates and contact.

And yeah, the module was updated :smiley: much better now, please update your version in studio!

By the way, I’m thinking of submitting this module to https://toolblox.glitch.me/

Edit: it got accepted lol, i forgot to tell you guys :smiley:

Can I request you publish a open sourced place along with this? I am having some trouble running the module in my place

1 Like

Wait I have my testing place for the module I was gonna make it uncopy locked…

Here: Reusable Place - Roblox

1 Like

Good to know there was some improvement!

Old:

New:

1 Like

There should be a way to set the Image for the virutal badge.

There is. You can have an image asset Id on the badge and it should use that as the badge notification image, and if you want to, only for your purposes.

1 Like

Love this - our game recently submitted a similar feature, where we collect all of the players info regarding, GroupServices, BadgeServices, MarketplaceServices. That way our services aren’t consistently needing to be connected upon player interaction. Instead a _G. (global connection) will search for their info to see if they meet said requirements for whichever object they intend on interacting with.

The only concern with scripts that utilize the DataStore - is the datastore being fired too frequently and causing loss / failure to collect player information.

So my question regarding your work here - is there any “safety protocol” within your concept here that prevents the datastore from going into “overdrive” or failing to collect information in general?

Cool concept, utilizing tables and datastores is definitely an efficient way to prevent lag in my opinion; as opposed to using ROBLOX’s Services. Along with that, no need to add quirky ROBLOX badges is definitely budget-friendly.

1 Like

Yeah, 100 Robux is just a lot, this is more of an achievement system than a badge system, I just really didn’t think of that, I mark as badges but anyway;

I don’t quite understand your question; But no it doesn’t get fired too many times, it retrieves info when the player joins, and then if there was any badges which were awarded, it will save that; All into one table when the player LEAVES.

I don’t really have any like advanced satefy features here anything DS2-wise for example, how-ever I do use UpdateAsync and stuff and I try to not have bad practices on the module; There should be some improvements in the future on data-loss and things like that;

Also I’m thinking of having some improvements to the badge list thing, currently it’s kinda annoying to put the badges inside the module again, I’m thinking of adding like a separate module UNDER the main module which would host the badges, I did that before, I just thought I woudn’t release this, but in the end I did, and so /shrug.

New update released, should be better compatible and should have more accurate info to players who aren’t in the server; To see it go on the Update Patch Notes. Please download the new version;

Oh yeah, I totally forgot, there’s also a new function which is :SavePlayerData(plr)

Which saves the player data and if you don’t specify a player, it will save EVERYONE’S data;

I removed the Async part, I remade the entire post, so I ended up just thinking, yeah, Async() does not belong in there. Current versions don’t ask a datastore for that anymore, it uses caching. It makes it much smaller, also you can still use UserOwnsBadgeAsync, but it won’t show on the Script Editor, and it will also just redirect to the actual function.

1 Like

Am I allowed to change the code and use it in an real game! Anyways, thanks for the module!