Here's the latest version of Ashus's PHP RCON tool, now compatible with both CoD2 and CoD4. If you're familiar with the old versions, great; if not, read the details in the ReadMe below. :borg: If you're in need of a decent RCON tool for your CoD2 or CoD4 server, get a copy of Ashus's latest creation! ;)




version 1.8

 Server side: Apache webserver with session and PHP5 support
 Client side: Javascript, AJAX and cookies enabled browser (Opera, Firefox, IE6/7)

This is a PHP interface for remote console administration to Call Of Duty 2 and Call Of Duty 4. My set of scripts gives you a list of players currently on the server along with colors - rcon status. You can send any command to the game, including messages to all, private messages (only COD2), map changes, map restarting, and any other rcon command. Next to all players there are links for 'one-click kick' and 'one-click message'. This tool works everywhere, even if you are sitting at a network with blocked UDP packets - I recommend to put it on the same machine the gameserver runs on.

Unpack the directory and upload it on your webserver.
Edit config.inc.php - general settings - language, country code resolution, custom commands...
Edit servers/myserver.inc.php - enter ip, port and rcon password of target gameserver
Edit maplist.inc.php - add your custom maps or gametypes to the lists
Edit users.inc.php - make a list of allowed users along with their passwords
Edit language.inc.php - if you translate the tool to a new language, send your work back to me

Open your browser, enter correct URL, login and have fun administering your game.

Adding more gameservers:
Edit servers.inc.php - add new server on each line, the first one on the list is default. Server string syntax is '(game) (server_name) (Friendly name)', where game is either 'cod2' or 'cod4', server_name is name of configuration file located in servers/ (eg. myserver -> servers/myserver.inc.php), Friendly name is the one you see in combo-box selecting other servers (and logging uses it as well).
Create configuration file in servers/ subdirectory. Enter at least IP, port and rcon password, other configuration may be used from cascaded configuration files.

Understanding cascaded configuration files:
All settings are defined in three levels, any setting in more specific configuration files adds/overwrites others.
- Lowest priority is defined by general config (config.inc.php)
- Medium are defined as common for games (games/cod2.inc.php)
- Highest are in specific server config (servers/myserver.inc.php)
Eg. use Servers to define gameserver IP and port, common Games to define maps you might have added to all your gameservers of each game, and Config to set language and resolving IP to country codes for the whole application.

To add an entry to array, use $array_name[] = 'value';
To clear a whole array, use unset($array_name); and then you can begin to add new items. Some arrays must be non-empty (map list, gametype list, ...).

Changed: Page charset encoding is now set to UTF-8 (better translation support for all languages). Forced UTF-8 by sending HTTP header.
Added: Multiple gameserver support - combo-box to change server appears in title only if there are more servers configured.
Added: COD4 support - whispering to players don't work AFAIK (server returns error Unknown function TELL), so I removed the Whisper buttons. New COD4 screenshots of maps and new gametypes imported. Communication on UDP layer stays the same.
Added: Logging of admin commands - watch your admins closely and shoot bad ones.
Added: Cascaded configuration (see help above).
Added: A button to clear last result.
Added: Session path can be defined in validate.inc.php - just uncomment and change the path. Some players were unable to find php.ini, so this is ready just for them.

Added: German translation, thanks to Papacheata.

Fixed: CSS was made compatible with Opera beta 9.50 codename Kestrel.
Changed: background colors of playerlist is now done trough style classes instead of bgcolors.
Added: Support for command 'geoip-lookup IP' returning only country code added. For configuration, see config.inc.php
Fixed: Uninitialized variable caused broken javascript in Firefox.
Fixed: Uninitialized variable error ocurred when retrieving background color for result.
Changed: Graphical working indicator.
Added: Shortcut key R for refreshing the playerlist.
Fixed: Minor fixes in javascript.
Fixed: If result is empty, the output table is hidden.

Fixed: A javascript glitch caused some browsers not to work.
Fixed: When data for playerlist and other commands are waited for at the same time, they are assigned to the right fields.
Fixed: When waiting for both data at the same time, and one of them finishes, the working indicator doesn't disappear. It is there always, when you're supposed to get data.
Fixed: If you receive an HTTP error, it is displayed along with text of that error.
Added: AJAX interface (thx. Nazgul for idea) for refreshing only the important parts of page. It has speeded the complete process a lot. Only one piece of code communicates with the server, easier for people to change.
Added: A "working indicator" notifying the user, that the page is waiting for new data. While waiting, you can work with old ones, unlike the old version, there you had to wait for some time without any playerlist to look at.
Added: An error message (if no data are received).
Changed: Almost all forms were removed, they were replaced by javascripts, input-guarded on the client side.
Added: Country codes are now implemeted along with national flag images. See config file for settings.
Added: Clicking any command with Shift button pressed puts the raw code to command line and doesn't send it. This can be used for changing preset commands before exec. 
Fixed: By splitting the main script in two I have caused not to auto-choose current map in map change drop-down box. The default empty line was replaced by Restart command.
Removed: The button to change gametype instantly and those ones to bath disable or enable more weapons - snipers, rifles (executed 2 or more commands in a row) would make things much more complicated. For instant gametype change use Change after map and then restart the map by button below.
Changed: The default refresh time is now 30s (you can now work while refreshing).
Added: More custom commands on one line (for syntax see config file).

Added: Italian translation (thx. Nazgul).
Added: Custom favorite commands (editable in config.inc.php). Waiting a while pointing the cursor at the friendly name of command displays the actual command as hint label.
Added: Custom commands next to all players (config file, hint labels, editable ID offset for PB commands).
Changed: Timeout values, extra-wait failsafe mode, buffer sizes (when problems with full player listing ocurred) and language settings are now editable from within config.inc.php.
Changed: Settings menu is hidden by default, it is displayed (and more php code processed) after clicking one link. Previously, it was shown/hidden by javascript.
Fixed: Arrays are now duplicated when cycling (PHP4 compatible).
Fixed: Minor HTML glitches.
Added: Codepage of the page is now changeable with language.
Added: A map picture is shown via javascript after clicking the map name. To hide it, move the mouse away, or click the picture.
Added: One button to get current gametype was added.

Changed: Refreshing of the window is now done by javascript, which is stopped/resumed manually or by clicking anywhere to the bottom table (when you start typing a long command or message to send, it is already paused). If an dialog box for message is open and then cancelled, the countdown is resumed right where it has been paused.
Added: The countdown to page refreshing was added.
Added: All weapons are now possible to disable/enable or get their status (the "?" buttons), they are hidden as default, till you click Settings link.
Added: I made a password box for changing public password. It is also hidden by default.
Added: An empty page ready for quick links you may have needed was added. I use it for fast switch to my iptables banning system.

Fixed: I changed the beginning php tags from short to proper <?php.
Fixed: If return value exceeds limited number of bytes and colorizing is turned off, the background of the character is marked as yellow for easy noticing.
Fixed: The joining substring was changed from national sign of caron to chr(255), it could help to more compatibility.

Added: A simple login system.
Added: Maps, gametypes changing via dropdown box.
Added: Buttons for changing game settings - Sniper rifles, Shotgun, Smoke grenades.
Added: Javascript and buttons to whisper to any player / say something loud.
Fixed: you can press F5 to refresh the window with list safely - no commands will be re-sent, just the last result and last sent command will be displayed again.
Changed: Kick buttons were changed to javascript links.

First version, hooray, the communication with gameserver works, now we can begin working on GUI!

Use it and modify it freely, just include my name, as I spent a lot of time developing this tool.

ashw1 -at- seznam -dot- cz
Other applications made by me are here: http://ashus.ashus.net

There are no comments yet. Be the first!