Taking It Easy

Stuff, things and wotnot

Mr J's Server Scrutiniser (Screwt)

A Wolfenstein Server Monitor

You've had GameSpy? You've tried AllSeeingEye? You've enjoyed PathFinder? Well if you want to play those damned multiplayer games its nice to see the servers and players, so you're bound to of tried one of those. Each of the applications have their good points and their bad. Pathfinder is just grand for RTCW. Although it can be a pain if you want to quickly refresh a single server.

Also people tend to have a few favourite servers they always like to play on. Some of us set up desktop shortcuts so we can connect up to these quickly. The problem is they don't tell you anything about the server. Afterall they are just dumb shortcuts lol.

This application is primarily designed to allow you to place tiny bars over your desktop which automatically check the game server stats for the current map and players on it. It will play a sound whenever a buddy joins a server too. You can join a server from a button on the bar. Plus a little light indicates the status of the server too; green for online, red for offline and blue for buddy on server.

The manager window will sit in the system tray when minimised so those little bars can hog the desktop but you can also use this window to look at / connect to servers too. Simply click on the server and it will do a query of the server so you'll never be out of date on server info!



System Requirements

Microsoft Windows 95, 98, NT, 2000 and XP


Simply download the installation package, unzip it and double-click the 'setup.exe' file. This will run the installer. When its all installed just launch it from Start Menu->Programs. It starts with a basic set of Jolt and Barrysworld servers and of course =Plotz= too :)

For updates use the in program 'Update' button. If you do re-install you should uninstall the previous version first. You can copy the file 'config.dat' to keep your server and buddy lists.

If you have played about with your config.dat file or something nasty has happened to it then download the one below to get it working again.


Full (Beta) Install V0.7 Rev 12 - 2.10Mb Download...
V0.7 Rev 12 config.dat file - 1Kb Download... 
Only download the config file if yours has become corrupted!  
Paint Shop Pro master skin file - 4Kb Download...
Skin Pack: =Plotz=Manic #1 - 11Kb Download...
Skin Pack: Chunks - 3Kb Download...
NOTE: install new skins into the 'Skins' folder of the program install path.


ToDo List / Ideas / Known Issues

Special Thanks

I have to mention a special thanks to =Plotz=Manic for his beta testing help and enthusiasm towards this project, oh and his help with IRC ofcourse. And =Plotz=Peanut for his continued support and testing from the start. Peanut by the way will find every hole in a program and seems to home in on breaking things very quickly.

Version History

0.9.23 - re-ordered tabstops in frmBuddy to make it easier to tab when adding/editing a buddy
- added pop-up context menus for the buddy list panes to make it more intuitive and like the server list
- removed add/edit/remove buddy buttons as these have been replaced by the context menus
- added pop-up context menu to player list so that you can add a buddy from there too
0.8.22 - removed debug time used for testing at V0.8.21 which meant that the irc /away message timer repeat time was fixed to 15 seconds (slaps wrist, doh!)
0.8.21 - IRCJoin and IRCReturn functions now replace the bar | character with the irc function $chr(124) so that servers with the | can be reported properly in IRC (/ame and /away messages were truncated at the | because irc took it as a new command )
- copying server details or ip now clears the clipboard before setting the data, this should stop the problems when apps not pasting screwt details when they have set the clipboard themselves
- stopped the main window from restoring from a maximised state when a server item is clicked
- config data file is now version 3.0
0.8.20 - rearranged the buddies page into a listview with columns to allow for additional settings
- buddies can now be assigned different sounds for when they join a server
- the buddies search text can now be set to flag only exact matches
- added (disabled) property for buddy game type filter ready for future version
- BuddySounder now takes a parameter which specifies the wav file to play
- buddies page now shows a list of buddies on servers
0.7.19 - stopped multiple line server variables causing run-times if it was part of a calculated variable used by screwt (i.e. cl_maxclients etc)
0.7.18 - moved the button to open the skin config utility to the 'Settings' page
- frmMain no longer activates and goes to front/flashes when monitoring an auto-refreshing server
- disabled the skin maker config utility because it is not complete yet
0.7.17 - stopped the server page being flipped to the front on every auto-update (cos of change at V0.7.16)
0.7.16 - changed auto-update time set method to buttons with set times instead of a slider
- changed the way the timer operates for the auto-update to prevent the overflow bug
- config data is now saved after changes not just at shutdown
- when server is selected in list and an auto-update occurs the player/stats lists are also updated
- added DoEvents before launching wolf to stop the taskbar from showing just after wolf is loaded
- buddies are now made bold in the player list too
- added wolf master server info box and protocol number too (for master server query when added)
- fixed bug where a server would be refreshed after its deleted from the list throwing an error
0.7.15 - format of IP address and port is now checked in frmServer (Server Add/Edit Properties dialog box)
- joining a game and having the screen resolution change doesnt break bar positions anymore
0.7.14 - changed minimum IRC away message repeat time to 15 mins and max to 45 mins (default:20)
- away message can now be seperately disabled from the nickname change for IRC integration
- generally changed the logic of enabling IRC controls to be more intuitive
- fixed servers that timeout dont continually call the Timeout proc in Server class as the timer is now disabled when Timeout is called
- fixed tabstops and ordering in frmServer (Server Add/Edit Properties dialog box)
- added function PerformVarRemapping to Server class for a centralised point for #[var]# mapping
- changed global variable used to indicate the server hostname/ipaddress for IRC purposes so that on a Connect, the complete server class instance is exposed to allow use of the properties and functions like PerformVarRemapping
- implemented #[variable]# in advanced IRC scripting as the same as column mappings using the new function PerformVarRemapping()
0.7.13 - fixed possible error in frmColumns where some of the controls where enabled on form Load
- during a refresh the server list barname changes colour until some sort of result is given (i.e. reply or time-out)
- stopped config.dat file reporting as corrupt when no network connection is available during start up of the app and improved Winsock error handling (as this was the cause)
0.7.12 - proper numeric sorting added to ping and score columns in player list view
- added MapName read-only property to Server class so it exposes the current map on the server
- copying server details to clipboard now includes the map name
- changed minimum height of frmMain to the bottom of cmdExit button
- added 'Advanced' button and page to facilitate more options
- fixed error handling problem on unknown path for wolf dir which broke due to V0.6.10 change regarding the hiding of windows and the display of frmResume
- moved current drive/path changing from Connect() of class Server to modMain's LaunchShellFile
- improved error handling during the current drive/path changes in LaunchShellFile of modMain
- added IRC integration using DDE (thanks to =Plotz=Manic for IRC help and ideas)
- changed format of servers listing in config.dat and added IRC settings to it (file now V2.0)
- changed ReadSettings proc variable usage when reading in the config file
0.6.11 - sort order for Players count column now properly sorts all values (previous fix didnt work on single digits, doh!)
- clicking on the 'Refresh' button now forces the server list page to be shown
0.6.10 - double clicking a blank server item in the list no longer crashes the program
- fixed 'Add' column mapping default where it put '0sv_hostname' instead of 'sv_hostname'
- fixed ShowInfo in class Server from displaying previous players when there werent any on the same server anymore
- when joining a server, all bars and the main window plus system tray icon are hidden
- a popup window now appears after joining a server to allow manual 'resume' or it automatically goes away if wolfmp.exe closes
- added 'Copy IP address to clipboard' on server list context menu
- added 'Copy server details to clipboard' on server list context menu
- added m_bBusyOnRefresh to Server class to ensure only one refresh can be in progress at a time
- rearranged some code during a server refresh process to be more logical
- released a hack error trap during the refresh process which may have been causing strange server refresh results
- improved player name filtering in server class
- stopped player names with spaces in from breaking the name
0.5.9 - adding and editing servers have better validation now (although a malformed IP address will still crash it)
- servers with buddies on are now showing as bold again
- added server list column organiser so that the fields shown are modifiable and mappable to server variables
- added refresh all button to force a complete list refresh
- sort order for Players count column now sorts by number of players on the server
- server bar align no longer leaves gaps for non-visible server bars
- added 'Flash first bar' button to settings page to aid the alignment
- double clicking a blank server item in the list no longer crashes the program
0.4.8 - fixed server bar skin not updating immediately after changing it in the server editor
- column sizes of the lists are now saved in config.dat
- wolfmp.exe dir selector now puts a '\' at the end
- you can now specify a server password for each server
- added better error handling in ReadSettings and LaunchShellFile functions
- skins can now determine the position, width, alignment and colour of text on server bars along with button positions and sizes too
0.4.7 - added 'Update' button to the toolbar with relevant call to the Auto Updater app
- added 'Play on this Server' context menu item which erm lets you join the server :)
- fixed possible errors with context menu because Edit/Delete/Show where enabled even when a server was not selected
- fixed problem when a page other than the servers one was displayed and the form was resized to a point where one of the lists would have a zero or negative size
- rearranged frmMain so that the servers list gets the whole width of the form
- double-click on server in list will join the server
- the max number of players shown is now increased to include private clients when the number of players are actually more than the max shown to avoid confusion
- renamed app to Mr.J's Server Scrutiniser :o)
0.3.6 - stopped the ability to run more than one instance of the app
- disabled the 'close' button on frmMain and added an 'Exit' button to the toolbar
- auto-update timers are now stopped when joining a server and they re-activate after wolf has closed
- servers are created with a 33ms gap between them to prevent too many refreshes occuring at the same time
- play button are now disabled if the server is offline
- recoded StatusInfo in the Server class to make it more robust and logical
- totally redone the way the server list items in frmMain are managed as they are now completed controlled by the Server Class including creation, modification and deletion
- added m_bDataReceiveComplete flag to indicate the end of a Refresh so that the ShowInfo method of Server class didnt try to use data which hadn't actually been received yet!
- Server class objects are handled properly during additions and modifications
- Server class now holds the full map name so they are not truncated in the server list on frmMain
- added basic sorting to the listviews in frmMain
0.2.5 - Servers collection now performs a [Server].Kill when called to Remove an item
- deleting a server from the list now works properly
- added 1.5 seconds timeout when attempting a server refresh
- FindStat function is no longer case sensitive (just in case)
- added buddy joined sound which plays when a buddy is found on a server
0.2.4 - fixed bug where the mnuServersToggleBar_Click wasnt using the server list subitem constants
- FindBuddy function is no longer case sensitive
- player names are filtered during data parsing to prevent it breaking the player list
- rearranged the settings page and added version details
- added setting for auto-minimise window on startup
- fixed right clicking on server bar incorrectly displaying the drag mouse pointer
- long map names are truncated to fit into the server bar label
0.2.3 - added auto-arrange server bars for horizontal/vertical alignment
- server in list goes bold to indicate buddy on
- server listing gets updated automatically by the Server Class ParseServerResponse method
- added file version tag to settings config file
- added list resize (splitter) support on servers page
- settings page now has links for website and email
- server list subitems are now referenced using a constant (to allow additions/moves later on)
- added map to server listing
- server bar name length is now limited to ensure it will fit on the bar label
- minimum size of frmMain is now maintained
- stopped size of listview panes getting too small during a form resize
0.1.2 - added always-on-top option
- enable tooltiptext option is now saved in config.dat
- Skin Property Let now clears the imagelist before trying to add skins
- fixed bug when no players were on server and info list update failed
0.1.1 - first started logging history



I decided the existing server browsers didn't do it for me. So I wrote my own. Like you do.

Auto Updater

Screwt needed a way to update itself without bothering the lazy gamers I played with. This was the result.

Virtual Static IP

Back in the old days there weren't many good options for managing dynamic IPs, this project didn't get far.