Before I start, I wanted to add that the server setting "fps_max" should be removed, because the server should have no control over it, because that is a client-side variable, and the server setting it can only do harm. That will be explained in the novel I'm about to write. (lol)
The whole purpose of even being able to change these settings is to combat choke. If we lived in a perfect world, were everyone's connection had no delay, and everyone's computer was super fast, we wouldn't need these settings. But we don't live in a perfect world, so the great minds at valve integrated these nice settings into our netcode so we can tune our connections to try and prevent/compensate for delay.
So what is choke? Choke, put roughly, is the server trying to send the client data while they can't accept it. It is caused when the clients rates are set to high or too low, and the flow of data backs up, causing lag.
So Fubot, how to we "tune our connections"? By setting your rates properly based on the potential of your computer and your internet connection. Contrary to popular belief, rates have very little to do with the tickrate of the server. In fact, the only similarity between them is that the max cmdrate possible, is the tickrate of the server. That's it. Your proper cmdrate setting is actually dependent on your client FPS. So let's talk about what this crap means.
Tickrate: Simply put, this is a measure of how often the server simulates the game per second. In example, for a 100 tickrate server it generates the game 100 times per second. Which is why 100 tick servers are smoother then 66 or 33 ticks.
Rate: Rate tells the server just how much incoming data to accept from the client (in bytes/second).
cl_updaterate: This command is similar to the rate command, except it is measured in ticks/second rather then bytes/second. It controls how many of the 100, 66, or 33 ticks the client is allowed to receive.
These variables determine how much data the server sends to you. Now let's look at what determines how much you send to it.
cl_cmdrate: Controls how many ticks(updates)/second that you will send the server. It also allows the server to calculate what you are doing as a client.
Believe it or not, the source engine uses your client FPS to determine how many times/second it will check for client input. If there is a disparity between your cmdrate setting and your current fps, you are likely to encounter choke. This is partly why fps_max exists.
fps_max: This limits your client FPS, and thus how often the engine checks for player input.
So let me explain why you guys should change the server side settings.
1. fps_max: This setting, which is currently set at 150 on the NF server, just prevents users from changing their own fps_max setting. This is a client-side setting, and the server controlling generally makes no sense and only frustrates people who can actually know what that setting does.
2. sv_mincmdrate: At it's current setting of 50, this means that at any time during gameplay, if a clients FPS dips below 50, or they cannot sustain 50fps due to their computer, they will experience choke (lag). If it was set to zero, then users could set it to whatever they wanted in order to ensure that a dip in FPS wouldn't cause choke, and if it did, they could fix it.
3. sv_minupdaterate: Updaterate and cmdrate should be closely matched. If a user needs to set his cmdrate and updaterate below 50, the current server settings won't allow them to do so. Once again, if set to zero, this will allow the client to do whatever he/she needs to ensure that choke doesn't happen.
4. sv_minrate: This setting depends on the users internet connection. While its current setting of 30000 allows the server to send clients the most amount of data, some users cannot accept all this data due to their internet connection. That leads to choke. If set to zero, they can set it to the proper amount of bytes/second that their internet connection can accept.
5. cl_interp: like fps_max, this could be deleted as well, but since most people have no idea what this setting does, setting it for .015 will make alot of sense. (.015 is a medium setting). Once again, I can explain interpolation if you want, but I'm trying to be brief. It also makes no sense.
A lot of people don't really understand rate settings, but if you change the server settings to what I ask it will allow people who do understand them to eliminate choke, so they'll lag a lot less.
And there you have it. If you want me to clarify something, just ask.