I own a game called 3D Planets Simulator and I am experiencing issues with hackers, to those wondering why :
someone got banned from the game for hacking on two alts, got banned from the discord server for n word bypass, now he is raiding the game with his friend.
they’re flinging other players btw
I need a way to actually stop him, I use the ban api but its not correctly working and hes got a way around it, and his source of alts gets him multi-month old alts so an account age minimum requirement wouldn’t work (and is already implemented). I need ways to detect alts reliably, doesn’t matter whos alts, I would just like to get rid of this issue, and I suspect common velocity based anticheats wouldn’t work, as getting flung is very easy, and my game doesn’t use regular roblox gravity.
heres some stuff that you should know :
the game uses a player gravity controller to make them walk around spherical planets, and theres some objects with extremely high gravity such as “Abyssion”, which has sufficient gravity to fling them very fast, and while its supposed to kill them, sometimes you go fast enough to avoid it and get flung at thousands of studs per second, so checking if someone is going ridiculously fast wouldn’t really work in my opinion.
Basically, how do I get rid of alt accounts reliably without getting rid of legit players?
I’d be fine with doing something that filters out brand new accounts, alt or legit player, because most people are not playing 3ps as their first game.
Every second, see how many studs a player travels by storing their X or Z position in a variable, then a second later store their new X or Z position in a different variable.
Find the difference of the 2 variables.
Have a variable that is true when they are flung so it doesn’t trigger anti-cheat.
If the difference is a lot larger than your default player walkspeed and they are not being flung, kick or ban the player.
Thats so he can’t speed hack but the rest I’d probably need to know more about the game.
local flinging = false
local maxWalkSpeed = 30 -- Studs Per Second
-- Add a bool value in each player and have it turn on when they are flung, In this I will call it "isFlung"
game.Players.PlayerAdded:Connect(function(plr)
local char = plr.CharacterAdded:Wait() or plr.Character
local oldPos = char.HumanoidRootPart.Position
while task.wait(1) do
local newPos = char.HumanoidRootPart.Position
if math.abs(newPos.X - oldPos.X) > maxWalkSpeed then -- Determines if the absolute value of their new position minus their last position is greater than maxWalkSpeed.
if plr:WaitForChild("isFlung").Value == false then -- IF they are not being flung
plr:Kick("Cheating.")
end
end
end
end)
i feel it would be hard to do this because the gravity works with line forces and the intensity varys by planet, do you know ways to detect “suspicious” accounts?
the issue isnt progression, they’re flinging players with their character or unanchored parts they got network ownership of, im thinking of a solution to that, but i want help with finding alt accounts, i had the idea of checking if the player has at least 5 of any badges from any games but thats hard to do without https service which is a bit unreliable.
If you see one of his alts in game you could ban everything on his avatar, and for the network ownership problem you could delete unused parts quickly maybe if you aren’t already.
The second thing could might work if you aren’t already doing it, but other than that I don’t really know, unless you changed your games avatar type when not many people are online, that could possibly change something but it could also break something.
just detect if the players root has abnormal velocites on the server or / and client, and detect foregein isntances. Then hide the script useing getfenv.
It’s really simple to detect your exploiters right now, and then alt account ban them too.