Okay, this is my hypothesis, based on two nights of source diving and asking around.<br /><br />From the very beginning, csDoom has a simple rule.&nbsp; If you don&#039;t get data for an opponent from the server, extrapolate his position based on your previous received data.&nbsp; This was useful because csDoom only sent data from servers to clients once every other tic to save bandwidth.&nbsp; But because the server was receiving client data as fast as it possibly could, assuming no lag the server had the correct position for the opponent and your clientside extrapolation would be mostly correct.<br /><br />Odamex inherits this behavior from csDoom, as did ZDaemon.&nbsp; If your connection to the server is spotty, Odamex will try and extrapolate player positions based on previously received data.&nbsp; The difference is, because Odamex sends out data from the server every tic (instead of every other), the number of times the engine needs to extrapolate goes from every other tic to ONLY when you have a bad connection to the server.<br /><br />So.&nbsp; Odamex&#039;s player freezing.&nbsp; What is happening that is that your opponents connection to odasrv is laggy and was missing that particular tic, so the server has no idea where to move him.&nbsp; However, odasrv will continue to send out information about that not-moving player.&nbsp; No extrapolation is done, because your connection is fine...you got two messages that show the player hasn&#039;t moved an inch.<br /><br />Here&#039;s my hypothesis.&nbsp; I think that zserv will, in a similar case, not send any data about that laggy player.&nbsp; Or at the very least will somehow indicate that laggy player was lagging that tic.&nbsp; The ZDaemon client (either in the absence of data or on that special signal), will extrapolate the laggy player, just like if a tic was missing.<br /><br />And guess what happens if you try and shoot that extrapolated player.&nbsp; You&#039;ll probably miss!&nbsp; Because on the server, the player is still stuck in place.&nbsp; Actually, that&#039;s the BEST you can hope for...because if ZDaemon were to actually do a serverside extrapolation of players in the absence of data, one missing tic would cause you to essentially die on autopilot when your connection craps out, either from having a predictable trajectory or from sailing off the edge of the map into a pit.<br /><br />In the general case, you really only have three options for handling missing data from players. <br /><br />[list type=decimal]<br />[li]You do what Odamex does and show the laggy opponent frozen in place, which you will hit if you shoot at it.[/li]<br />[li]You do what I hypothesize ZDaemon does and do a clientside extrapolation of the laggy opponent, which you will miss if you shoot at it.[/li]<br />[li]You do what I don&#039;t think (and hope it doesn&#039;t) ZDaemon does and do a serverside extrapolation of the laggy opponent, which can send you sailing off the side of a map or into a predictable trajectory.[/li]<br />[/list]<br /><br />Is this what ZDaemon 1.08 or 1.09 does?&nbsp; We&#039;ll likely never know, but nevertheless this is the easiest explanation of the phenomenon that I&#039;ve found.<br /><br />EDIT: I&#039;ve been pondering this for a few hours and I believe there might also be a deeper player psychology question at play that makes the water muddier than my initial proclamation of extrapolation being bad, full stop.<br /><br />In general, trying to hit lagging players is kind of a crapshoot at times no matter what system you use.&nbsp; What&#039;s important is that you as a player are leading your shot and anticipating when to pull the trigger.&nbsp; If your opponent is missing client data when you pull the trigger, you are probably going to miss them either way, the only difference is either they&#039;re going to stop short of where you were firing at (Odamex&#039;s method), or they&#039;ll appear to pass through your crosshairs but your shot will whiff (Hypothetical ZDaemon method).&nbsp; The end result is identical, the only difference is that in the feedback...in the Odamex version, you know why your shot missed - it&#039;s because they stopped short of your SSG.<br /><br />BUT!&nbsp; We as humans are very good at internally extrapolating.&nbsp; If a ball arcs through the air, we generally know to follow it with our eyes and catch it with our hands.&nbsp; And when a laggy player is running the map and keeps freezing and moving forward again, that plays havoc with our intrinsic extrapolation...it feels erratic and might make it harder to actually anticipate the shot in the first place.&nbsp; Doing client extrapolation might give you a better chance of actually making the shot if you shoot then while they&#039;re not lagging.<br /><br />But then again, if they DO happen to be lagging at that moment you pull the trigger, you&#039;ll whiff.&nbsp; And because their position was extrapolated, you have no intuitive visual feedback as to why, or that they were even lagging in the first place.<br /><br />To be honest, I still kind of fall on the side of the method Odamex currently uses, as it makes intuitive sense, even if it looks ugly at times.