Quick donation board - Monetize in a snap!

Quick Donation Board
Monetize in a snap!

Hey all! I decided I would open-source a donation board I made in around 30 minutes because the user interface came out very nicely (in my opinion) and I think it could be useful to some people!

This donation board features:

  • Sleek user interface
  • Globally updated donation leaderboard
  • Successful purchase notification
  • Customizable settings
  • Error detection & prevention

The model, source code, and instructions are all available in the GitHub Repository.
You can also test the donation board in this game.
You can also see a video of the board in action here.

Images of the board in action



A donation board can be helpful for a game because it’s a quick way to allow players to support the game as much as they want. Developer products in general are also great because a player can spend as much as they want on them unlike gamepasses.

Enjoy!

173 Likes

Thanks for sharing, I set it up following directions. I tried testing it by donating 10 robux to myself and I get an error saying my payment can not be processed to please try again later. Is that an issue with the script or because I am owner? Any gamepasses I need to setup or anything that I am unaware of? Thanks for the share!

3 Likes

Hi, are you testing this in Studio?

3 Likes

I made sure to test it live as I know that stuff doesn’t work right in studio. This is a screenshot of the issue. I didn’t know if its because I’m the owner of the game, or if there was an step I missed with the script or maybe roblox just acting weird but same error for last couple hours.

Thanks for any help.

Untitled

3 Likes

Update: I tested it on 3 accounts with the same error so It’s not because I am admin. Also even though I changed the variables in the core file where it says to change it, it still tries charging more. for example my settings are as:

	Amount = 10,
	Id = 1155547783
},
{
	Amount = 25,
	Id = 1155547790
},
{
	Amount = 100,
	Id = 1155547808
},
{
	Amount = 250,
	Id = 1155547838
},
{
	Amount = 500,
	Id = 1155547848

and like when you click 250 it tries charging 1,000 still.

2 Likes

You need to create your OWN developer products and replace the IDs. You are using the IDs that I was using, and Roblox throws an error if you try to buy a developer product that is not from the universe you are in.

If you read the setup instructions:


8 Likes

My apologies. I feel so stupid. I missed that in the gethub setup. Thank you.

5 Likes

Pretty well product but you would add a custom donation amount

2 Likes

This is an amazing donation board, keep it up.
However I would recommend leaving the surface ui design to the user to customize more. So in other words, make the donation board less pretty so the user can experiment and try out UI design as well as learning the code behind your donation board, and this is mostly for the users that prefer to see it working and then look into it.
However that is mostly just my opinion. :+1:

1 Like

This is difficult because you can’t charge a specific amount of robux based on user input. I will look into having a developer product for each unit group setup and then charge the products in order.

E.g you would set up a product for 1 robux, 10 robux, 100 robux, 1000 robux,

Then if you wanted to donate 1223 robux you would be charged 1000 twice, 100 twice, 10 twice, and 1 three times.

2 Likes
2 Likes

This is a resource I did not know about. I will look into implementing it.

1 Like

Update: This method requires an alternate account to own the place and the donation prompt takes about 15 seconds to pop up after you enter your amount. Although it’s a nice resource, I won’t be adding support for it because this would no longer be a “quick” donation board.

If you’re interested in customizing the board and adding support for it yourself, I’d love to see the final product!

2 Likes

How would I go about adding a top donator’s statue to this? I really love this idea by the way! :+1:

2 Likes

This is quite simple! You would need to use Players:GetHumanoidDescriptionFromUserId. Here’s where:

In ServerScript Core, find the updateInternalBoard function. It has a for loop where it indexes through the ranks, look for the line for rank, data in ipairs(page).

To get the UserId in the for loop, you just need to reference data.key because the keys in the OrderedDataStore are just UserIds.

You could add a conditional statement checking if rank == 1 at the end of each loop, and if it is (meaning the current index is the #1 on the leaderboard) you could run this on the Humanoid of wherever your statue is:

HumanoidReference:ApplyDescription(Players:GetHumanoidDescriptionFromUserId(data.key))

Hope this helps!

3 Likes

This works perfectly! Thanks so much! :smile:

2 Likes

I don’t recall, is this an effective way for non-premium members to get paid?

I’m not sure there can be a definite answer to that because it depends on your player base—how willing they are to donate to you which coincides with how dedicated they are to your game.

The statue method that @Agoulstic decided to implement would actually be great in my opinion; being at the top of the leaderboard gets you a statue in game, and that can mean a lot to a player if it’s their favorite game.

I’m using this system in a game I plan to release in a few days so I’ll update this thread with the donation sale statistics after it’s been out for a bit. I also added the statue.

2 Likes

A statue for the highest donator? hm, pretty smart.

1 Like

Works really great! You saved me so much time thanks dude!

2 Likes