Yeah, I'm open to any ideas you guys have so I don't take the server in the wrong direction.

The server hasn't been cracked for three months now.  Most of the players who come to our server don't use cracked clients so the situation where we'd loose players when the server isn't cracked isn't really an issue anymore.  The crack is machine-wide and we will only have one machine- the only way to have two different servers is to do some &quot;crazy shit&quot;.  I don't really want to have a cracked server though- not so much about the people from Russia, the Philippines etc... but it makes it harder to ban people.

The lag issue is a bit more complicated though.  You can have 4 people on the server complaining about lag and when I look into it- it's 4 different things even though they describe the same thing.

The main thing I'm able to replicate in tests and see when I profile the server is the problem of too much shit going on at any one time.  This happens more often on small maps- Anarchy halls, Shoebox, Arena, Microcarnage etc...  The server is single-threaded which means there's really no concurrency and the server has the authority to process pretty much everything that goes on (where shots go, when shots can be made, how much damage a shot takes, when someone dies, when someone can get in a veichle, webadmin requests, server queries etc... etc...).  UT3 really isn't efficient.  Reliable commands (commands that NEED to be executed: respawning/going into vehicles, webadmin requests, map votes) especially bog the server down.  I can put a large file on the Webadmin and request to download that file and everyones ping goes to 900+ until I finish downloading.  The last time we were flooded was because of excessive vote commands-  it really doesn't take a lot since the code is single-threaded.  Any unreliable commands (text messages, playing sounds, vehicle movement, ping updates, jumps, dodges, taking shots) will simply be ignored or put off until the server feels like processing them.  The more stuff that's going on means the more spread apart updates register per player.

Best way I can think of to fix this is:

- Run UT3 on a processor that has better single-thread perf or higher-priority.
- Lower the player count on the server.
- Remove the small maps.
- Increase the tick rate of the server (more CPU+more bandwith)

I'm moving the server to a better Chicago network but the Internet isn't perfect.  The datacenter has a better network footprint- epesially for people in Europe ( http://www.peeringdb.com/view.php?asn=32748 ).  Some people just have shitty internet though and the player count on our server requires a little bit more bandwith from your ISP than others. 

Testing with high ping players doesn't really cause any lag to the server.  High pings don't seem to make players any harder to hit than someone with a 20 ping and doesn't melt the server where you're shots don't fire or register.  Packet loss is a different story though as on-foot movement becomes inconsistent (vehicle movement is not affected).  People with high pings tend to have packet loss though.  Too much packet loss (or the player drops the connection) will force the server to move the player and when that happens they're just moving in a straight line- easy to hit.  I've never seen any proof that these players lag out other players.  I can't replicate anything other than people with packet-loss have irregular on-foot movement.  People warping around on our server shouldn't be on there anyway.

As far as trying different patches- we really only have two patches to look at (2.0 and 2.1).  2.x and 1.x are NOT compatible.  If we go to 1.3, 1.2, 1.1 or 1.0 we'll need to keep two different installs of UT3 (once for our server and another for matches).  Then we'll need to remove several maps that use 2.0/2.1 assets.  A redirect didn't come until 1.1 and the seamless travel fixes for custom maps didn't come until 1.3.  We can get custom maps working in 1.2 but we need a special mutator to force seamless travel and even with that there are problems.

Patch dif:

http://ut3ref.dfbgaming.com:9090/uscript_dif/log.php?repname=uscript&amp;path=%2F&amp;isdir=1&amp;peg=0&amp;logsearch=1&amp;sr=1&amp;er=6