TF2 Lerp Tutorial
What is lerp?
"Essentially, as you communicate with the server, there's a delay. That delay is latency and is measured by your ping. It's not constant. Because of this, if your ping spikes by a little bit briefly, there's going to be an instant where you have no information about the gamestate. That causes jittery movement, terrible hit detection, and a bunch of other nasty things. To deal with this, the client keeps a buffer. You don't actually see what's happened at (right now - ping.) What you see is what happened at (right now - ping - lerp.) This way, if there's a small ping spike, you've got information to fall back on and things continue as normal.
The problem is that this adds lag. It's another tenth of a second delay before a rocket you fire actually appears. It's another tenth of a second you're behind the server. It's another tenth of a second where you don't know what people are doing, leading to bizarre collision issues where you have problems running into space near players on the other team. Lerp needs to be as low as it possibly can be while still doing its job.
The default lerp is 100ms, which is fucking huge. If your ping spikes by that much, you're in all kinds of trouble that can't be fixed by this. The smallest possible lerp is the inverse of the tickrate, which could be considered the server's framerate. In TF2, it's 66. This means that the server calculates what should happen 66 times per second, or once every 15.15 ms. If you've got a connection that's good enough that you almost never see latency spikes past that range, go ahead and set your lerp as low as possible. Otherwise, increase it by a bit.
Lerp should always be set with ticks in mind rather than milliseconds."
How to change your lerp
You'll most likely want to put this in your autoexec.cfg file. Some players like to have cl_interp a bit higher for hitscan classes compared with projectile classes, so you can always set cl_interp 0.0303 (for example) for the hitscan classes. To achieve this, rather than throwing those commands into your autoexec, you can use class-specific configs (tutorial below).
Also, if you don't have the best connection, playing with a slightly higher lerp would be best.
How to make an auto-exec file and class specific configs
Then you'll want to throw these configs into your ...common/team fortress 2/tf/cfg folder
To clarify, the commands in your auotexec.cfg will auto-execute anytime you start up TF2, and the commands in your class specific configs will execute anytime you play those classes.
What is an Alias?
Note: Alias names cannot contain spaces. They may contain underscores, numbers, and symbols. Alias names are case-sensitive.
The list below is especially useful for server owners. Some of these will allow you to connect to your server with one console command and then exec configs/change the map with only one other command. There are some other goodies in there too.
// SERVERS //
alias HL "connect ServerIP; password ServerPW; rcon_password RconPW"
alias dustbowl "connect 18.104.22.168:27015"
alias hightower "connect 22.214.171.124:27030"
alias payload "connect 126.96.36.199:27030"
alias IBmge "connect 188.8.131.52:27015"
alias FPmge "connect 184.108.40.206:27030"
alias jump "connect 220.127.116.11:27030"
alias walkway "map tr_walkway_rc2"
alias rocket "map tr_rocket_shooting2"
// HL MAPS //
alias hl_viaduct "rconAuth; rcon exec ugc_hl_koth; rcon changelevel koth_viaduct_pro5"
alias hl_snakewater "rconAuth; rcon exec ugc_hl_standard; rcon changelevel cp_snakewater_final1"
alias hl_process "rconAuth; rcon exec ugc_hl_standard; rcon changelevel cp_process_final"
alias hl_gullywash "rconAuth; rcon exec ugc_hl_standard; rcon changelevel cp_gullywash_final1"
alias hl_upward "rconAuth; rcon exec ugc_hl_stopwatch; rcon changelevel pl_upward"
alias hl_badwater "rconAuth; rcon exec ugc_hl_stopwatch; rcon changelevel pl_badwater"
// 6s MAPS //
alias 6v_badlands "rconAuth; rcon exec ugc_6v_standard; rcon changelevel cp_badlands"
alias 6v_granary "rconAuth; rcon exec ugc_6v_standard; rcon changelevel cp_granary"
alias 6v_viaduct "rconAuth; rcon exec ugc_6v_koth; rcon changelevel koth_viaduct_pro5"
alias 6v_metalworks "rconAuth; rcon exec ugc_6v_standard; rcon changelevel cp_metalworks_rc5"
alias 6v_snakewater "rconAuth; rcon exec ugc_6v_standard; rcon changelevel cp_snakewater_final1"
alias 6v_gravelpit "rconAuth; rcon exec ugc_6v_stopwatch; rcon changelevel cp_gravelpit"
alias 6v_process "rconAuth; rcon exec ugc_6v_standard; rcon changelevel cp_process_final"
alias 6v_gullywash "rconAuth; rcon exec ugc_6v_standard; rcon changelevel cp_gullywash_final1"
// Other MAPS //
alias mge "rconAuth; rcon changelevel mge_training_v8_beta4b"
alias ultiduo "rconAuth; rcon exec ultiduo; rcon changelevel ultiduo_baloo"
alias bball "rconAuth; rcon exec bball; rcon changelevel ctf_bball_comptf"
Edited by Cheese, 15 January 2016 - 08:31 PM.