Would this be allowed on Roblox? (loot boxes related)

Hello developers,

I was thinking about adding some sort of loot boxes, or I would say randomized awards. However I am not sure if this would be allowed on Roblox, so I would like to get some opinions and feedback about it. I am aware that you guys won’t give any legal advice however I would like to get some thoughts about this.

So what I thought about is that player can purchase a loot box that has no chances, it’s purely randomized (using math.random(100, 200)), and there is no rigged mechanics as well, a player can get 100-200 coins (it will be clearly stated), the price of the loot box will be the same as if the player purchased directly the minimum amount (which is 100).

So what I mean by this, is that in shop player can buy 100 coins directly for R$10, or the player can choose to buy a loot box which can give a random amount of coins starting at 100 and ending at 200, the loot box will cost the same as a minimum (lowest) award which could be purchased in-store directly for the same price of R$10, it’s basically “for sure you will receive your 100 coins, but you may receive a bonus in which in total may give you up to 100 coins (200 coins in total), so technically player doesn’t lose anything, even if the player gets the worst (minimum) award, and I think this would make players more likely to spend their Robux to get a lot of coins but at the same time not losing anything at all.

What do you guys think about this? Is this allowed on Roblox?
In my own opinion I think it is but I am not quiet sure, and so that’s why I want to get some feedback about this.

Please keep in mind, I am new to those loot boxes and I am trying to stay away from pay2win tactics.

1 Like

your not gambling your just doing loot boxes so you should be fine nothing to worry about.

2 Likes

What about those random prizes that simulators have?
Oh I see, never mind then

You mean like eggs yeah those are fine it’s not considered gambling it’s really just for lazy people like lazarbeam or should I say lazybeam :sweat_smile: a haha i know im not funny

Well I am not having any sort of eggs, but like for progressing faster, and since player would be more likely to be tempted to buy loot boxes filled with coins and even repeat the purchase few times to try to get some bonus coins with purchase, and yes it’s often used by lazy people with money.

I wouldnt consider it gambling murder mystery has that and there game is fine so yours should be fine as well.

1 Like

Not only that, they still get more coins that they should’ve gotten anyways, so they aren’t loosing. It’ just to make them more tempted to make an purchase.

1 Like

As a top contributor once said, if you’re unsure if something is against the TOS, dont add it.

2 Likes

I’ve heard that advice before and I’ll vouch for it most of the time, but there’s a lot going on right now with regards to randomized microtransactions, and I feel like what’s described in OP’s post is A) most likely allowed, circumstantially, and B) a very fair ToS question.

A forewarning that my advice here should hold no actual weight–this is just my interpretation.
@Daw588, you should read up on GetPolicyInfoForPlayerAsync if you haven’t already. In the returned dictionary, there’s a bool ArePaidRandomItemsRestricted. The common interpretation of the bool here is of course referring to item randomizers, not currency randomizers–but that said, if players are simply buying in-game goods with your currency, there’s essentially no difference between the two. Abstracting the idea of randomizing items vs. currency, both the currency and the items have a value, and regardless of which is being randomized, the central theme of giving the player a randomly assigned “something” with a set value holds true.

Based on this, I think that so long as you were enabling & disabling the randomization aspect per player based on their respective policy infos, you would likely be in the clear to implement this feature. I will, however, question whether or not the feature is a good idea in the first place. It seems fairly convoluted to me, and I personally would be less inclined to purchase an in-game currency randomizer than an item randomizer. If you’re just looking for an incentive to get players to buy in-game currency, you could always opt for giving “bonuses” based on the amount purchased (10 Robux gives 100 Coins, 100 Robux gives 1250 Coins, etc.).

That’s my interpretation, but please take it with a grain of salt, because like I said, it holds no actual weight on what’s allowed vs. not allowed.

1 Like

So summarizing this, if I do this:

local PolicyService = game:GetService("PolicyService")
local Player = game.Players.LocalPlayer
local result, policyInfo = pcall(function()
	return PolicyService:GetPolicyInfoForPlayerAsync(Player)
end)
if result then
	if policyInfo.ArePaidRandomItemsRestricted then
		-- Hide the loot box GUI and do not allow the player to use it on both client and server
	else
		-- Otherwise show the loot box GUI and allow the player to use it on both client and server
	end
else
	-- Hide the loot box GUI and do not allow the player to use it on both client and server
end

I should be fine with this?

That would work; the scripter in me would make a couple changes to your code, assuming the Gui is hidden by default (just because I’m nit-picky):

local PolicyService = game:GetService("PolicyService")
local Player = game.Players.LocalPlayer
local result, policyInfo = pcall(function()
	return PolicyService:GetPolicyInfoForPlayerAsync(Player )
end)
-- Return here, if there wasn't a result
if not result then return end
if not policyInfo.ArePaidRandomItemsRestricted then
    -- Show the GUI
end

But yeah–like I said, I can’t affirmatively speak on whether or not the mechanic is allowed, but your code would work fine.

1 Like

Policy information should be applied on both the client and the server. Use on the client can hide views (Guis) while the server (en)forces rejections of purchases for items that the player cannot access (e.g. force-returning Enum.ProductPurchaseDecision.NotProcessedYet if policy information does not clear the user to interact with your paid items).


Reading up on some existing threads about loot crates would help you better determine if what you’re doing is allowed or not. In addition, read up on Roblox’s paid random items policy.

A crate of completely equal chance is fine, though it must be clearly explained to players that there is an equal chance of gaining a value between 100-200 coins upon paying for the box. As this is a paid random item generator, make sure to also integrate player policies via PolicyService to prevent users from buying (or seeing) those crates if they are not allowed to interact with such item generators.

So yes, what you are doing is allowed, so long as you respect country laws via PolicyService.

4 Likes