English (United Kingdom)French (Fr)Deutsch (DE-CH-AT)
Random Thumbnail
Who Is Online?
We have 152 guests online
Home Descent 3 Descent 3 dedicated server tool for Windows Release notes - Earlier changes - November 2013
Most Recent
Featured Articles
Joomla 1.5 Featured Articles
Home Descent 3 Descent 3 dedicated server tool for Windows Release notes - Earlier changes - November 2013
English (United Kingdom)French (Fr)Deutsch (DE-CH-AT)
Release notes - Earlier changes - November 2013 E-mail
User Rating: / 42
Descent 3 - Descent 3 dedicated server tool for Windows
Written by Thomas   
Saturday, 03 October 2009 13:34
Article Index
Release notes
Earlier changes - May 2014
Earlier changes - March 2014
Earlier changes - December 2013
Earlier changes - November 2013
Earlier changes - June 2013
Earlier changes - May 2013
Earlier changes - January 2013 - April 2013
Earlier changes - May 2012 - December 2012
Earlier changes - March 2012 - April 2012
Earlier changes - December 2010 - February 2011
Earlier changes - June 2010 - October 2010
Earlier changes - February 2010 - May 2010
Earlier changes - January 2010
Earlier changes - November/December 2009
Earlier changes - October 2009
All Pages




  • Version
  • Bug fix of version of D3Server3. Although already fixed the bug that made it impossible for the tool to remember settings version now fixes it completely by storing some of the settings in the ini file DynSettings.ini instead of the object store. This means that some config options are saved directly after an Ok button is pressed instead of when D3Server3 exits.
  • Some optimisations regarding the handling of the configuration files D3Server3.ini and cfg\DynSettings.ini.
  • The way server event handler applications when MakeCommandsBatchSafe=1 are invoked has changed. Before, MakeCommandsBatchSafe=1 removed all characters that are unsafe for batch files from the entire commandline. Now MakeCommandsBatchSafe=1 only removes characters that are not safe for batch files from the variables passed on to the event handler appliaction. This is probably best explained with an example. Before "EVENTHANDLER.EXE '$PlayerName'" would have changed to "EVENTHANDLER.EXE player". Now the double quotation marks are preserved as long as they are not part of the variable, in this case the player's name. The change affects the variables $ServerName, $PlayerName, $ProfanityText, and the entire invocation commandline, which now not touched anymore. Note that no characters are removed from $ProfanityText. For this variable the unsafe characters are substituted with question marks ("?") to preserve the text's length.
  • Fixed a bug where D3Server3 could hang when a remote command is sent to the remote console.
  • The server control panel didn't clean up properly when the X button was used to close it. This may have caused an access violation (application crash) but actually never happened, at least not during testing.
  • When the execution of a remote console command in the server control panel was logged to the remote console control the entire command including a carriage return (CR) and line feed (LF) character was logged. These two characters were only shown on certain versions of Windows, maybe due to different language versions. Now the commands are logged without carriage return and line feed.
  • The source code files ReadConfig.c, ReadConfig.h, getprivprof.c, getprivprof.h have been replaced with IniFiles.c and IniFiles.h. The new module is more flexible and combines several module in one.
  • In the global options, the setting "Auto choose server ports" has been renamed to "Automatically choose server ports".
  • In the global options, the setting "Auto launch servers at program start" has been changed to "Automatically start servers at program start".
  • In the global options, the setting "Auto restart servers" has been renamed to "Automatic dedicated server restart".
  • "Auto restart time" has been renamed to "Restart time" in the global options.
  • Several occurances of "Server xy launched" changed to "Server xy started". This is to continue the use of "started" instead of "launched" throughout D3Server3.
  • The popup menu for running servers in the event listbox has been extended by two new entries. "Restart server(s)" restarts the selected server(s). "Restart empty server(s)" only restarts the selected servers if there are no players in them. Dedicated servers without players will not be restarted.
  • Bug fix: The event OnD3Server3UpdateRestart had been triggered just before D3Server3 closed itself to allow for an automatic software update. However, the documentation states that the event is triggered by the new version when it starts up. This is now fixed. The event is triggered by the new version after it has been started. The event OnD3Server3Start is triggered just before OnD3Server3UpdateRestart without any indication on why the startup or restart took place.
  • New server event OnD3Server3UpdateRestarting. The event is triggered when D3Server3 shuts down to allow for a software update. The event OnD3Server3Close is triggered after OnD3Server3UpdateRestarting.
  • A new variable to the server events added. The variable $D3ServerDir is substituted with the folder where D3Server3's executable file (which is D3Server3.exe) resides. The folder name does not include a trailing "\" character. For example, if D3Server3 is installed in C:\Program files\D3Server3 then $D3ServerDir would be replaced with the text "C:\Program files\D3Server3" but without the double quotation marks). To get the double quotation marks around the path enclose the variable's name in double quotation marks as in "$D3ServerDir" when calling an event handler application. Characters that are unsafe for batch files are _not_ replaced in the variable $D3ServerDir, meaning that MakeCommandsBatchSafe=1 has no effect on this variable. You need to ensure yourself that the folder D3Server3 is installed to does not contain characters that might comprise the functionality of a commandline script.
  • The variable name $D3ServerFolder is identical to $D3ServerDir. Both variable names can be used interchangeably. The setting MakeCommandsBatchSafe=1 has no effect on both variable names ($D3ServerDir and $D3ServerFolder).
  • Some changes made to Make_www_folder.cmd.
  • One minor optimisation when writing the window positions to the DynSettings.ini file.
  • D3Server3 tried to obtain the public IP address too early. When the software was running as a service the application closed before the IP address check could be completed but an event message was written to the logfile. This version of D3Server3 only starts the check for the public IP address after it has determined that the software is not already running as a Windows service.
  • When D3Server3 started and another instance was already running as a Windows service the message "Is D3Server3 running as a service?" was written to the logfile. This has been changed to prepare D3Server3 to stop the service instead of simply shut down.
  • New key ProfanityCheckForServer for section [GlobalOptions] in the file D3Server3.ini. If ProfanityCheckForServer=1 the profanity monitor works for what the server says too. If ProfanityCheckForServer=0 D3Server3's profanity monitor totally ignores the virtual game server player. If you change the name of the server player with Anticheat the setting is not working anymore since D3Server3 can only recognise the server player if it has the standard name, which is "-Server-" without the double quotation marks. They value of the key ProfanityCheckForServer in the section [GlobalOptions] is only read when D3Server3 starts up. Subsequent changes require the server tool to be restarted before they are taken into account.
  • Bug fix for the server event [OnPlayerUsedProfanity]. The event had been triggered only when the key ProfanityAction in section [GlobalOptions] in the file D3Server3.ini contained the value EVENT (not case-sensitive). Since the value of ProfanityAction is for the server event [OnPlayerProfanityThreshold] the event [OnPlayerUsedProfanity] is now always triggered when the profanity monitor recognises profanity, which is the correct behaviour according to the documentation on Dateiliste.
  • Bug fix: The server event variable $ProfanityText didn't get substituted. It was simply ignored.
  • Since D3Server3 can be started by non-admins an additional error message "Admin rights are required to run the installation process." has been added when the software updater fails. This might be the most common reason why the updater can't complete. Note that apart from this message and although D3Server3 can be started, the software (D3Server3) cannot function properly without admin privileges. Unexpected behaviour like failing to update is the result. Dedicated Descent 3 server processes cannot be controlled fully if D3Server3 runs under a user account that doesn't have full control (admin rights) on the local computer. Additionally UAC (User Account Control) must be turned OFF for the software to work and do its job.
  • Again several phrases and words added to the profanity list.
  • New key ProcessPriority in section GlobalOptions of the file D3Server3.ini. The setting specifies D3Server3's process priority class. One of the following values is possible: IDLE_PRIORITY, BELOW_NORMAL_PRIORITY, NORMAL_PRIORITY, ABOVE_NORMAL_PRIORITY, HIGH_PRIORITY, and REALTIME_PRIORITY. The default is NORMAL_PRIORITY if the key does not exist. However, the installation program creates the key with a value of NORMAL_PRIORITY. It is not advised to change the value of this key unless you know what you are doing. See SetPriorityClass () on the MSDN for more information. A value of BELOW_NORMAL_PRIORITY lets D3Server3 run with a reduced priority class, which would leave more CPU time for dedicated Descent 3 servers. Any of the other values would most likely have an impact on the overall system performance. The priority class of dedicated Descent 3 servers is not affected by this setting. Dedicated Descent 3 servers are always started with the class NORMAL_PRIORITY_CLASS (normal priority). D3Server3 does currently not provide any option to change the process priority class of running dedicated Descent 3 servers. Anticheat can be used to specify the priority class of D3 servers.
  • When a new dedicated server was started and the server configuration files could not be written to the temporary folder (custom\cache\...) previous versions of D3Server3 popped up a messagebox with the text "Error writing the server configuration files!". This forced the server operator to confirm with the Ok button. Since D3Server3 can run as a Windows service with the help of ServiceExe the messagebox is no longer appropriate. Beginning with this version of D3Server3 the messagebox text is replaced with an error message in the event listbox, which also places the message in the main logfile if logging is enabled.
  • Following the suggestion from Do_Checkor, when a new dedicated server is created the default setting for "Bright player ships" was On. This has now changed so that it defaults to Off.
  • When a new dedicated server is created the defaults for "Min. respawn" und "Max. respawn" have changed from 15 to 12 seconds (min) and from 30 to 20 seconds (max). This was suggested by Do_Checkor too.
  • An alternative IP address could only be entered if all octets of the IP address were greater than 0. It is now enough for one octet to be greater than 0. This is actually still not correct but should work for most server configs.
  • Typo in the file Make_www_folder.cmd corrected.
  • New key ServerToolID in section GlobalOptions of the file D3Server3.ini. Until now D3Server3 created the temporary folder for a dedicated Descent 3 server under custom\cache + server portnumber. This version creates a folder named custom\cache + server portnumber + the value of the ini key ServerToolID. The installation program creates ServerToolID with an empty string as "ServerToolID=". If the key ServerToolID does not exist D3Server3 assumes it to have a value of _D3ST. This change makes it possible to assign different IP addresses to different instances (copies) of D3Server3 and still use only one Descent 3 folder for the dedicated servers. An empty string value for ServerToolID simulates the behaviour of previous versions of D3Server3, which the installation program effectively does.
  • Obsolete config file for Doxygen ("read") removed from the source code package. Although prepared for Doxygen D3Server3 does currently not come with a Doxygen generated source code tree.
  • Fixed an access violation when D3Server3 could not open due to a non-existing Descent 3 main folder or any other fatal reasons. The bug only showed up when the automatic import feature was used, which is still not officially supported.
  • Do_Checkor reported a bug in and all further beta versions that let the tool crash every time it was closed. Those crashes now don't occur anymore, although it is still unclear which one of the many changes finally fixed the bug.
  • The value of the configuration key ProcessPriority in the section [GlobalOptions] of the file D3Server3.ini can now be appended with the text "_CLASS" as stated in the MSDN article for SetPriorityClass (). This means that D3Server3 now also supports values like "NORMAL_PRIORITY_CLASS" instead of "NORMAL_PRIORITY" only. This change follows a "this is not working report" from Do_Checkor who had accidentally left the "_CLASS" postfix in the value's name. I reckon, sooner or later it would have happened to someone else too, if not even me. Foot in mouth  Consider this change as a preventative step. Laughing
  • In order to allow for dedicated servers to run more smoothly the thread that handles software updates and automatic server tool restarts disables its own thread boost. See SetThreadPriorityBoost () on MSDN (Microsoft Developer Network) for more details.
  • Three new ini keys in the configuration file D3Server3.ini within the section [DedicatedServers]. Similar to the key ProcessPriority in the section [GlobalOptions], the value of ServerStartupProcessPriority sets the process priority class of dedicated Descent 3 servers when they are started. The value of the key ServerRunningProcessPriority defines the priority class of the server while it is running, and ServerClosingProcessPriority marks its priority class when the server is about to shutdown until it is finally closed/shut down/has exited. By using appropriate values for these keys, dedicated Descent 3 server restarts can be handled more gracefully for other, still running servers.
  • Bug fix within the server event handling functions: Several variables were only replaced on the first event. Consecutive events didn't change the server event variables anymore although the event itself had been triggered properly.


Last Updated on Wednesday, 22 October 2014 13:15
You need to login or register to post comments.
Discuss this item on the forums. (0 posts)
Discuss (0 posts)