1.8.0.3 Large amount of: DEBUG: Monitoring: (Players) / needUpdate_objects (Players)

justchil

Well-Known Member
I'm desperate here... I can't find the source of my problem. I'm geting ALOT of the errors pasted below. I have quite a few players talking about "rubberbanding" (while running or driving a vehicle they will jump back like 10m)

I am running Inf's AH so I get tons of reports of players teleporting short distances.

I am at a loss here. I am running a decent amount of modifications/addons to my server... I've been running it for a while now and never had this happen. I have tried everything I know of including basic.cfg tweaks, diffing the pbo's with defaults to see if I can find any coding errors etc.

I am running 64 player server on a dedi 1270v3 / 32gb mem / ssd etc. With 64 players I generally get 5-7 server fps.


Log lines mentioned:

13:55:57 "DEBUG: Monitoring: B 1-4-E:1 (PlayerName) REMOTE"
13:55:57 "DEBUG: needUpdate_objects=[21b16080# 1057224: suv.p3d REMOTE,B 1-4-E:1 (PlayerName) REMOTE]"
13:56:12 "DEBUG: Monitoring: B 1-4-B:1 (AnotherPlayer) REMOTE"
13:56:12 "DEBUG: needUpdate_objects=[B 1-4-B:1 (AnotherPlayer) REMOTE]"
 
I had this same issue, it made the AI incredibly hard to kill since the rubber-banded back and forth constantly. I'm a former dev for the Unreal engine so this type of problem really bothers me and requires my immediate attention. I literally tore the server apart trying to fix it. I recoded both packages over the course of a weekend then removed everything back to vanilla mod-by-mod to ID the issue.

TMALSS nothing worked 100% of the time. Sadly the best result I got was dialing down the acceptable ping in BE to 250. This kicks a lot of marginal players but it greatly reduced the warping. I guess the Arma engine is very susceptible to high ping players lagging everyone else by dominating the servers update routines. I still get a lot of "Failed to update" but those appear to be an issue with Epoch and the player warping has diminished to an acceptable amount.
 
This is really strange because I've never had this problem before. My ping kick is at about 200 and I monitor for players with low bw. These people having 15ms pings with 500+ bw and are having the problem. I've disabled some of the more intensive addons etc.

The only thing that seems to be consistent now is that it seems pretty good the first hour but the hour 2 (2hr restarts) the lag begins. I'm getting less player "rubberbanding" and more medical action / bullet lag now.

Meanwhile I have an epoch server going on this same dedi that never has a problem lol.
 
So I'm still getting a lot of these. I'm not getting the warping anymore just lag on using bandages and when shooting players.

Server FPS is always greater than 5. I get very few network pending log entries... I have no clue what this could be :\ Normally you can relog and everything is fine. I'd just about pay to get this fixed but I can't find anyone that can fix it lol
 
I see in epoch they have made some changes... I'm not done comparing yet and maybe I'm just talking to myself but:

server_cleanup.fsm

DayZMod 1.8.0.3
condition=/*%FSM<CONDITION""">*/"(( (count needUpdate_objects) > 0) && (diag_tickTime -_lastNeedUpdate> 5))"/*%FSM</CONDITION""">*/;


Epoch 1.0.4.2
condition=/*%FSM<CONDITION""">*/"(( (count needUpdate_objects) > 0) && (diag_tickTime -_lastNeedUpdate> 50))"/*%FSM</CONDITION""">*/;


server_updateObject.sqf

DayZMod 1.8.0.3

_object setVariable ["lastUpdate",time,true];
switch (_type) do {
case "all": {
call _object_position;
call _object_inventory;
call _object_damage;
};
case "position": {
call _object_position;
};
case "gear": {
call _object_inventory;
};
case "damage"; case "repair" : {
call _object_damage;
};
case "killed": {
call _object_killed;
};
};


Epoch 1.0.4.2

_object setVariable ["lastUpdate",time,true];
switch (_type) do {
case "all": {
call _object_position;
call _object_inventory;
call _object_damage;
};
case "position": {
if (!(_object in needUpdate_objects)) then {
//diag_log format["DEBUG Position: Added to NeedUpdate=%1",_object];
needUpdate_objects set [count needUpdate_objects, _object];
};
};
case "gear": {
call _object_inventory;
};
case "damage": {
if ( (time - _lastUpdate) > 5) then {
call _object_damage;
} else {
if (!(_object in needUpdate_objects)) then {
//diag_log format["DEBUG Damage: Added to NeedUpdate=%1",_object];
needUpdate_objects set [count needUpdate_objects, _object];
};
};
};
case "killed": {
call _object_killed;
};
case "repair": {
call _object_damage;
};
};
 
But I don't think this solves my problem.

Things like my combat log code do not work on my live server only my test server with only 2 players I'm guessing because the player object is not updated fast enough.
 
Back
Top