
^3---> ^1Nudge Options Explained ^3<---

^2Ufreeze has some very powerful options to reduce or eliminate the effects of internet lag on the game.  These settings have little or no effect in a LAN environment.

cl_timeNudge ^2(Standard q3)
^2The way the quake 3 engine decides what to draw, is by holding a server-snapshot in a buffer until the next one arrives, then it smoothly interpolates the movement between them. On most servers, the buffer time is 50 milliseconds (corresponding to the default sv_fps 20).

^2What cl_timeNudge does is adjust this buffering time. Positive values mean the server information will be held longer in the buffer, negative values will release it earlier.

^2The problem being, if a packet is released early from the buffer, then q3 can no longer smoothly interpolate between it and the next packet, because the next packet will not yet have arrived. This is why in standard quake 3 and other mods such as OSP, setting negative timenudge values results in players looking jerky.

^2However, what Ufreeze does, is predicts where the players will go, so even with negative timenudge values, everything is still nice and smooth.

^2Timenudge can only go as low as the packet is being buffered for, so theoretically -50 is the lowest timenudge value that will actually do anything. In practice -30 is about the lowest, because there is some overhead involved in processing and buffering the packets.

cg_playerNudge ^2(Ufreeze only)
^2Like with a negative timenudge setting, ufreeze will predict where the player is going. However, cg_playerNudge is not restricted by the buffering process. Therefore you can set cg_playerNudge to values such as 100, which will give you 100ms of prediction. The prediction is capped at whatever your ping is, otherwise setting values greater than your ping would result in being able to see enemies around corners.

^2Set ^7cg_playerNudge -1 ^2to have it automatically adjust to your ping.

^2The practical upshot of this is that I can have 60 ping, set cg_playerNudge to -1 and the game will behave as if I were playing with zero ping. Unlike timenudge however, it will not lower your ping on the scoreboard. Braggers need not apply.

^2The downside of this, is that because it is predicting to compensate for your ping, the higher your ping is, the more likely it is to have visual errors as there is no such thing as perfect prediction.

^280-100 is the upper limit of 'nice' prediction. Any more and players will appear to jerk around slightly, and weapon shots will look like they miss when they hit, and vice versa. A good thing to do if you ping overly high (ie: 150 or so) is to set cg_playernudge to 80 or 90 or so, and play as if you were pinging 70 or 80. Visuals will not be as consistent as if you had no playernudge at all, but it's a damn sight easier to lead your shots by 70 millisconds than it is to lead by 150.

^2Because cg_playerNudge is client-side prediction only, it does not affect the weapon balance, nor does it result in the classic pitfall of unlagged, getting 'railed around a corner'.

cg_projectileNudge ^2(Ufreeze only)

cg_ospNetCode ^2(Ufreeze only)
^2As mentioned above in cl_timeNudge, quake 3 holds information in a buffer (50ms usually) so that it can draw smoothly. However, this means that what you see on the screen will always be 50 ms (depending on the server fps) behind what is actually going on on the server, even if you ping zero. This is the infamous 'quake 3 50 millseconds lag'.

^2cg_ospNetCode makes UFreeze use the OSP/CPMA method of fixing this built-in-lag (for your shots) instead of the normal Ufreeze one. Useful for die-hard OSP and CPMA players only, as the normal Ufreeze method is technically better.

cg_truePing ^2(Ufreeze only)
^2Because the standard q3 ping calculation algorithm is not, as it were, "very good", ufreeze introduced cg_truePing, a client side variable which you can set to either 1 or 0. 0 uses the standard q3 ping calculations, 1 uses the 'true' ping, which is the actual time it takes for a command to be issued from your client, travel to the server, be processed, and reply, and be processed.

^2The important thing here is the processing time is taken into account. Simply doing a ping from a command prompt (DOS box) does not involve any processing, therefore is not a good indication of how well your game will play. cg_truePing however, is. Contrary to standard q3 ping calculations, having a higher cl_maxPackets value will decrease your trueping, which is what is supposed to happen. Also, having a negative value for cl_timenudge (more on this later) will decrease this value. If you have 20 ping, and cl_timenudge -20, then cg_trueping will display 0. This is correct. Although you do not actually have 0 ping, the game will be the same as if you played on a LAN (with actual 0 ping) and no timenudge.


^5Scroll up in the console to view the entire help screen.

