SpeedHacking Torque for fun and profit.
by BrokeAss Games · in Torque Game Engine · 01/04/2007 (4:10 am) · 42 replies
I have asked for help with this in the past and never received any answers or found a solution.
Apologies for airing the dirty laundry but it has to be done.
Maybe this post will help cultivate a usuable fix/solution.
SpeedHackNT (and others) are programs that speed up an application's running speed.
In a client/server environment this can do numerous odd things.
In StarWars Galaxies I used this for nearly a year before they patched it (running faster, healing quicker, attacking faster and just straight pwning ebay twink jedi faces).
I used it the first time I loaded Torque.
I never load Tribes 2 without it.
In Minions of Mirth I used it until they removed RvR.
In my Torque project (Ruin Online) I use it daily.
This program helps a person understand what is client side and what is server side.
The reason I post here in the private forum is because Torque is vulnerable to this type of cheat.
I realize people shouldn't be cheating in the first place, but the facts of life (and video games) is that people do.
I'm probably one of the worst.
A solution needs to found as cheating does impact commercial online gaming (via player experience).
Someone may argue what is server side and what is client side, but when I'm out-running 10 players who are crying "sploiter! cheater!", the point gets made everytime.
I have only posted this because I (and many more I'm sure) need a solution.
A group of 13 year olds running this who are playing on your server can really have a negative effect.
Please be responsible testing with this and do not think you found a "new leet hack" (speedhacknt is VERY old).
Run speedhack, select the application to hack and press + for faster - for slower during play.
There are many sources for download, here is one:
SpeedHackNT
Speed Gear and many other similar programs exist also.
Apologies for airing the dirty laundry but it has to be done.
Maybe this post will help cultivate a usuable fix/solution.
SpeedHackNT (and others) are programs that speed up an application's running speed.
In a client/server environment this can do numerous odd things.
In StarWars Galaxies I used this for nearly a year before they patched it (running faster, healing quicker, attacking faster and just straight pwning ebay twink jedi faces).
I used it the first time I loaded Torque.
I never load Tribes 2 without it.
In Minions of Mirth I used it until they removed RvR.
In my Torque project (Ruin Online) I use it daily.
This program helps a person understand what is client side and what is server side.
The reason I post here in the private forum is because Torque is vulnerable to this type of cheat.
I realize people shouldn't be cheating in the first place, but the facts of life (and video games) is that people do.
I'm probably one of the worst.
A solution needs to found as cheating does impact commercial online gaming (via player experience).
Someone may argue what is server side and what is client side, but when I'm out-running 10 players who are crying "sploiter! cheater!", the point gets made everytime.
I have only posted this because I (and many more I'm sure) need a solution.
A group of 13 year olds running this who are playing on your server can really have a negative effect.
Please be responsible testing with this and do not think you found a "new leet hack" (speedhacknt is VERY old).
Run speedhack, select the application to hack and press + for faster - for slower during play.
There are many sources for download, here is one:
SpeedHackNT
Speed Gear and many other similar programs exist also.
About the author
http://www.youtube.com/user/BrokeAssGames
#22
Edit: You need to understand why I do not believe you. It has nothing to do with you or what you posted. It has to do with the fact that I have been working with this part of the engine and studying how it works, and I just couldn't see how it was possible.
01/04/2007 (4:02 pm)
Read my above post and get back to me. I'm very interested in discussing with you on how to fix the movement code :)Edit: You need to understand why I do not believe you. It has nothing to do with you or what you posted. It has to do with the fact that I have been working with this part of the engine and studying how it works, and I just couldn't see how it was possible.
#23
It does work on stock Torque, Tribes 2, MoM, and many non-Torque games.
In fact, I'm headed over to MoM now to demonstrate.
Josh if you have ears on, this is a one time thing, I understand if you have to ban me, but I'm being forced to go to great lengths to prove this to ppl who might be able to help.
01/04/2007 (4:12 pm)
Stefan, you must have modified network code (what did you do?).It does work on stock Torque, Tribes 2, MoM, and many non-Torque games.
In fact, I'm headed over to MoM now to demonstrate.
Josh if you have ears on, this is a one time thing, I understand if you have to ban me, but I'm being forced to go to great lengths to prove this to ppl who might be able to help.
#24
01/04/2007 (4:17 pm)
Keep an eye out for the character: Ruledo
#25
01/04/2007 (4:21 pm)
I tried with stock Torque, Ari. MoM is *not* stock and probably changed the way (as hinted by Josh above) movement is scored.
#26
Josh should know that 'Solvar' Aint doing this to max out ;), so theres no danger in me saying I did this 'test'.
All that happened was me being able to move idiotically fast, and all clientside animations/effects was going so fast it was nuts to look at -and at max cheat speed game was actually kinda unplayable!
But besides that a player thus being able to outrun any mobs/enemies and avoid melee (maybe othe rthings too), the real important things like spell casttime, and cooldown, etc. remained the same. So grats the the package handling there Josh!
Now this 'displacement' of the player -avioding melee (and thus breaking the planned gameplay) is beneficial for eg. low level kiters etc. So a way of comparing the Object::Player(thisposition); with Object::Player(thatposition); due to timestamp or serverticks might be a solution.
(Trying to derail this into a tech thread) ;)
01/04/2007 (4:25 pm)
Well as Im making a mmo myself, I am interested in seeing possible hacks drwned and cheaters fried. So today I tested this on MoM amongst things!Josh should know that 'Solvar' Aint doing this to max out ;), so theres no danger in me saying I did this 'test'.
All that happened was me being able to move idiotically fast, and all clientside animations/effects was going so fast it was nuts to look at -and at max cheat speed game was actually kinda unplayable!
But besides that a player thus being able to outrun any mobs/enemies and avoid melee (maybe othe rthings too), the real important things like spell casttime, and cooldown, etc. remained the same. So grats the the package handling there Josh!
Now this 'displacement' of the player -avioding melee (and thus breaking the planned gameplay) is beneficial for eg. low level kiters etc. So a way of comparing the Object::Player(thisposition); with Object::Player(thatposition); due to timestamp or serverticks might be a solution.
(Trying to derail this into a tech thread) ;)
#27
All you've done here Ari is help others cheat and publicize your game.
A) If he was making publicity for his game, he would've posted a link
B) This is a private developer forum, not a public gamer forum. So he's not helping others to cheat.
Uhm let's recap. He did put the name of his game in the post where it wasnt needed at all. Yes, we're developers, but developers still pimp their stuff to other devs and collect teammembers this way. Its not hard to google the name and find the site. Do it. It literally takes 5 seconds. And Im sure he think it ups his rep.
He's merely made it more inflammatory by putting the actual link. So the thread gets more attention.
01/04/2007 (4:26 pm)
Quote:All you've done here Ari is help others cheat and publicize your game.
A) If he was making publicity for his game, he would've posted a link
B) This is a private developer forum, not a public gamer forum. So he's not helping others to cheat.
Uhm let's recap. He did put the name of his game in the post where it wasnt needed at all. Yes, we're developers, but developers still pimp their stuff to other devs and collect teammembers this way. Its not hard to google the name and find the site. Do it. It literally takes 5 seconds. And Im sure he think it ups his rep.
He's merely made it more inflammatory by putting the actual link. So the thread gets more attention.
#28
I'll gladly demonstrate on stock TGE.
01/04/2007 (4:49 pm)
Yeah stefan, you bailed MSN to quick.I'll gladly demonstrate on stock TGE.
#29
// controlled by the client?
if(stream->readFlag())
return;
Nm, Stefan, I have people who have verified the error and are helping me.
01/04/2007 (5:06 pm)
I'm trying in player::unpackupdate below:// controlled by the client?
if(stream->readFlag())
return;
Nm, Stefan, I have people who have verified the error and are helping me.
#30
Bottom line: Those tools don't work and I suggest that everyone tests them if you're in doubt :) With a client / server. I'm done.
01/04/2007 (5:22 pm)
Aye, I left when I realized I spoke to someone who had no clue what he's talking about (MoM being an example of a stock Torque game, come on..) and that you wanted to argue about it.Bottom line: Those tools don't work and I suggest that everyone tests them if you're in doubt :) With a client / server. I'm done.
#31
01/04/2007 (5:33 pm)
I'm fairly certain Mr. Ritter has stated he created a custom movement system for MoM using ray-casts. The server is 100% authoritative and any deviation from the client will result in warps. Even if you intercept these warp ticks, if the server will still store the correct client position.
#32
just because it works on some modified version of the engine doesn't, in itself mean much.
The real question is, does the speed cheat currently work with plain vanilla 1.5 torque engine or not?
As for those other heavily modified games, who knows what they might have done to make it more sensitive to such cheats.
first lets establish whether it actually works or not in regular torque since thats what this discussion should be about.
if it does, then we should discuss how we might fix it, if it does not work then it would be good to discuss what those games might have changed so we can inform other torque users on what not to do.
01/05/2007 (8:07 am)
I think we need to establish a base line for the comments "the speed cheat works on such and such a game"just because it works on some modified version of the engine doesn't, in itself mean much.
The real question is, does the speed cheat currently work with plain vanilla 1.5 torque engine or not?
As for those other heavily modified games, who knows what they might have done to make it more sensitive to such cheats.
first lets establish whether it actually works or not in regular torque since thats what this discussion should be about.
if it does, then we should discuss how we might fix it, if it does not work then it would be good to discuss what those games might have changed so we can inform other torque users on what not to do.
#33
I do rememer talking with you about this. I told you the exact same thing Steven L is saying. What you describe just does not seem possible with stock Torque the way I understand it. I told you at that time that, as always, I could be wrong...there could be something in the code I dont know about, but that my opinion was that this hack could not work on stock Torque. I also mentioned that it might APPEAR to work to the person using it, but other players would see a different thing.
Now Steven has tested the toold and reported this exact thing.
Like most people here I do not have enough interest in the topic to actaully download the hacks and do the tests...does anyone else? Can anyone else confirm the results Steven gets?
Clearly the cheat *does* work in MoM, but that is a special case as MoM's code is very very different from stock Torque.
Thanks for bringing up this question, though, Ari. I also think this is utterly worthy of discussion and I would like to have some definitive answers on this too.
01/05/2007 (8:47 am)
Ari,I do rememer talking with you about this. I told you the exact same thing Steven L is saying. What you describe just does not seem possible with stock Torque the way I understand it. I told you at that time that, as always, I could be wrong...there could be something in the code I dont know about, but that my opinion was that this hack could not work on stock Torque. I also mentioned that it might APPEAR to work to the person using it, but other players would see a different thing.
Now Steven has tested the toold and reported this exact thing.
Like most people here I do not have enough interest in the topic to actaully download the hacks and do the tests...does anyone else? Can anyone else confirm the results Steven gets?
Clearly the cheat *does* work in MoM, but that is a special case as MoM's code is very very different from stock Torque.
Thanks for bringing up this question, though, Ari. I also think this is utterly worthy of discussion and I would like to have some definitive answers on this too.
#34
The way stock Torque networking works, the server is authorative on everything. Movement, physics, etc are all calculated on the server and the client can do nothing to change that. The client does process the same things as the server for the purposes of client side prediction and interpolation. This is just to reduce the effects of lag and provide a smoother feel for the client. However, the server will override the client's information every time it sends a move. If the client is too far off it will warp to the correct position.
Thus, stock Torque clients are not prone to this issue.
If you run Torque and start the server and the client in the same instance (e.g. a single player game or when hosting a game) and then try the speed "hack" it will appear to work. This is because it's also speeding up the server. Any clients connected to such a server would likely experience strange issues.
Torque's netcode is some of the best in the business and it is extremely hard to cheat by hacking a well written Torque client. Most of the common cheats, including most - if not, all - of those mentioned in this thread, are just plain not possible.
The best advice I can give to someone who wants to prevent cheating in their multiplayer game is to GOOGLE, READ, GOOGLE, READ, GOOGLE, READ, AND READ AGAIN until you understand the issues involved. Then go back and read up on what Torque already provides for you. Once you have that understanding you will realise that Torque actually makes it really easy to make a secure multiplayer game. You'll also understand that Torque makes it equally easy to shoot yourself in the foot if you don't know what you're doing.
If you don't have that understanding, you'll just continually shoot yourself in the foot whilst thinking you're doing a great job. Then you'll have serious issues once you ship. Or worse, you'll reccommend your flawed solutions to others in these forums and cause other people problems.
01/05/2007 (9:01 am)
So, let me make this absolutely crystal clear.The way stock Torque networking works, the server is authorative on everything. Movement, physics, etc are all calculated on the server and the client can do nothing to change that. The client does process the same things as the server for the purposes of client side prediction and interpolation. This is just to reduce the effects of lag and provide a smoother feel for the client. However, the server will override the client's information every time it sends a move. If the client is too far off it will warp to the correct position.
Thus, stock Torque clients are not prone to this issue.
If you run Torque and start the server and the client in the same instance (e.g. a single player game or when hosting a game) and then try the speed "hack" it will appear to work. This is because it's also speeding up the server. Any clients connected to such a server would likely experience strange issues.
Torque's netcode is some of the best in the business and it is extremely hard to cheat by hacking a well written Torque client. Most of the common cheats, including most - if not, all - of those mentioned in this thread, are just plain not possible.
The best advice I can give to someone who wants to prevent cheating in their multiplayer game is to GOOGLE, READ, GOOGLE, READ, GOOGLE, READ, AND READ AGAIN until you understand the issues involved. Then go back and read up on what Torque already provides for you. Once you have that understanding you will realise that Torque actually makes it really easy to make a secure multiplayer game. You'll also understand that Torque makes it equally easy to shoot yourself in the foot if you don't know what you're doing.
If you don't have that understanding, you'll just continually shoot yourself in the foot whilst thinking you're doing a great job. Then you'll have serious issues once you ship. Or worse, you'll reccommend your flawed solutions to others in these forums and cause other people problems.
#35
There is significant difference in movement code between a multiplayer game that is written to support relatively few players on a server. Games like BF2, Tribes2, Halflife2, Unreal, Quake, etc... and online games like WoW, EQ, etc... the former have more CPU cycles and bandwidth to spend on simulation and double checking player movement... this comes at a cost of course in terms of "warping" due to even minor lag to the servers.
The people who program WoW, EQ, etc are not stupid nor are they missing an important multiplayer security issue. They are working to provide as smooth of a gaming experience to their non-cheating players (the VAST majority) and they then ban their cheating players from their servers. Movement code hacks being extremely easy to detect...
Edit: ... and Tom is right, stock Torque does not have this issue. Though, stock Torque also doesn't support MMO gameplay. Thus the apples and oranges :)
01/05/2007 (10:23 am)
This is apples and oranges. There is significant difference in movement code between a multiplayer game that is written to support relatively few players on a server. Games like BF2, Tribes2, Halflife2, Unreal, Quake, etc... and online games like WoW, EQ, etc... the former have more CPU cycles and bandwidth to spend on simulation and double checking player movement... this comes at a cost of course in terms of "warping" due to even minor lag to the servers.
The people who program WoW, EQ, etc are not stupid nor are they missing an important multiplayer security issue. They are working to provide as smooth of a gaming experience to their non-cheating players (the VAST majority) and they then ban their cheating players from their servers. Movement code hacks being extremely easy to detect...
Edit: ... and Tom is right, stock Torque does not have this issue. Though, stock Torque also doesn't support MMO gameplay. Thus the apples and oranges :)
#36
01/05/2007 (11:12 am)
I'm still curious about this though!Quote:
I'll gladly demonstrate on stock TGE.
Nm, Stefan, I have people who have verified the error and are helping me.
#37
Only way it would work is like tom said, if your running the client/server on the same box that your running the speed hack, then yes it appears to work but that is not a reasonable test.
as for torque not supporting a MMO game, I wouldnt be so quick to say that, Ive gotten way more players to run around a torque map then I have in the dozen or so major MMO games ive worked on.
you would be surprised how few players most MMO individual game servers handle, these game throw tons of hardware at the problem. (most of them are lucky to do 125 to 175 players per cpu).
Ive gotten a few thousand to run around a very large map on less then state of the art hardware using the torque engine(with only minor changes) so dont count it out too quickly :)
granted it does not do seamless worlds so my numbers are referring to the zone styled worlds but even those run a surprisingly low number of players per CPU as well.
so its sounds like the discussion should be more about what are these guys changing(and why) that introduces this cheat to their version of torque.
01/05/2007 (12:56 pm)
@stephen, me too as I can confirm as well as a few recent posters that it does not work on current torque.Only way it would work is like tom said, if your running the client/server on the same box that your running the speed hack, then yes it appears to work but that is not a reasonable test.
as for torque not supporting a MMO game, I wouldnt be so quick to say that, Ive gotten way more players to run around a torque map then I have in the dozen or so major MMO games ive worked on.
you would be surprised how few players most MMO individual game servers handle, these game throw tons of hardware at the problem. (most of them are lucky to do 125 to 175 players per cpu).
Ive gotten a few thousand to run around a very large map on less then state of the art hardware using the torque engine(with only minor changes) so dont count it out too quickly :)
granted it does not do seamless worlds so my numbers are referring to the zone styled worlds but even those run a surprisingly low number of players per CPU as well.
so its sounds like the discussion should be more about what are these guys changing(and why) that introduces this cheat to their version of torque.
#38
It should have been purely a question.
This DOES NOT work on stock TGE 1.5 (except in single player like nearly any other app).
I also loaded my old project which is TGE 1.3 based and it was NOT exploitable over the network.
I do remember it working, but I could be dead wrong, or it may have been self inflicted (or I was not running it networked and needed sleep).
This does work on MoM (and I never stated it was stock).
At this point I'm not going to even bother testing 1.3 or earlier because I got what I came for.
I can now trust that my TGE 1.5 project isn't able to be cheated in this way.
It does work on single player, but cheating in a single player game seems pointless and no one really cares anway.
For now I will go back to coding after following these instructions.
Though a bit of a flame thread I think this should stay for anyone looking for the same answers.
01/06/2007 (1:37 am)
Yes, some of statements were incorrect.It should have been purely a question.
This DOES NOT work on stock TGE 1.5 (except in single player like nearly any other app).
I also loaded my old project which is TGE 1.3 based and it was NOT exploitable over the network.
I do remember it working, but I could be dead wrong, or it may have been self inflicted (or I was not running it networked and needed sleep).
This does work on MoM (and I never stated it was stock).
At this point I'm not going to even bother testing 1.3 or earlier because I got what I came for.
I can now trust that my TGE 1.5 project isn't able to be cheated in this way.
It does work on single player, but cheating in a single player game seems pointless and no one really cares anway.
For now I will go back to coding after following these instructions.
Though a bit of a flame thread I think this should stay for anyone looking for the same answers.
#39
Actually, no you can't. It is still possible for you to write your game in such a way that this is exploitable. You need to ensure that any additional code you write doesn't cause it to become exploitable. As I said, it's easy to shoot yourself in the foot.
You are the only person that thinks this is a flame thread. All I see is intelligent discussion and you misinterpreting constructive discussion as a flame.
That picture is totally awesome.
T.
01/06/2007 (1:44 am)
Quote:I can now trust that my TGE 1.5 project isn't able to be cheated in this way.
Actually, no you can't. It is still possible for you to write your game in such a way that this is exploitable. You need to ensure that any additional code you write doesn't cause it to become exploitable. As I said, it's easy to shoot yourself in the foot.
Quote:Though a bit of a flame thread I think this should stay for anyone looking for the same answers.
You are the only person that thinks this is a flame thread. All I see is intelligent discussion and you misinterpreting constructive discussion as a flame.
Quote:For now I will go back to coding after following these instructions.
That picture is totally awesome.
T.
#40
01/06/2007 (1:57 am)
I have to agree, that's an awesome picture!
Torque Owner BrokeAss Games
BrokeAss Games
I have provided everything needed to backup my claims.
In refrence to the DB post, please search the term "try my product" and you will see that I'm used to backing up my statements.
Also, I'm one of the few who even posted any code in that thread.
If you read this whole thread you'll see why I call it grief.
I am looking for fixed movement code or at least a point in the right direction.
Please post it if you have any helpful information.