As far as the cheats go.  The best source of an anti-cheat tool would be from Epic.  Unfortunately I've never seen any action from Epic against cheats for UT99, UT2003, UT2004 and UT3.  It's always up to the community to create cheat protection.  Often a lot of these anti-cheat tools are written in UnrealScript and you pretty much have to rely on finding security flaws in UnrealScript to even try to detect native cheats.  UTDC was the best anti-cheat I've seen but it was written for UT99 since the game headers were released to the public.

Just FYI I am working on a tool to take screenshots of the client's game, compress the screenshot and send it to the server for admin's to review (PLEASE keep this private for now).  Not the most ideal way to find out if someone is cheating or not but it's something.  One of the main reasons why cheat protection hasn't been released is because a lot of the tricks people used in UT2004/UT99 were removed in UT3.  I'm not exactly sure what you have planned but if you feel Epic will take action against cheaters that will be a good thing.  If anything having the ability to do native hash checks on files, the Dir console command, the AllObjects iterator etc.. back would be great.

[quote=&quot;sl2&quot;]If you’re interested in seeing the application before I release it, I would love the feedback.  I have a good bit of cleanup still; we have been using it for about a year I guess and some things. Just worked well enough.  I have to ask, how did you get the info for your stats app?  If I can be of help on anything let me know.  Do you know much about Pure Vs Custom, as in what makes a Mutators pure, or does it have to be epic content?[/quote]

Sure- I can take a look at your application and give you any feedback if needed.  Let me know how you want to send it.  My email address is ubergeek03@gmail.com.

I used packet sniffing, UnrealScript, a bit of messing around with the GameSpy server and reading the SOAP WSDL ( http://ut3pc.sake.gamespy.com/SakeStorageServer/StorageServer.asmx?WSDL ).  I haven't done anything in a while but I left off trying to figure out how PS3 logs their stats, figuring out per-match stats and duel stats and trying to do work with the achievements.

What happens in Pure vs Custom starts off in UnrealScript.  UnrealScript calls IsPureGame() which is a native function that returns false if any mutator not designed by Epic is loaded.  bPlayersVsBots is true when you're doing a vs bots game (co-op, when BotRatio &gt; 0).

[code:1:6e9df61bc6]// Epic content + No bots =&gt; Pure
bIsPureGame = IsPureGame&#40;&#41; &amp;&amp; !bPlayersVsBots;[/code:1:6e9df61bc6]

Then CopyAndWriteAllStats(UniqueNetId UniqId, UTPlayerReplicationInfo PRI, bool bIsPureServer, OnlineStatsInterface StatsInterface) is called in a stats writer class and that calls self.SetPureServerMode(bIsPureServer); which will say to write stats as pure or not.  You can force a server to report pure stats by subclassing the stats writer class and overwriting these fuctions.

http://www.codekisk.com/unreal/ut3/scriptref/Source_utgame/utdeathmatch.html#37

http://www.codekisk.com/unreal/ut3/scriptref/utgame/utleaderboardwritedm.html

The code above is for an older patch.  Go into the UT3 Editor and open the generic browser then click on the &quot;actor classes&quot; tab.  File-&gt;Export All Scripts.  This should export all loaded UnrealScript classes to UTGame/ExportedScripts in your documents folder.