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




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



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)