Is it possible to prevent bots from rigging the queue?

I have a game for talking in a voice chat (Russian Place / Русское Место). There are some not-so-friendly players who create a queue for the server using bots. Because of this, instead of going to a regular server, regular players end up on an empty server, and no one can join them either. Is there any way to prevent this?

(and ye, sorry if i selected wrong theme, idk what to select lol, i think it’s possible to prevent with scripts)

Edited: it’s IMPOSSIBLE to fix, players just got the job-id of the server and starting sending bots.

2 Likes

just dont count the bots.

can i see the script anyway?

1 Like

oh, I didn’t explain it right.

the bots are queuing up for the server, the game, and the server that the players want to enter - it’s IMPOSSIBLE, because of this, the players enter an empty server.

here is a screenshot (there are no bots in the game, only in the queue):

1 Like

sorry for misunderstanding.

some folks have also encountered this and i think there is no solution for it yet.

and i think its due to network issues.

Well, what I know for sure is that this problem has nothing to do with network issues, it’s being caused by exploiters, as I overheard a conversation between the players who were doing it, and I know it was caused by cheats. In any case, thank you for responding! I will continue to search for a solution, if there is one at all.

Just add like 30 day account age minimum to join a server

Probably use ai to determine what are the chances that Player username is botlike

they only get in the queue, they don’t get in the place, i can’t kick them

Also I just looked at the image, it’s not bots, it’s just Roblox creating a server for you, it happens to all Roblox games that has no server open

“Your position in line: 960” is that creating new server? bro.

I really doubt a queue exists, just so no one is loaded into the game

Even if queue existed, it would be the size of Server Size, not 960 bot size

server size is 50, but I don’t know how people do it, the screenshot wasn’t edited in any way, people sent me videos when they tried to log in to the game, and there was a 960 queue (on video queue is 711):

How does this occur? How can someone achieve this level of exploitation? Wouldn’t this be known from other games? Is it possible this is just an issue with your game?

shutdown all servers quickly and join server instantly

some folks had the same problem.

I know about this, but it happens so often that some of my players start losing their dates because of server restarts, so I’m looking for a different solution.

Oh those are just the bots that Roblox uses to inflate their player count, usually they only appear on the most popular games like Grow a Garden etc. You’ll find these super long queues in every full server that has only default avatars and 1 + the max player count. (see image below)


The reason they make massive queues is to conceal the fact that they are botting games. They don’t want someone to join one of those servers and see that every player is just standing around doing nothing, but also to keep the player count up, since the bots don’t do anything but boost player count they get kicked by the AFK timer after 20 minutes, once a bot gets AFK-kicked a new one joins immediately while preventing legitimate players from joining and finding out that the server is just bots. That is also the reason you commonly see stuff like “6 out of 5 people max.” The second a player gets kicked for being AFK a new one joins from the queue and it appears for a brief second that there’s 1 more than the max player count in the server. You can’t do anything about it because it’s Roblox themselves who are doing this to make it look like more players exist on their platform than there actually are, to get more people to invest their money into Roblox.

I don’t think Roblox has launched so many bots on a game with 10 online players, and there were no bots in my game, only in queue

btw, i think i cant fix it, so i will just put this comment as a solution lol

roblox? 30000000charssssssssssssssssssssssssssss

1 Like

Well, I just want to give an idea and how to realize it.

Idea:
If account age is lower than x days, then reserve a private server, teleport this player there, and let him complete a CAPTCHA. The private server should be created for a special place, under the same game. This place will have some kind of CAPTCHA. A player will have to answer any questions (there is up to you how to make this captcha), and the server will have to decide whether to let the player in, or block him from the game for x days. Next time player joins the game you’ll check his status. If the status is nil, then let him complete this captcha, if the status is Verified then let him in the game, if the status is Blocked, then check when was blocked. If he was blocked for more than x days, then set the status to nil and let him complete the captcha once again.

This system will quickly teleport unverified players from the game to pass the verification. By reserving a server, we’re creating a separate server for each player, in order to not make any more queues in the verification place and the main one :wink:

Structured plan for joining the main game:

  1. Player joins the main game.
  2. Check for player’s status using StatusStore (data store). StatusStore:GetAsync(userId). Tip: use this structure for status value: {name: string, blocked: number?}, I mean table with a name and a blocked value, but blocked value can be nil (we’ll talk about this more in the 4th step).
  3. status.name == “Verified” (let a player in)
  4. status.name == “Blocked” (the status.blocked value will not be nil, and we’ll set it in the verification place in the verification plan later. We’ll set there a workspace:GetServerTimeNow() value. Now, we should check when the player was blocked. And just for an example, we will have 3 days long block period. Write such statement: if (workspace:GetServerTimeNow() - status.blocked) > (3 * 86400) then the player already waited enough time in the block period. Set his status to nil (StatusStore:RemoveAsync(player.UserId)), teleport him to the verification place once again to complete the captcha again (the next step shows how to teleport). else just kick the player from the game)
  5. status.name == nil (teleport the player into the verification place using server reservation and teleportation into a private server).

Structured plan for verification place:

  1. The player should answer or do anything you want him to do. But the main purpose of this, is to make a remote event request from client to server. Use ProximityPrompt, ClickDetector, Touched event, GetPartsInPart, or whatever else, and workspace:GetServerTimeNow(). All these functions can help you make a secure captcha. You should check for timings, because exploiters can easily trigger remote event as they completed captcha. So, make the system smartly.
  2. This step assumes that client sent a request to a server. If the answer is correct and player haven’t answered after 0.0001 seconds :wink: (do any checks you want), then we can verify the player. Otherwise block him.
  3. DataStores are shared between all places under a single game. So we can use that StatusStore without any doubt. If the player answered correctly, do this: StatusStore:SetAsync(player.UserId, {name = “Verified”} and teleport him back to the main game. Otherwise, block him by doing this: StatusStore:SetAsync(player.UserId, {name = “Blocked”, blocked = workspace:GetServerTimeNow()}) and kick the player, don’t teleport him anywhere.

This is the main verification system. If you want, you can make verified status as temporate as blocked status.