GameSafetyReview_{JobID}_0??? “Player” and ID of 0? I know this didn’t come from Studio because the game monitor’s disabled in Studio playtests. I don’t know anything about Player’s account age because all IDs less than 1 are allowed to skip the age check. I did this so I can still conduct multiplayer local tests. I also don’t know why exactly the ban data check failed, but it did what it’s supposed to when it does and didn’t let Player through.
So yeah, does anyone know what this is about? 'cause my searches have been fruitless.
PS: My turn to not know if this is the right category or if this post is even applicable for any category, but I put it here since there are surely plenty of technical things involved. Feel free to advise and correct me as needed.
Their question was related to the JobId itself looking strange. A normal JobId has the form of xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx where each x has a hexadecimal value(from 0 to 9 and a, b, c, d, e, f). Normal JobIds don’t have strings like GameSafetyReview in them. That’s what the topic author is questioning and trying to figure out.
I assume this is some sort of reserved server by Roblox for an automated game review. The reason I think the review is automated is that the very first join of the server looked like a default account, with a userId of 0 and name Player. Perhaps the reason the studio test accounts start from -1 instead of 0 is this?
The topic author might have accidentally discovered a way to check for these automated reviews. More specifically:
local function isServerGameReview(): boolean
return game.JobId:find("GameSafetyReview") ~= nil
end
if isServerGameReview() then
--Do stuff
--For example store the data of the server and players on a datastore
end
Also, they might have discovered a way to protect a malicious place from automated moderation:
game.Players.PlayerAdded:Connect(function(player)
if player.UserId == 0 then player:Kick() end
end)
Or:
game.Players.PlayerAdded:Connect(function(player)
if isServerGameReview() then player:Kick() end
end)
if isServerGameReview() then
--Destroy everything in the server, all instances, UI, etc.
end
Hmm heheh, I never thought about how I could deliberately block Player. What I’m curious about now is why this is the only time I’ve seen anything about a review server. I’ve never seen anyone else mention them and this is the only time the game monitor has ever caught one. It would require a potentially nuclear test to prove, but I wonder if review servers are linked to game reports.
I’ve heard Roblox doesn’t have an issue when you put filters with swear words on the server side. So perhaps the reason that account joins is to fetch and analyze the client version of the game, what the clients can see instead of what the server might be doing in the background, and apply the TOS on that.
For example, it may be looking for unfiltered UI strings, inappropriate assets, etc. However, all that is nothing more than an assumption/speculation.
Perhaps trying to stop that in combination with kicking all players with an admin badge or in the Roblox staff group can create some sort of weak game protection mechanism? Basically, that way Roblox staff would need alts to moderate the game or directly download it as a file, also automated moderation would be useless.