Page 1 of 1

Server Settings - explanation and suggestions

PostPosted: Sat Jan 11, 2020 12:53 am
by admin
Firstly will start by listing all the working network server and client commands (server end, not gamerules of player settings etc) in 1.31 of farcry.

The server commands
sv_netstats
sv_maxrate
sv_maxupdaterate
sv_maxcmdrate
sv_max_scheduling_delay
sv_min_scheduling_delay
sv_DedicatedMaxRate
sv_cheater_kick
sv_cheater_ban
sys_StreamCompressionMask


Also here are the client settings
cl_maxrate
cl_updaterate
cl_cmdrate
cl_netstats


Further down will be an explanation of each command and there default values, but first you should read this to familar yourself with the updaterate, maxrate and cmdrate ::

maxrate sets a maxiumum limit of bytes per second the client can send the server.

cmdrate is the number of times per second the client informs the server of its actions.
Remember that the amount of data in an update depends on how much is going on.

updaterate is the number of times per second the server tells the client what's been going on in the map.
Likewise, more action, more data per update.

The commands on the server are maxcmdrate, maxupdaterate and maxrate (maxrate is to for client)

Hopefully by now you will have understood what has been put so far http://forums.ubi.com/groupee_common/em ... _smile.gif

The server commands in more detail ::

sv_netstats
Default Value "0"
Range 0-7
Logs/displays network statistics server end, but DOES NOT WORK!

sv_maxrate
Default value = "30000"
Defines the maximum UPLOAD a client is allowed to the server. (30000 = 30kB/s)
Rate is dependent on client rate also.

sv_maxupdaterate
Default value = "50"
Defines the maximum amount of updates the server can send the client per second.
Rate is dependent on client rate also.

sv_maxcmdrate
Default value = "100"
Defines the maximum number of times per second the client can send commands to the server.
Rate is dependent on client rate also.

sv_max_scheduling_delay
Default value = "200"
The maximum delay you would get when performing a command ie entering a jeep (in milliseconds)

sv_min_scheduling_delay
Default value = "100"
The minimum delay you would get when performing a command ie entering a jeep (in milliseconds)

sv_DedicatedMaxRate
Default value = "80"
Set the maximum update frequency (per second)if a dedicated server

sv_cheater_kick
Default value = "1"
Does nothing!

sv_cheater_ban
Default value = "0"
Does nothing

sys_StreamCompressionMask
Default value = "8"
Stream compression bit mask, used for network compression(lower bandwidth)
0=1 1=2 2=4 3=8 4=16 5=32 6=64 7=128 8=256 9=512 10=1024 11=2048 12=4096 13=8192 etc
AT PRESENT STILL TESTING THIS COMMAND.

The client commands in more detail ::

cl_maxrate
Default value = "?" - doesnt seem to show so will be capped to what the server has set.
Defines your max bps upload to the server.

cl_updaterate
Default value = "20" - but doesnt flag up a value.
Is the number of times per second the client allows the server to tell you what's been going on in the map.

cl_cmdrate
Default value = "40"
Is the number of times per second the client informs the server of its actions.

cl_netstats
Default value = "0"
Setting to "1" will display your netstats in game

Example and explaination here ::

http://www.farcry-legends.co.uk/d/netstats.jpg

Understanding these commands and what best to set to ::

As you can see the clients default values are a lot lower than those set on the server, so setting these rates on the server ::

sv_maxcmdrate
sv_maxupdaterate


Would seem pointless of anything above 40 and 20 but leave them at the default value for now and test with all your clients in the server using a matching rate set on there machine - testing for this will be within the week to see what happens.

usage ::

sv_maxcmdrate = "100"
sv_maxupdaterate = "50"

The next command is ::

sv_maxrate

Which as you know sets the max bitspersecond upload allowed for each player, default is 30kB/s which is fine as the max upload a normal broadband connection in the UK can handle is 32kB/s

usage ::

sv_maxrate = "30000"

More commands ::

sv_max_scheduling_delay

Which is the maximum delay time for an action to be performed from a client in milliseconds, you should set this to what you max ping will be on the server using this as a guidance ::

Ping of 500 = 1/2 second or .5 of a second (500ms)
Ping of 250 = 1/4 second or .250 of a second (250ms)
Ping of 125 = 1/8 second or .125 of a second (125ms)

So if you high ping kick is set to 70 (140 actual ping) this is 140ms so you can use this value for the max delay.

usage ::

sv_max_scheduling_delay = "140"

sv_min_scheduling_delay

Which is minimum delay you would get when performing a command ie entering a jeep.

Try to set this to what you lowest ping will be or to 0.01.

Lowest ping will probably be 8 in game (16 actual)

usage ::

sv_min_scheduling_delay = "0.01"
or
sv_min_scheduling_delay = "16"

The next command is ::

sv_DedicatedMaxRate

This is the internal rate the CPU updates the server, obviously the high rate the more updates, but too many updates and the CPU will hit 100% usage and data will be back logged and lost.

Try to set to what your server can handle, a default value of 60 is good to see if you hit 100% CPU usage with 16 players in. This is very dependent on your hardware configuration and maxplayers.

usage ::

sv_DedicatedMaxRate = "60"

**This command is best placed within the system.cfg not server.cfg, but can be used in server.cfg.

The next command is ::

sv_cheater_kick

An old command from 1.0 which seems to have stayed set to on. Set to off ("0") as it does nothing.

usage ::

sv_cheater_kick = "0"

The final command is ::

sys_StreamCompressionMask

Which is abit in the "air" as its to proper function. More testing will be done this week and will update here the results.