Here some light on how the kick-victim procedure should work if the issue gets resolved:
If a member joins while the server is full, then the engine will look for a kick-victim. It does this by:
- If Idle Time Threshold is above zero, then it will look for the none-member with the highest idle-time and above the threshold.
- If Ping Threshold is above zero, then it will look for the none-member with the highest ping and above the threshold.
- It will look for the none-member that was the last to join the server.
- It will look for the none-member with the lowest score (though not being the one that joined the last).
The engine now can have 4 kick-victims. It will now step through the order as defined in the
PickCriteriaOrder configuration setting. This setting is not present in the web-admin, though still it can be changed by modifying it in the
[ROGame.ROMembers] section of
ROGame.ini. Default it is set to:
PickCriteriaOrder=PickCriteria_IdleTimeThreshold
PickCriteriaOrder=PickCriteria_PingThreshold
PickCriteriaOrder=PickCriteria_LowestScore
PickCriteriaOrder=PickCriteria_LastJoined
Thus if at step 1 a long idle player was found, then that player will be kicked. If none was found, then if at step 2 a high-ping player was found, then that player will be kicked. Next lowest score and next the last that joined. If still no victim is found, then the engine randomly picks a player and kicks that one. If you for instance do not want a player to be kicked for lowest score, then you can do that by removing the
PickCriteriaOrder=PickCriteria_LowestScore line from
ROGame.ini.
An other setting that need to taken in account is the
Max Members setting. If set to zero, then the engine will keep on kicking none-members for every member that joins regardless the number of members on the server. If set to anything above zero, then the engine will only kick that number of players. Suppose you set it to 6, then the first 6 members that join a full server will be lucky. For them space is made. The 7th member that joins the full server is unlucky. He won't be allowed to join.
The above is of-course how it is intended to work. First a bug need to be killed.
PS:
Many thanks
mallic for the server log. Was really helpful.