Hacker raid issues

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.

Implement an anti-cheat (Server script)

You can’t use player.WalkSpeed for this so.

  1. 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.
  2. Find the difference of the 2 variables.
  3. Have a variable that is true when they are flung so it doesn’t trigger anti-cheat.
  4. 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.

if you would like, heres the game. (still havent replaced april fools thumbnails)

Example:

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?

If you wanted you could change the maxWalkSpeed depending on the planet.

Unsure of how you would do this, but you could possibly check new players that are progressing quite quick and watch them for suspicious behavior.

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.

they usually use default avatars which would also ban new to roblox players

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.

If the player falls, gets pushed along the way or any other forces speeds the player up (ex: falling) they would get kicked

It only goes along the X axis, you can change it to any axis if you wanted tho, and you could detect when falling too.

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.

explain more about hiding scripts please

It’s pretty simple actually

getfenv().script:Destroy()
getfenv().script = nil

this will make 90% of exploiters unable to edit/delete the script. If you have a secure handshake, it becomes a lot harder.

okay, i’ll consider trying that.

1 Like

What are the players being flung with

Usually the exploiter’s character.

In a loop with can get the character’s descendants and detect if it’s a bodyvelocity, bodygyro, or anything similar.

If it’s one of those, then ban/kick the exploiter. (Only ban if you are 100% sure your game does not use any of those instances.)

rocket parts (such as wooden planks) or characters.

im currently working on making it so they cant use ship parts