Anticheats. (full explanation)

before you start: i had to do a ton of research for this topic, so feel free to leave a like or follow if you learnt something!

have you ever been on swordbattle.io and watched a blatant hacker start attacking everyone on the server?

however, you almost never see these hackers get banned. this is due to either lack of admin attention or ban evasion…

and, i must admit, it is a pretty large job to keep on the lookout for hackers all the time, so it is understandable why this happens.

but it turns out that there is a way that all hackers can be banned involving no admin prescence, or anything else!

anticheat.

but what even is anticheat? in this topic, i will be diving into the world of anticheats, and explain multiple concepts regarding anticheats, including how anticheats and how they work.

some background information.

so, to understand how anticheats work, you first need to understand how clients communicate with the server.

in simple terms, your client is your game, and the server is a network of players - USA and USA2, for example.

clients and servers use something called packets in order to communicate with each other.

but what are packets, exactly? well, packets are pieces of data that store information about the player and the server.

many different types of packets exist, each containing different information the player does. these allow whatever is being done on your screen to be able to show up on the other players that are connected to the server’s screen.

here is an example: if you are connected to a server in swordbattle.io and spawn in near someone and start moving your character.

your client sends movement packets to the server, which reads the packets that are being sent and sends display packets to the player or players near you.

this allows other players to see that you are moving.

there are mainly two different categories of packets that exist: inbound and outbound packets.

inbound packets are packets that the server recieves from the client. for example, if you damage a player, then the server will recieve inbound packets that contain the information that the player has been damaged.

meanwhile, outbound packets are packets that the server sends to the client.

so, the transfer of inbound and outbound packets are what enables coherent networking between different players to exist on a server.

how anticheats work.

anticheats utilize inbound and outbound packets to detect when a player is using hacks.

anticheats are composed of “checks,” which check if a part of a player’s gameplay, like their reach, cps, or velocity, for example, exhibits packet behavio(u)r that wouldn’t be possible in the normal client.

there are two types of checks that exist: logic and heuristic checks.

logic checks compare the behavior of inbound packets being recieved by the server with the behavior of the same packets coming from the original, unhacked client.

to put it simply, logic checks use the packet behavior from an unmodified client as a reference when analyzing the inbound packets being recieved by the server.

here’s an example: when a player hits another player, two main packets are sent to the server: a packet for the attack itself, and a packet for the arm animation.

if you were to use a hacked client where you could attack without the sword animation being there, a logic check would detect only one packet being sent from the attack action where there should be two: it detects whether something is wrong, and if it is, bans the player.

this isn’t the most practical example, but it gets the point across.

logic checks typically include reach, velocity, and speed checks, just to name a couple.

heuristic checks, on the other hand, run algorithms to figure out if the packet behavior from the client is possible to do with an unmodified client by looking for patterns that wouldn’t naturally occur.

heuristic checks typically include autoclicker, aimassist, and killaura checks, just to name a few.

anticheats usually contain several dozens of checks to monitor any aspect of the player and check whether it can be done without a hacked client.

thoughts??

so, what are your thoughts? should this be added or is it too tedious?

1 Like

Maybe after v2. Even though this is important in my opinion, I still do think that other features take precedence over this.

1 Like

i agree with that. this is important, but other things should be the priority.

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.