Notes for V1.50:

You need to have a gamelogic called 'server' on your map for the script to work properly.

When choosing a fixed viewdistance the script determines if all computers are able to support this value - if not the viewdistance will be adapted to a value that the weakest machine can still cope with (determined by a factor of its benchmark set in the script's header, default 0.7). To avoid the viewdistance being reduced below an acceptable minimum a lower limit is defined in the script (default 1000m). The viewdistance will never be lower than this minimum.

Example 1: Benchmark of the weakest machine is 1700, selected viewdistance = 1500m. 1700x0.7=1190 -> Viewdistance set to 1190 for all machines

Example 2: Benchmark of weakest machine is 1200, selected viewdistance = 1500. 1200x0.7=840 -> Viewdistance set to 1000m, as that's the minimum distance defined in the script.

Example 3: Viewdistance set to automatic mode (high, default factor 0.65) and benchmark of weakest machine is 3800. Viewdistance will be set to 2660m.

Example 4: Viewdistance set to automatic mode (low, default factor 0.35) and benchmark of weakest machine is 3800. Viewdistance will be set to 1520m.

Minimum/maximum viewdistance and the factors for high/low automatic modes can be set in the script header and should be adapted to the needs of your mission. There's also an option to have the script adapt the viewdistance iteratively during negotiation (default on) or to leave it to the mission designer to set the negotiated viewdistance at a later point (distance is available as a global variable called DDL_GLOBALSERVERDISTANCE).



This is a demo that shows you the possibilities of the automatic viewdistance negotiation as provided by the script negoview.sqs by Daddldiddl.

Use the actionmenu to check the viewdistance at any moment. After the negotiation period a hint will show up to display the final viewdistance.

To implement this script into your own missions you can either just copy the negoview.sqs to your mission and start it from the init.sqs:
[0] exec "negoview.sqs" for automatic negotiation with low viewdistance
[1] exec "negoview.sqs" for automatic negotiation with high viewdistance
[3000] exec "negoview.sqs" using a fixed viewdistance (3000m in this example), that will be limited to the actual capabilities of the computers involved.

Or use it the way I did in this demo mission, using the possibility to preselect the viewdistance mode before the mission starts.




Mission failed





Mission failed





Mission failed