(ServerWatch coded by Enforcer)
Document Version: 2.4 20.07.2003
Author: Daniel Rudolph aka Enforcer
Contact: enforcer@majorkillingforce.com
if you use my Software you are accepting my conditions automatically - make sure you read it and fulfill it !!
please keep in mind ServerWatch , ServerWatch Client and ServerWatch AntiCheat Client are still Beta
more Features will come later, if you missing some special one feel free to report
I´m only testing my Software on win2k personally
I have some positive feedback from WinXP,Win2k-Server,Win2k-AS and above
you will have problems if you try to make ServerWatch running stable on Win9x or WinME but that is something that is not fully in my force
if you have some advices how to make my software run better, smoother, ... feel free to let me know
use the bug report function if you notice a bug – thats the easiest way to track down errors and fix them (please add a small bug report without it is not that worth full)
please read About that Document before reading the rest of the Document
Website of the Developer: http://www.daniel-rudolph.de/
Project Website: http://www.daniel-rudolph.de/projekte/serverwatch
AntiCheat Project Website: http://www.daniel-rudolph.de/projekte/serverwatch/anticheat
Clan Homepage: http://www.majorkillingforce.com/
Support Forum: http://www.majorkillingforce.com/php/modules.php?name=Forums
This is my second attempt to write an readme to help users and wanna be users to install ServerWatch and work with it.
I hope that document can manage that better than the last one.
Im sure there are a lot of errors in here. I´m not only talking about the logical errors i´m also talking about grammar and/or spelling mistakes. Please report the errors you see because thats the only way to make this document better understandable and readable for other users and maybe also for yourself.
You can report errors like I mentioned above at our extra Forum (Translation messed up ? ): http://www.majorkillingforce.com/php/modules.php?name=Forums&file=viewforum&f=19
Thanks for your contribution in advance.
Enforcer
ServerWatch is a program to control and administrate an MoH (Medal
of Honor) Server.
You can (and should) setup a lot of options to
let ServerWatch keep your server clean and log stats.
The
program is useable for MoHAA (Medal of Honor: Allied Assault)
Servers. (It also should work on Spearhead, the add-on of MoHAA) The
ServerWatch program itself is also a small server for the
ServerWatch-Clients so that you can have several admins at one server
at the same time without any conflicts or performance problems
for the MoHAA Server.
With ServerWatch you are able to setup a lot of options and rules for your Moh Server. After Setup is done - ServerWatch will keep your server clean, store stats, .... and observes the rules. ServerWatch was planed as an automated administration Tool (start an forget) - and I think that’s the way it works. Setup the conditions ServerWatch should monitor and have more fun on your Server.
Besides that ServerWatch has an AntiCheat functionality included that helps the make your Server Cheat free. ServerWatch tracks down Cheaters by running a program on the players computer what send all needed information to a ServerWatch Server (what is setup from the Admin of the game server). That Server will check the player computer if it is cheat free. How that part of ServerWatch is working will not be described in that Readme file. Visit the Homepage to get more Information.
NOTE: at the moment the ServerWatch Version with AntiCheat is not public yet – chosen beta testers are testing it
ServerWatch is Email ware:
You can use it by only sending me a email with a usage report. But the great disadvantage for you is that you cant blame me for anything what im doing concerning the program or force me to support for the programs. Please read What is Email ware.
This means, you have to send me an email to be allowed to use this
program. The publication of this program on CD-Roms, periodicals or
other media needs to be permitted by me. Please get in Contact with
me, if you are intended so.
DO NOT USE SERVERWATCH if you don’t
like that rules.
SERVERWATCH and SERVERWATCH-CLIENT IS
PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. USE IT AT
YOUR OWN RISK. I DISCLAIM ALL WARRANTIES, EITHER EXPRESS OR IMPLIED,
INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE. IN NO EVENT SHALL I BE LIABLE FOR ANY DAMAGES
WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL,
LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES.
ServerWatch itself is the program monitoring the game server. That Program must be running on a Windows machine that don't have to be the Server what is running the Moh Server.
ServerWatch needs to be connected to the game server in 2 different ways.
The first one is the normal RCON connection what is really easy to setup. The only thing you need to know and establish that link is the IP to the Server and the RCON password of the Server.
The second link is the qconsole.log that is normally in the main dir of the running Moh Server (in the mainta dir if you are running an spearhead server). ServerWatch need access to that file to get all needed information.
The program must have a connection to the MoH server log file in any of the following three ways:
direct file access (ServerWatch is running on the same machine as the game server and has direct access to the servers default log file named "qconsole.log").
SSH (ServerWatch connects to the MoH servers SSH port across the Internet. To have this configuration working you need to know a suitable account on the server. SSH should be the default connection method for Linux servers.)
FTP (ServerWatch accesses the servers log file via FTP. Remember that FTP is not encrypted...)
All ServerWatch functions are available with any of these connection methods. The only problem you have if you use ftp is the fact that the new log file data is not gathered in real time.
The ServerWatch-Client connects to the server included in the ServerWatch program and not the MoH server. With this client you can connect to and manage the server remotely. People with an ServerWatch account now have the ability to chat witch each other trough the ServerWatch client. You can also kick or ban people, assuming you have the necessary rights to do so. And lots of other things.
In ServerWatch you can create as many users with a login and password and give them the rights you like to. Don´t worry about security; the traffic from the client to ServerWatch is encrypted - so you don't have any problems of passwords being sniffed or something like that. (Unlike normal RCON connection.).
The ServerWatch-AntiCheat is a program that will run on the Client PC and hook-up to the ServerWatch-Anticheat Server if the player joins a ServerWatch AntiCheat enabled server. If the player leave the game he get disconnected again from the ServerWatch Server.
NOTE: at the moment the ServerWatch Version with AntiCheat is not public – chosen beta testers are testing it
If the AntiCheat Client is connected to an AntiCheat Server the Server make sure that no cheat is installed. The ServerWatch AntiCheat send all needed Information's to the ServerWatch Server. The AntiCheat Server will parse the received data for cheats or any thing else the Server Admin has set it up. Nothing of detection part is done on the client. So every Server Admin is able to define his one personal cheat detection Setup if he likes to.
ServerWatch is developed from Daniel Rudolph aka Enforcer. ServerWatch is/was only programmed in my spear time and without any commercial background please keep that in mind.
You can send me a mail and ask something about the program features and stuff but it only depends on my mood to answer the mail. So stay clean and dont piss me off ;-) if you want me to help you.
Big thanks go out to [ E|F ] Cobr@ how helping me big time with testing and also bring new ideas into the Project.
I tried to use some of the standard tools like delator and autokick. That versions that was available this time was only crap in my mind. Some applications only reacted every half hour after i tried to change an option or do anything else on the GUI.. Thats no problem normally but i just dislike it. If you like the other programs - well its your decision. ServerWatch has a complete other basic structure. The hole Fronted has nothing to do with the functionality itself. So it will always keep responding. Also i was thinking of a lot more features. That was the start of ServerWatch.
The development of AntiCheat was an other decision. A good friend
of mine was just telling me that he has tested some AntiCheat
software solutions and just got frustrated. So i started developing
an anti cheat program also. The good part for me was the already
programmed basics from ServerWatch so i "just" have to
include the AntiCheat functions into ServerWatch. I also had a well
tested network code from the ServerWatch-Client so was able to make
an Server/Client ServerWatch.
I really hope you like my program ,
if you dont like it and want to tell me why feel free to send me an
email.
(anti cheat options are not listed yet)
see what players are on line
kick Players with special reasons (with a reason history)
Send Messages to the players with a lot of Variables like %playerscore%
preset Variables like Program version, users playing, ping, ..
Player nick of the Player
any Data and Temp Data from the User History
an detailed User History which provide you a lot of statistics
see who killed whom
what weapon is favorite, ...
export the data to an set of HTML sites viewable with an normal Web browser (not so well formatted until now)
calculate player skills on an user configurable formula
generate Server statistics and send an email to people you like or write it into a file
setup many of automated reports what get send to admins or special users...
Server Configuration – a list of Server configurations available with one click
add many server setups and activate it with one click
feature rich Ban Control
Ban People Nick and/or IP based - with regular expressions
auto unban on a date or in X Minutes
Message Events
Send Messages to Server based on events like:
map change
user back
user kicked
user banned
killed and many many more
Send the Messages with a predefined delay - so you can delay the messages after the events like you want
examples
send messages 30 Minutes after an Map restart
welcome a user to the server with his score and time he already spend on the Server
set filter expressions to only send the Message on an special condition (not every event)
example: send a special welcome if a clan member join the Server
possibility to cancel the message if the player went off line before the message was send
Spam protection – make sure that ServerWatch is not sending the same massage again and again
setup a interval for an automated user list refresh
auto save all Player History Data every X minutes - no History Data will be lost if the Program or the Computer crash
kick high or low ping users
you can protect ips from getting kicked
user configurable weapon detection -if you have a special moh localization just edit the weapon filters
ban as many weapons as you like – define different kick/ban setups for the different weapons
log Events (also Exceptions) to files for user based statistics, debugging, ...
send any RCON command to the Server and look at the result
watch all events ServerWatch is generating/and processing (Debug Dialog)
look at the in game user chat (the chat is also an Event)
Event --> you are able to send special Messages on some special chat
in game commands - accessible with chat messages
sample commands:
!HELP show a List of Commands available
!VERSION or !CONSOLE show a Version Information
!NICK shows some Stats for that User
!STATS show the stats for the User Himself
!SKILLS () the skills for the User Himself - the formula can be changed
swear word filter with kick and ban features
chat triggers
setup a trigger you like and an message that should be send as reaction for that trigger
Example: Trigger: !timeonline Message: %dataTimeplayedStr%
bind an RCON Command on custom hot keys
setup Ban immune Nicks and IPs to protect you friends and Clan members from being banned (they can be kicked)
kick people for skins you don't like (it is also possible to kick players what are using skins that are not in your white list)
team kill detection - warn and ban the Team killers if you like
spawn kill detection- warn and ban spawn killers if you like
you can setup want you define as spawn kill and what not
killing spree detection
setup kills in a row and a message you like to send to the players
multiple levels possible
loosing spree detection
setup deaths in a row and a message you like to send to the players
multiple levels possible
save the hole ServerWatch setup to one file and load it again
Regular Expression generator – generate a matching Regular Expression for any String
Update Engine
check for new updates available and install them
Support for Client Control (Connect with the ServerWatch Client directly to ServerWatch and manage the Server without any RCON Password)
Only one Connection to the Game Server (the one with ServerWatch)
all other users can connect to ServerWatch and not the Moh Server and control the server that way
Save Connection between Client and Server
crypt connection
connection can be compressed (rate mostly like 50%)
User based access control on Server Commands
Add different users with different rights
each ServerWatch user that connects with ServerWatch Client user have a separate Login and Password
Filter ServerWatch Client access based on ip Address of the Client what is connecting
ServerWatch options that can be accessed with the ServerWatch-Client
show/edit Ban-List
show active Players
send messages to Server
kick a player
chat with the players playing on he Server
chat with ServerWatch-Clients that are also connected to the ServerWatch Server
kick connected ServerWatch-Clients
manage ServerWatch-Client user rights
activate a server-setup saved in ServerWatch
change/add/delete setup
bind RCON Commands on an hot key
Multiple Server Support - change the ServerWatch Server the Client is connected to with one click
Setup the skin list for the Server
access to the user stats
Update Engine
check for new updates available and install them
You can download the new Versions from the project Homepage:
(make sure you read the license and accept it)
Project Website: http://www.daniel-rudolph.de/projekte/serverwatch
direct Link: http://www.daniel-rudolph.de/projekte/serverwatch/download.html
ServerWatch needs to be connected to the game server in 2 different ways.The first one is the normal RCON connection what is really easy to setup. The only thing you need to know and establish that link is the IP to the Server and the RCON password of the Server.The second link is the qconsole.log that is normally in the main dir of the running Moh Server (in the mainta dir if you are running an spearhead server). ServerWatch need access to that file to get all needed information.
for the RCON Connection you need the IP Address of your Moh Server and the RCON Password
you can find that Password in the config file of the Server
if you don't know how to set the RCON password you will find a readme on:
besides the RCON access ServerWatch also need access to the log file of the Moh Server
ServerWatch will read out a lot of Information's from that Logfile.
The Moh Server is loging a lot of options to the log file – what the server logs depends on the Server startup options so it is needed that you are able to change that options to make ServerWatch work with all features
if you are not able to setup the log file the right way you should read the troubleshooting section
there are 3 different ways to make the qconsole.log accessible for ServerWatch
direct file access
that can be used to access the logfile if the Moh Server is running on the same machine with ServerWatch
it also can be used to access the log file on an network drive if the Moh Server is running on an System who make that drive/direct remote accessible as an network drive for others
Setup:
choose the direct file access mode
browse to the qconsole.log and select it or enter the full path to the log file manually
restart ServerWatch
SSH (Secure Shell) access to the log file.
SSH is an standard service on Linux Servers but it is also possible to get an SSH Server working on an Windows machine
The SSH service is a shell service to open a save remote console to an other computer – on that shell you can execute commands like you are on the computer locally
Setup:
make sure the Server that is running the Moh Server has an SSH Server running
make sure you have an valid account on that machine that has access to the command tail and has read rights on the log file
maybe test the connection and login to the Server manually with an SSH program like putty
get to know the full path where the Moh Server log file can be found
that depends on the system setup normally it is in your home path ~/.mohaa/main/qconsole.log (on a Linux Server)
but you should ask your Server provider how they setup the Server
change the connection to "SSH Connection" and enter the Host and Port – normally 22
login and password like you tested above
Command:
you can use every command what list all changes to the log file in real time one command what can do that is the tail command
if you want to use the tail command and have the same path as above you can use:
"tail -f ~/.mohaa/main/qconsole.log" as command without the quotes
the basic command is the tail command with the parameter "-f" followed by the complete log file path
tail -f <logfilepath>
FTP access to the log file.
if the computer where the Moh Server is running has an ftp server you can use that method to get the log file know to ServerWatch
the ftp server must be able to send files that are locked for write access because ServerWatch wants to access the log file every x seconds also if the Moh Server is running
you can check that by trying to download the log file with a normal ftp client while the Moh Server is running.
Setup:
make sure you have an valid login password for the ftp server you need to access
try to login and download the log file manually with an normal ftp program or your favorite Internet browser
figure out the full path to the log file
full path means from the / to the file
so you have something like /user/server/main/qconsole.log
change the access mode to ftp and fill the needed login data
if you are behind an router or something like that enable passive transfer
the refresh timeout should be something like 3000
enter the full path as log file path in the setup
setup a ftp proxy if you want to use one
restart ServerWatch
If you are able to use it you should use direct file access. That method needs less resources than the other 2 methods.
SSH access is also running very stable and performing very well without to much resource usage that is the favorite choice if you have to access the log file from an remote server. You also should think of installing an SSH Server if you are running a windows machine instead of using the FTP method.
Last and least the FTP access. The ftp access has a lot of timing problems that make it difficult to detect time relevant data like spawn killers. Also FTP Connections are not that stable. With ftp access you can also use all features of ServerWatch but you have the problem that ServerWatch dont get a live view from the log file. So its not possible to react ServerWatch in real time. Thats normally no problem, but some features like spawn killing detection have a problem - so you have to play around with the timing options to get it working like you want it.
Nothing at all. All you need is a login to an computer that is running ServerWatch.
Set a name you like
the name doesn't matter for the Client – choose a name that you can remember what server is meant
set the ip and port – login/pass
add it to the Server List
press connect – thats all
After you add the Server to the List you can access it with the "Change Server" menu also and connect to it – or change to an other Server.
If you want to you can try to start with zero. That also means that you have to setup the Weapon Detection Strings – if you don't do so ServerWatch cant manage to detect the weapon that is used out of the Moh Server log file. Because that is something that is the same for all users (if you don't change something in the localization.txt) and you might want to see a sample setup that show you some of the features i made an sample Setup that can be downloaded from my Website. Download the sample Setup and extract all files and all sub dirs in your ServerWatch Directory. You need to override all *.dat files and the ServerWatch ini file. Your complete setup is gone if you do so.
An different way to get the sample setup is to download the ServerWatch installer and select the default setup on the install options and ServerWatch get installed with that sample setup already.
The sample Setup contains:
the standard Weapon detection Setup
that should work for you if you are not playing with the localization.txt
Rocket and Shotgun are banned
because i don't like that 2 weapons :D
some nicks are banned
just some samples for regular expressions
a ServerWatch-Client access configuration
an anonymous login exists which has no right to affect the game play – the user anonymous only can take a look at the ServerWatch Server but cant change anything
some other options that might give you an idea what you can do with ServerWatch
please do not forget to change your Connection Setup after installing the sample setup because that is something that is different for every user.
The Moh server need to be started with some special options to do the logging like ServerWatch wants it. IF you startup the Moh server the right way the qconsole.log will get created from the Server. If you have an Spearhead server the log file get created in the mainta. And if you are running an Linux server that differs a little bit but i hope that file help you to understand how it works.
You need to start the Server with the additional options:
+set dedicated 1 +set sv_chatter 1 +set chat 1 +set developer 2 +set logfile 3
to startup your Linux Server in the right way. The qconsole.log get create in the home dir of the logged in user normally that looks like: ~/.mohaa/main/qconsole.log.
MKF is also using an Linux Server - our startup script looks like:
./mohaa_lnxded +set dedicated 2 +set sv_chatter 1 +set chat 1 +exec mkf.cfg +set developer 2 +set logfile 3 &> /home/log.txt
that will run the Server and generate the log file at /home/log.txt so we can use "tail -f /home/log.txt" command on the the ssh connection setup
You also need some additional startup parameters on the windows Server.
You have to edit the target line of the link that is starting your server.IF you don't know what a target line is.Go to the shortcut of the mohaa server -or create a new shortcut from the C:\Program Files\EA\Mohaa\Server_exe (This is the Default place to find mohaa if you have not set it otherwise on the installation) to the Desktop.
If you open the link you should have a target line like:
C:\Program Files\EA GAMES\MOHAA\MOHAA_server.exe
You need to change it to an target line like:
" C:\Program Files\EA GAMES\MOHAA\MOHAA_server.exe " +set ui_console 1 +set g_gametype 4 +set map obj/obj_team1 +set sv_maxclients 16 +set chat 1 +set developer 2 +set logfile 3 +set dedicated 2 +set net_port 12203 +set sv_chatter 1 +exec obj.cfg
+set ui_console 1
Enables the in game console via the ~ key
+set g_gametype 3
sets the game type of the Server
1= FFA 2= TeamMatch 3= RoundBased 4= Objective
+set map obj/obj_team1
sets the map that should be running after the server startup
+set sv_maxclients 16
Sets a 16 player limit (up to 32)
+set chat 1 +set sv_chatter 1
this two parameters make the user chat visible in the server to log (qconsole.log)
+set developer 2+set logfile 3
this 2 commands set how much information get logged to the log file both options are needed that ServerWatch see everything it needs
+set dedicated 2
Launches the game in dedicated console mode
+set net_port 12203
Sets what port you want your server to run on.
+exec obj.cfg
Calls a user-defined config containing custom variables for the server.
It is BEST to have your .CFG calls at the END of the command line.
you simply have to change the filename from obj.cfg to the config file you want to use
The Log File should be in the main dir (on the Mohaa Server Dir) and called qconsole.log after you startup the server
You have to create a con fig file like the mentioned obj.cfg or create a new file and save it with that name if you not already have a config file.
The .CFG files are the heart and soul of
customizing your server and make it work like you want to. There are
several howtos in the Internet how to setup such a Server –
here you will only see the needed basics.
A config File (.cfg) is nothing more than a text document with a .CFG extension that get parsed from the game and the game changes the defaults to the variables that you have set in that config file.(unlike the command line parameters, you DO NOT need a + in front of the variables)
Anything that you want the server to ignore for whatever reason should be PRECEEDED by // (double forward slash).I will add comments below using the //, but this is only to describe the variables that is not needed for the Server!!
*******************Copy & Paste from here ********************************** sv_hostname "your hostname here" //Sets the NAME of your server, what people will see in the browser fraglimit 0 //Sets the limit of Frags that will end the match //( 0 = no fraglimit) timelimit 25 //Sets the amount of time (in minutes) for map changes //(0 = no timelimit) sv_maplist "dm/mohdm1 dm/mohdm2 dm/mohdm3 dm/mohdm5 dm/mohdm7" //This is the list of maps that will be cycled for the server sv_maxRate 9000 //Max data transmit rate by clients on the server. //(setting depends on network) sv_maxPing xxx //Keeps anyone with a higher ping than this value from connecting //to the server sv_fps 20 //Server FPS, this should increase performance (20 is the default) sv_floodProtect 0 //Flood protection from server crashing text messages sv_gamespy 1 //Allows your server to show up in the Gamespy browser, and the //In-game browser (v1.1) set g_inactiveKick 300 //Time (in seconds) that a client will be kicked for inactivity set g_inactiveSpectate 60 //Time (in seconds) that a client will be moved to spectator for //inactivity set g_teamdamage 0 //Sets friendly fire 0=off 1=on net_port 12203 //Sets the port # for the game to run off of (12203 is the default) rconPassword yourpasswordhere //Sets your RCON password to allow you Remote Administration set sv_privateClients 1 //private slots on the server fore admins or your self. Set privatepassword "xxx" //sets a password to use to get into the private clients slot. //Set password "xxx" //This one you have to set with same password as you put in your privatepassword fore it to work. //Finally, put a blank line at end of the con fig ******************************until here **************************
SAVE the file as serverXX.cfg (click yes to confirm the extension warning). If you forget and save it as “new text document”, simply rename it to serverXX.cfg
THE FILE MUST BE SAVED INTO THE “MAIN” DIRECTORY WHERE YOU HAVE THE MOH SERVER INSTALLED, if it is NOT saved in this directory, your command line will FAIL to call it and you will get an error at the console saying “COULD NOT EXEC SERVERXX.CFG”.
Setup a Spearhead Server is the same as i described above. Only the Startup line differs a little bit.
Shortcut to Spearhead Server Command line:
"C:\Program Files\EA GAMES\MOHAA\moh_spearhead_server.exe" +set ui_console 1 +set developer 2 +set logfile 3 +set dedicated 1 +set sv_chatter 1 +set chat 1 +exec obj.cfg
After you did the Setup you should know what i meant with RCON Password :D And also you should be able to decide what method you want to use to get your Moh Server log file know to ServerWatch.
As described above ServerWatch need access to the qconsole.log file of the Server and also RCON Access.
You should know how to get to the log file after you have done the Server Setup and read the lines above what is needed .
Because you know all that - you simply have to fill in the data into the Connection Setup dialog of ServerWatch.T he RCON ip is the ip of the computer the Moh Server is running on and the RCON password is the one you set in the config file of the server.
To check that you have to open the debug Window and Start ServerWatch. If you have that done you should see everything that is necessary to get an idea what is wrong or if all is running fine. Please make sure the Moh Server is also running while you make the tests :D
Open the RCON Tab in the debug window. You should see messages like:
map: dm/mohdm7 num score ping name lastmsg address qport rate --- ----- ---- --------------- ------- --------------------- ----- ----- 4 9 117 UnnamedSoldier 0 127.0.0.1:12203 1681 5000
That are log messages of the automated status commands that get send to the Serer every X seconds. If you see that messages all is fine and your RCON setup is ok. If you don't see that massages make sure the ServerWatch is in running mode.
You also can test the connection by going to the RCON tab in the debug window and enter status in the command edit field. After you executed the command you should see a return like above. If not something is wrong on your RCON setup.
If you want to check that you have to check several subtasks.
If your log file setup is working you should see something like:
Rcon from 141.30.225.46:3832: Status
that is a log message that is caused directly from ServerWatch by sending the status RCON command from time to time.
If you don't see that Messages something basic is wrong on your Setup you should read that.
ServerWatch need some information out of the log file.
Chat
Chat messages in the log file look like: CHAT: UnnamedSoldier: I've seen French school girls shoot better!
Kills
Kill messages in the log file look like: UnnamedSoldier was perforated by UnnamedSoldier2's SMG in the upper torso
team join messages
Join Team messages look like: clientCommand: UnnamedSoldier : 2 : join_team allies
There are a lot of other messages that can be seen in the log file but if you see that 3 different messages you should see everything also. If you don't see all of the messages you have to check your Server configuration.
open the advanced Setup Dialog - open the "Weapon Identification" tab. If you change something in the localization.txt you might have to change the Regular Expressions.
The standard Regular Expressions:
Rifle
kill RegExp: .*rifled.*
switch RegExp: primarydmweapon rifle
Sniper
kill RegExp: .*sniped.*
switch RegExp: primarydmweapon sniper
Sub Machine Gun
kill RegExp: .*perforated.*|.*gunned down.*
switch RegExp: primarydmweapon smg
Machine Gun
kill RegExp: .*machine-gunned.*
switch RegExp: primarydmweapon mg
Rocket
kill RegExp: .*rocket.*|.*Rocket.*
switch RegExp: primarydmweapon heavy
Shotgun:
kill RegExp: .*hunted down.*|.*pumped.*
switch RegExp: primarydmweapon shotgun
Grenade:
kill RegExp: .*grenade.*|.*shrapnel.*|.*tripped.*|.*catch.*
selfkill RegExp: (tripped on his own grenade)
disable stats !
Pistol
kill RegExp: .*pistol.*|.*was shot.*|.*clubbed.*|.*bashed.*
disable stats !
Kill console command
selfkill RegExp: (took himself out of commision)
That section will describe how you can use the ServerWatch Console Message Events. Basically that Console Message Events are messages that get send to the Server and every use who is on line can read the message. That messages are not send manually that messages are triggered by an Event you set for that special message.
As already written above Console Messages are automated messages that get send to the Server after a special condition is fulfilled. That condition is an Event that will trigger the message. For example the joining of a new user is an event that is triggered after a user with a unknown nickname joins the Server. An basic option is also the delay. That delay will cause an delay until the message get send to the server – that counter will counter at the moment the event was raised. So set it to 10 and the message will send to the server 10 seconds after the event message was triggered like the new user.
You can use that Message for nearly everything that is imaginable with automated messages. Some examples:
send a welcome message to normal players
send an other welcome message to clan members
send a special message if a non clan member use the word advertise in the chat
send a warning if a user was killed from a special user
send a periodically message (after a map start) what show how many players are on line with what ping
send periodically advertisings/warnings
send a warning message if a special user/user group join/leave the server
That are only some examples you can do a lot of other stuff also. Basically you can filter(with regular expressions) for needed player names/ips and so on and can send different messages for different conditions.
HINT: the messages have one big problem: You cant define an event that will cancel all messages that are already triggered but waiting until the delay is over - that is an problem on an example where you have timed messages on an map change/restart
IF you restart the map again after a shot time that will result in sending the timed messages some times twice or even more often if you restart the map again and again. That will get fixed in one of the next updates
Regular Expression is a very powerful strong for string pattern matching. Regular Expressions are an meta language to describe a grammatic for a string and the Regular Expression engine is able to tell if that grammar is fulfilled for a string or not.
The Engine can also do some other really cool stuff but i only want to show you the basics if you want to know more just search in google.
Some important facts:
you have to make an different between lowercase char and an uppercase char
Regular Expressions are working with control characters if you want to use them you have to escape them
Example: [ would be an /[ if you want to match an real [in a string and not a subset of character what is defined as [] in Regular Expressions
you can use my tool from the extra menu to make an Regular Expression for every string you want – that tool will simply escape every control character of the Regular Expression engine
be careful with back references they can use a lot of cpu especially if you use * meta chars
So regular expressions are used in lot of different places in ServerWatch. Every time i need to match a string i do that with regular expressions. That makes live easy for you because you only need to learn it once and can use it everywhere.
These pattern can be encoded using the following rules:
- '\' is the escape character that can be used to prefix any other
character
- '"' can be used as quoting character, it must be escaped using '\'
- '\r', '\n', '\t' are with similar usage as in the C language: CR, LF
and TAB characters
- '%XX' allows encoding any character using a hex representation
This encoding scheme allows binary data to be specified in the
SEND text and in the pattern for the other commands.
REGEX is one BRANCH (not a list of branches separated by '|' as
the POSIX standards require).
BRANCH is a list of PIECEs
PIECE is ATOM followed by '*', '+', '?' or bound:
ATOM * 0 or more matches of the atom
ATOM + 1 or more matches of the atom
ATOM ? 0 or 1 matches of the atom
ATOM {n} n matches of the atom
ATOM {min,} min or more matches of the atom
ATOM {min,max} min to max matches of the atom
ATOM is:
. match any single char
list of strings separated by '|':
(text1|text2) match text1 or text2
brace expression:
[chars] match specified characters
[^chars] don't match the specified characters
single characters:
char match specified character
escape_char char character following escape character
Examples (with escape character '!'):
[]a] match one char if it is ']' or 'a'
[^]a] match any char except ']' or 'a'
[!!] match the current escape character '!'
[a-z] match letters from 'a' to 'z'
to match a special character it must be escaped:
!* match '*'
(a!||b!)) match 'a|' or 'b)'
[a!]] match one character if it is 'a' or ']'
Bounds:
a{0,2} 0 to 2 matches for 'a'
a{5} 5 matches for 'a'
(alpha){2,} 2 or more matches for 'alpha'
Notes about brace expressions ('[chars]'):
- strict case matching is performed, i.e. the case ignore/case match
options are not checked in this context
- '^' as first characters inverts the result
- ']' used after the first '[' or following the first '^' is not treated
as special character. The same goal can be achieved if it is escaped.
- escaping in '[chars]' is required only for ']' but can be applied for
any character
Notes about bounds:
- no escaping is required in '{bounds}'
- the bounds are internally stored as 'unsigned long'
- the negative values are converted to unsigned
- (long) -1 is reserved and can't be used as value for min or max
- min <= max
- min >= 0
Notes about texts:
- escaping is required for the special characters: the escape character,
'[', '(', '*', '+', '?', '.'
- in (text1|text2) escaping is required only for the escape character,
for '|' and ')'
Remark: this how to is stolen from http://www.ssi.bg/~ja/netparse
Information that is directly for my used Engine:
English Readme: http://anso.virtualave.net/RegExpE German Readme: http://anso.virtualave.net/RegExpG Website of the Engine: http://anso.virtualave.net/
Other Links:
http://builder.com.com/article.jhtml?id=u00220020603dol01.htm
http://www.gnu.org/manual/gawk-3.0.3/html_chapter/gawk_5.html
http://www.antipope.org/charlie/attic/webbook/ch5perl/perl4.html
http://www.zdnet.de/builder/artikel/program/200208/regular_expressions_01-wc.html
(german)
http://tech.erdelynet.com/cygwin-sshd.html
send a message if a new map get started?
send a welcome message if a clan members join the Server?
send a welcome message if a NONE clan members join the Server?
send a periodically message how many players are on line (with ping summary)?
send a warning message is someone change weapon to shutgun or rocket?
ban players with nearly the same nicks?
ban ip subnets?
to check if i see all events?
ban a weapon from a Server?
work with different Server setups?
add a chat trigger?
use the swear word filter ?
send server statistics to server admins?
add RCON commands to hot keys?
setup the ping protection to let it work like i want it?
use the killing and loosing spree messages ?
to ask for some new features that should be implemented
to give an good bug report.
support the development of ServerWatch?
Open the ServerWatch setup and go to the "Console Message Events" tab
choose the Event "Map Change/Restart" as the trigger event Event.
setup the welcome message you like in the message field
Example:you want to see your stats ? just type !stats as chat
Set the Player1 filter in that way that the Player1 field have to be empty (with Regular Expressions)
Regular Expression: ^$ in the Player1 field
that have to be done because with that condition that the message don't get send for every user that have a map restart – with the filter the message only get send on a global map restart
set a delay you like - maybe 60 (seconds) all players should have rejoined the map and can see the message after the map restart if you send it immediately players are loading the map in that second and cant see the message
add the message
Jump to the how to manage index
Open the ServerWatch setup and go to the "Console Message Events" tab
choose the Event "User Back" as the trigger event
you also should do the same with new user - but clan members are normally already know to the Server and you don't need the new user event in that case to welcome the clan members
Setup the welcome Message you like in the Message field
Example: Welcome CLANMEMBER %playernick1% --- %clientcount% players Online - HAVE FUN
here you see the possibility to use variables on the messages - you can do this everywhere in ServerWatch. A List of variables can be found in the changelog.txt and also in this document
set the Player1 filter in that way, that the Player1 field have to match player that is in your clan (with Regular Expressions)
Example: ^\[M\.K\.F\] as Regular Expression will only match player nicks that are in the MKF Clan
set a delay you like - maybe 60 (seconds - the player has joined and can see the message if you send the message immediately the players are still loading and cant see the message
add the message
Jump to the how to manage index
open the ServerWatch setup and go to the "Console Message Events" tab.
choose the Event "User Back" as the trigger event
You also should do the same with the event new users because otherwise users that are new to your Server don't see a message. You can also send a different message to new users than to the know users as you can see. Maybe you send a nice greeting if a user joins the Server the first time.
setup the welcome message you like in the message field
Example:Welcome back %playernick1% - LastSeen: %datalastquit% Kills: %datahaskilled% was Killed: %datawaskilled% maps played: %datamapsplayed% time played on that server: %dataTimeplayedStr%
here you see the possibility to use variables on the messages - you can do this everywhere in ServerWatch. A List of variables can be found in the changelog.txt and also in this document
set the Player filter in that way, that the Player1 field (Expressions not allowed to match) are not allowed to match players that are NOT in your clan (with Regular Expressions)
Example: ^\[M\.K\.F\] as Regular Expression will only match players that are in the MKF Clan. If you add that as not allowed to match condition all non MKF members will fulfill the condition and the message get send. But MKF members will not trigger the message
set a delay you like - maybe 60 (seconds - the player has joined and can see the message if you send the message immediately the players are still loading and cant see the message
add the message
Jump to the how to manage index
open the ServerWatch setup and go to the "Console Message Events" tab.
choose the Event "Map Change/Restart" as trigger event.
setup the message you like to send periodically in the message field
Example: %clientcount% players are online with an average Ping of %averageping% (Max: %maxping% Min: %minping%)
here you see the possibility to use variables on the messages - you can do this everywhere in ServerWatch. A List of variables can be found in the changelog.txt and also in this document
set the player1 filter in that way that the Player field have to be empty on the event (with Regular Expressions)
Regular Expression: ^$ in the Player1 field
that must be done because you don't want that the message get send every time a user map change/restart event is triggered. If you make sure there is no player linked to the event you only see the global map change/restart event
set a delay you like - maybe 60 (seconds) with that delay all players has rejoined and can see the message after the map restart/reload
add the same message with different delays
lets say you want to see the message every 60 seconds - you have to add messages with the delay of
60
120
180
240
300 ....(until you have fulfilled the hole map duration)
add the message
Jump to the how to manage index
open the ServerWatch setup and go to the "Console Message Events" tab.
choose the Event "Weapon Change" as trigger event.
setup the message you like to send periodically in the message field
Example: WARNING: %playernick% using the %description% is NOT allowed on this Server (you should change your weapon again)
here you see the possibility to use variables on the messages - you can do this everywhere in ServerWatch. A List of variables can be found in the changelog.txt and also in this document
set the description filter in that way that the weapon have to be rocket or shotgun on the event (with Regular Expressions)
Regular Expression: (Rocket)|(Shotgun) in the description field
add the message
Jump to the how to manage index
All string matching stuff in ServerWatch is generally done with Regular Expressions – same here.
With that toolkit in the background you can ban whatever you like and what is expressible with an grammar. I try to make that visible with some examples. Remember that you can test Regular Express with the extra menu.
Ban a player with
minimum 3 xxx after another in the nick: x{3,}
exactly 3 xxx after an other in the nick: x{3,3}
max 3 xxx after an other in the nick: [^x]x{1,3}[^x] (the player nick can not end with xxx or start with xxx)
the same 5 chars at beginning of a nick name and ending (like fred5 foooo fred5): ^(.{5}).*\1+$
the MKF clan tag in front of the nick: ^\[M\.K\.F\]
at least 4 times x in the nick: .*x.*x.*x.*x.*
a player with nickname test but all upper and lowercase combinations: [tT][eE][sS][tT]
no y in his nick: ^[^y]*[a-xzA-XZ0-9]*[^y]*[a-xzA-XZ0-9]$
with the substring lamer in his nick: (lamer)
Jump to the how to manage index
All string matching stuff in ServerWatch is generally done with Regular Expressions – same here.
If you want to ban a subnet from your Server and the ip of the user is xxx.yyy.aaa.bbb then you can be sure to ban him (but maybe also others you like) by banning everything starting with xxx.yyy. To do so you can use the Regular Expression ^xxx\.yyy\..* as ip filter.
In a second Example i would like to show an other possibility if you want to ban aaa.bbb.xxx and aaa.bbb.zzz and aaa.bbb.kkk you can use the Regular Expression ^aaa\.bbb\.((xxx)|(yyy)|(zzz))\..* and it will ban all the mentioned ips.
I hope you was able to get an idea what crazy things you can do again on that field of use with the Regular Expressions and start to like them.
Jump to the how to manage index
I don't see:
NewUser/UserBack/WentOffline Events - rcon is not working fine
Reload, Chat messages – log file Events
make also sure you have selected the right Version in the setup (windows/linux)
make sure your log file setup is ok
Kill Events
Jump to the how to manage index
Open the ServerWatch Setup and go to the "Banned Weapons" tab. Add the Weapon you like to being banned from your server. Click in the Weapon on the banned weapon list where you want to change the setup an change whatever you like to be changed. Don't forget to update.
Jump to the how to manage index
You can prepare/add different Server setups for your Server and activate such a setup with one click. Also all ServerWatch Clients with enough rights can easily access the configurations and activate them.
You can add new Setups on the "Server Configuration" tab. Remember that passwords will always be set also if the fields are empty all other thinks only will be set on the server if they are not empty.
Jump to the how to manage index
A chat trigger is an automated reaction of a chat message from users playing on the Moh Server. You can use it to send custom reports to the players like the score or something else.
ServerWatch will send the message if the Regular Expression (the Trigger) matches the chat.
Examples:
Trigger: !website Message: www.majorkillingforce.com
Trigger: !server Message: [MKF] Linux Server [ServerWatch] OPEN [FFA]|195.37.58.234:12203
Trigger: !score Message: you have skills of: %skills% points
Trigger: !admin Message: Enforcer – enforcer@majorkillingforce.com
Trigger: !triggers Message: Chat triggers on that Server: \n !website \n !server \n !score \n !admin
Trigger: (^.*why.*console.*$)|(^.*console .*why.*$) Message: don't ask me im only a program
Trigger: [aA][nN][tT][iI][Cc][Hh][eE][aA][tT] Message: download the anticheat client at www.serverwatchanticheat.tk
Trigger: ^stats$ %playernick% you have to type !stats not stats
do not forget to set the timeout high enough that the players are not able to Spam the server with the triggers.
Jump to the how to manage index
All string matching stuff in ServerWatch is generally done with Regular Expressions – same here.
The rest should be easy add a regular Expression for a filter like "fuck.*u.*console" and users will get kicked if they use it to often.
Jump to the how to manage index
ServerWatch is able to collect Server statistics in the background. Like players that joined or players that got kicked.
You have to possibility to send that reports periodically to email addresses or write them to a file. Remember that you can add different reports with different report targets and different periodic times.
To setup the reports open the ServerWatch advanced setup and go to the "Statistic Reports".Enter a name and press add. I hope the rest is something that can be handled without any information.
NOTE: to send a mail to several people at the same time you can write them down like: "user1”,"user2”,"user3”
Jump to the how to manage index
You can use the hot keys in the ServerWatch Client and also in ServerWatch to exec rcon commands with a shortcut you have defined before.
Example: (on the client you find the setup in the advanced setup)
Add the reset command to the hot key – STRG + ALT + R. You put the reset in the command field and choose the R as virtual key. After that you choose the modifiers STRG and ALT. After that you just have to add the new hot key.
Jump to the how to manage index
Jump to the how to manage index
Jump to the how to manage index
If you think you have an cool idea what should be implemented to ServerWatch you can post your ideas in the Feature Request Forum at our forum.
Jump to the how to manage index
If you get to know a bug and want to make a bug report you should try to describe the error that occured as much as possible. Also the circumstances are imported if it isnt a static error – but that is something that should be readable of your report. That kind of trying to give me all information i may need to find/fix the problem is also imported if you see an unhandled exception and want to use the support function. If you don't tell me what happened, and why you got the error i have to guess – that is working in the most of the cases but that is not working if the error is complex.
Jump to the how to manage index
At the moment you can help me in writing manuals for ServerWatch and help people who have problems to install it.
Also the beta testing of the anti cheat enabled server is running and maybe you try to be an beta tester (send me a request) and try to make that AntiCheat solution work better than the rest. Testing the new anti cheat is also possible by just playing with the anti cheat Client on the ServerWatch AntiCheat enabled Servers to help the testers to test.
Jump to the how to manage index
Some features are not accessible with one of the normal setup dialogs – you have to look in the ServerWatch.ini and change them manually. But some times they will worth it *G*
Examples (that can change from one Version to an other):
ResetPing=True
add this line and the ping measure Data for a User will be forgotten if the User rejoin a Server if you have not enabled that option the ping data of a player get reset if you restart ServerWatch or after a timeout and the user get flushed out of the usercache.
%serveringamename%
%ServerWatchClientSend%
%ServerWatchClientCompressedSend%
%ServerWatchClientSendCompressionRate%
%ServerWatchClientReceived%
%ServerWatchClientCompressedReceived%
%ServerWatchClientReceivedCompressionRate%
%version%
%date%
%time%
%datetime%
%clientcount%
%averageping%
%minping%
%maxping%
%map%
%servername%
%usercount%
%kickdelay%
%KickRepeat%
%KickBanRepeat%
%KickBanDelay%
%KickBanDelay%
the number behind the variable indicates the player. If you want to know what player have what number you can look in the Debug Window. Generally you can say that player 1 is the person how was killed on a kill event and player 2 the killer. If you don't have 2 players on an event only player 1 is used. If you are not using the numbers to address the player number directly the player 1 will always be used.
%playernick%
%playerip%
%playerscore%
%playerping%
%playerip%
%playernick1%
%playerip1%
%playerscore1%
%playerping1%
%playerip1%
%playernick%
%playerip%
%playerscore%
%playerping%
%playerip%
%playernick2%
%playerip2%
%playerscore2%
%playerping2%
%playerip2%
%skills%
%skills1%
%skills2%
%description%
The History data and the temp data of a user is accessible with variables. You can specify the player directly with:
if you want to access the history data: %data[1]<variable>% or %data[2]<variable>% or simply %data<variable>% - the first player is chosen if the event has 2
if you want to access tempdata: %tempdata[1]<variable>% or %tempdata[2]<variable>% or simply %tempdata<variable>% - the first player is chosen if the event has 2
%skin%
%side%
That is working like the way i described above. You decide for what player you want to report. You can use that data variables in all events where you can see a player nick in the debug window.
Thats also not to hard. You can open the history of a special user and you can use every name you see in there. And the variable will get filled with exactly the same output as you can see in the player history tab. With the same way you can get to know all temp variables – but remember temporary variables are only visible if a player is on line. They get lost if the user is flushed out of the user cache (that will happen if the user was not on the server for some minutes).
Some examples for Variable names:
FIRSTSEEN
haskilled
waskilled
lastHunted
TimePlayedStr
Some examples for temporary Variable names:
Weapon
TeamName
LastHunted
onloosingspring
Lets say we have an one player event (no kill event) like wentonline or wentoffline. That event only has information for one player so player 2 is not used.In that case you dont have to make a difference between player 1 and 2 - just because there is no player 2.
%dataFIRSTSEEN%
%datahaskilled%
%datawaskilled%
%datalastHunted%
%dataTimePlayedStr%
If you want to send a message with some variables on an event that have to players like an kill event. You can use data/tempdata from player 1 and player 2. (Player 1 is the one who was killed player 2 is the killer)
data[1]datahaskilled%
%data[2]datahaskilled%
You have some problems and cant solve them ? You should take a look in the Forum – maybe somebody had the same problem already or someone can help you with your problem (General Links).
If you think you have a special problem or concern feel free to send me a mail to: enforcer@majorkillingforce.com
Do you really have questions left and nobody in in the Forum can help/answer ?
Send me a mail : enforcer@majorkillingforce.com
That is my first html document that was not created with joe/vi/mc or notepad - im so sorry but it was simply to much for me i hope that document (created with OpenOffice is not looking to bad in your Browser)
I hope that document help you to understand ServerWatch and bring you a littel closer to understand how ServerWatch works and how you can take your benefit from it.
Have Fun
Enforce