ARSSE
-----
Advanced Remote Soldat Server Enchanter



The purpose of this project is to create the ultimate Soldat Server Administrator Tool.
You are free to distribute it in any form if you don't earn money from it. Just write me 
an email to let me know. If you find any kind of bug please email me. 

Installation:
--------

ARSSE doesn't need much installation, just unzip and copy to any directory you wish. 

The Layout:
-----------

The layout is pretty self-representative. You can see the server tabs on the top, with the 
Add and Remove buttons on the right. You can use these to open a new server tab, or close
one. 
Below, you can see the server settings: host, port and password, along with some buttons:
Connect/Disconnect, Manage Favourites, Refresh and Settings. They do what they say:
-Connect/Disconnect connects you to the server, or disconnects if already connected
-Manage Favourites offers a few options like Add, Delete, Rename and Update Servers
-Refresh sends a REFRESH command to the server and updates the server info
-Settings opens a new dialog where you can do all the configuration of ARSSE (see below)

Under These, you see the Player List, which will show you some info about the players in
your server. Next to it there is the Team Scores and the Server Info boxes. 
You can find the server message box under player list. You can adjust their size if
you click on the resizer on the bottom of the player list. 
Next to that, there is the Command Box, where you can select and perform any command of
the server.
On the Bottom, you can see the Command Line and some version info. Use the command line
to execute any command you wish. You can select the previously executed commands from the
drop-down list.


Options:
---------

On the settings window you can set the following options:

-automatically refresh every [X] seconds. 
  If you check this, ARSSE will refresh server info every seconds you specify.
-save server password
  If checked, your passwords will be stored encrypted for your pleasure.
-save message log
  If checked, server messages will be stored in a logfile in the logs directory. 
  The filename is the server's ip/hostname.
-minimize to system tray
  If you check this, ARSSE will minimize itself to the system tray with an icon.
-automatically sort on refresh
  Default is checked. If not checked, the playerlist won't be sorted by Score.
-automatically swap teams after every map change
  If true, teams are changed on next map load
-automatically scroll to the end of message
  Unchecking prevents scrolling to the bottom of the message window
-automatically balance teams if difference is more than [X]
  If teams are not even, ARSSE will make balance. [X] can't be less than 2. Only works with alpha and bravo teams, so you might turn it off in TDM.
-automatically send server message(s) every [X] seconds
  The specified server messages are sent to the server. More than one lines can be set.


Player List:
------------

It will display the list of players currently playing on your server. Refresh method is
"user-friendly", which means it don't flicker but updates. 
With the right click menu, you can Kick, Ban by IP/Name, Set/Remove Admin, Move to Team or 
Copy Player Name/IP to Clipboard. 
You can also resize/re-arrange the columns of the list if you wish.


Command Box:
------------

You can find all commands for soldat, and even more. I don't want to describe these 
commands, you can check Soldat Manual for a description.
But i need to say a few words about some of them:

-Make Private
  This command will kick all players and set the specified game password. Useful for cw.
-Add bot
  This will bring up a Default Bots window also, where you can select the bot you wish to
  join your server. You can add bot names to the list by editing botlist.txt
-Change map
  Just like Add bot, Change map displays the Default Maps for faster and easier map change.
  If you want to add new maps, just edit the file maplist.txt (!! not mapslist.txt !!)

Bulit-in IRC Bot:
-----------------

Not much support yet, as it is not complete. Check IRC Commands section for some 
details on IRC commands. 
You can use the Command line to execute IRC commands, or without the / prefix, you
can send messages to the channel. Note that you must use the command syntax described in
the Internet Relay Chat Protocol, not mIRC like commands. 
Check http://www.rfc-editor.org/rfc/rfc1459.txt for the protocol document.
(will change later, as it is not important. use with care, it may cause problems.)


Super Fast Hotkeys:
-------------------

ARSSE supports Super fast hotkeys. Just press the key when you are not in an edit box, and
the command will run. This is the list of all the available hotkeys:

c: connects to the server
d: disconnects from the server
b: opens a dialog where it asks for the player number/name to ban
k: opens a dialog where it asks for the player number/name to kick
p: sets the game password
s: shuts the server down if you confirm
t: sends server message
z: send PM to selected player
/: immediate command


Additional Server Commands:
---------------------------

/kickall [password] - kicks all players from the server. If password is specified, it sets game password also
/swapteams - swaps teams, only works in CTF and INF game modes.
/spectall - moves everyone to Spectator
/banname [player] - permanently bans [player] by name from the server (only works if ARSSE runs)
/unbanname [player] - removes name ban of [player]
/setteamall [number] - sets all players to the specified team [number]
/load [script] - loads and executes [script]. Scripts must be in script directory with .txt extension.
/balance - balances teams if difference is greater than (or equal to) 2 (or the number set in Options)


Ingame commands:
----------------

!admin - sends request for an admin by popping up a window and - if connected to IRC - sending message to IRC channel
!rate - displays the players rate
!test - echos your name to show you if it can respond to you
!time - shows current time - on the computer running ARSSE
!version - displays the version of ARSSE
!commands - displays all the available commands
!myip - displays player's IP
!ping - displays player's ping
!nextmap - echos next map

Additional commands can be applied, see scripts/OnPlayerSpeak.txt (bottom) for more info. Those commands
are for private servers.

IRC commands: 
-------------

!help - displays a commands screen
!servers - shows all the servers under it's control
!info [num] - shows info about server number [num]
!connect [num] - connects to server, or if already connected, disconnects
!disconnect [num] - an alias for !connect :)
!players [num] - shows players on server number [num]. Use !servers to get the numbers
!kill - disconnects bot from IRC


System Requirements:
--------------------

-Windows 9X/NT/2000/XP/2003
-Any kind of hardware capable of running above mentioned OS
-less than 260 kB of hard disk
-less than 8 MB of RAM


Version history:
----------------

1.2 - (2006.06.XX)
-fixed auto-connect bug: server showed disconnected
-fixed Connect on Startup showed false information
-fixed reconnected when clicked "Disconnect" and Auto-Retry was on
-fixed !admin command resized the main window
-fixed pressing Tab on password box takes you to Connect button
-fixed Team scores, Avarage Ping, Avarage/Total Score, Avarage/Total Deaths refreshed with delay on Tab change
-fixed !rate sometimes show 10-14 digits for K:D rate, now it shows in a 0.00 format
-fixed stability problems, less lag, crash now
-added option to hide "Registering Server.." messages
-added option to hide kill messages
-added hotkeys: z will send PM to the player selected in Player List, / will immediately focus on command line
-added Join Game function to Command Box - starts Soldat and joins the actual server
-added right-click menu to Command Box
-added OnRefresh event
-added pressing CTRL key in Password box shows the password
-added more server informations to InfoBox (bots, spectators, respawn time, etc.)
-added hotkey (i) to open/close InfoBox
-added HIDE function to hide data in main console
-added CLEAR function to script engine to clear the main console
-added WRITEFILE to write to a specified file. Usage: WRITEFILE file_name.txt Write this text.
-added timers to execute scripts on a regular basis
-modified Command Box: commands are loaded from CommandBox.txt
-modified Command Box: custom commands can be added
-modified connected servers are now displayed in black, disconnected servers are in gray
-modified command line played a "beep" on pressing "Enter", now it's silent
-modified server name is changed if clicked anywhere, hitting ESC cancels renaming
-modified pings are displayed in color depending on value in Player List
-modified main window's layout: version info and 'by RiA|KeFear' is now displayed in title
-modified Spectators' score, death and ratio are replaced with N/A
-modified scrolling mechanism of main console
-modified structure and name of configuration ini file (now arsse.ini) not compatible with previous versions
-modified settings and events are now separated for each server
-modified main form design
-removed 'automatically scroll to the end of the message box' from Settings


1.1.6.3 - (2006.06.04)
-fixed Command Box bug: Set Realistic Mode command was "/realisitc 1"
-added Load Settings File to Command Box
-added Private Message to player popup menu (/pm command)
-added Global Mute and Global Unmute commands to player popup menu (/gmute, /ungmute)
-added !myip ingame command (see OnPlayerSpeak.txt)
-added !ping ingame command
-added !restart, !p, !laos, !b2b, !nuubia, etc ingame commands
-added !tnl and !srl ingame commands (thanks to Kaimelar)
-modified connected servers are displayed in bold on ServerTab
-removed Reload Settings from Command Box


1.1.6.2 - (2006.04.05)
-added Connect/Disconnect All to Connect button right click menu
-added Auto Reconnect to Connect button right click menu
-added Connect on startup to Connect button right click menu
-added a few new variables to script engine: $MAXPLAYERS, $ALPHA_PLAYERS, $ALPHA_SCORE, etc.
-modified logs: now saves under "Server Name.txt"

1.1.6.1 - (2006.02.18)
-added autobalance
-added new command: /balance
-fixed CPU overusage problem
-fixed various bugs

1.1.6 - (2005.12.10)
-added events
-added improved scripting
-added script editor
-added maximum players display
-added team players display
-added echo server messages to IRC channel controlled by OnData event
-added new Soldat 1.3.1 commands /loadlist X and /lobby to the Command Box
-added new default maps to maplist.txt
-added new OnPlayerSay scripts: Team-change by Leo and Revolution-hack prevention by jaddy
-modified team score display
-modified player list team colours
-modified in-game commands are now controlled by OnPlayerSpeak event
-fixed Deafult Bots/Maps list height issues
-fixed first server tab port and password loaded incorrectly
-fixed all events occure when player starts text with space
-and some more changes I forgot about long ago... :S

1.1b - first beta with IRC Bot ;) (2005.07.26) 
-added "basic" IRC support
-added varius IRC commands 
-added in-game commands: !commands, !test, !time, !admin
-added players/maxplayers to display
-added player count to team display
-added option to enable/disable in-game commands
-modified auto say now sends message to every connected servers
-modified message read method, so multi-lines are filtered out and players using it are warned
-modified teams are colored in player list
-fixed no refresh when server before actual tab is not connected
-fixed server data not saved when only one tab is open
-fixed selected text colored when new line added to message box
-fixed various message box related errors
-fixed refresh stops for all if not selected server is not connected
-fixed autosay saved incorrectly if settings not pressed

1.0 - first non-beta release (2005.07.03)
-added named ban support
-added command /banname [player]
-added command /unbanname [player]
-added command /setteamall [number]
-added resizeable Player list / Message Box
-added player command !rate
-added player command !version
-added multiple lines to automatic server message
-added tabbed multi server support
-added favourite servers manage support
-added statistics: avarage ping, avarage/total score and deaths
-added setting: auto scroll to bottom of message screen
-added basic scripting support (/load command)
-modified resize method
-modified automatic server message
-modified main icon
-modified readme
-modified favourite server storing method
-fixed auto say function state not saved
-fixed bad sorting of Spectators

0.9.4b - third public beta (2005.06.04)
-added hotkeys: c, d, p (connect/disconnect, set password)
-added Copy to clipboard function to player list right-click menu (player's name or IP)
-added setting sort on refresh
-added setting swap teams after map change (on timeout and nextmap command, not on map command)
-added setting send server message every x seconds
-added spectators to player list
-added command /kickall [password] - kicks all players and sets game password (optional)
-added command /swapteams - swaps teams (works in ctf and inf only)
-added command /spectall - puts all players to spectators
-added name completion on pressing Tab
-modified player list chat messages are now displayed in light blue for better review
-modified player list team names instead of numbers
-modified player list can be sorted by clicking on columns
-modified saved passwords are now encrypted (incompatible with previous versions!)
-modified hotkeys: kick and ban now opens dialog for paramters
-fixed focus always on parameter input
-fixed Make Private command sends command line text too
-fixed on player join last player's team displayed incorrectly
-fixed minimize to system tray icon - wierd things happened sometimes
-fixed command history issue with automatic command completion - turned off 

0.9.1b - second public beta (2005.05.21)
-added real time counter: Time Left
-added player counter
-added message logging
-added timestamp to messages
-added readme :)
-added settings dialog
-added minimize to system tray option
-added confirm dialog on exit while connected
-added flexible window, now resizeable
-modified refresh time now configurable
-modified player list refresh method
-fixed infinite error message when server closes while connected

0.8b - first public beta (2005.05.11.)
 
-added favorite servers support
-added commands history
-added command box
-added botlist and maplist to add bot and change map command
-added Make Private command
-added fast hotkeys
-added Ratio to playerlist
-added Time Limit and Time Left informations to server info box
-added Move to team (all teams+spectator included) to player list popup menu
-added improved keyboard support -> press enter to connect while in any textbox (host, port, password)
-modified Set remote admin in player list popup menu
-modified layout
-modified reduced size of the executable (around 38% of the original)
-fixed some of the original Soldat Admin's bugs


Special Thanks:
--------

-Special Thanks goes to Michal Marcinkowski for creating Soldat, and then releasing his
 Soldat Admin tool's source. I used that code in my project. 
-Special Thanks to Chibi, who made a fancy webpage for ARSSE ^^ check it out: 
 http://arsse.fracs.net/
-Thanks for all the kind ppl, who reported bugs, suggestions in the SoldatForums or in any
 other way. 
-I also thank for the people of #soldat.hu and the Hungarian Soldat Community, for supporting
 me with suggestions and bugreports.
-Thanks goes to Leo and all the people in #lrs @ irc.quakenet.org for using ARSSE on Leo's 
 servers and giving ideas and support
-Thanks to Kaimelar for noticing bugs, ideas and writing some ingame command scripts
-Thanks to FliesLikeABrick for hosting on http://arsse.u13.net
-Thanks to Coyote for finding vulnerable things and help them fixing
-Last, but not least, thank you everyone who helped me in the Project in any form.


Contact Information:
--------------------

email: hlaki@freemail.hu
msn:   hlaki@freemail.hu
IRC:   QNet @ #soldat.hu - RiA|KeFear

URL:   http://arsse.u13.net/arsse.zip


Copyright (c) 2005  Harsnyi Lszl