How to decide whether a player is a cheater
#1

Solving the problem of cheating in computer games is at best an uphill struggle, and at worst mathematically impossible. The situation in SAMP is currently so dire that admins have to keep a constant watch out. The problem is compounded because people have no confidence that their peers are not cheating. People often accuse others of cheating without any objective basis, and sometimes maliciously. This makes vote kicks and community reporting of cheaters ineffective. Scripted anticheat is effective at some of the obvious and simple cheats, but these cheats are rarely as harmful to the game as the others which are more subtle (e.g. weapon hit hacks). Cheat authors are obviously designing countermeasures (re: fake minigun death), and we can only expect this practice to continue.

All this means that an admin must witness evidence of cheating directly, using watch tools or whatever available, and ban the offenders, or the game will be unplayable. This is the most effective approach and I have a team of admins operating on my server who have the power to use tools like /watch and /ban. The usual way things happen is that one players accuses another of cheating, and the admins then investigate the allegation to see if they can personally find any evidence.

However, the bugs and features in SAMP make some perfectly legal behaviour *look* like cheating. Lag is an obvious example, sync issues can also cause mysterious effects. This is why I'm writing this, I have previously banned people from my server for what I assumed was cheater behaviour, but which I subsequently discovered to be due to SAMP itself. We can only expect the hackers to write cheats that look more and more like natural SAMP behaviour, so this situation may get worse.

Making objective decisions as an admin is incredibly hard, you have to keep in mind that your purpose is not to ban every cheater, but to make sure the game is not ruined. Consequently it is best not to ban people unless you see a lot of evidence that they are using cheats to ruin the game. Luckily, if someone is actually ruining the game, they are usually being unsubtle and thus you can discover what they are doing easily.

The situation will be improved if admins are efficient at discovering cheaters, but also if players give good explanation as to why they suspect a particular player is cheating. Often I see a conversation like the following:

<Idiot> joe is cheating!
(Idiot starts vote ban on Joe)
<Joe> no im not
(A few votes come in)
<Admin> how?
<Idiot> hes using hacks
<Admin> what hacks
<Idiot> health
<Joe> he just missed me
<Idiot> no i saw loads of blood come out

It seems impossible to actually educate people about the counterintuitive nature of weapon damage in SAMP. It's quite possible that Joe was cheating, or that he was lagged, or there was a bug, or "Idiot" is just frustrated by his own ineptitude. Basically players just need to learn to be more specific about their claims, and to understand how the game works. Yeah right.

In the absence of helpful players, the duty falls to the admin to try and find out whats going on. Assuming that the admin has the kind of tools I wrote for the Protect the Prime Minister server (which are pretty simple), it is still difficult to really tell, as you will have missed the incident that provoked the cheat report.

The most important tool is /watch, which makes an admin hover a given amount above or below the suspect so they can see whats going on. Of course people who see this think that the admin is cheating, but they tend to get ignored by the other admins Code for /watch is embedded in the Protect the Prime Minister code, available at http://spark.woaf.net/protectpm/.

(There are probably more advanced tools out there, please write about them in this thread if you know of any.)

These are the cheats I know and I can identify, and the "false positives" caused by bugs that I have discovered. The most dangerous cheat is (in my opinion) the health hack, because in Protect the Prime Minister, the game is ruined if the PM cannot be killed


Health hacks:

There are two of these that I have discovered. The first is easy to detect, whereas the second is virtually impossible.

- Cheaters can set their health back to 100 constantly

This is easy to detect, you check the players health, if it is 100, the admins just need to /sethealth 99 and then use /gethealth to see if it magically moves back to 100 instantaneously. Best to do it a few times to make sure, as they could have eaten food at that moment. Darco's anticheat can detect this, but things get more complicated if you have medics and hearts and stuff.

- Cheaters are invulnerable to bullets

This is like godmode in the game, I think they can sometimes be injured by unconventional deaths like falling.

This is a pain to detect as you don't know if the person shooting the bullets either can't aim, or their target's position is not synced due to lag. Not only that but it appears naturally and legally in some situations e.g. the "lucky victim" bug, as I will explain. Needless to say you have to /watch the suspected cheater and if they are walking through huge gunfights, constantly killing people (different people!) then you may have a case for their guilt. This is about the best you can do, as an admin. They will usually lose no health at all, which is most unusual as even the best player will lose a few % when fighting other people, especially if the situation is very chaotic. Let us hope that noone manages to write a hack that lets the player be hit occasionally but blocks most of the shots! Bear in mind that they may still be harmed by explosions and stuff so they may not be running around with 100% health, but they will probably be running around with a constant amount of health that never decreases in gunfights.

Aside from the lag issue, and the fact that different clients have different ideas about where everyone is, there is also the "lucky victim" bug. I noticed this while playing on a lan with my flatmate, who was running my GTA install, and thus had no hacks. Suppose there are two players in the game, the Lucky Victim and the Unlucky Victim. This bug only affects these two, everyone else will not realise it is happening. The Lucky Victim will not be harmed by the Unlucky Victim, but will be harmed by others. The Unlucky Victim will not be able to harm the Lucky Victim, but will be able to harm others. The Unlucky Victim and everyone else sees the bullets hitting, but the Lucky Victim believes he his not cheating. This obviously leads to confusion and cheat reports, when the Unlucky Victim fails to kill the Lucky Victim and end up dying. Usually when the Unlucky Victim respawns, the bug goes away!

What is happening? The Lucky Victim is displaying a character model for the Unlucky victim on their computer, this is what you see as the opponents in the game. However, the Unlucky Victim is not rendering properly for the Lucky Victim, the animations are not showing, and he is walking around in a rigid fixed position, often with arms at his sides and his legs not moving. Only the Lucky Victim will see this, the Unlucky Victim (and everyone else in the game) will see normal animations.

If the Unlucky Victim's arms and legs do not move (according to the point-of-view of the Lucky Victim anyway!) then he cannot lift his gun up and aim, and thus he cannot fire, thus no bullets are produced and the Lucky Victim never gets harmed. Remember that bullet damage is done on the victim's client, not on the gun firer's computer, and in this case that is the Lucky Victim's computer. Result: The Unlucky victim will think the Lucky victim is cheating. All of this also applies if the Lucky Victim is driving a vehicle! Sometimes it occurs when the Unlucky victim is in a vehicle, e.g. a bike, and finds that no matter how much they shoot the car in front of them, it does not start smoking. I believe this is all related to the same bug or several bugs that are very similar.

So, if you're an admin and you cannot kill someone, don't instantly ban them, they may be just be the Lucky Victim, and you may be the Unlucky Victim. Also, if you witness someone shooting someone else repetively but not knocking off any health, you have to test whether others can harm them to see if it is a cheater or this bug that is causing this.

Also, unoccupied vehicles are not synced, i.e. they can be in different positions on different clients. If the Unlucky Victim is standing on a vehicle (e.g. a boat) and the Lucky Victim's client thinks the boat is somewhere else, then he will "fall" constantly, although his actual position will remain constant, i.e. the Unlucky Victim will "hover". When people are falling they can't shoot, so again the Lucky Victim is not harmed when the Unlucky Victim believes his bullets are hitting.


Flying cars:

This is pretty harmless, and very obvious to anyone who sees it, you have to be careful its not just one of those random car "launches" you get in GTA, especially if things spawn inside other things. Also don't ban the passenger Everyone has probably noticed that sometimes its possible for two people to get into a vehicle (as driver) at the same time, and confuse the game.


Teleporting:

A range of sins, people warping to the top of buildings (in SF the game engine lets you do this with the tall building, just like in LS, but in SF there is no "yellow triangle" marking the teleporter). People can also "ghost" over the map, through buildings and the ground, etc. When people do this, you can see "UFOs" on the radar, moving around very fast and making tight corners irrespective of the terrain. It's pretty harmless and obvious and doesn't affect the game that much (unless you have a "hard to get" weapon pickup).


Weapon hacks:

-Apart from knowing that someone is using a weapon which is not on the map (note: you cannot use the "death messages" to determine this anymore), you're pretty stuck here as the script does not know what people's weapon status is. You have to actaully observe someone using a weapon which does not exist on the map before you can be sure that they are cheating. Don't forget that fire extinguishers are legally available from burgershot!


Cars being moved to a person just before they get in it:

This is probably not a cheat, although there is no reason why a cheat could not be written to do this. Firstly, why bother writing it, since there are already cheats that move the player to the car? What is probably happening here is that the unoccupied vehicle is not synced, and your client thinks its somewhere different to where the soon-to-be driver thinks it is. Once he gets in the car, the game starts propogating that client's version of events to everyone else, and you will see the car warp to its "true" location, based on the driver's client's point-of-view. Unoccupied cars are moved about by collisions, gravity, and people can get out of them while they are moving, so this is quite a common thing to see.


Thats all I've found / can remember. Please post your experiences on cheater behaviour, and also the bugs that make people look like they are cheating when they are not. Thanks for reading this very long post
Reply
#2

Wow sparks, Nice post should be stickied
Reply
#3

Ho..ly... crap. O_o

Really long and thought out post. I'll finish reading it later :P

EDIT: Read the post. Great job man. I might have to sticky this.
Reply
#4

posty i think you should ,
Really nice post alot of thought and will stop newbs coming and posting 'Why wont they die'
Reply
#5

Quote:
Originally Posted by Spark
Cars being moved to a person just before they get in it:

This is probably not a cheat, although there is no reason why a cheat could not be written to do this. Firstly, why bother writing it, since there are already cheats that move the player to the car? What is probably happening here is that the unoccupied vehicle is not synced, and your client thinks its somewhere different to where the soon-to-be driver thinks it is. Once he gets in the car, the game starts propogating that client's version of events to everyone else, and you will see the car warp to its "true" location, based on the driver's client's point-of-view. Unoccupied cars are moved about by collisions, gravity, and people can get out of them while they are moving, so this is quite a common thing to see.
There is a cheat where they can teleport vehicles to them. I was playing yesterday and someone was spawning hundreds of different vehicles out of nowhere.
Reply
#6

i didnt think it was possible for static objects to be spawned. cos the server dies. or do u mean people were bringing vehicles to them, but it looked like they were spawning them. sorry if im rong
Reply
#7

Someone was teleporting vehicles towards them and then getting into them to make them appear on my screen. He put about 30 vehicles on the pirate ship.
Reply
#8

dick heads
Reply
#9

*stickied*
Reply
#10

Quote:
Originally Posted by Rockyfella
There is a cheat where they can teleport vehicles to them. I was playing yesterday and someone was sprawning hundreds of vehicles out of nowhere. e.g planes, helicopters, trucks and many other different types. Excellent topic should be pinned.
Ah yes, right you are, I was assuming that the cheats are designed for a purpose, whereas in reality they are written because someone wondered whether or not they could do that

Heres some stuff I forgot before...


Armour cheat:

If there are cheats to give you weapons, there are probably cheats to give you armour. However, there's a bug where you sometimes spawn with the armour you last had, especially common when the round restarts and everyone is respawned even though they were still alive. This armour is invisible to the other players until you get shot (I think) so it looks like it has spuriously appeared.

Slightly off-topic, it's also possible to spawn with the health you had before you spawned, i.e. with nothing if you died and respawned, or with partial health at the start of a round. The mode programmer can work around this by setting a player's health to 100.0 on player spawn.


Speed Cheats:

Cheaters can drive faster than the game should allow them, overtaking everyone else. I am suspicious about darco's method of building tracks from the GetPlayerPos plots, calculating a velocity and kicking people if they are too high. I used to work in the aerospace industry, on radars, so I know its possible to record reliable tracks from a set of noisy and spurious plots, but is it not possible to go very fast in certain circumstances, without cheating, e.g. nitros, diving in a plane, a sequence of teleports, etc? If you are exceeding the max speed of your vehicle, maybe that is because you are being pushed along by a more powerful vehicle. It's hard to intuitively judge whether someone is using a speed cheat because the physics of the game probably aren't that realistic as its not a pro racing game, especially when there is lag.

Maybe admins could be messaged when someone exceeds the "usual" speed for their vehicle and then they could investigate it. I'm not sure how nitros appear to other players, when they are used, however. It would be easy for the hacker to claim that they are just using a lot of nitros that they bought, instead of speed cheating, and it might be hard for the admin to verify this story if they just see a normal car going fast. Certainly visible vehicle damage (the crumpling of bodywork, etc) is not synced, so why should the exhaust be?

I don't think speed cheats are as serious a problem as the other cheats in the DM modes but they are often very subtle and hard to detect. In the race modes I imagine it's a major problem.
Reply
#11

Very nice post sparks, I shall make sure our admins all read this, both new recruits and old hands.
Reply
#12

Quote:
Originally Posted by MrBump
Very nice post sparks, I shall make sure our admins all read this, both new recruits and old hands.
Same here, i had alreay made a similar one in ''how to catch a cheater on our server'' regarding the server rules but i don't talk of types of cheats so especificaly.
Reply
#13

nice post
Reply
#14

Very Nice Post indeed


About the Speed hacking counter messure. Well im thinking that it could wait for 10 seconds after player spwans and then activate...So nobody gets banned for just selecting a character.

Then for car speed hacking..You could get the max speed of every car(Very Long Time To Do) then just set max speed maybe 50 MPH faster then that. But there is still a certain issue with lets just say you drive off of chillad and are free falling.

So there is alot of variables in this procces but I hope for a day that there is No Cheaters ever on SA MP(Why am I thinking this will never happen)
Reply
#15

The way to ban cheaters never was and never will be trough scripts in gta, it also has been due to admins so you should brag about that less and spend more time on your servers, the sa-mp and individual coders do what they can, it is impossible to create a perfect script so the solution is always a heavy watch duty from admins.
Reply
#16

I think the best way is to prevent data from being altered... but nevermind...we just cant deal with cheaters right now...
Reply
#17

Quote:
Originally Posted by BoZo
I think the best way is to prevent data from being altered... but nevermind...we just cant deal with cheaters right now...
I agree, the battle against cheating was lost some time ago, the game will suffer until samp has real anticheat features, but in the meantime we can limit the damage, and thats what this thread is about.
Reply
#18

I'd also like to mention something that may be mistaken for cheating.

I was playing on the party server, FBI team, and me and a team mate got into an abandoned Sentinel. After driving it for less than a second, it respawned back in the Triad base. I'm actually not sure why no one accused us of hacking, but I'm sure that this has happened on other servers with people accusing others of hacking.
Reply
#19

Quote:
Originally Posted by Nfsjunkie91
I'd also like to mention something that may be mistaken for cheating.

I was playing on the party server, FBI team, and me and a team mate got into an abandoned Sentinel. After driving it for less than a second, it respawned back in the Triad base. I'm actually not sure why no one accused us of hacking, but I'm sure that this has happened on other servers with people accusing others of hacking.
This is a perfect example of how there is little glitches in the game. I have had this to and I think it has to do with how the car is unsynced.

If a Noob sees this he will instantly think you were hacking I know it...Without listening to reasons.
Reply
#20

good post specially for admin
Reply


Forum Jump:


Users browsing this thread: