In the Forums...
Updated: June 12, 1999
Written by: Dan "Tweak Monkey" Kennedy
Originally I was planning on writing a full Half-Life Internet tweak guide, but Gamers.com wrote one hell of a good guide so I don't need to mention all that again. But I used to play Half-Life online almost every day, so I know a few tricks that were either not mentioned or barely hit in this guide that I think are very important, so I'll share some wisdom. If your ISP is good, your ping should rarely jump above 250 with a 56k modem. Mine usually hovers around 150 to 200, but occasionally (usually on laggy servers) it hits about 300 or higher. After you've tweaked your settings a lot, if your ping is still very high, try getting a new ISP. NOTE: Use the ~ or ` key to enter the console. These tweaks must be applied online.
Finding a server that's right for you
When updating the list of servers with the included server finding utility in Half-Life, you can sort by speed by clicking the words Net Speed at the top. Now all the fast servers will be sorted so you can avoid slow ones. Usually, the more players in a game, the more laggy it will be. So don't automatically jump into a 32 player match just because it's a 32 player match.. you'll almost definitely have a much higher ping. Ninety times out of a hundred, team play lags worse than death matches. This is because often times there are more players in team play matches and the team data adds to the lag.
Expect more lag from a Team Fortress Classic server. For some reason (at least that I noticed), team play and TFC servers lag much more than death match servers, even when there are more players on the death match server. If you join a large TFC server, expect high pings with anything less than a 128 kbps connection. This lag and performance issue should be addressed in later versions of TFC.
When you find the perfect server, write down the IP address. This is given when you connect or you're at the console about to join a new map, etc. This is important because most of the fastest servers will have the same IP address at all times. Now you can just connect to the best server when you want a good ping. Also, if possible, find a server in your area. Some servers lag a lot less than others and the reason is simple: location. Location of the server can completely mean the difference between a victory and a loss.
To see the ping values of the servers as numeric instead of green dots, add to the command line: -numericping. How to change a command line: Right click your shortcut to TFC or Half-Life (whether it be in the Start Menu or on the Desktop) and choose Properties. Click the Shortcut tab. You should see the Command Line box with a path like "C:\sierra\half-life\valve\hl.exe". Change this to say "C:\sierra\half-life\valve\hl.exe" -numericping. Choose Okay and you're ready to try it out.
Now you'll have a better idea of what servers are slow and what servers are not. This is not 100% accurate.. refreshing the server list may change the results considerably so try several servers before giving up.
Don't rely on your ping at all times. Using the netgraph is much more efficient for determining lag. I bind the keys n and m to enable/disable netgraph. (respectively) To do this, enter Half-Life. At the console, type bind n "r_netgraph 1" then hit enter. Now type bind m "r_netgraph 0". Now, when playing a game, hit the n key to enable the netgraph, and the m key to disable the netgraph. If things are going perfect, you'll only see the color green (or maybe red at the far right, see below). The smaller the green bars are, the lower your ping is. Yellow bars mean the server is sending you data faster than you can receive it. Red lines indicate that you are losing packets. This is sometimes unavoidable, but if you are losing packets, you are certainly lagging. If you receive blue lines, something is wrong. Either the server just plain sucks, or your ISP does. Bad packets cause the game to freeze solid. If you are getting blue lines or the message "U_REMOVE on full update" in the console, leave the server and try another.
Click to enlarge
When packetloss is as bad as shown above, the game will not function properly or possibly at all. You should either quit and rejoin or find another server.
Avoiding / Fighting lag
There are a few ways to avoid lag in general. The following maps usually lag more than others, so therefore expect a higher ping:
I know these are some of the best levels, but don't complain that your game is lagging if you know the cause. I still play on these maps all the time, but my ping is usually about 50 to 100 ms higher. These levels don't always lag worse, but often do. (Remember, I play this game a lot)
These maps usually don't lag as bad:
If you are lagging too bad to play on the other maps, make sure to check these out.
Click to enlarge
Having a low ping is always to your advantage. Check out the screenshot above where I easily whooped on a 6 player team. The lower the ping, the easier it is. (no offense to the guys in this picture)
Two binds that will save your life
Two of the most valuable commands to bind are cl_allowdownload and cl_allowupload. When connecting to a server, you may notice in the bottom left corner of your screen that there is a little status bar. This is the progress of your uploading/downloading of decals, etc. This makes the game very laggy, especially if it is a crowded game (more decals to download...) Find 4 keys you normally don't use. (I use i,o, k, and l) At the console, type: bind i "cl_allowdownload 0" to disable downloading, then type: bind o "cl_allowupload 0" to disable uploading. Now, when you start a game and it starts to download decals, you can just hit I and O to turn off download/uploading. To turn downloading and uploading back on, type: bind k "cl_allowdownload 1" and then type: bind l "cl_allowupload 1". Now hitting K and L will turn back on downloads/uploads of maps/decals, etc.
If you do not have downloading enabled when you join a server using a map you do not have, you will be kicked from the server... so make sure to re-enable the downloading before rejoining or joining a new server using the key that is binded to this command.
The netgraph is the best reference for tweaking. Once enabled, you'll know exactly what needs to be tweaked.
Click to enlarge
In this screenshot, whose fault do you think it is?
It's not mine, it's the server's. The green indicates that the data is getting through to me fine. The reason it is so high is because the ping is 700 ms here. It is safe to say that this was a bad server. So I quit, and found another.
Click to enlarge
This server was actually fairly good. Notice there is only a little yellow, very little red, and a lot of low green. My average ping here was about 225. When you see a lot of yellow, it is a good idea to raise the rate by about 300 to 500. Type at the console: rate. It will say: rate 4000 or something similar. If you see a lot of yellow lines, you would want to type: rate 4500. If the yellow lines disappear soon, then you have successfully tweaked your lag. If there is more red lines or higher green lines, lower the rate until it seems right.
Pushlatency it another good way to tweak your lag. Type at the console: pushlatency. A value will be displayed again, like pushlatency -500. This the prediction of your lag. This value should be set anywhere from -1/2 your ping to -1 times your ping. Set this value to as high as -150 if your ping is between 150 and 300. If your ping is higher, set the pushlatency as high as -300.
Do this by typing at the console: pushlatency -150 or your desired value. If your ping goes down at all in the netgraph, pat yourself on the back; you're almost done. Here's a little chart showing how I would attempt to use the pushlatency command to decrease lag:
The fps_modem variable sets the cap on the max framerate for modem based gameplay. (If your rate is less than 5500) Decreasing this will often decrease lag, to a point. Don't try setting this to 5 or some wacky number like that just to decrease your lag, because your framerate will then be maxed out at 5, making the game less playable than before you tweaked it. Instead, set it 30. Sure it isn't fancy, but setting it lower hardly reduces the ping at all, and makes the game choppy. Check your current fps_modem by typing at the console: fps_modem. To set the value to 30, type fps_modem 30. If you want the game to be a bit smoother, try setting it anywhere from 30 to 40. I don't recommend setting it higher than this because the visual difference is not justified by the lag increase. NOTE- If your rate is set to a value much higher than 5000, your computer will assume your are playing a LAN game and use the command fps_lan.
Also check out CRIME's Internet optimization guide. This page has a lot of good tips for Quakeworld, Hexenworld, Hexen II and Quake II. However, most sections of the guide relate to Windows 95/98 in general, so these settings can be used for any game. Don't be afraid to try tweaking your modem.. you will definitely gain a lot and surely reduce your ping significantly.
Also check out Tweak3D's Modem Tweak Guide and our Tweak section. You will certainly find plenty of good information to lower pings and boost performance there.
How to kick ass, even when lagging
At first I wasn't going to mention these tips, because these are my secrets to success. But, since Tweak3D is dedicated to helping all of you, I decided what the heck.
What weapons to use when lagging:
This is one the biggest mistakes I see when playing, which only results in victories for yours truly. People use the wrong weapons when lagging. There are no official rules for which weapons to use, but I have a pretty good idea as a Half-Life player. It is my opinion (and it's an opinion only!) that this is the order of preference for what weapon to use when lagging, from most valuable to least valuable:
1) The Hornet (bee gun)
2) RPG (rocket launcher)
3) Grenade launcher (on machine gun)
4) Satchel charges/tripmines/snarks/grenades
5) Machine gun (or Gauss when charged up)
6) Gluon (Egon)
7) Crowbar (close range only)
11) .357 Pistol
12) Gauss normal fire
When lagging badly, there is no doubt about it, the Gauss is one of the worst weapons. It is nearly impossible to aim when your ping is high. To give you an example, it's like aiming at a moving target but seeing where the target is with a .5 second delay. However, if you charge the Gauss, you can shoot through walls and the shot is more spread out. Also, one hit when charged is a kill.
The Hornet Gun works great when lagging because it seeks out and hits your opponents for you. Also you do not have to reload (which is sometimes hard when lagging).
Creating an autoexec
Don't forget to check out the Half-Life Autoexec Creator for more tips and tweaks. This section of the site will help you optimize performance for video, sound, misc., and Internet. You will be able to boost your frame rate as well as lower your ping. Everything in this section is totally customizable.
To create an autoexec for Team Fortress Classic, put the autoexec in the TFC folder instead of the specified folder.
If you are on a server and your ping is much lower than everyone else's, try finding a game with equally lagged players. This gives you a better idea of how good of a Half-Life player you are and will help you to become a better player. If you are playing with people that have much lower your pings than you, try finding a server with more people closer to your ping. This gives you a better chance to win and also reassures you that you are better than you think. :)
These are just my opinions, but they work for me. Good luck tweaking your game, and I look forward to seeing you on the battlefield.