English (United Kingdom)French (Fr)Deutsch (DE-CH-AT)
Random Thumbnail
Who Is Online?
We have 153 guests online
Home Descent 3 Descent 3 dedicated server tool for Windows Release notes
Most Recent
Featured Articles
Joomla 1.5 Featured Articles
Home Descent 3 Descent 3 dedicated server tool for Windows Release notes
English (United Kingdom)French (Fr)Deutsch (DE-CH-AT)
Release notes 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


--- This is the information D3Server3 uses when it checks for updates. ---

Latest D3Server3 version:
Latest beta version:
Release date: 2014-10-22
Features: CPU usage and tracker list
Download URI:
Setup URI:
Beta URI:

--- End of information D3Server3 uses to check for updates. ---


The process of how the update functions in D3Server3 work is explained in more detail in the article Automatic updates. You can also run the server tool as a Windows service. Running D3Server3 as a Windows service explains how to set this up.


D3Server3 release notes



  • Version
  • When a player is being kicked because his/her nickname is too short, the message displayed (sent to the console) was missing the text "nickname". The previous message "(player name) uses a too short and gets kicked!" has been corrected to "(player name) uses a too short nickname and is being kicked!".
  • The standard setting "Send rotational velocity" of a dedicated Descent 3 server configuration has been set to off again. The setting causes disconnections in co-operative type games. The tooltip for this option has been extended to explain the facts.
  • The default value for frames per second in the global options dialog window has been changed from 999 down to 333, as suggested by Do_Checkor. This setting only applies to complete new installations of the server tool. The default value for frames per second is used when a new dedicated Descent 3 server is configured. Existing servers as well as new servers in already installed D3Server3s are not affected by this change.
  • The two game trackers and removed from the game tracker list. The first one is identical to, which is still in the list, and the second one is dead. Since Descent 3 only supports up to five game trackers the list had to be trimmed. Thanks to Do_Checkor and CoolChris for pointing this out.



  • Version
  • The value of the configuration key FTPUploadPassiveMode in section [UploadStatistics] of D3Server3.ini is not overwritten by the installation program anymore if the key existed prior to the installation. Previous versions had always set the value of FTPUploadPassiveMode to 1 in order to circumvent a bug in certain beta versions during the implementation phase of the statistics processing functions.
  • The tooltip bubble help for the UDP port of a server in the server configuration dialog windows has been extended. The tooltip now explains when port 2092 or any other port should be used.
  • Three new game tracker servers added to support Qtracker ( The servers are,, and See also the associated forum post at the Qtracker forum ( According to the post, has been removed from the default tracker list of D3Server3 again.
  • The 'better string library' Bstring added to the project. Within this and following versions of D3Server3 string handling will be gradually improved.
  • Some minor code optimisations, mostly "strlen ()" related; some code comments added. The browser string for online requests is now retrieved by a a single function to save a few bytes of code.
  • Bug fix where the IP address was displayed as garbage in D3Server3's main dialog window. The bug only showed up when the ini key CheckForPublicIP was set to 1 in the section [GlobalOptions] of the configuration file D3Server3.ini, and when the public IP address could not be retrieved within the first few seconds after the server tool was started.
  • Bug fix: It was possible that an automatic server tool restart could cause the configurations to be lost. This is now prevented with a critical section object and an additional flag.
  • Very old versions of D3Server3 cannot download and run the installation program to update the software. This means they might be missing the file logtext.dll. Until now, more recent versions of D3Server3 suggested to download and install the latest version manually. This version of D3Server3 now contains a copy of the required file logtext.dll. Should the file not be present, or only exists in an outdated version, then the server tool tries to extract and create the file automatically. Only if this fails is an error message displayed and the user informed to download and install the latest version of D3Server3 manually. This step was considered necessary because the version of Descent 3 that can be downloaded from Dateiliste constains a version of D3Server3 that cannot yet download and run the installation program.
  • The debug version of D3Server3 additionally contains the text " - Debug version" in the InternalName field of the version information. This makes it easier to identify the debug version.
  • Fixed an issue with an access violation when a dedicated server process unexpectedly died while its process priority class was updated.
  • Bug fix: When no FTP or username for statistics FTP upload had been specified D3Server3 would repeat several error messages within a short time period. The messages are now still repeated but with a time delay of 30 seconds between each error.
  • Under certain circumstances D3Server3 displayed an error IP address (169.254...) although a real internal and/or external address had been assigned by the DHCP server. This should now be fixed and the software displays the assigned IP address.
  • When a logfile was opened from the server list's popup menu of D3Server3's main dialog window, but the logfile didn't exist, nothing happened. Actually, the associated application just popped up quickly to close again a moment later. Now an error message is displayed that the logfile doesn't exist. If the user doesn't close the message box it closes itself after the defined timeout value. The value is defined in seconds as the value of the ini key MessageBoxTimeout of the section [GlobalOptions] within the configuration file D3Server3.ini. The default is 3 minutes (180 seconds).
  • Bug fix: D3Server3 sometimes crashed on machines with multiple CPUs and many running dedicated Descent 3 servers due to a multi-threading bug in its main event listbox.
  • The event message "Stopping all empty servers..." that appeared when the button "Stop Empty & Exit" was clicked has been changed to "Stopping all empty servers and closing D3Server3...". This is to avoid possible confusion because the action might keep the tool busy for some time.
  • The event message "Stopping all servers..." that appeared when the button "Stop & Exit" was clicked has been changed to "Stopping all servers and closing D3Server3...".
  • When D3Server3 finds an orphaned dedicated Descent 3 server, and this server is terminated by the tool, it now writes this information to the main logfile. Before, this had been done quietly. Also, a summary of how many processes have been killed by D3Server3 is now placed in the event listbox and the logfile as a single event message. Its text is: "n" orphaned server process(es) killed. See main logfile for details.
  • In the server configuration dialog window the mission combobox was broken. When the mission was changed the combobox for the level selection only updated when the dialog window had been closed and re-opened again.
  • Bug fix: Since the D3Server3 automatically corrects download links the level loop function didn't work anymore. In fact, level looping was always on, independent of how the setting had been configured in the server configuration dialog.
  • The combobox in the server control panel for level warp (command $warp) has been made wider. Certain levels in some missions had long names that didn't fit in the box.
  • The commands $playerinfo, $ban, $removeban, $changeteam, and $kick are now working in the server control panel. They had not been implemented before.
  • Bug fix: When the server control panel was opened for the first time after D3Server3 had been started, the predefined value for the command $settimelimit was always 100 minutes, independent of what had been set before. This is now fixed and the previously selected value is displayed when the control panel is opened for the first time after program start.
  • The field in the top-left corner of D3Server3's main window ("PXO tracker status") has been changed to "CPU usage". Since PXO has been down for many years, and it doesn't look like it's coming back any time soon, it probably makes more sense to display some other information instead of the status of a non-available tracker. The CPU usage of the tool (D3Server3) and running dedicated Descent 3 servers are probably a good replacement. Since the tool's main window has changed it might require some additional work to update all the screenshots at Dateiliste and other places.
  • The values for the new CPU usage area in the top-left corner of the main window are now updating. The displayed values are not always correct, though, but it's a start.
  • Two new ini file keys DisplayCPUUsageD3Server and DisplayCPUUsageDescent3Servers in section [GlobalOptions] of the file D3Server3.ini added. DisplayCPUUsageD3Server=0 suppresses updating the CPU usage of the server tool. DisplayCPUUsageDescent3Servers=0 suppresses updating the CPU usage of running dedicated Descent 3 servers. By default both values are set to 1, which means that CPU usages are displayed and updated.
  • Previous versions of D3Server3 stored the process ID (PID) of a dedicated Descent 3 server even if the D3 executable could not be started. If the process failed to start a PID of 0 was saved in the file DynSettings.ini for finding it again as an orphaned server process later on. This version of D3Server3 only stores valid PIDs to recognise dedicated Descent 3 servers as being orphans.
  • New configuration key EnableProcessPriorityChanges in section [DedicatedServers] of the file D3Server3.ini. If set to 0, the key disables D3Server3's ability to change the process priority classes of Descent 3 dedicated servers. The default value is 1, which is the same if the key doesn't exist. The installation program creates the key with EnableProcessPriorityChanges=1, if it doesn't exist.
  • The progress message "Loading server data..." is now only displayed when no servers are about to be started. When D3Server3 automatically starts dedicated Descent 3 servers the message reads "Loading server data and starting servers...".
  • New configuration key UseDefaultTrackers in section [DedicatedServers] of the file D3Server3.ini. The key can either be 0 (UseDefaultTrackers=0) or 1 (UseDefaultTrackers=1). If set to 1, which is the default when the key doesn't exist or after the installation program has run, only the predefined game trackers are used by D3Server3. The tracker configurations of individual servers are ignored in this case. If UseDefaultTrackers=0, D3Server3 behaves like in previous versions and the server operator can edit the game tracker list for each dedicated Descent 3 server.
  • The configuration dialog window "Tracker options" has been changed for hard-coded Descent 3 game trackers only. This means the buttons Add, Remove, and Default are now disabled and the tooltip for the game tracker list explains what to do to get trackers added or removed. The tooltip is the help text that pops up when the mouse rests over the list for a few seconds. The dialog can be restored to its default by setting UseDefaultTrackers=0 in the section [DedicatedServers] of the file D3Server3.ini, which is not a recommended step.
  • When a dedicated server is started there are now two additional messages. The first one is added to the event log listbox before D3Server3 extracts custom objects from a mission ("Extracting custom objects..."). The second one is added when no custom objects were found in a mission ("No custom objects in mission."). Since extracting custom objects can take a significant amount of time it should now be clearer what the server tool is doing during this process.
  • Some "real-time" output in the event log listbox has been disabled. D3Server3 had sometimes deadlocked due to this. This means that some events are only displayed after the action has completed, for example when servers are stopped or started. I think it is better to have an application that doesn't freeze and get along with delayed output instead of accurate output but a non-responding server tool. The issue will be fixed in one of the next versions when all the time-consuming tasks will have been transferred into a separate worker thread.
  • The controls in D3Server3's main window are now disabled when it is clear that the application is about to exit. Since the software is now capable of handling Windows messages during some operations it would be prone to crashes or deadlocks if it was possible to click around in the windows during the shutdown process. This also applies to the X button in the dialog's title bar. It is disabled as soon as the server tool is about to close.
  • Handling of orphaned dedicated Descent 3 server processes has been improved. D3Server3 now catches some orphaned servers it would not have caught in earlier versions.
  • The installation program creates a new section [Debug] in the file D3Server3.ini. Two keys have also been added to this new section. Both are set to 0 (off) by default. If DebugMinuteTicker=1 an event log message is added to the event log listbox every minute D3Server3 has been running, but not for the first minute. This could allow external programs to check the main logfile for changes. If no change occurs in time the external program could assume D3Server3 to either have crashed or deadlocked. If the key DebugDlg is set to 1 (DebugDlg=1) the main logfile is updated even more often with lots of information regarding called functions and accesses to critical section objects. The key DebugDlg should really be used for debugging purposes as it outputs quite a lot of probably confusing information to the user.
  • Bug fix: D3Server3 sometimes froze or wouldn't close due to a deadlock in concurrent accesses to the event log listbox. All conducted tests so far lead to the conclusion that the bug has been fixed. Fingers crossed!
  • Sometimes D3Server3 would postpone an automatic server tool restart due to an open dialog window or because a server is being played. Now the tool places the messages "Automatic D3Server3 restart postponed because a server is being played." and "Automatic D3Server3 restart postponed because a dialog window is open." in the event log list and the main logfile when one of these conditions apply.
  • When the server tool is about to perform an automatic restart of itself the restart might be postponed when a server is being played. Since the restart is only postponed up to around 100 minutes D3Server3 now places an entry in the event log list to inform the user that this happened. The message is: "A server is being played but an automatic restart of D3Server3 required regardles."
  • New debug entry in section [Debug] of the file D3Server3.ini. They key UpdateThreadTicker=1 outputs the ticks of the update thread in the event log and the main logfile. The default is UpdateThreadTicker=0, which is the recommended setting unless there's a requirement to debug the update thread's minute ticks.
  • D3Server3 now also recognises WineHQ ( It goes without saying that the software does not work any different on Wine, if detected.
  • The software now ships with a Windows application manifest file (D3Server3.exe.manifest). The file requests admin privileges when D3Server3 is started by non-admins. It fixes the bug (well, Microsoft says it's a feature) in Windows 8 and 8.1, where it is not possible anymore to turn UAC off completely. UAC on Windows 8 and 8.1 can only be turned off in the registry (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System, key EnableLUA to 0; the default is 1 when UAC has been switched off with the user interface, which essentially means that UAC is not turned off).
  • When D3Server3 is running as a Windows service and the user starts another instance of D3Server3 the software tries to first stop the service automatically. If the user starting the server tool doesn't have the appropriate privileges to stop the service, D3Server3 displays an error message that it can't continue. Earlier versions had a bug that tried to start the service again even if it could not be stopped. Now D3Server3 just closes without additional messages.




  • Version
  • Statistics processing added (upload, backup, and archive). See ... for more information.
  • Bug fix: The server tool sometimes crashed when "Stop Empty & Exit" was used to close the application.
  • The download entry for in file DownloadURIs.dat moved to the bottom of the list. This follows Do_Checkor's suggestion due to not always being available and reliable.
  • If a previous instance of D3Server3 is running and a new instance couldn't write its new PID (process identifier) to the file cfg\PID.dat, an event message "Cannot write PID nnn to 'file'" was written to the logfile. The message provided no clue about the PID of the already running instance. This is why the message has now been changed to "Cannot write PID nnn to 'file'. PID nnn is still running.".




  • Version
  • A few more words and phrases added to the pofanity list again. Some words that don't make much sense have been removed.
  • In the dialog window for a server configuration, the setting "Accurate collision" has changed to "Accurate collisions", as mentioned in Descent 3's manual. The additional comment in brackets ("Use on LAN only") has been removed. Pretty much every internet connection nowadays should suit this requirement.
  • In the dialog window for a server configuration, the note in brackets ("Use on LAN only") for "Send rotational velocity" has been removed. Any modern internet connection should nowadays meet the requirement for rotational velocity. See page 57 of the Descent 3 pilot manual, "SendRotVel".
  • For new dedicated Descent 3 servers, the setting "Send rotational velocity" is now on by default. The tooltip help for this setting has also been updated.
  • The tooltip help for "Accurate collisions" in a Descent 3 server's configuration dialog window has been updated.
  • Minor changes to the file BuildD3Server3.txt. This file is supposed to provide some help on compiling and building D3Server3 from the source code package.
  • The file Install_and_uninstall.txt has been updated to reflect some changes to the tool.
  • The file Install_and_uninstall.txt is now copied in D3Server3's installation directory by the installation program. As its name suggests, the file contains some information regarding the software's installation and how it can be removed again (uninstalled).
  • The files XcopyExclusionList.dat and DownloadURIs.dat were missing from the source code package. The file Make_www_folder.cmd has been updated accordingly to copy the files into the folder for creating the package.
  • Some texts replaced with character string variables. This saves a few bytes inside the executable file.
  • The version/copyright year has changed to 2014.
  • New popup menu entry "Open log folder" in the list that shows the started servers (D3Server3's main dialog window). The item opens an Explorer view of the folder in which the logfiles are stored ("log").
  • The utility tail.exe is now part of the installation package. D3Server3 can use the software to tail logfiles.
  • Several new popup menu items within the list with the started dedicated Descent 3 servers. "Monitor main logfile with Tail" opens a tail.exe process to monitor D3Server3's main logfile. The windows closes when D3Server3 is closed. "Monitor main logfile with Tail detached" does the same but detaches tail.exe from the server tool. This means the window stays open when D3Server3 is closed, and the window does not roll over when the name of the logfile changes. There are additional popup menu entries with the same functionalities for dedicated servers. See "Opening and monitoring logfiles" for a detailed description of those new popup menu items.
  • Several new popup menu items within the list with the started dedicated Descent 3 servers. "Open main logfile" opens a Large Text File Viewer look at D3Server3's main logfile. The windows closes when D3Server3 is closed. "Open main logfile detached" does the same but detaches LTFViewr5u.exe from the server tool. This means the window stays open when D3Server3 is closed, and the window does not roll over when the name of the logfile changes. There are additional popup menu entries with the same functionalities for dedicated servers. See "Opening and monitoring logfiles" for a detailed description of those new popup menu items.
  • D3Server3 contained a small memory leak when writing into a logfile of a dedicated Descent 3 server. This leak has been fixed in the current version of the software.
  • Previous versions of D3Server3 used a subfolder "log" in the current working directory to store its logfiles. If this folder was not identical to the folder of the program's executable file, the logfiles were stored in a different directory/location. Now the logfiles are always written to a subfolder "log" inside the folder which holds the executable file D3Server3.exe. This change could either be considered a bug fix or dropping a feature. I consider it being a bug fix.
  • Some minor code optimisations in the logging function of a dedicated Descent 3 server.
  • Previous versions of D3Server3 had still been a bit negligent when it came to displaying an hourglass cursor whenever its Windows message queue was busy. This version of the tool now displays the hourglass cursor again a bit more frequently.
  • Bug fix: When the Descent 3 main directory was invalid and when the dialog window to locate Descent3.exe was closed without selecting the correct file, D3Server3 destroyed the current server configurations. This has now been fixed. The tool exits instantly when the dialog window is closed instead of overwriting the server configurations first. The issue had been fixed already in an earlier version of D3Server3, but the bug obviously somehow must have sneaked in again.
  • From now on, D3Server3 cannot run without the dynamic link library (DLL) logtext.dll anymore. The library is simply used for too many features of the software. If the DLL cannot be found, or is only available in an outdated version, D3Server3 fails with an error message and offers to open a browser window for alternatively downloading the latest version of its installation program. The messagebox with the error message stays always on top of all other windows, displays even when no user is logged on, and closes itself after 180 seconds, if the user doesn't react earlier.
  • The DLL (dynamic link library) logtext.dll has been updated to version If a less recent version of the DLL is found, D3Server3 cannot run due to compatibility issues. The installation program updates logtext.dll to the latest version upon installation.
  • Previous versions of D3Server3 stored the setting for using logtext.dll globally in the registry. This version stores the flag in the key UseGlobalLogtext of the section [Log] inside the file D3Server3.ini. The installation program deletes the obsolete registry key, if found.
  • The button "Go back" in the server configurations selector dialog window has been changed to "Cancel". The button "Add..." has been changed to "New...". I think this is more intuitive. The change has also been applied to the popup menu of the listbox. Subsequently, the alternative shortcuts (in combination with the ALT key) have changed. ALT-A is now valid for Cancel, and ALT-C is still the ALT shortcut key to copy a server configuration (Copy). ALT-N is now used to create the configuration for a new server. This had been ALT-A (for "Add...") in previous versions of D3Server3. Note that the popup menu does not support the ALT key shortcuts.
  • Bug fix: In the server configurations selector dialog window, two consecutive left mouse clicks (no double-click!) inside the listbox containing the configured servers enabled the buttons "Edit...", "Copy...", "Delete", and "Start, although no server had been selected. This is now fixed, and the buttons are only enabled when at least one server configuration is selected.
  • The same issue could have applied when a server was deleted. The buttons may have been enabled although no server was selected.
  • In the server configurations selector dialog window, the selections were not visible when the listbox control lost the focus.
  • In the listbox containing the started dedicated Descent 3 servers in D3Server3's main window, the selections were not visible when the listbox lost the focus.
  • When copying text from the event listbox into the Windows clipboard the message "Not enough memory for copy operation!" had been displayed in a messagebox. Now the message is added to the event listbox instead, and no messagebox pops up.
  • Several error messages have changed. Most of them have just been altered to be preceeded by the text "Error: ". This makes it easier to spot errors.
  • Many error messages that only popped up as messageboxes in previous versions of the server tool are now written to the main event listbox and the logfile.
  • The dialog window "Select port" has been widened a bit. The text that indicated that the port has been in use already was cropped.
  • When the acceleration key combination ALT-A was used to select all configured dedicated Descent 3 servers in the listbox of the server configurations selector dialog window, the buttons "Edit..", "Copy...", "Delete", and "Start" stayed grayed out. This has now been fixed and the buttons are enabled after using CTRL-A.
  • The button "Copy..." in the server configurations dialog window has been renamed to "Copy" (without "...") since there is no additional action equired by the user after initiating this operation. The selected server(s) is/are copied instantly to the top of the list.
  • Global options: D3Server3 always updated the file D3Server3.ini when the Ok button in the dialog window for the global options was pressed. Now D3Server3.ini is only updated when at least one configuration value has changed.
  • Online help for the server list popup menu created.
  • Online article "Opening and monitoring logfiles".
  • Bug fix with automatic restarts of the server tool and automatic updates. Earlier versions of D3Server3 could run in a situation where an automatic restart may be performed while an update process would start more or less at the same time, as well as the other way round (first update process, then automatic restart). Since both function could interfere with each other (update unsuccessful), only one of these functions can now be performed witin the same time period.
  • Major performance improvements when it comes to writing events to the logfiles. This applies to the main logfile as well as the logfiles for dedicated Descent 3 servers. The configuration file D3Server3.ini contains two more keys in the section [Log]. The value of the key LogtextQuickCounterMain specifies the amount of events that can be written to the main logfile without checking if rotation is required. The value of the key LogtextQuickCounterServer does the same for dedicated Descent 3 servers. The installation program creates both keys with a value of 500. If a key doesn't exist D3Server3 assumes its value to be 10.
  • The server configurations selector dialog window now contains a small bitmap in the left lower corner.
  • The global options dialog window got a small bitmap image too. It's probably not very nice, hence it might change again in one of the next versions of D3Server3. The buttons at the right bottom of the dialog window have been aligned.
  • When D3Server3 starts, the first thing that's written to the main logfile is an empty line. This makes the startup a bit more visible in case the previous instance has crashed and couldn't write an empty line upon its termination.
  • New bitmap image in the dialog window to configure a dedicated Descent 3 server.
  • Previous versions of D3Server3 didn't expect the configuration key NewWindowPositionOffset to exist in the section ServerControlPanel of the file D3Server3.ini. Previous versions created the key if it didn't exist. This version now expects the key to exist and doesn't create it anymore. The installation program creates it with a default value of 20. If the key still doesn't exist for whatever reason, D3Server3 assumes it to be 20. The value defines the X and Y pixel offset for new server control panel windows.
  • The key ConsoleFontHeight in section ServerControlPanel of the file D3Server3.ini is now created by the installation program. Previous versions of D3Server3 created the key if it didn't exist. The default value of this key is 8 and specifies the size of the font in the console control of the server control panel dialog window.
  • New commandline script ApplyManifest.cmd to apply the manifest file to the executable modules in the Debug and in the Release folder.
  • The communication between D3Server3 and ServiceExe has been slightly improved. This required a new version of ServiceExe (see below).
  • ServiceExe is now shipped in version 1.0.9. Previous versions of D3Server3 came with ServiceExe version 1.0.8. ServiceExe 1.0.9 fixes an issue on Vista and up (Windows 7, Server 2008, Windows 8, etc) and prevents a glitch that could allow D3Server3 to report its availablilty to be controlled as a Windows service before ServiceExe is entirely ready to take on this job.
  • The file ConfigD3Server3.cmd has been removed from the package. Since D3Server3 can stop and start a running service instance itself now (see below), the file is not required anymore.
  • When D3Server3 is running as a Windows service, starting the software as a normal application failed due to the running service instance. D3Server3 now tries to stop the service first before it starts up. The server tool remembers that it stopped the service when it is closed and therefore suggests to start the service again. If Yes is selected, D3Server3 then tries to start the previously stopped service again. If No is selected the software doesn't attempt to start the service. If no selection is made within a configurable time (see below), D3Server3 selects Yes automatically after the time has elapsed and attempts to start the service.
  • New key MessageBoxTimeout within section [GlobalOptions] in the configuration file D3Server3.ini. The value of MessageBoxTimeout specifies the time in seconds after which some messageboxes will be closed automatically. This usually performs a default action. The installation program sets MessageBoxTimeout=180, which means the standard timeout is 180 seconds (3 minutes). For example, if D3Server3 stopped a running service instance on startup, and asks if the service should be started again when the application is closed, the service is automatically started after 3 minutes if no selection (Yes or No) is made. This happens because the messagebox is automatically closed after the time value in MessageBoxTimeout has elapsed, and because the default action is to start the service again.
  • The zip archive has changed. It now contains the profanity list and the lists with the corrected download links. The batch file ConfigD3Server3.cmd has been removed (see above why). Note that the zip archive should not be used unless a certain file in it is required for whatever reason (maybe deleted accidentally). D3Server3 needs the installation program to run before it can work properly. Running D3Server3 without installing it is not supported (and doesn't work, by the way).
  • Interaction between D3Server3 as a Windows service and the application D3Server3 had a design flaw during an automatic update. Before, when the software was running as a service, and ConfigD3Server3.cmd was used to stop the service, the application D3Server3 would suggest to perform an update if a new version had been available. The automatic update would then restart D3Server3, which the batch file recognised as the command to start the service again. However, the installation program was running during the startup process of the Windows service, which could prevent some files from being updated. D3Server3 now doesn't start the service when it exits due to an automatic update. Instead, it suggests to start the Windows service again after the update process has fully completed.
  • The "quick logging counters" are now stored when D3Server3 closes and reused when the application (or the service) starts up again. This allows for very high values of the counters (values of the keys LogtextQuickCounterMain and LogtextQuickCounterServer within section [Log] of the configuration file D3Server3.ini). For the logfiles of dedicated Descent 3 servers the values are somewhat "normalised" to ensure that logfile rotation can take place. Before, the counters would not survive a server tool restart, which could lead to logfiles not being rotated at all when the values were higher than the amount of events written to a logfile during the lifetime of a single instance of D3Server3. Nah, you probably don't need to understand this right now. However, it works, and there will be an article explaining it in detail at some point. ;-)
  • Two more server events variables added. $MainLogfile evaluates to the full path and filename of D3Server3's main logfile. The variable $ServerLogfile is substituted with the full path and filename of a Descent 3 dedicated server's logfile. $ServerLogfile is only available if the event supports it. It won'be be substituted if the event is for example a D3Server3 startup event ([OnD3Server3Start]).
  • The example AutoIt script ServerEventsHandler.aui has been changed to support the two additional server events variables $MainLogfile and $ServerLogfile.
  • The popup menu in the event listbox control at the lower part of D3Server3's main window now contains a new item "Online help (open browser window)". The menu item opens a browser window with the online help for the popup menu.
  • Name server lookups implemented. The hostnames of IP addresses are looked up and used in several places together with the IP addresses. The suggestion for this feature came from Do_Checkor.
  • New popup menu entry in the event listbox control to copy a hostname to the Windows clipboard.
  • New popup menu entry in the event listbox to open a browser window with a 'whois' request for a given IP address. The suggestion for this feature came from Do_Checkor.
  • The window title of D3Server3's main window has changed. Earlier versions showed something like "D3Server3 v3.1 by (DE)Hunter & Thomas". From now on the window title only consists of the software's name and version number, for example "D3Server3 Ver. 3.2". I think it's not necessary to show the authors' names in the main dialog window's title bar. It is quite likely that "Ver. x.y" is going to be removed from future versions of the server tool, too. The name of the software should be enough text for the main window's title bar.
  • New popup menu entry in the event log window (the listbox that contains the events). The new item is "Clear event log window" and empties the window when used. Note that the events are not removed from the main logfile. Only the window is cleared. The popup menu is not shown when the event log window is empty.
  • The text for the tooltip of the event log window has been changed to reflect the changes made recently, which includes the key combination CTRL-A to select the entire list and the new popup menu items.
  • Bug fix: D3Server3 normally saves its configurations every 15 minutes. If the computer the software runs on had been up for more than 49.7 days D3Server3 would not save the configurations anymore. This version uses a 64 bit time counter to prevent an overrun after 49.7 days.
  • New configuration key LogSaveConfigs in section [Log] in the file D3Server3.ini. If the value of the key is 1 (LogSaveConfigs=1) D3Server3 writes the text "Saving configurations..." to the event log when it starts saving its configurations, which currently happens every 15 minutes. When the save operation completes, D3Server3 writes "Configurations saved." to the event log. If the key LogSaveConfigs doesn't exist, the two events are not logged by default. LogSaveConfigs is set to 1 by the installation program, if it doesn't exist, resulting in the mentioned two lines appearing in the event log list. To prevent the two events being logged, set LogSaveConfigs=0 in section [Log] of D3Server3.ini.
  • Fixed the 32 bit timer overrun issue with a Descent 3 dedicated server's remote console timeout and observer on/off checks. Previous versions of D3Server3 used a 32 bit counter while this version uses a 64 bit counter. This prevents the timer from an overrun, which occurs on Windows after approximately 49.7 days.
  • This is just a cosmetic fix as the function is currently not used by the server tool: D3Server3 could clean up players that hadn't played for more than 3 months. The (unused) function checked for these players too often. It has been reduced to once per day now, in case the function is used at some point. I think earlier versions of the server tool had a minor bug in this unused function that checked every few minutes, which didn't look intentional to me ("12 * 3600" ticks looks like it should have been "every 12 hours"). However, a daily check makes certainly more sense than the previous interval.
  • The timer to measure a dedicated server's runtime has been extended from 32 bit to 64 bit. This fixes an issue with an overrunning timer when the host machine had been up and running for more than approximately 49.7 days.
  • The switchover from 32 bit timers to 64 bit timers for dedicated servers has been made compatible to previous versions of the tool. The config files for the latest version of D3Server3 can still be read and understood by previous versions. The update transition also does not affect servers that had been started with a previous version and now, after a server tool update, need to be monitored and controlled by the most recent version of D3Server3. This has been a prerequisite for automatic updates and is working ok. While servers started with a 32 bit timer by a previous version of D3Server3 the software switches over to 64 bit after the next restart of the server (either automatic or manual).
  • File Readme_Thomas.txt removed from the source code package. The file was a (very old) subset of Readme.txt.
  • Fixed several bugs in the NS lookup feature, at least one of them had been severe enough to cause an application crash.
  • D3Server3 now looks up the IP names of the private and the public IP addresses of the machine it is running on (the own hostname).
  • New configuration key TimeWithoutPlayersBeforeAutomaticRestart in section [DedicatedServers] of the file D3Server3.ini. Previous versions of D3Server3 had not made this time period configurable. TimeWithoutPlayersBeforeAutomaticRestart sets the time period in seconds that must have elapsed since the last player left a server and then the server can be restarted automatically. The default value is 130 (130 seconds). This means that D3Server3 waits for 130 seconds after the last player of a server has left before it would restart a dedicated server due to its runtime (uptime) being exceeded. The runtime after which a dedicated server should be restarted by the server tool can be set in the global options dialog window.
  • Version already gave some clue that the support for Windows NT is going to be ceased sooner or later. Now the minimum required Windows operating system for D3Server3 is Windows 2000. The installation program does not allow the application to be installed on Windows lower than Windows 2000 with service pack 3.
  • The name server lookups created an event in the event log whenever a lookup was successful, which happened around every 3 hours for every IP address. Now IP addresses and names are only displayed and logged when they have changed.
  • If the list in the event log had been empty a click with the right mouse key had no function. Now the popup menu entry to start a browser with the online help for that menu appears.
  • When the remote console of a dedicated server contained more recent data than the current ticker, D3Server3 would assume that the remote console of the server is not available anymore and restart it. Most likely, this didn't happen very often, but it certainly must have happened. In other words, D3Server3 restarted a dedicated server because it assumed a crash. Now there's a 300 ms timeframe before the server tool assumes a dedicated Descent3 server's console to have crashed.
  • Since I'm pretty sure Martin (DE)Hunter doesn't want to receive emails regarding D3Server3 I've removed his email address.
  • The look of the About dialog window has changed. It now contains a running text and a floating logo. The previous D3Server3 logo bitmap has been removed. There's also two new buttons. The button "D3Server3 online" opens a browser window with D3Server3's homepage. The button "Dateiliste" opens a browser window that points to Dateiliste's main page (
  • The message "Excerpt of document..." changed to "Excerpt from document..." (correction). The message was logged when there was an error retrieving the public IP address.
  • Bug fix: When trying to retrieve the public IP address, the message "The document retrieved from ... doesn't seem to contain a valid IP address." was corrupted. This is now fixed.
  • The running About text from Pablo van der Meer ( needed some changes and adjustments for longer and underlined text.
  • Some more log details added when D3Server3 is stopping a running Windows service. Since the event log box is not available when D3Server3 stops or starts its own Windows service instance, the messages are only written to the logfile.
  • Several tooltips have been changed (global options, etc).
  • New ini key LogPortSelections in section [Log] of the file D3Server3.ini. If LogPortSelections=1 a message is written to the logfile if a server port number has been changed via the dialog window to select a new port. The key is set to LogPortSelections=1 by the installation program. If they LogPortSelections doesn't exist the default value is LogPortSelections=0 (don't log manual server port changes).
  • Bug fix: D3Server3 could crash if servers had not been started yet but their server control panel dialog had been opened already. Closing D3Server3 crashed the application under certain circumstances.
  • New key LogProcessPriorityChanges in section [Log] of D3Server3.ini. The key can have the values 0 or 1, and determines if D3Server3 should log process priority changes of dedicated Descent 3 servers. LogProcessPriorityChanges=1 logs the changes, LogProcessPriorityChanges=0 doesn't. The installation program creates the key with a value of LogProcessPriorityChanges=1.
  • D3Server3 now writes events to the logfile in a separate thread. Although the dynamic link library (DLL) logtext.dll has supported this since one of its first version years ago, D3Server3 never utilised this option (apart from some very few special builts). D3Server3 now takes full advantage of Logtext's asynchronous logging options. This means that whenever the server tool writes something to a logfile it is almost instantly ready to proceed with other tasks again. The message is queued and then forgotten, while logtext.dll takes care of the actual write operation into the logfiles.
  • Bug fix, although the bug didn't exist before D3Server3 used queued logging (see above): The functions to retrieve logfile names from Logtext used the wrong exported function. This caused the popup menu entries to open logfiles not to work anymore. Again, this bug didn't exist in any version of D3Server3 before beta version, however it would have turned up sooner or later.
  • Integration of RestWinIcons improved.
  • The port selection dialog window now has a timeout if no user interaction has been notices. It automatically closes (with Ok) if the value (in seconds) of PortSelectTimeout in the section [GlobalOptions] of the configuration file D3Server3.ini has elapsed. The installation program sets PortSelectTimeout=180 (3 minutes). If the key doesn't exist D3Server3 assumes a value of 3 minutes (180 seconds).
  • Bug fix with msn file extraction. The msn files were only extracted when the mission was part of Do_Checkor's Download Link Surgery. Now the msn files are always extracted, even if the mission is not in the link surgery, provided that CorrectDownloadURIs=1 in section [GlobalOptions] of the file D3Server3.ini.
  • An external application, like for example the installation program, could close D3Server3's main window even if a dialog window was open. In this case the main window of the software would close but the open dialog would stay open, leaving the software in an odd state. D3Server3 now refuses to close if it receives a WM_CLOSE message and another dialog window is open.
  • The installation program can now close D3Server3 even if not invoked from the software itself. After the installation, the software suggests to start D3Server3 again if it had closed it during the process.
  • The installation program is built with a new version of Inno Setup. The installation script required some slight changes for this update.
  • New key ShowBalloons in section [Log] of the file D3Server3.ini. If set to ShowBalloons=1, D3Server3 displays a little informational balloon in the icon tray on several occasions. If ShowBalloons=0, no message balloons are displayed. The installation program sets ShowBalloons=1. If the key ShowBalloons does not exist in section [Log] the default value is ShowBalloons=0.
  • Lots of "under the hood" changes.





  • Version
  • Bug fix when checking for beta updates. If the beta version number and the release version number on D3Server3's update webpage (the release notes) were identical, the software would not update automatically when DownloadAndInstallBetas in D3Server3.ini (section [GlobalOptions]) was set to 0. The software now ignores a beta check once it determined that an update should be downloaded and installed due to different major or minor version numbers.
  • In the server configuration dialog window, the name of the checkbox "Allow game tracker" has been renamed to "Allow game tracker(s)". Since D3Server3 supports more than one game tracker with this configuration setting, its new name seems more accurate and understandable.
  • The online help page for the Game Tracker Options has been updated. There is now a new page that explains how to update the game tracker list for existing servers.
  • New popup menu entry in the list that contains the started servers (D3Server3's main dialog window). The new menu entry is called "Stop empty server(s)" and has the same functionality as the button "Stop empty server(s)" in the main window. It only stopps servers that currently do not have players.
  • New popup menu entry separator between the entries for stopping and restarting servers. Without that separator the popup menu looked a bit crowded.
  • The buttons "Stop server(s)", "Stop all servers", and "Stop all empty servers" in D3Server3's main dialog window were sometimes available, although no server had been selected, or no server had been started at all. Beginning with this version of the server tool, the buttons are now interactively enabled and disabled, depending on whether they can be used or not. Some of these changes had worked already in previous versions of D3Server3, others had not.
  • When the popup menu of the server list control had been used to start new servers it was easily possible that the popup menu entry "Stop server(s)" had been selected accidentally. There is now a new separator between the popup menu item "Start server(s)" and "Stop server(s)" to avoid this in the future.
  • Source code package: A new commandline script has been added (CopyFilesToDebugAndRelease.cmd). The script replaced the file CopyProfanityList.cmd and is used to spread several files from the source code's main folder to the Debug and the Release directories.
  • The file CreateDownloadURLs.cmd in the source code package has been changed to reflect the new mechanism for the automatic correction of mission download links.
  • The file DownloadURLs.txt now has some text on the top to let the reader know that the file is currently not used by D3Server3. It's purpose is going to change in future versions of the tool.
  • New file DownloadURIs.dat. This file contains some download links for mission files. When the key CorrectDownloadURIs in section [GlobalOptions] of the file D3Server3.ini has the value 1, this file is used to correct the download links of Descent missions. The key CorrectDownloadURIs=1 takes precedence over the setting CorrectDownloadURLs=1 within the same section of the configuration file D3Server3.ini. The behaviour and priority of these settings might change in future versions of D3Server3. The reason why it has been implemented like this is because Do_Checkor's Download Link Surgery 2007 does nothing but uses the links for all missions that are now provided within the file DownloadURIs.dat. Since the filename might change in future versions of the server tool, and because the links are maintained globally, it is not recommended to edit this file.
  • New key AmountDownloadLinksToCorrect in section [GlobalOptions] of the file D3Server3.ini. The value of this key defaults to 4. It provides the amount of download links D3Server3 corrects. A default value of 4 has been picked because Descent 3 only supports 5 download links altogether, leaving the fifth link for the original level author's first download link in the list.
  • The behaviour of the popup menu in the event listbox has changed. If no item (line) had been selected, previous versions of D3Server3 showed the popup menu regardles. The only option in this menu was "Copy". After clicking on "Copy" a message box containing the error "No items selected" was displayed. This version of D3Server3 does not open the popup menu in the event listbox if no item has been selected, thus the message box with the error has been removed entirely.
  • The popup menu in the event listbox contains several new items to copy to the clipboard if the selected text allows for it, i.e. contains the information required. "Copy server UDP port" copies a dedicated server's UDP port to the Windows clipboard. "Copy server PID" copies the Windows process ID of a dedicated server's process (main.exe or what's currently used) to the clipboard. "Copy player name" copies a player's name. "Copy IP address" copies a player's IP address to the clipboard. These menu items are only available if the selected text contains clues for this information. The information that can be copied to the clipboard is found in double quotation marks (") in the popup menu items.
  • Source code: The commandline script Make_www_folder.cmd has been extended by an additional error message when the www folder could not be deleted.



  • Version
  • Source code package: The files Zombies.c and Zombies.h have been renamed to Orphans.c and Orphans.h. Dedicated Descent 3 server processes that D3Server3 has lost for whatever reason are called orphans, not zombies.
  • D3Server3 now tries to remove (terminate) orphaned dedicated Descent 3 server processes when the tool is started.
  • New key TerminateOrphanedServers in section [DedicatedServers] in the file D3Server3.ini. If TerminateOrphanedServers=1 D3Server3 tries to terminate orphaned dedicated Descent 3 server processes when the tool is started. TerminateOrphanedServers=0 disables this function. The default is TerminateOrphanedServers=1 if the key does not exist. The installation program creates this key with a value of 1 (TerminateOrphanedServers=1).
  • Bug fix: The pop-up menu entry "Restart server(s)" in the server list control did not restart servers if they had been played. Although the messages were different for "Restart server(s)" and "Restart empty server(s)", their functionality had actually been the same. Now "Restart empty server(s)" only restarts servers without players and "Restart server(s)" restarts servers regardless of whether they have players or not. Do_Checkor reported this bug after he was trying to use the function unsuccessfully to restart one of his BOZ servers, which always has players playing (the BOZ players).
  • Minor code optimisation to remove the .lock file in a dedicated server's temporary directory.
  • Minor data optimisations in regards to duplicate character strings in the final executable module D3Server3.exe.
  • Bug fix: When the key CorrectDownloadURLs in the section [GlobalOptions] of the file D3Server3.ini is set to 1 (CorrectDownloadURLs=1) D3Server3 uses the corrected download links from Do_Checkor's download link surgery, which is included in the D3Server3 package. If there are download links found that can be corrected, the software adds these found download links to the msn file again every time a server was restarted. Although it had no impact on the dedicated Descent 3 servers directly, this lead to very big .msn files over a long time period. The files were restored to their normal sizes when a server stopped. This version of D3Server3 fixes the bug and only adds the corrected download links to the .msn file when the Descent 3 dedicated server is started for the first time. The file then stays the same during the lifetime of the dedicated server. That's how the setting CorrectDownloadURLs=1 is intended to work. CorrectDownloadURLs=1 is the default value created by D3Server3's installation program, hence the bug affected all servers that used previous versions of the tool beginning from version
  • The text file BuildingD3Server3.txt has been updated.
  • Coolchris's new game tracker at has been added to the default game trackers. In order to activate the tracker, open a dedicated server's configuration, click on "Tracker options", then press the "Default" button to reset the list with the default trackers. This adds the new game tracker to the list.
  • Previous versions of D3Server3 could be closed (exited) by pressing the ESC key in the application's main window. I think this is inconvenient behaviour. This version of D3Server3 now ignores the ESC key inside the main dialog window. To exit D3Server3, either click on any of the Exit buttons or press the default Windows key combination to close windows (Alt-F4).
  • New variable $ServerToolID that can be used with the server events. The variable is substituted with the value of the key ServerToolID in the [GlobalOptions] section within the configuration file D3Server3.ini. The variable can be used to identify a particular running D3Server3 instance if more than one copy is installed. This is only possible when ServerToolID is set to a unique name within each instance's D3Server3.ini file. The ID is also used to create the dedicated servers' temporary folders within the Descent 3 directory.
  • The colon (":"), the asterisk ("*"), the question mark ("?"), and the pipe character ("|") have been added to the list of characters that are considered unsafe for batch files. D3Server3 can remove these unsafe characters from server event variables when MakeCommandsBatchSafe is set to 1 (MakeCommandsBatchSafe=1) in section [General] of the server events configuration file ServerEvents.ini. Since all unsafe characters are also removed from the server tool ID in D3Server3, this also affects that setting. However, a server tool ID is not used by default.
  • An error message in a message box regarding PXO removed. PXO doesn't exist anymore, hence there's no need to pull up a message box. The error message is now stored in D3Server3's main logfile without requiring user interaction.
  • The profanity list has been extended by some more contributions from players of the piloting community. Thanks everyone for participating!





  • 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.





  • Version
  • New section in the ini file D3Server3.ini. The secion [Log] is created by the installation program. The section is meant for general logging and debugging options.
  • The first configuration key in the new section [Log] of D3Server3.ini is LogUpdateDetails. If set to 1 (LogUpdateDetails=1) the upate process is logged in detail. If LogUpdateDetails=0 only general information regarding the update process is stored in D3Server3's main logfile. The default of the key is 1 even if it doesn't exist. D3Server3 itself does not change the value of LogUpdateDetails or create it if it doesn't exist. It assumes that the key exists.
  • The key LogNetworkAddresses has been moved from the configuration section [GlobalOptions] to the section [Log] in the file D3Server3.ini. During the movement the previous value of LogNetworkAddresses is not preserved. The installation program sets the new key to 1 and removes the key LogNetworkAddresses from previous installations.
  • The current version number of D3Server3 had been written to the DynSettings.ini file in its short form (3.1.7 instead of Beginning with this version of D3Server3 the version number is stored in its long form, like "", to make it easier to compare new and previous versions within the ini file. The same applies to the server event script variable $D3ServerVersion. It too is now always expanded to the version number's long format.
  • Bug fix: Version of D3Server3 doesn't save any settings. This is considered a major bug.



  • Version
  • The tooltip for the selected level in the server configuration dialog window has changed. One typo has also been fixed.
  • The button "Online help" in the server control panel dialog was not working. It now points to a still empty article on Dateiliste.
  • New variable $D3ServerVersion for server events. The variable is substituted with the currently running version of D3Server3. The version number includes the build number. Example: "" (without the double quotation marks).
  • The tooltip text for the difficulty level of a game in the server configuration dialog window was wrong. It stated that the lowest difficulty is Rookie. However, the lowest difficulty level in Descent 3 is Trainee. The text now also explains the situation regarding difficulty level and effectiveness of powerups.
  • The tooltip for "mouselook" now contains a little explanation.
  • The dedicated server command $warp was missing in the server control panel. The command allows to end the current level and jump (or "warp") to another one in the mission, provided that the mission contains more than one level. If the mission only contains one level this level will be restarted.
  • Server control panel: The command "say" was broken. The command had been sent to the server without the accompanying parameter text.
  • New variable $DateTime for server events. The variable is substituted with the current date/timestamp of the event. Its format is YYYY-MM-DD HH:MI:SS.mis+/-Offs. Example: 2013-06-17 22:10:25.132+02:00.
  • The server control panel command $setmaxplayers had not been working. It's now fixed.
  • New key LogNetworkAddresses in the section [GlobalOptions] of the configuration file D3Server3.ini. When set to 1 it logs the available network addresses at application startup. The installation program creates this key if it doesn't exist. The default value is 0, which doesn't log the available network addresses in the main logfile. The addresses show up in the logfile as "Available network address #001:", "Available network address #002:" etc.
  • The server control panel command $priority was missing. The command is only available when Anticheat (AC) is installed.
  • The server control panel commands $minpps, $maxpps, and $servername had the wrong parameters used. This is now corrected. The commands are only available when Anticheat (AC) is installed.
  • Bug fix: The tool could crash when shut down due to the event listbox being utilised by the update thread. The bug prevents changes to be written to disk.
  • Server events are now additionally written to the main logfile as invoked without substituted variables. This helps find bugs in event scripts and the server tool itself. The (current) logging text may have to be changed again later because it might be to unprecise to track down nasty bugs. Example: Raw event call (OnD3Server3Start): "ServerEventsHandler.exe "$EventType" "$PortNumber" "$ServerName" "$PlayerName""
  • New server events variable $ProfanityText which is substituted with the entire text line the player sent when they used recognised profanity. It includes the "pilot xy says: " part. When the variable is used it is advisable to enclose it in double quotation marks since the text can contain blank (space) characters. Any other character that's not safe for batch files can be replaced with a question mark by setting the key MakeCommandsBatchSafe=1 in the section [General] in the file ServerEvents.ini.
  • New server events variable $D3ServerVersion. It is substituted with the version of D3Server3 that invoked the script or executable file. Example for this version: "" (without the double quotation marks).
  • The example AutoIt script file and its executable have been updated to deal with the newly added server events variables. There is still no example of ServerEvents.ini included in the distributable package. Do_Checkor and Thomas are currently the only users who are utilising the server events.
  • The file ServerEvents.ini in the debug folder has been updated to use the newly added server events variables. The file is only included in the source code package.



  • Version
  • Although D3Server3 doesn't need Descent 3's base directory to be in the old MS-DOS 8.3 filename format the file open dialog window used to set/retrieve D3's base folder always returned the short path to it. Now the folder's long path name is used and stored inside D3Server3.ini in section [GlobalOptions], key "BaseDirectory".
  • Previous versions of D3Server3 only stored Descent 3's base directory in the ini file D3Server3.ini when the user selected the folder manually with the file open dialog window. This version of the server tool writes the key BaseDirectory in the section [GlobalOptions] if it doesn't exist.
  • Bug fix: The event OnHostsDenyBanned had been triggered when the server tool went for a software update. In that case both events, OnD3Server3UpdateRestart and OnHostsDenyBanned, had been triggered. In other words and for programmers, the "break" statement within "switch" for OnD3Server3UpdateRestart had been missing, processing the code for OnHostsDenyBanned additionally.
  • Main window: The control that lists the servers as well as the event listbox now support the key combination CTRL-A to select all elements in the lists. Pressing CTRL-A in the server list control selects all servers while the same key combination selects all events in the event list.
  • Server configurations selector: The list control with the server configurations now also supports the key combination CTRL-A to select all server configurations.
  • Martin (DE) Hunter had originally started to implement a remote info server for Descent 3 dedicated servers. However, this server has never been used within D3Server3. Now all references to the remote info server have been removed but remain in the source code as comments. This means that the server could be activated again at some point in the future, but most likely it will not be activated ever again.
  • Hourglass cursor: Previous versions of the server tool never displayed an hourglass cursor although the software was not responding. D3Server3 for example cannot handle keyboard or mouse input when a server is started, when a server is stopped, or when a server control panel window opens. The tool is also not very responsive when the actual dedicated server monitoring and control process takes place, which happens around every 15 seconds. Although the time period(s) during which D3Server3 is not responding to input might be very short these periods do exist. Starting with version of D3Server3 the software now displays an hourglass cursor whenever it is not capable of handling keyboard or mouse input.
  • New message "Stopping server..." in the server event listbox (and of course the main logfile). The message is displayed when a Descent 3 dedicated server is about to be stopped, independent of why this is happening. The surrounding messages or the user input should usually provide enough clues on the reason why the server is stopping.
  • Again several new words and phrases added to the profanity filter. Thanks to Do_Checkor for the list containing the words and phrases, and thanks to Markus for his unwitting effort and participation in the progressive creation of the list.
  • A file named "Building D3Server3.txt" is now included in the source code package. It is supposed to provide some hints on how to build D3Server3. It is also meant to provide some background information about the included files and the folder structure of the source code tree. Still very small, I hope that the file grows bigger soon for the release of one of the next versions.
  • Bug fix: D3Server3 could crash with an access violation when the application was about to be closed. The thread for retrieving the public IP address could try to access a critical section object which had been freed earlier to prepare the application's shutdown. The thread now terminates before it has a chance to access the critical section object, which might not exist anymore at that point. The bug was reproducible several times after starting D3Server3 and then instantly closing it again, but only with the (very slow) debug version of the software. The release version seems to be fast enough to minimise the risk of running into this access violation down to zero. The bug could not be reproduced with the release version of D3Server3.
  • There's now a new file Stats.dat in the folder cfg. The file is used later for the statistics data D3Server3 stores in conjuction with the Descent 3 dedicated server control panel. At the moment the file is written but without any content. Its file size is 0.
  • A new batch file "Kill Descent 3 processes.cmd" added to the source code package. The file is used to kill orphaned Descent 3 instances independent of their executable file name. It turned out to be very useful after some initial testing.
  • The Descent 3 dedicated server control panel has been activated. It has been in the source code for several versions already but due to several bugs it hadn't been activated. This version now seems stable enough to be released. The server control panel is far from being complete. Many server commands are not implemented yet and the dialog window is still pretty empty. One of the next versions is going to extend the panel significantly. The server control panel can be reached with a right-click on a running server and "Open/show server control panel(s)". The panel windows can additionally be hidden, minimised, or closed within the same popup menu.
  • Bug fix: The application could crash when a server control panel is opened for a dedicated server that hasn't provided a remote console yet. In order for the access violation to show up it was required to start a server and instantly open its server control panel before its remote console is available.
  • The server commands that have options of which one of them needs to be selected (like $autobalance ) now remember the previous selection within the dedicated server control panel. The selected values are written to the file cfg\DynSettings.ini. It is not advisable to edit this file manually. Only keys, values and sections in D3Server3.ini should or can be edited by the server operator.
  • Bug fix: The window position offset for new server control panel windows was not written properly to the ini file. The name of the constant was written to the file instead of the actual offset value. Now the offset is stored properly. The bug had actually no consequences but caused the default value to be used all the time.
  • Bug fix: The version check didn't take the major version number into acount properly. It always found a major version of 0 instead of 3. This didn't matter so far since the other version numbers (minor and sub) had been compared too, and because it never happened that an installed version was actually higher than the version provided online for download.
  • The version check has significantly changed when it comes to version numbers. Now the build number is also used. This is required for the download of beta versions to work.
  • The software can now be configured to also download and install beta versions. In the file D3Server3.ini set the key DownloadAndInstallBetas to 1 (DownloadAndInstallBetas=1) within the section [GlobalOptions].
  • The installation program now creates a few more ini keys in the file D3Server3.ini if they don't exist. Before that, the software (D3Server3) had created the keys if they didn't exist. This is still the case but the installation program usually creates them before the software runs for the first time. They key CheckForUpdates within the section [GlobalOptions] is now always set to 1 by the installation program, independent of whether it exists already or not. Note that CheckForUpdates only checks for updates. It does not automatically download and install them.
  • Server control panel: The commands $servername, $minpps, and $maxpps have been added to the remote command list. Dedicated Descent 3 servers only understand these commands when AC (Anticheat) is installed and used.
  • Server control panel: Bug fix with commands that expect a parameter. The '$' character had not been sent before the actual command. That's because the 'say' command must not be used with a prepended '$' character. Looking at this in a more suspicious way, this is probably more of an oddity of a dedicated Descent 3 server instead of an issue with D3Server3. The 'say' command is the only command that cannot be prepended with a '$' character while the first character of all other commands must be the '$', followed by the actual command.
  • Source code tree: The file MoveToRecycleBin.h had been referenced from the wrong folder. This means that it was not possible to build D3Server3 with the provided source code package without adjusting the file D3Server3.vcproj manually. Because no one has reported this issues I assume that no one had tried to build the package.
  • This version of D3Server3 stores the PIDs and the current tickcount of started servers in the file cfg\DynSettings.ini. The tickcount indicates the timestamp when the server was started. When a server stops the PID and the tickount are removed again. The values are stored in the section [ServerPIDs] as PID/tickcount pairs. For example, the server with PID 1000 and a starting tickcount of 1234567 would be stored under the key "1000" withe a value of "1234567" (1000=1234567). This is a preliminary step to provide D3Server3 later with the option to remove orphaned dedicated Descent 3 servers automatically.
  • Several server control panel commands added/fixed and some of its dialog controls adjusted and aligned. In particular the commands "quit" and "say" had not been working properly before since they do not expect a dollar ('$') character to be typed or sent to the remote console first.
  • The minimum requirements for operating system and installation of Internet Explorer have changed with D3Server3 version The minimum version of Internet Explorer is now Internet Explorer 5.01. This prevents D3Server3 from running on an unpatched Windows NT 4.0, even if PSAPI.DLL is available since Windows NT 4 comes with Internet Explorer 4.0 only. Although it might be possible that Windows NT 4.0 can be patched or a newer version of Internet Explorer could be installed, the minimum supported operating system for D3Server3 is now Windows 2000 with the latest available service pack. If you still need Windows NT 4.0 support please refer to "How to Install Internet Explorer on Windows NT 4.0" (
  • D3Server3's behaviour has changed when the Descent 3 folder is not valid. Earlier versions just terminated the application process with ExitProcess (). This version shuts down the application gracefully but does not store any information in the data files to prevent data corruption.
  • Previous versions tried to add some messages to the event listbox of the main window in case the Descent 3 directory could not be found or was not accessible. D3Server3 version only writes the information in the logfile.
  • Bug fix: When the drive letter containing Descent 3 was not valid the filename to search for was prepended with a backslash character ("\"). This was actuaclly wrong as the filename to search for should have been "Descent 3.exe" only.
  • Bug fix: When the key DownloadAndInstallBetas in the section [GlobalOptions] of the file D3Server3.ini was set to 1 the software ignored the key DownloadAndInstallUpdates. Even if DownloadAndInstallUpdates was 0 D3Server3 still downloaded and installed updates. Now both, DownloadAndInstallUpdates and DownloadAndInstallBetas must be set to 1 for the automatic download and installation of beta versions to work.
  • Bug fix: When beta versions were supposed to be downloaded and installed it was possible that the update process was running in an infinite loop, continuously download the beta installer, starting it, exiting, then running again, etc. The reason is that the software downloaded the latest release version instead of the latest beta version.
  • The installer produces a logfile during the installation process. The file InstallationLogFile.log is located in the log folder. It can be used to identify installation issues. The file only contains the logging information of the most recent installation process. Less recent versions of the file are destroyed by new installations.





  • Version
  • Some typos in the file ReadMe.txt corrected.
  • D3Server3's browser string was not set correctly in previous versions. The string is used for update checks and to obtain the public IP address.
  • Major bug fix: When switching to UseSmartHostsDeny=1 and there was no previous hosts.deny file inside the cfg folder it was possible that D3Server3 could accidentally move the contents of the entire Descent 3 directory into a folder called \cfg\hosts.deny.



  • Version
  • The file D3Server3.upd removed from the source code package. It was used for update checks in very early versions of the server tool.
  • Earlier versions of D3Server3 provided the option to start dedicated servers minimized alternatively. Beginning with this version of D3Server3 it is possible to start servers minimized, hidden, and maximized. How the windows of dedicated servers are shown relies on an entry in the ini file D3Server3.ini. If the key ShowWindow in the section DedicatedServers has a value of HIDDEN new dedicated servers are started hidden. If its value is MINIMIZED D3Server3's behaviour is identical to how it was before when that option was ticked in the global options. When ShowWindow=MAXIMIZED new dedicated server windows fill up the entire screen. The display state of server windows can be changed by right-clicking on a server in the dedicated server list in D3Server3's main window.
  • Dialog window for the global options updated to reflect the changes regarding the display (show) options of dedicated servers. A tooltip with an explanation of all the new window display options has been added to the new combobox control.
  • Several tooltip texts changed/improved, in particular the one for the new display (startup) options in the global options dialog window and the server status listbox.
  • The buttons Add, Import, Edit, Copy, and Remove in the server configuration list are now in 3D too.
  • The key name in the configuration file D3Server3.ini for the smart hosts.deny file function has changed. When this feature is on D3Server3 removes the file hosts.deny from the D3 directory (netgames) and places it in the cfg folder of the tool during the automatic hosts.deny download. When a server is then started D3Server3 monitors the players' IP addresses and kicks any player whose IP address is within the IP range specified in the file hosts.deny. The benefit of this is that players coming from banned IPs or IP ranges now show up in the server logfiles. If an IP is banned with the file \netgames\hosts.deny, like in earlier versions of D3Server3, no entry in the logfile is created when a player from a banned IP address tries to join a Descent 3 dedicated server. The previous key name was SmartHostsDenyFile. The key's new name is UseSmartHostsDeny. The key UseSmartHostsDeny in the [GlobalOptions] of D3Server3.ini switches between the real hosts.deny file and the smart hosts.deny. Set UseSmartHostsDeny=0 to keep the standard hosts.deny file. By default UseSmartHostsDeny is set to 1. D3Server3 removes the old key from the ini file at runtime.
  • The file Readme_Thomas.txt has been renamed to ReadMe.txt. The previous ReadMe.txt file from (DE)Hunter is now again included in the package. Its new filename is ReadMe_old.txt.
  • The installation date is stored in the file cfg\DynSettings.ini in the section [Install] as InstallationDate. The data is written by the installation program.
  • The date of the most recent update is stored in the file cfg\DynSettings.ini in section [Install] as key MostRecentUpdateDate. The information is written by the installation program.
  • The version of D3Server3 installed is stored in cfg\DynSettings.ini in section [Install] as key InstalledVersion. Since this information is stored by the installer the key's value would not change if an older version of D3Server3 has been copied over a more recent version.
  • Previous versions of the server tool stored dynamic information in the file D3Server3.ini. From this version on D3Server3 stores dynamic (or run-time) information in the file cfg\DynSettings.ini. Now users (server operators) can change settings in D3Server3.ini without interfering normal operation of the server tool.
  • The Windows process ID of the currently running instance of D3Server3 is now stored in the new ini file for dynamic information (cfg\DynSettings.ini). The section name has changed to RuntimeOptions. It used to be the section GlobalOptions in previous versions of the server tool.
  • D3Server3's main window position is now stored in the file cfg\DynSettings.ini. The section name of the position information has changed from Window to MainWindow. This may make it easier to identify in the future and seems less confusing.
  • The same goes for the server config selection dialog window's position. This information too is now stored in cfg\DynSettings.ini. The section name has changed from ServerConfigsDialog to SelectConfigsDialog. The previous section name had never been accurate because there really is another dialog window with this name already.
  • The Window position of D3Server3's main window is now only stored in cfg\DynSettings.ini if it is not identical to the standard position. This can save a few milliseconds when the dialog is closed.
  • The server configuration selection dialog window now shows the same behaviour as the main window. The window position is only written to the configuration file cfg\DynSettings.ini when it has changed. This closes the window a wee bit quicker if its position hasn't changed.
  • Minor bug fix: The menu item "Show server window(s)" of the popup menu within the server status listbox didn't bring the server window(s) to the top.
  • Bug fix: Several popup menu items in the server status listbox didn't use the correct selected item(s). The issue was noticed during the implementation of the server control panel dialog window.
  • The server configuration selector window's button "Remove" has been renamed to "Delete". This probably makes it clearer on what the button actually does.
  • The same applies to the popup menu in the server configuration list. The item "Remove server configuration" has been renamed to "Delete server configuration". Now the text in the confirmation dialog window and the names in the popup menu and the selection dialog window are identical again.
  • Two new buttons in the About dialog window to reach the forums easier. Both buttons also have a tooltip help text.
  • For the server events, the variables $ServerPort and $PortNumber had been replaced with the port number read from the file ServerEvents.ini. This port number is -1 for the Default keys. D3Server3 now substitutes the variables with the correct port number of the server that triggered the event.
  • The text when banned nicknames are added to the banned nicknames list has changed. Before it said "Added xy...", now it says "xy added...".  Earlier versions also referred to IP addresses although they literally meant nicknames.
  • In addition to the popup menu item "Copy d3://ip:port" for localhost ( when a server is running, the private server IP address can now also be copied to the clipboard. Note that this is not the public IP address, which might differ if the server is hosted in a private network behind a router.
  • The tooltip in the server list control box needed minor corrections.
  • The static control "Network address" in D3Server3's main window shows two different IP addresses if the private and the public IPs are not identical. The IP address in brackets is the public IP address. The software now also checks if an IP address is in one of the private IP address ranges. If it is it tries to retrieve the public one.
  • D3Server3 now "calls home" to or (or to or to check if the private and the public IP addresses are identical. The check fails if D3Server3 cannot at least access one of the sites in question, for example because the access has been blocked by a firewall or the internet is not reachable for any other reason. What D3Server3 does exactly is meticulously logged in the tool's main logfile.
  • The popup menu item "Copy d3://ip:port (public)" has been added to the server list control. This copies the d3:// part to the Windows clipboard by providing the server's public IP address. After D3Server3 starts it may take a few seconds before this function is available. D3Server3 checks the public IP address very infrequently, meaning that if the address changes the tool would not notice this instantly.
  • The installer creates two more entries in the [GlobalOptions] section of the file D3Server3.ini. The first one, CheckForPublicIP, switches the public IP check on or off. CheckForPublicIP=0 turns the check off and CheckForPublicIP=1 enables it. When the key does not exist checking of the public IP is disabled. The second key is PauseForPublicIPCheckMinutes, which specifies the amount of minutes to wait before the test for a public IP address is initiated again. The default value tells D3Server3 to check every 60 minutes.
  • Ryujin's tracker at added. This only applies to new servers but with the new "Default" button in the tracker options (see below) it's a pretty simple to add this tracker to existing servers too.
  • When in previous versions of D3Server3 in the dialog window for the game tracker options one or more trackers had been deleted and the server OP wanted them back, they had to add these trackers manually again. This version of D3Server3 introduces a "Default" button to the tracker options dialog window. The button resets the contents of the list back to the default trackers. A little tooltip help is also available for this new button.
  • So far the message "D3Server3 shutdown" was the last event written to the main logfile. D3Server3 adds an additional empty line, which only contains a date and timestamp, to the logfile.
  • Several missing keys added to the file D3Server3.ini during the installation process. The key ProfanityAction describes the action(s) to be taken when profanity is used. ProfanityThreshold specifies a threshold value that causes the action to be taken when reached or exceeded. D3Server3 has been using these keys for some time already but they had not been created automatically.






  • Version
  • Error message when the PID (process id) could not be written into the PID file changed to that it also mentions the PID itself. Before the new PID could not be found anywhere in the logfile.
  • D3Server3's logfile now mentions both PIDs (previous and current). This makes debugging together with ServiceExe easier.
  • Bug fix: The setting to use logtext.dll for global events was partially ignored. Several messages had been written into the logfile although they shouldn't have been logged.
  • Some source code comments reformatted.
  • Bug fix: Since version D3Server3 is removing its PID file (cfg\PID.dat) when it closes/terminates. This caused an issue when the tool was controlled by ServiceExe since the file had been used to retrieve the application's previous PID during an automatic restart. For that purpose the PID is now also written into the ini file D3Server3.ini. The file PID.dat is now only used to prevent starting D3Server3 when another instance is running already. The ini file key D3Server3PID in the section [GlobalOptions] is used for ServiceExe only.
  • When a Descent 3 game server's name contained a dot (".") the logfile's name could contain more than a single dot ("xy.log"). For the logfile's name dots in game server names are now replaced with underscore characters ("_") along with other characters already being replaced with underscore characters. This alone doesn't solve the issue with the statistics files ("xy.stats"). It is therefore still recommended not to use dots in game server names. To make D3Server3 behave like earlier versions (allow dots in server logfiles) the key AllowDotsInServerLogFiles with a value of 1 (AllowDotsInServerLogFiles=1) must be present in the section [GlobalOptions] of the ini file D3Server3.ini. The installation program creates this key with a value of 0 if it is not present yet.
  • Since server names (game names) with dots (".") can cause trouble with the statistics files it is now possible to disallow these characters in game names. Whether D3Server3 accepts dots in server names depends on the key AllowDotsInServerNames in the section [GlobalOptions] in the file D3Server3.ini. The installation program creates this key with a default value of 0, which doesn't allow dots in game names. If the key doesn't exist D3Server3 allows dots. Due to the installation program creating this key if it doesn't exist server operators who want or need to use dot characters in their server names are therefore advised to set the key AllowDotsInServerNames to 1 (AllowDotsInServerNames=1) manually in the ini file.
  • History to some of the source code files added. This might make bug tracking easier later on.
  • Profanity filter implemented. The list with bad words is still very small but the filter works. The ini file D3Server3.ini contains several new keys for the profanity filter. They are all in the section [GlobalOptions]. Probably the most important one is UseProfanityFilter. If it is set to 1 (UseProfanityFilter=1) the profanity filter is on. This means that D3Server3 loads the file ProfanityList.txt if found at startup and checks for bad words used in servers. Players are allowed up to ProfanityTheshold - 1 foul words. If ProfanityTheshold has been reached the action in ProfanityAction will be taken. At the moment only 'kick' is supported but not checked. This means that if the key ProfanityAction contains anything else but 'kick' (ProfanityAction=kick) this is gracefully ignored.
  • Bug fix: The removal of extracted custom objects had been broken since version Now it is working again.
  • Bug fix: When a server had been shut down by using the admin console command "quit" some resources were not removed. This issue may have been put in during one of the pre-release versions. I'm not sure anymore if it had made it into any of the published versions, so maybe this is not a real bug fix and was in reality nothing to worry about.
  • The debug version of D3Server3 allows for profanity checks from the virtual server player ("-Server-"). This allows for testing the profanity filter from within a server admin console without joining a game.
  • Server response comment list for profanity added. This ensures that the warning messages regarding profanity from players change with the amount of profanity found from this player. Later this list should probably be made configurable.
  • The profanity filter will be turned off if the file containing the bad words (ProfanityList.txt) could not be found or read for any reason. This is not a real bug fix but some sort of a workaround. It usually only shows up when the executable file D3Server3 is replaced with a new version instead of running the installer.
  • The function Kick () and a player name as a parameter within ServerRemoteConsole.cpp had never worked before. This is now fixed and the function can be used. In fact, it's now already used for the profanity filter in case of a player kick.
  • New server event OnPlayerProfanityThreshold. The event is triggered when a player reached the profanity threshold. The player name is passed on to the event handling application or script if the entry in the ServerEvents.ini file contains the text $PlayerName. This text is replaced with the player's name.
  • New server event OnPlayerUsedProfanity. The event is triggered when a player uses bad language as defined in the ProfanityList.txt file. The player name is passed on to the event handling application or script if the entry in the ServerEvents.ini file contains the text $PlayerName. This text is replaced with the player's name.
  • The server events OnPlayerJoined and OnPlayerLeft can now, like OnPlayerUsedProfanity and OnPlayerProfanityThreshold, provide the player's name to the event-handling script or appication. The text $PlayerName in the event config file ServerEvents.ini is replaced with their name.
  • All server events that have a known server name can now provide this name to the calling script/application with the variable $ServerName in the event config file ServerEvents.ini. $ServerName is replaced with the game server's name.
  • The definition of server events can now additionally consist of a port number only. This means that an entry within a server event section can now look like "2093:=MyProgram.exe", which ignores the server's name. The colon (":") is important here for D3Server3 to know that a port number is meant. Without the colon it would interpret "3000" as a server name. Earlier versions of D3Server3 required at least a port number and a server name, like "2093:ServerName=MyProgram.exe". This turned out to be inconvenient if server names are changed frequently but port numbers are retained. Now all three possible cases are supported: "2093:Server name=MyProgram.exe", "Server name=MyProgram.exe", and "2093:=MyProgram.exe". However, there still is the fourth option "Default=MyProgram.exe" which ignores the server name as well as the port number and applies to every server instead. It is therefore not advised to name a server "Default", as this would trigger the event only for that particular server.
  • Bug fix: The error message beginning with "Error starting update process" contained the wrong executable filename when the update had been initiated to run the installer and when the process creation failed. The installer is run for updates to more recent versions of the server tool.
  • Bug fix: The information message regarding the update process's name contained the wrong executable filename for the update installation program. This is related to the bug fix mentioned before.
  • New server event OnD3Server3UpdateRestart. The event is triggered just before D3Server3 restarts due to an update to a newer version. Server OPs can for example utilize this event to be notified that maybe the servers or D3Server3 should be checked to see if the update process didn't cause any issues.
  • The server event type can now be passed on to server event applications or scripts. The variable $EventType is the placeholder for the event type. $EventType is replaced with the event's text, i.e. the section name within the file ServerEvents.ini, for example "OnServerStart", "OnServerStop", etc. (without the quotation marks). This allows the same script or application to be used for different events since the application or script can now distinguish the type of an event itself.
  • The port number of a dedicated Descent 3 server can be passed on to an event handling script or application. The variable $PortNumber is replaced with the server's UDP port. A port number of -1 is passed on to the application or script when no port number is available. This can be the case for events that are not triggered for dedicated Descent 3 servers, like OnD3Server3Start etc.
  • New server event OnServerEvent. The event is triggered each type any of the server event types are triggered. The event can be used as a general trigger. In order to find out which event has been triggered, the variable $EventType should be passed on to the event handling application or script.
  • Additional key MakeCommandsBatchSafe in the [General] section of ServerEvents.ini. If set to TRUE MakeCommandsBatchSafe (MakeCommandsBatchSafe=TRUE) removes characters that are not suitable for commandline scripts (Windows batch files) from the commandline before it is executed. The default value is FALSE if the key doesn't exist.
  • Bug fix: Due to an incorrect #ifndef the file hosts.deny wasn't saved anymore.
  • I don't know if others have experienced this but I always found it annoying when I tried to open D3Server3's main window again after the application had been minimized down to the Windows traybar. Since the window was restored instantly after a double click the next icon in the tray popped up. There is now a short delay to prevent this from happening.
  • When minimized to the Windows icontray (or traybar) earlier versions of D3Server3 required a double click to have their main window restored. From now on it's also possible to use a right-click.
  • A minor optinisation regarding on how the main window's x and y values are stored to and read from the ini file D3Server3.ini.
  • There is now a new key in the file D3Server3.ini that provides the option to switch between D3Server3's window minimizing to the icontray or the Windows taskbar. The key MinimizeToIconTray=0 in the section [GlobalOptions] minimizes the main window to the taskbar. MinimizeToIconTray=1 minimizes to the icontray. Since minimizing to the icontray has been the default for previous version the installation program sets the key to a value of 1 if not found. Also, D3Server3 falls back to the behaviour of previous versions if the key doesn't exist.
  • The text "may cause server crashes" in the dialog window "Console and logging" removed. This issue should be fixed since several versions ago already.
  • Smart hosts.deny file function implemented. When this feature is on D3Server3 removes the file hosts.deny from the D3 directory (netgames) and places it in the cfg folder of the tool during the automatic hosts.deny download. When a server is then started D3Server3 monitors the players' IP addresses and kicks any player whose IP address is within the IP range specified in the file hosts.deny. The benefit of this is that players coming from banned IPs or IP ranges now show up in the server logfiles. If an IP is banned with the file \netgames\hosts.deny, like in earlier versions of D3Server3, no entry in the logfile is created when a player from a banned IP address tries to join a Descent 3 dedicated server. The key SmartHostsDenyFile in the [GlobalOptions] of D3Server3.ini switches between the real hosts.deny file and the smart hosts.deny. Set SmartHostsDenyFile=0 to keep the standard hosts.deny file. By default SmartHostsDenyFile is set to 1.
  • The message "Added x IP addresses or ranges to file" has been changed to "x IP addresses or ranges added to file".
  • The profanity monitor (filter) has changed regarding the action(s) performed when the threshold (key ProfanityThreshold in the section [GlobalOptions] in the file D3Server3.ini). They key ProfanityAction can contain several actions. KICK is going to kick the player that reached the threshold. BAN is going to ban that player. EVENT creates the event OnPlayerProfanityThreshold. See profanity monitor (/descent-3/58-descent-3-dedicated-server-tool-for-windws/580-profanity-monitor.html) for more information on this subject. The installation program turns the profanity monitor on if the key UseProfanityFilter doesn't exist in D3Server3.ini.
  • If Descent 3's path is longer than 40 characters it will be compacted within D3Server3's main dialog window. 'Compacted' means that a portion in the middle of the path is removed and replaced by three ellipses (dots) in the middle to fit the control in the dialog window.
  • Bug fix: The process and thread handles for event handler applications were not closed when D3Server3 didn't wait for the processes to terminate (when NOWAIT had been set for the specified event). This resulted in a small memory footprint if many events were triggered until the server tool had been closed.






  • Version
  • The executable version of logtext.dll (logext.exe) is now part of the package. The software can make life easier with server event commandline scripts. The installation program of the previous version had already installed logtext.exe but it didn't make it into the zip archive.
  • Bug fix: D3Server3 could crash if a .msn file could not be generated for whatever reason.
  • Bug fix: D3Server3 would extract empty .msn files which resulted in the dedicated D3 server to claim that there's no dedicated server config file.
  • File Readme_Thomas.txt added to the installation package. It was included in the zip archive but not in the installer.



  • Version
  • Logging option for the server events implemented. The key LogEvents=TRUE in the [General] section of the file ServerEvents.ini turns logging of events on.
  • The buttons Ok and Cancel in the dialog window Console and Logging moved to the left side of the window.
  • Bitmap image for the tracker options dialog window added and some controls aligned.
  • Dialog window of the scheduler options slightly re-arranged and a group box added.
  • The scheduler dialog window now contains a bitmap of a hand with a wrist watch. Maybe a nicer image can be found later.
  • Two new server events added. The event OnServerManualStart is triggered when the start button in D3Server3's main dialog window is clicked. OnServerManualStop is triggered when one of the stop buttons are clicked ("Stop server(s)", "Stop all servers", "Stop all empty servers").
  • Some (wrong) comments from the file ServerEvents.ini in the Debug folder removed. The events there marked as non-functional have been implemented already.
  • New key "ProcessServerEvents" in the section [GlobalOptions] in the file D3Server3.ini. A value of 0 turns processing of the ServerEvents.ini file off. If the key doesn't exist or its value is 1 server events are processed.
  • Some source code cleanup in GamePosting.cpp.
  • Settings for update check, automatic download of updates, and automatic start of servers when D3Server3 starts up placed in the ini file. The values in the object store are ignored once they have been written into the ini file. The benefit of this is that they can now be edited outside of D3Server3, by for instance using a text editor to alter the file D3Server3.ini.
  • Bug fix: D3Server3 tried to remove its own executable file instead of a temporary update file. This failed because the application was running.
  • Server event OnD3Server3Start implemented. The event is triggered when D3Server3 starts up.
  • Some missions contain duplicate objects. One example is Descent: First Strike. It contains an object with the name PyroGL.oof and one with the name PyroGL.OOF. When the objects are extracted, previous versions of D3Server 3 used the last found object in the hog file (.mn3) and overwrote the previous object file. This version now only extracts the first found object. I believe this is what the game assumes. In case it turns out the game uses the last found object this can easily changed later. Right now it was only important to have the extraction and removal messages identical. It looked a bit odd when the server tool claimed "10 objects extracted" when the server was started and later only said "9 objects removed" when the server was stopped.
  • Server Configurations Selector dialog window: The tooptip text for the Copy function now explains that new copies are inserted at the top of the list. I can't remember how many times I stumbled over this one before but because it's always been like this the behaviour probably shouldn't be changed. At least now the tooltip reminds us that the copies are not added at the bottom, which would be more natural.
  • The same goes for adding a new server configuration ("Add"). A new server is also inserted at the top of the list.
  • Removing (deleting) server configurations from the Server Configurations Selector dialog window is a permanent operation. There is now a key ConfirmServerConfigDeletion in the GlobalOptions section of the file D3Server3.ini that switches between the necessity to confirm a deletion (removal) and no confirmation at all. ConfirmServerConfigDeletion=0 is identical to the behaviour of previous versions of D3Server3. If the key ConfirmServerConfigDeletion is not found in the ini file, like after an upgrade from an earlier version of D3Server3 or if the key has been deleted, it defaults to ConfirmServerConfigDeletion=1. The installation program of D3Server3 adds ConfirmServerConfigDeletion=1 to the config file D3Server3.ini if the key doesn't exist.
  • Browser identification string of D3Server3 has been extended by the setting if updates are downloaded and installed automatically. This information can't be used at the moment but may provide a better insight on how many installations would directly be affected in case of fatal bugs/crashes after an automatic update.
  • An event log message when an msn file is deleted was missing. The event log is the message window at the bottom of D3Server3's main window.
  • A bug that had been present in all previous versions of the server tool allowed "Loop on" even for missions that only contain one level. The bug only showed up when playing around with different missions and "Loop on"/"Loop off".
  • File DownloadURLs.txt out of Do_Checkor's msn file collection created. A batch file is provided with the source code of D3Server3 for future updates.
  • D3Server3 can now extract or create msn files by using the file DownloadURLs.txt to provide corrected download links. The initial version of this file has been created from Do_Checkor's msn file collection.
  • New key CorrectDownloadURLs in the section GlobalOptions of the ini file D3Server3.ini. CorrectDownloadURLs=1 turns the correction of download URLs for hosted missions on. This is the default. The function has only an effect when the file DownloadURLs.txt exists in the folder where D3Server3.exe resides. CorrectDownloadURLs=0 turns the correction of download URLs off even if the file DownloadURLs.txt exists. The ini file key CorrectDownloadURLs in the section GlobalOptions is created by the installation program. D3Server3 does not create or change the value of this key.
  • Bug fix that caused a crash of the dedicated server on startup. When the bug appeared it was possible to just switch to another mission and then back to the original one again to solve the problem.
  • New big wizard image for the installation program (164 x 314 pixels). This is the image that shows on the left-hand side when the installer is executed. The original image shows the restaurant inside the Shenyang TV tower, China.








  • Version
  • When the current working directory was not identical to the executable file's folder D3Server3 forgot to remove the temporary update files. The software now removes the temporary files from the program directory as well as from the current working directory.
  • Startup text "Determine network info" changed to "Retrieving network parameters".
  • Additional status message "Checking Descent 3 directory" to the startup progress bar window added. This is to give the user at least a clue why the server tool is asking for the Descent 3 folder.
  • If D3Server3's process ID (PID) had been reused by Windows after the software has terminated D3Server3 would refuse to start until either the PID file has been deleted or the process using this process ID terminated. D3Server3 now removes the PID file when it terminates to avoid this "deadlock".
  • Several messages regarding the automatic updates corrected.
  • Some previous versions of D3Server3 had the ini file key RunAsLocalSystem set to TRUE although this feature is still not supported. D3Server3 now checks if the previous version is less recent enough to contain this wrong ini value and sets it to FALSE if found. This prevents surprises later when the function has been fully implemented.
  • The timeout value for requesting update information increased from 2 seconds to 30 seconds. This results in fewer errors regarding updates.
  • After another complaint from Razour the code has been prepared for the class B networks blocked centrally via the automatic hosts.deny download feature to be removed when updated to this version of D3Server3. A macro definition allows for them to only be removed during this update or any future updates. Additional updates would then leave the hosts.deny file untouched. However, in version this feature is still disabled.
  • There is now a macro definition in the code that can be activated when required to avoid further complaints from players as well as server operators and confrontations with both parties. The function to automatically download and use a centralised hosts.deny file can be rendered non-operational. There is no visual indication if this function doesn't work anymore apart from the tooltip help that pops up when the mouse is moved over the checkbox's text field. D3Server3 versions compiled for no central hosts.deny file contain a paragraph starting with "Important information".
  • Some tooltip texts updated/corrected.
  • Additional error messages regarding automatic downloads.
  • The automatic update could be initiated even if a dialog window was open. This caused D3Server3 to close its main dailog window but not the other dialog windows. This version of D3Server3 does not try to update anymore when a dialog window is open.
  • The copyright year has been changed to 2012 (2000 - 2012).
  • The invocation of external applications initiated by the server events in the file ServerEvents.ini now supports additional options to show the applications' windows. The supported options are HIDE, MAXIMIZE, MINIMIZE, SHOWNOACTIVATE, and SHOWNORMAL. The latter one is the default value for ShowWindow (). See for a description of the parameter nCmdShow. Nate that the values must not be prepended with the "SW_" bit. SW_HIDE on the Microsoft Developer Network (MSDN) must be HIDE (without "SW_") in the ServerEvents.ini file of D3Server3. The entry for ShowWindow can be found in the section [General].
  • The process IDs of dedicated servers are now in the main log listbox as well as in the logfile. Example from previous versions: "Server 2092: Launched - UDP.". Example now: "Server 2092: Launched - UDP (PID: 3512).".
  • Some missing tooltips in the powerup options dialog window added.
  • Code comments and missing history information added to some source code files.
  • The version of D3Server3 shipped with the Descent 3 installer from Dateiliste ( only updates the executable file D3Server3.exe. The current version of D3Server3 recognises an update from the version in the installer and suggests and optionally performs a full update. This process also works after updating from even earlier versions of D3Server3. The update/setup of replaces an older version of the DLL logtext.dll, which didn't count the week numbers correctly.
  • Tab order in the dialog window for the powerup options changed. This is the order in which window controls are selected when the TAB key is pressed. The behaviour of when the mouse is used has not changed.
  • The tab order in the dialog window Ship Options has been corrected.
  • The dialog window for the ship options now contains an image.
  • The tooltips in the dialog window Ship Options were missing.
  • The D3Server3 logo that's been in the "res" folder of D3Server3's source code for a long time (at least since March 2004) has been added to the "About" dialog. No idea if it was ever intended for that purpose but now it's there. ;)
  • Additional minor changes to the About dialog window.
  • The menu item "Start" in the popup menu of the server list inside the main window changed to "Start server(s)..." to reflect that this does the same as the button with the same name in the area above the list. The button "Stop" has also been renamed to "Stop server(s)".
  • The test that's carried out to only control real Descent 3 servers has been extended by the main_.exe process that's present when RestWinIcons is used.
  • When RestWinIcons is present, previous versions of D3Server3 used this software to start servers instead of the real Descent 3 main.exe process. RestWinIcons requires the main.exe file to be renamed to main_.exe, and this is what D3Server3 now uses when the file size of main.exe is less than 1500 * 1024 octets. RestWinIcons is smaller than this value. Future versions of the tool may use the version info found in the executable module to distinguish between Descent 3's main.exe and the executable file of RestWinIcons. There's currently no plan to use RestWinIcons for Pyromania but D3Server3 also supports this already. It checks for the ini file and reads the key for the real executable file from there. There's also a new entry in the main logfile when this happens.
  • Previous versions of D3Server3 could not find an instance of the tool's window that had been started earlier when it was minimized to the tray bar. This version finds D3Server3 even when it is minimized in the tray bar and opens this instance and brings it to the foreground (top of the Z order) when found.
  • The popup menu of the server list control (baically the status window for the dedicated servers) now contains three more entries. "Show server window(s)" restores the window of a dedicated server if it is not visible or minimized. "Minimize server window(s)" minimizes a server's window to the taskbar. "Hide server window(s)" hides the window of a dedicated server entirely. When more than one dedicated server is selected the chosen action is performed on all servers selected.
  • The tooltip for the Peer2Peer network mode in the server configuration dialog window contained false information. Now the tooltip only displays what's in Descent 3's manual.
  • D3Server3's minor version number has been changed from 0 to 1. Since the main window's title displays major and minor version numbers, the window title of D3Server3's main window is affected by this change. This should be taken into consideration when AutoIt or similar tools are used to identify and/or control the software or its main window.
  • Tooltips for the team options dialog window added. I took this opportunity to also make the dialog window a bit nicer by inserting a bitmap.
  • The configuration window for the remote console and logging options now has an (ugly) bitmap too.





  • Version
  • The zip file doesn't contain the subfolder Release anymore. The files in this archive are now stored without path information. This change was made to the command line script Make_www_folder.cmd, which creates the packages.
  • Make_www_folder.cmd also copies the new installer for D3Server3 (D3Server3_Inst.exe) into the www folder.
  • Improved automatic update process.
  • New button in the configuration dialog window for the remote control options. The button "Copy to edit field" copies a selected list item back into the edit control to make changes easier. The button is greyed out if no list item is selected or if more than one items are selected.
  • The listbox with the auto-commands in the configuration dialog window for the remote control options now displays a horizontal scrollbar if one item in the listbox exceeds its window width.
  • A few controls in the configuration dialog window for the remote control options were misaligned by one or two pixels.
  • The event listbox in D3Server3's main window now has a horizontal scrollbar when required. This feature has been requested for a long time already and got now finally implemented. The listbox can only hold up to 800 events, hence the scrollbar may disappear after some time. It'll show up again when the width of one list item exceeds the box's horizontal limit.
  • Main window: Columns in the listbox for the servers' status adjusted. Longer server names are now still readable without requiring a horizontal scrollbar immediately.
  • Tooltip for "Bright player ships" in the server configuration dialog window extended.
  • When D3Server3 could not find a dedicated Descent 3 server at startup, although this server had been running before the tool was shut down, it could have taken up to several minutes before the server was started automatically. It would also not appear in the main server list for several minutes. This was to avoid system congestion directly after a system restart but led to confusions on whether the server would eventually start up automatically or not. Servers that had been running before are now started again almost instantly (15 seconds cycle time) when D3Server3 is started.
  • Bug fix: When D3Server3 created its configuration files from scratch, the URIs for banned nicknames and denied hosts were mixed up. If this version finds out that the URIs are the wrong way round, it places them in the correct order. This can also be fixed by clicking on the "Reset URI" buttons in the anti-cheat configuration window in previous versions of D3Server3.
  • Minor changes to the installation (setup) script.
  • The installer is built with the latest version of Inno Setup. The previous version would not have been able to update the software when it ran as a Windows service.
  • Again minor code cleanup in several source code files.




  • Version
  • D3Server3 doesn't use a mutex anymore to block consecutive invocations. It still creates mutexes, but they are unique to the running software now. The mutex is now only used for automatic updates.
  • The software can now run from different directories without blocking each other. Each instance must have its own configuration files.
  • When the dialog box to select the Descent 3 main folder is opened, the current Descent 3 folder is now preselected. Previous versions defaulted to a path in the user's home directory instead of the already configured Descent 3 base directory.
  • The dialog box to select the Descent 3 main folder does not suggest to restart D3Server3 anymore, if the previously used Descent 3 main folder is identical to the newly selected one.
  • Descent 3's base directory is not read from the registry anymore. Beginning with this version of D3Server3, the software stores the game's main folder in an ini file (D3Server3.ini). This now allows to run D3Server3 from different directories with different config files and of course with different Descent 3 installations, if required.
  • Since several instances of D3Server3 can now run from different directories, the tooltip for the global Logtext setting needed to be updated. This setting applies to all instances of the server tool, regardles of from which folder the software has been started.
  • Typo in the dialog window for anti-cheat options fixed.
  • Bug fix: When more than one server had been selected in the server configurations selector and Start was pressed, only one server started up and the others remained in the stopped stage infinitely.
  • Columns in the server configurations dialog window and the server selection dialog window adjusted. Longer server names were not displayed very nicely before.
  • D3Server3 now remembers its last window position. If the software would be too far off the screen (desktop), it is moved towards the center of the screen by several hundred pixels (500 horizontally and 300 vertically). The window position is reset when parts of it exceed the top or the left side of the desktop.
  • Responsiveness of the main window slightly increased (~ 250 ms per minute).
  • Port check for RemoteInfoServer removed. The RemoteInfoServer has never been implemented fully in D3Server3 but caused the tool to hang when a server was started on port 2090. The RemoteInfoServer was "hard-wired" to port 2090, and if a server was configured for the same port, D3Server3 froze.
  • One of the previous versions of D3Server3 broke the ability to host dedicated servers for the Pyromania and the Black Pyro Justice mods. This is now fixed again.
  • Several tooltips in the global options updated and corrected.
  • Typo in update URI corrected. This has and never had any influence on automatic updates.
  • References to ole32.dll removed. D3Server3 doesn't make use of this library. There must be still something left, because the linker throws a warning.
  • The tool now also remembers the window position of the server configurations dialog window. It takes care of when the window would disappear from the desktop. The window's position is stored in the configuration file D3Server3.ini as absolute position values. That means the position is not relative to D3Server3's main window.
  • Script Make_www_folder.cmd changed so that it also removes zip files that remained from testing.
  • The script Make_www_folder.cmd now performs more cleanup tasks, for example removes more remaining cfg folders than before.
  • The www folder now always contains a copy of Readme_Thomas.txt (this file). This file is copied in by Make_www_folder.cmd.
  • Minor code cleanup in several source files.
  • Text "TCP/IP" in several locations changed to "UDP". Descent 3 games are not using TCP/IP. Network games use UDP instead.
  • Tooltips for the server statistics slightly extended. There's lots of other tooltips left that should be more explicit in what they actually do, but they will have to wait until another version of D3Server3.
  • New version of Logtext (1.7.4). The DLL and the executable calculated the year numbers wrongly when weekly logging was activated, which is the default for D3Server3. For today (2011-01-02), previous versions made that 2011-W52 instead of 2010-W52. Logtext is not (yet) automatically updated when D3Server3 is updated, because it wasn't part of D3Server3.exe.
  • The copyright year changed to 2011 (2000 - 2011).
  • The automatic update function failed when the working directory (current directory) is not identical to the folder where D3Server3.exe resides. The new update function that uses an installation program doesn't have this issue anymore. The old update function won't be fixed, as there are not many users left that need it, and because the likelihood of the bug to show up is very slim. It's been in D3Server3 since the beginning.
  • Beginning with D3Server3 version, the automatic update function doesn't download the executable file anymore. This and newer versions download and invoke an installation program instead. The installer can update any file that comes with D3Server3 and even take care of an installed and/or running service.



  • Version
  • Bug fix: The scheduler didn't work if no selective server existed.
  • Bug fix: Transferring the cfg folder to a different computer with a different Descent 3 main folder still didn't work properly.
  • Server events implemented. It is now possible to execute applications on particular server events. If "%COMSPEC% /C" is used, batch files can also be invoked.
  • Bug fix on multi-CPU machines: The remote console thread and the main dialog window thread could interfere with each other when trying to write an event in a logfile. This caused an access violation and D3Server3 crashed.
  • The default ECHO setting in logtext.ini changed to ECHO=TRUE. When D3Server3 was installed as a Windows service, the ECHO=FALSE ini value prevented the application ServiceExe from coming back with a successful installation message.



  • Version
  • The drop-down listbox for the level to be hosted in the server configuration dialog window now allows the server tool to select a random level, if the function is selected. D3Server3 picks this random level whenever the dedicated server is started.
  • Tooltip for the level name drop-down listebox in the server configuration dialog window extended with some information about the new function for random level selection.
  • Some minor code clean-up and more comments added.
  • Again a few typos in the tooltips fixed.
  • Some minor changes to the batch file that creates the www folder out of D3Server3's source code (Make_www_folder.cmd).
  • Links for the online-help corrected. The previous links read "Descent 3 dedicated server tool for Windws" instead of "Descent 3 dedicated server tool for Windows". There was an "o" missing in "Windows".
  • The start and stop times for selective servers increased to 90 seconds.
  • 4 new source files included. They are required to implement Ryujin's wish for creating processes on particular (server) events.
  • Preparation for an installation program. One of the next versions will make use of it.


Info about version

  • Beta version has not been turned into an "official" version.





  • Version
  • The server configurations got lost when Descent 3's "BaseDirectoy" registry entry was missing or if it pointed to a folder that didn't contain the game. Now D3Server3 terminates immediately if the correct directory hasn't been selected.



  • Version
  • The software's name has now fully changed to "D3Server3" instead of "D3Server". Actually, the only place where the old name was still used was the resource file, which is responsible for displaying the executable file's version information in Windows. Before, the internal name was D3Server3 and the "official" name was D3Server.
  • Although not fully implemented yet, the software has been prepared to automatically update logtext.dll and ServiceExe.exe too, when a new version of D3Server3 is downloaded. The final automatic update function for these files will go in one of the next versions of D3Server3 when ServiceExe can be identified properly by the tool (which is currently still not the case).
  • The source code files ServiceExeControl.c and ServiceExeControl.h missing in version are now included in the source code package. After downloading the source code, the server tool can be built again with Microsoft Visual Studio .Net 2003 and newer versions.
  • Auto update URI changed. It's actually still the same URI ( but its link is now more readable.
  • Browser identification string of D3Server3 has changed. This is used for the update check. The new string contains two more version numbers ("D3Server3/" instead of just "D3Server3/3.0").
  • Browser identification string of D3Server3 has been extended by the name of the operating system including build number.
  • Progress bar when the Descent 3 files are examined changed to "Initializing D3Server3".



  • Version
  • The communication with ServiceExe has been improved when D3Server3 is running as a Windows service.
  • Bug fix: When the server tool was running as a Windows service, the service wrapper application ServiceExe could not retrieve D3Server3's process handle correctly after an automatic restart.
  • Extensive automatic restart tests and several minor improvements.
  • Two additional source code files added (msnprintf.c and ServiceExeControl.c). Since these files are currently not yet in the source code folder, D3Server3 cannot be built anymore by just downloading the source code. One of the next releases will include these files.
  • Tooltip for the server HUD names in the server configuration dialog window extended. The text has been "borrowed" from Descent 3's manual.
  • Opening a dedicated server's process changed to avoid the flag PROCESS_ALL_ACCESS in the OpenProcess () function calls. This flag would cause the software to fail when compiled/built on later versions of Windows than Windows XP.
  • Text "Loading server infos" changed to "Loading server data". This text appears in a progress bar window when D3Server3 starts up.
  • Bug fix: Previous versions of D3Server3 could accidentally try to control the wrong process, which didn't have to be a dedicated server process. Although very unlikely (Windows 2000 supports more than 65000 processes), it was possible that the server tool tried to control and shut down important system processes or other applications. This has now been restricted to processes with the name MAIN.EXE (Descent 3).
  • Two additional source code files added (mstring.c and GetWindowsErrorText.c). One of the files is for string handling in C and the other one to format Windows error text messages.
  • Bug fix when D3Server3 runs as a Windows service. The application (not the service) couldn't open the dedicated server processes due to access permissions when the server processes ran in the system security context (Localsystem account), which is the default for Windows services. D3Server3 now requests debugging privileges before accessing server process handles.
  • Additional error message in the application's main log list if D3Server3 cannot open an existing Descent 3 dedicated server process.
  • Additional messages in the main log file to indicate that a previous instance of D3Server3 is already running and that the current instance is going to terminate. These lines are only written to the main log file if logging in the global options has been enabled.
  • D3Server3 now creates a new file in the cfg folder: PID.dat. This file contains the process ID of the currently active instance of the server tool (D3Server3.exe). The file is used for the communication with ServiceExe after a restart of D3Server3.
  • Windows 7 has broken the detection of a previous instance when the previous instance is running as a Windows service. The reason for this is that Windows 7 can't find mutexes created in the contect of other user accounts. If a global mutex is used, Windows XP can't find the mutex. This has been solved by blocking the PID file ("cfg\PID.dat") for consecutive write operations while the D3Server3 process is running.
  • The default locations for creating the cfg (config) and log folders has changed. Previous versions of D3Server3 created these directories in the current working directory, which did not necessarily have to be the executable's folder. Now the cfg and log directories are always created in the executable file's folder. If you'd like to invoke D3Server3 with different cfg and log folders, copy the executable file too. The behaviour of previous versions could have caused server tool crashes when config files were used that belonged to a different version of D3Server3.
  • Some typos in tooltips corrected.
  • The default setting for the kill message filter has changed from "None" to "Full".
  • Several tooltips in the remote console options extended.
  • Several tooltips in the server configuration dialog window extended.



  • Version
  • Button "Remove nickname" in the anti-cheat configuration dialog renamed to "Remove nickname(s)", because it can be used to remove more than one nickname from the list. The tooltip for the list and the button explain how.
  • Some erroneous code comments corrected to avoid that we stumble over them again later. Kiss
  • The package now comes with ServiceExe and a default configuration file to run D3Server3 as a Windows service.



  • Version
  • New popup menu entry "Copy d3://ip:port (" in the server list control. This copies a d3:// link containing the server port and the local host's IP address ( to the clipboard. By using the Direct IP Launcher it's now only a couple of mouse clicks to join a dedicated server hosted on the same computer.
  • Tooltip for the email address for the game tracker in the global options changed.
  • Game posting to disabled.
  • The phrase "can not" changed to "cannot" in several messages.
  • Some tooltip texts corrected.
  • This version creates the file netgames\hosts.deny if it doesn't exist and if the global anti-cheat option is used. Previous versions of D3Server3 just threw an error that the file cannot be read.
  • The message for when the file netgames\hosts.deny has been updated now contains the information where the file can be found and that entire IP address ranges may also be used.
  • Previous versions of D3Server3 always left a netgames\hosts.deny read-only. This version leaves the file writable and removes all other attributes if overwritten/added to.
  • The default settings for "Remove previous hosts.deny entries on updates" (banned IP addresses and ranges) and "Remove previous entries on updates" (banned nicknames) have changed. They are now ticked if the anti-cheat options have never been used before.
  • Flat buttons in the anti-cheat dialog changed to 3D buttons.
  • Addtional buttons to reset the donwload (update) URIs for the file hosts.deny and banned player nicknames in the anti-cheat configuration window (global options). If someone had changed one of these values accidentally, they can now easily retrieve the default settings.
  • Layout of the anti-cheat configuration window changed to make it more logical. The hosts.deny part, for instance, now has a group on its own.
  • Additonal button in the anti-cheat configuration window to delete the local copy of the file hosts.deny. If the file is not deleted manually, it would stay on the system forever and cause the Descent 3 dedicated servers to use it.



  • Version
  • Bug fix: *.msn files found in Descent 3's main folder were deleted regardless of their read-only flag. These files are preferably placed there by server operators to provide download links for missions that don't contain any themselves or that contain broken download links.
  • New feature: In the configuration dialog for "Console and logging" are some more options to repeat auto commands frequently. This was a suggestion from Machete_Bug to be able to show regular automatic announcements.





  • Version
  • Text that said that IP logging can cause server crashes removed from the configuration dialog "Console and logging".
  • Checkbox and spin control for maximum amount of players in global options dialog aligned. The function itself is still not implemented.
  • Message when the scheduler is used for a server but the scheduler contains no timetable entries.
  • Duplicate CloseHandle () removed from HOG extraction code.
  • Several status messages in the main log window changed.
  • New controls for random and timed remote console commands. The controls are still disabled until the functionality behind them gets implemented.
  • Bug fix: The scheduler didn't seem to work most of the time.



  • Version
  • Team names are now restricted to 12 characters to avoid game crashes. This only affects the amount of characters entered in the edit controls. It does not trim already existing team names with more than 12 characters.
  • Minor restructions in the code to automatically extract object files from missions.
  • The global mutex object can now be accessed by other users. This means that only one instance of D3Server3 can be run on the same computer. Earlier versions of D3Server3 could not find instances of the software if it ran in different user contexts.



  • Version
  • The automatic update function could cause D3Server3 to restart although the user/server operator is using the configuration dialogs. The software now waits for all dialog windows to be closed before a required restart is carried out.
  • D3Server3 now restarts itself every 50 hours. If any of the configuration windows is open, the restart does not occur instantly. After all dailog windows have been closed, the restart is postponed by about 10 minutes.



  • Version
  • New function GetTickCount () used for timing in the server tool is now more resistant to minor date/time corrections on the host system.
  • Minor code reorganization to implement automatic extraction of custom objects in a mission.
  • Custom objects included in a mission file (.mn3) are now automatically extracted before a dedicated server with that mission is started. The objects are removed again when the server terminates. This avoids server crashes at the end of a level/mission without the requirement of extracting all objects manually. It also prevents the objects from intefering with each other because only the objects required for the currently running missions/levels are present in the Descent 3 main folder. There is no option in the global or server specific settings to turn this behaviour off. The option is missing because I thought that this might only confuse inexperienced users. That's why it is a new standard behaviour of D3Server3.
  • New version of WaitMutCopy included. The new version supports copying several files with one mutex. It is required to update D3Server3 together with logtext.dll and probably other files. The function, however, is not yet included in D3Server3.
  • The old project file for the software has been removed from the source code package.



  • Version prepared for automatic updates.



  • Version
  • The remote console buffer size has been changed from 64 kB to 128 kB.
  • Handling of the remote console communication has changed. The algorithm should be a bit more stable now.
  • Several encounters of GetTickCount () replaced with a new function GetDWORDTickCount (). This is to prepare the software to fix the 49 days timer overrun issue which almost every Windows application has.
  • Several encounters of GetTickCount () replaced with a new function GetULONGLONGTickCount (). The replacement allows for accurate timers exceeding 49 days.
  • Network code for remote console reordered and partly rewritten. This should fix some bugs under race conditions.



  • Version
  • Tooltip for the global option "Auto launch servers at program start" changed to make its changed behaviour more understandable.



  • Version (This version was only published to some beta testers.)
  • Duplicate tooltip initialisation in the dialog window to inport a server configuration removed.
  • The event message 'Player xy joined with IP n' is only added when this player's IP/name information has been used by D3Server3. This can later make bug finding easier by examining the software's main event log file.
  • Tooltip for the email address field for posting games to the game tracker at corrected. The same goes fot the setting to post games at Planetdescent in the game tracker options.





  • Version (This version was only published to some beta testers.)
  • The command $playerinfo which may cause the D3 server to crash with more than 10 players in a game is now only sent after at least one $players command had been sent by D3Server3. The previous behaviour could still have caused crashes after a level change or when the server tool was restarted. The downside of the new behaviour is that players need to be in the server for at least 60 seconds before their details (name and IP address) can be picked up.



  • Version (This version was only published to some beta testers.)
  • When more than 6 (recognised) players are in a game the player names and their IP addresses of any new player are retrieved by evaluating the "connection activity" and the "has joined" message from the Descent 3 server.



  • Version (This version was only published to some beta testers.)
  • Again some tooltips updated.
  • The remote console command $playerinfo is only sent to the dedicated server when less than 6 players are in a game. This should avoid Descent 3 server crashes by reliefing the server's remote console.



  • Version
  • The PXO server status in the main window had always shown 'Static' for 'User tracker', 'Game tracker', and 'IRC server'. That's the default text for a static control created with Microsoft Visual Studio. Since PXO has been offline for quite some time, I've now changed these texts to 'Offline', which seems to be more appropriate. In theory, the space of this control group in the main window could probably be used for something more important later.
  • Additional message in the event log listbox to inform from where new versions can be downloaded. This is all still a bit dodgy, since the move of the software from DE_Hunter's page to Dateiliste has not been completed yet as long as the new version(s) of D3Server3 are still in the beta phase.
  • Some spelling errors fixed.
  • Tooltips for the schedule options added.
  • URI for the online help of the remote control options has changed. The window is now called "Console and Logging".
  • Dialog window "D3Server3 Server Configurations" renamed to "D3Server3 Server Configurations Selector", because this describes more accurately what it's actually for. At the same time this distinguishes it more from the dialog window "D3Server3 Server Configuration", which is used to configure the dedicated servers. Link to the window's online help at Dateiliste updated.
  • The button Launch in the D3Server3 Server Configurations Selector dialog window has been renamed to Start. Now the process of starting and stopping servers is called "start" and "stop" respectively throughout the software. There's still a description missing for the state a selective server can be in when asleep (or paused?).
  • Keyboard accelerators added to the buttons in the dialog window D3Server3 Server Configurations Selector.



  • Version
  • A new button in the main window added to stop all servers that don't have players in them.
  • A new button in the main window added to stop all empty servers and then exit D3Server3. This function leaves Descent 3 servers running that have players before the program exits. When the software is started next time it will pick up and carry on controlling these servers.
  • The global option to check for updates was called "Check for updates on program start". This was actually wrong, because the server tool did not only check for updates when it was started but also every 12 hours. The setting's text and the tooltip have now been altered to explain better what the function does.
  • Several tooltips updated/changed.
  • All main window buttons are now 3-dimensional to highlight them as buttons.



  • Version
  • Several tooltips added and corrected (mainly in the anti cheat options).
  • Quit messages to end a level from the D3Server3 or any other source (like admin or remote console) are now logged in the server log file when the full log is on (server configuration window, "Console and logging").




  • Version
  • The time a server must have been empty before an automatic restart has been changed from 90 seconds to 130 seconds. This spans more than two $player queries to the server and decreases the likelyhood that a server with players in it is restarted automatically.



  • Version
  • The behaviour for "Loop: on/off" has again changed. Previous versions of the server tool would not remove or touch msn files when they existed already. This version overwrites the file with the current settings and also tries to delete the file when found at server launch. This is actually not very nice when a custom msn file has been created, but I think it is what most people expect. One of the next versions will contain a global option to keep or remove existing msn files.
  • Some adjustments and text changes in the tooltips.



  • Version
  • Tooltips for the console and logging options added. Many other tooltips corrected/extended.
  • When min and max time values for the powerup respawns are different, D3Server3 had sent the $setrespawntime command regularly to the Descent 3 server. This version of the tool only sends the $setrespawntime command when its value really changes.



  • Version
  • Bug fix with "Loop: on/off" (formerly "Warp: on/off"). The configuration could run into a condition where a mission would always branch back to the current level, no matter what the new setting is like. This was because previous versions only removed the branch in one location, which could not be reached anymore when the software or Windows had crashed at the wrong time.
  • The time to wait for servers when they are stopping has changed from 5000 ms to 2000 ms. Average computers are much faster now than they were a few years ago.



  • Version
  • Tooltips changed to baloons for better flexibility. This allows to extend the information shown if required.
  • New button "Stop & Exit" added. When used, it stops all servers and then closes the application. It is basically a combination of the buttons "Stop all servers" and "Exit".
  • The function to automatically launch servers at program start now doesn't care anymore about servers that failed to start. If a server fails, it is removed from the launch. Before it was possible that D3Server ran into an infinite loop trying to launch a server that permanently failed, but not accepting any user input to prevent its autostart.
  • Minor code changes.



  • Version
  • Global option to use logtext.dll for the event log added.
  • Global option to automatically download and install updates added. The software WaitMutCopy is now embedded in D3Server3 to handle automatic updates. Download URI is provided in the update file (see top of this article).
  • The DLL logtext.dll is now only used when found in the application folder. Earlier versions also use the DLL when LoadLibrary () can find them somewhere else. This could potentially have lead to versioning conflicts later.
  • Some messages changed/corrected.
  • Global event log message for the configuration folder added.
  • The global setting for the Logtext DLL is stored in and retrieved from the registry rather than the MFC object storage files. This makes the setting available before the config files are loaded.
  • Configuration checkbox for each server added to select whether it should be enabled for the global option "Auto launch servers at program start".
  • The way "Auto launch servers at startup" works has changed. The previous behaviour of this checkbox is now default and independant of the setting. The new "Auto launch servers" launches all servers that are not marked to be excluded from this function.
  • For this purpose, the new setting in the server configuration dialog window had to be made operational ("Enable this server for auto launch at startup").
  • Bug fix with version info stored in object configuration files. The version is now taken from the executable's resource.
  • Bug fix with "New version available". D3Server3 had not reported the additional information (release date and features) correctly.



  • Version
  • Players found by D3Server3 now only take one line in the log file. In earlier versions they required two lines.



  • Version
  • Fixed a buffer overrun in the logging function for the remote console.
  • The server tool now waits for the Descent 3 server to respond in the remote console for 500 ms before it starts reading data. This ensures that the telegram coming from the server is complete.




  • Version
  • Bug fix: Unplayed sleeping selective servers were automatically restarted and then put back to sleep. The new behaviour is to not try a restart attempt (server is not running anyway). The servers' uptime is reset after they are started up again to reflect their real lifetime.



  • Version
  • Bug fix: during server tool restarts the selective servers could run in a condition where all are shut down but not woken up again.



  • Version
  • Improved player recognition. The server tool should now count correctly and not automatically restart servers with players in them.
  • Bug fix where all selective servers were launched on server tool startup although there were players in one of them.
  • The server list in the main window is now identical to what's running and stopped/scheduled. This did not work before when selective servers had been used.
  • Bug fix: Selective servers were launched during an automatic restart although one server had been played.
  • Some texts in the event log changed.



  • Another bug in the recognition routine for the current amount of players fixed. Even when counted correctly, the flag whether a server is empty or not hadn't been updated after a level change.



  • "D3Server3 Remote Console Options" renamed to "D3Server3 Console and Logging" to make the dialog's purpose more understandable.
  • Version number changed to The final version will be 3.1.x.x.
  • Bug fix with tooltip for IP address in global options.
  • Software crashed with an access violation when run from a particular directory like C:\S\G\12345678\D3Server3. That was a buffer overrun that hit when a folder name was exactly at a 16 byte structure boundary.
  • The button "Allow remote console" doesn't disable the remote console options anymore



  • The program still doesn't recognize the correct amount of players in a game under certain circumstances. To find and rectify this issue easier, a new option has been added to the remote console settings. "Log all output" doesn't filter the remote console output. When ticked, everything coming from the Descent 3 game server is stored in the log file.
  • Some issues with tooltips fixed. There are still some left.
  • Sub version number changed. This prevents the server tool from finding a newer version, which is in reality not available during the beta tests.



  • The dialog window for the global options has been prepared for a maximum amount of players amongst all servers. It is not sure yet if the functionality will be implemented.
  • The flat buttons in the settings dialog for the global options are now normal 3-dimensional push buttons.



  • Global options: Default value for "Auto restart servers" is now yes. Descent 3 servers usually require a restart at least several times a day. The previous default time value of 12 hours (720 minutes) has been changed to 6 hours (360 minutes), because Descent 3 game servers start playing up when running for more than 6 or 7 hours without a restart.
  • The default value for PPS (packets per second) has been changed from 9 to 12. Server hosters usually have better internet connections than a few years ago.
  • The default value for FPS (frames per second) has been changed from 0 to 999. A value of 0 enforces no limit on a server, hence the Descent 3 game server uses all of the CPU power it can get hold of, which is usually one CPU, unless several servers are running. The current default framerate of 999 seems to be suitable for most cases.
  • The dialog buttons have been aligned and the TAB order when using the keyboard to hover between the dialog elements has been adjusted.
  • The issue with the default push buttons should now be history.
  • The button "Warp on/off" has been changed to "Loop on/off", following Bubbalou's suggestion to reflect the button's real intention of looping the specified level over and over again instead of commencing to the next one in the mission.



  • When adding new server configurations, the default network type is Direct~TCP instead of Direct Modem.
  • Online help and tooltips should now be in all dialog windows. Some tooltip elements still don't have text associated, and most of the online help is without content.
  • The main event log supports Logtext if the DLL is present. It uses the function LogTextExQ () to process the events in a separate thread. If logtext.dll is not in the same directory as D3Server3.exe, the main event log is not written to disk.
  • Most of the dialogs' names have changed. Most of their window titles now start with 'D3Server3'.
  • The two additional DLLs for the MFC (Microsoft Foundation Classes) MFC71.dll and msvcr71.dll are not required anymore. Both dynamic libraries have been linked into the executable module D3Server3.exe itself. The module's size increased, but since Microsoft suggest to have the DLLs in the application folder, the size of the server tool package is again smaller than before although additional funcionality has been added.
  • Some minor "under the hood" changes and code reorganisations. Both are invisible for users.



Version 3.1 beta

  • Started to implement online help buttons to provide more information for new users.
  • Logging date format changed to human readable ISO 8601 where date and time are separated by a space instead of a "T".



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)