While I wish to say this is good, I simply cannot, due to many issues I find with anti-cheat.
My main concerns are performance, false bans, Grapejuice, and client-scripts.
Client-side scripts
Most cheater basically just run modified/their scripts through an injector, which (other than injecting) is the same thing as a local script.
Say we have a spectator script that highlights all the players, this is basically a conditional wall-hack.
if(isSpectating) then
highlightPlayers()
end
all a cheater would do is:
if(true) then
highlightPlayers()
end
or
highlightPlayers()
Roblox is simply too broad to just
robust is not enough, Roblox is a platform we have games such as Doors (most actions are synced with the server), that use the Roblox engine as intended, and then we have games that push the engine to its limits such as Phantom forces (view models, client/server hit registration)
The other problem is, Roblox already has client-side anti-cheat. You can go to any cheating forum, and they describe the detection measures Roblox uses. Due to the innate nature of local scripts desynchronization will occur, I have no idea how Roblox would create a server-side anti-cheat.
Performance
I don’t think I need to talk about performance and overhead as we are all developers here.
Grapejuice
Grapejuice is a custom Wine implementation for Roblox so that it may run on Linux.
I know Linux users such as myself are the minority of minorities, but this needs to be addressed in my opinion. I use Grapejuice to play Roblox on my Linux system, and games with invasive anti-cheat just don’t run.
False bans/alt-accounts
I have alts, I don’t want my alts being banned. I use my alts to do things such as replay games, and mess around doing things that may get me banned from a game (not violating the Roblox TOS)
Highly biased, I know, but still there are legitimate reasons to have an alt.
I don’t need to say much about false bans, they’ll exist.
Overall, I think this will just be a negative as cheaters will just bypass the anti-cheat, and players will get lower performance ![]()