As a long time lurker, I feel obliged to contribute at least once. So here it is, a damn small and fast BF2 rcon client.

(Click for bigger version)
superfluous.txt
For the paranoid, no, Superfluous will not steal your megahertz, if unsure there's Filemon, Regmon, TCPView and TDIMon from Sysinternals.

(Click for bigger version)
superfluous.txt
Code:
Superfluous v1.01 - Copyright (C) 2005-2006 bliP
12102005, 2 February 2006 - 12 February 2006
Web: http://blip.nevada.net.nz/
IRC: #nzgames irc.enterthegame.com
Superfluous is a Battlefield 2 server administration program.
Currently, BF2CC/ModManager scripts version 4.6 must be installed on the server and PunkBuster must be enabled.
Requirements
- Windows 2000/XP and above (untested on NT/ME/9x).
- Andale Mono font, can be downloaded from the following locations:
http://prdownloads.sourceforge.net/corefonts/andale32.exe?download
http://blip.nevada.net.nz/junk/andale32.exe
Targets
- Commands which are associated with players only work for a "targeted"
player. When one player is matched with "match" or "smatch", they become
the target and these commands will only effect this player.
For example, kicking a player called team_killer takes two steps:
match _killer
kick "Do not teamkill"
Only issue the kick command if this is the only player matched and
the target is announced.
Hot Key
- Shift+F12 redirects all keyboard input to Superfluous and blocks keyboard
input to all other programs. Escape or Shift+F12 will set the keyboard back
to normal. With this mode, Battlefield 2 can be running with Superfluous on
a second monitor and commands be issued without the need to Alt+Tab.
Commands
- connect <ip>[:<port>] [name]
Must be an IP address or an alias.
Name - Admin name.
- disconnect
Close connection to server.
- serverinfo
Print information about server.
hostname - players+connecting/maximum-reserved map (next map) [moddir/mode]
ranked bf2cc_version map_time time_left time_limit autobalance worldsize
Team1 name players tickets start_tickets ticket_rate
Team2 name players tickets start_tickets ticket_rate
- match <name[|*]> [filter1[filterN]]
Full player match (uses BF2CC). Name is a sub string match, if no name is
specified, all players will be listed.
id name score/frags/deaths [kit] @ address hash
PC|OLSW|AMD|F|n team_name team:kills/damage/vehicle [vehicle_name(type)]
sc:captures/neutralizes/defends as:assists/total_assist ping profile_id
P - connected player
J - connecting player
C - commander
L - squad leader
S - squad member
W - lone wolf
A - alive
M - man down
D - dead
F - has flag
n - spawn time
Match results or all players can be filtered, use * for the match name to
filter on all players. These filters can be combined.
m - Minus Score
a - Alive
d - Dead
t - With one or more teamkills
v - Players who are in a vehicle
j - Connecting players
p - Connected players
c - Commander
l - Squad leader
s - Squad member
w - Lone wolf
h - High ping (greater than 150)
For example:
Match all players with bob somewhere in their name:
match bob
Match all players with the tag of moo and cow somewhere in their name:
match "moo cow"
Match all players who have a minus score or teamkilled:
match * mt
Match all players who are commander:
match * c
Match all players with ABC somewhere in their name, in a squad and dead:
match abc sd
- smatch <name>
Simple player match (uses admin.listPlayers). Name is a sub string match,
if no name is specified, all players will be listed.
id name @ address hash
- swap
Change team of targeted player.
- kick <"global reason">
Kick targeted player from server, reason must be in quotes.
Uses PB_SV_Kick.
- ban <"global reason">
Ban targeted player from server, reason must be in quotes.
Uses PB_SV_Kick and admin.addKeyToBanList (or admin.addAddressToBanList if
there's no hash).
- sayall <"message">
Global message to server, must be in quotes.
- serverchat [[*]time]
Display all player and server chat. Time is how often new chat is retrieved
in seconds, if time is not specified, the default is 10. If the * character
prefixes time, the previous chat history will not be shown.
- raw
Send a raw command to the server, the result is printed. Hex characters are
accepted as \xCC. Commands must start with \x02 and end with \x0A.
For example: \x02bf2cc pl\x0A
- /<command>
Commands which start with a slash are sent as exec <command>.
For example:
/sv.serverName
- about
About Superfluous.
Superfluous.cfg
- Aliases are in the form of key=value, there should be no whitespace until
after the equals sign.
- Servers can be aliased and used via: connect testserver
As the rcon password is plain text, it will prompted for if not specified.
testserver=127.0.0.1:16567
testserver_host_name=Local Server
testserver_rcon_password=rcon_password
testserver_admin_name=admin_name
- Commands can be aliased, c can be used to connect, ls will run listPlayers,
kicktk will issue a kick command.
c=connect
ls=/admin.listPlayers
kicktk=kick "Killing teammates"
- The _admin_name key is the default admin name and used if the admin name is
not specified in the server alias.
Notes
- Command and parameter input parsing is not very tolerant and all parameters
which have spaces in them must be enclosed in quotes.
- Server information is not automatically updated, if the map changes then
player's team may be reported incorrectly until the serverinfo command
is issued.
- There is a high chance that Superfluous will work under Linux with WINE,
the only extra required DLL is shlwapi.dll which is part of Windows.
Comment