+----------------------------------------------+
|    _  __                            __       |
|   | |/ /________  ____  _________  / /__     |
|   |   / ___/ __ \/ __ \/ ___/ __ \/ / _ \    |
|  /   / /__/ /_/ / / / (__  ) /_/ / /  __/    |
| /_/|_\___/\____/_/ /_/____/\____/_/\___/     |
|                                              |
| Version 3.4 Release date:   22nd Oct 2009    |
| w/site: http://www.unrealize.co.uk           |
| email: xconsole@unrealize.co.uk              |
|                                              |
+----------------------------------------------+


					What is XConsole?

XConsole is a mod that replaces your UT console and adds extra features and functions
in a small area at the top. It also adds some extra console commands.

For players:

	Easy change teams on non LeagueAS servers
	Change colours of your say/teamsay messages displayed in HUD
	Fast changing from playing to spectating and vice versa
	Logging in text or HTML with CSS support (works with CSHP but see notes below)
	Quickly dump console text to a log file using 'dump' command
	Turns on/off various types of messages in console for better reading
    Load/Save custom key configs
	Functions for LeagueAS match servers
	Demo recording
	A featureful IRC client supporting auto join, auth etc.
	
	
For admins and mods

	Front-end for server Admin, LeagueAS, UTPure, UTDC and ASH
	Server control for admins and LeagueAS mods
	Use the console in Command, Say, Teamsay, Admin or Moderator mode

See changelog.txt for info on changes etc.

============================================================================================

	I've been informed that some CSHP setups might see XConsole as a cheat and may cause you
	to be kicked from a server, depending on the setup, but I think most admins are aware of
	xconsole by now so it shouldn't be a problem. If you have any problems at all please 
	email me with details.
	Most problems can be rectified by just setting LogPage=False in XConsole.ini

============================================================================================


					INSTALLATION

All operating systems:

	Unzip into your main UT directory and all the files should go to the proper folders.
	Check the file list at the end of this file if you have problems.

Windows:

	1. Start UT and go to advanced options (type 'preferences' in console)
   	2. Go to Drivers section, click on 'Console' and choose XConsole
   	3. Close the window and restart UT for changes to take effect

Linux:

	1. Edit your UnrealTournament.ini [Engine.Engine] section and change the line 
	Console=UTMenu.UTConsole 
	to
	;Console=UTMenu.UTConsole
	2. Add the line Console=XConsole.XConsole under it
	Your UT ini file should be in ~/.loki/ut/System

To uninstall reverse this process

============================================================================================

					PAGES

Individual pages (tabs) can be turned on/off by setting their value to true/false or 1/0 in
the [XConsole.XConsole_CW] section of XConsole.ini.

Default settings:

	ShowHidePage=True
	LogPage=False
	MacroPage=True
	AdminPage=True
	ServerPage=True
	PurePage=True
	ASHPAge=False
	LeagueASPage=True
	UTDCPage=False
	UTDC2Page=True
	DemoPage=True
	CustomPage=True
	IRCPage=True

If you are not any sort of admin you will probably want to change AdminPage,
ServerPage, PurePage, ASHPage and UTDC2Page to False.

============================================================================================

Team Options

	Teamsay (TS) colours can be set (note that LeagueAS overrides these)
	Normal chat colours and kills can be set
	Quick team change button
	Toggle spectating/playing button
	1st/3rd person button

============================================================================================

Show/Hide

	Turn on/off various console messages
	Info shows various server info
	Trans toggles console transparency

============================================================================================

Logging

	Log turns on/off logging
	Log Lock makes xconsole enter logging mode automatically when you start UT
	AS rounds sorts Assault rounds into one log
	Safemode logging logs the text from the console between map changes and should not be an
	issue with UTPure
	Timestamp puts the game time for every event in the log (not in safemode)
	Dump button dumps all console text to a file immediately

	Its best to turn logging on/off between maps and not on a server although the Dump
	button will work anywhere
	Date Style combo lets you choose between UK/Euro or US format date for logs (this also
	affects date/time at bottom of console)

LOGGING ISSUES

	CSHPs scan for rogue actors (which most chat loggers use) and so logging will work better
	in safe mode, or by using the dump button. If no logs are generated because of CSHP
	switch to safe mode. 
	If you still get kicked then make LogPage=False in xconsole.ini. Have I said this 
	enough yet?

Turning safe mode on/off:

    Use the 'Safe Mode' checkbox/command to do this. Its best to do this between games, 
    not while on a server. You can also use 'LoadTimer' and 'KillTimer' to do this.
        
    *note: when you first install XConsole it will be in safe mode by default

Pros of safe mode:

	Should work with CSHP but let me know if you find otherwise.
	
Cons of safe mode:
		
	You can't have any timestamps in the log because it's not 'real-time' logging
	1000 line limit per log
    Actually does the logging between map changes (ie offline) so quiting UT too fast 
	(or if it crashes) might lose the info and the log.

============================================================================================

Macros

	Up to ten different key configs can be used

============================================================================================

Admin

	Admins can login/out issue kicks/kickbans and summon items and cheats
	Cannon button kills all the team cannons
	View button allows view from any pawn on map
	Slomo drop down box changes game speed - set it back to 'Slomo' or '1' to reset
	JumpZ drop down changes jump height - set it back to 'JumpZ' or '357' to reset
	LeagueAS Mods can also summon stuff here

============================================================================================

Server

	After logging in, level can be changed by selecting game type, map and mutators.
	The mapvote checkbox will select the MapVote version from xconsole.ini, which is set 
	to MapVoteLA13 by default.

	You can set MaxPlayers, MinPlayers, MaxTeams, TimeLimit, FragLimit, CapLimit and
	set/unset game password. Most of these settings will apply just by changing the 
	values without a map change, although it doesn't usually update the F1 scoreboard.
	
	When starting a league assault game and ticking insta box xconsole will run the team
	shock rifle mutator automatically.
	
============================================================================================

League Assault

	Moderator login/out - mods can change level, summon items, turn on practise mode, stop the
	countdown and kick players
	LeagueAS commands issued via buttons:
	XHUD = ToggleExtendedHUD (shows more detailed objective info)
	Mute = ToggleMute (cycles through mute enemies, mute all, mute off)
	Show Score = show match score
	List maps = show map list
	Allow mercs = allows opponents to use mercs
	Kick and Ban buttons and a player list to kick cheaters (only admins can ban)
	Player list updates via refresh button or console reopened
	Del Passwords button will delete your saved passwords

	* I've now added a clause that only lists players with ping>0. This is because on some
	servers	server actors were showing with name "Player" and ID=0 - sometimes 2 or 3 at 
	once. This means that players will only be listed once F1 shows their ping. If they are
	not listed, wait a sec and either press refresh or close/reopen console.
	
============================================================================================

UTPure

	Pure commands can be issued via the various buttons
	Pure ON/OFF = enable/disable cheat protection (needs map restart)
	Show IPs = Lists player IPs in console.
	Netspeeds = Show player netspeeds.
	Tickrate = Show server Tickrate.
	Info = Show CSHP settings and info.
	Fix Teams = If enabled, balances the teams.
	Next Teams = Quickly changes your team.
	1st Person = Goes to 1st person view - ie behindview 0 - useful for speccing cheaters.
	3rd Person = Resorts to normal view.
	Show IDs = Lists unique player IDs - needed to kick cheaters.
	To kick/ban a player click 'Show IDs' button to find a players ID number, use one of the
	drop-down boxes to select his ID and press Kick ID or Ban ID button. The point of using 
	IDs is because of some aimbots that change the players name to that of another player, 
	which makes	normal kick/banning harder

============================================================================================

UTDC

	Most settings can be seen by using the drop down boxes. The current setting is displayed
	in the console. Use on/off buttons to change settings.
	Screenshots can be made by using the shot dropdown box. This also only lists players
	with ping>0.
	You will need to change UTDCVersion settings in xconsole.ini for the version on your
	server. Default is v18. 
	Semi-admins and mods type your shot password into the 'Shot Pass' box and click 'save'.
	This will store the pass in XConsole.ini so you won't need to keep retyping it.
	If you are semi-admin on more than one server with different passes, just type in the 
	password.

============================================================================================

Demo

	Play, Stop, Del (delete) and Rec (record) buttons offer manual control of demos.
	Auto Mode can be set to automatically record demos. The choices are:
	All - online and offline demos
	Online only
	No auto - dont auto record anything

	The Play Mode controls set how to play back demos.
	?noframecap will play back as fast as possible
	?timebased gives a smoother playback on some machines
	1st person locks you into one players view
	3rd person lets you move around as a spectator
	You can filter which gametypes are recorded

	Demos are stored in format Map-Year-Month-Day-Hour-Minute-Second.dem
	Demo name are stored in XDemos.ini. When deleting demos they are only deletd from
	this list. If you need to delete demos properly you will have to do it manually.
	To completely clear the list simply delete XDemos.ini.
	
	In auto mode a small window [Auto-Demo] appears in the bottom left corner of the
	screen at the start of each map. If you don't want to see this window it can be
	toggled on/off with the command 'ShowDemoWin'

	If you have DemoManager installed you will need to switch the demo engine setting in
	UnrealTournament.ini back to default:

	DemoRecordingDevice=Engine.DemoRecDriver

	NOTE:

	Deleting demos from the dropdown box does NOT delete the demo, only the name in the
	list. Reason for this is that deleting files isn't supported in UScript and it would
	need a .dll to do it, which would not work across platforms anyway, only in windows.
	I do not intend to make a .dll (at the moment anyway).

============================================================================================

ASH

	This page is turned off by default as I'm not sure if ASH is still being updated
	ASH commands can be issued via the buttons/drop-down boxes, with the exception of 
	changing replacement aimbot keybinds (MUTATE ASH ReplacementABKeybinds <? | Keybind>)
	due to lack of space and being a command that probably isnt used often in-game.
	To add/remove an admin type 'name | IP' in the text box and click Add or Del button.
	Use up/down arrows to scroll back/forward through admin history.
	
	"?" - Displays the current value of a command
	ON - Turns the command ON
	OFF - Turns the command OFF

============================================================================================

IRC

An extended version of the default IRC client. Supports autojoin, autoauth and aliases.
Supports tab completion for some commands and nicks but this may still be a bit buggy.

To autojoin/autoauth you need setup some networks:

/network add <shortcutname> <server>
/channel add <shortcutname> <channel>
/auth add <shortcutname> <authcommand>

example:

/network add uta irc.utassault.net
/channel add uta utapug
/channel add uta utassault
/channel add uta myclanchannel
/auth add uta msg nickserv identify <password>

Now you can join server in server box, or by typing '/connect uta' and it will autojoin 
#utapug etc and send the auth command *but only when status window is visible*.

NOTE that there is a delay before joining which is configurable in xconsole.ini as 
AUTOJOIN_WAIT. It's set by default at 250 (2.5 secs ish) but you can experiment a bit with
this. If it's too fast then it will try to join channels before properly connected, which
won't work.

It also supports simple aliases:

/alias add <shortcut> <command>

Example:

/alias add uta connect irc.utassault.net

Then typing '/uta' will connect to utassault.net.


Note: To remove any of the above settings use 'del' in place of 'add':

/network del uta
/channel del uta utapug

OTHER IRC STUFF

Added an autojoin function for kicks. (Can be turned off in XConsole.ini)
There are a few extra commands for IRC:

/networks or /nets			Lists networks
/channels or /chans			Lists autojoin channels
/auths						Lists autoauths
/wut						Says the server you're currently playing on
/aliases					Lists aliases

And a few commands have short aliases:

/connect or /c
/join or /j
/part or /p
/kick or /k
/kickban /kb

Note: You do not need to type a '#' in front on channel name for join etc.
There is also a simple right click menu with /whois /msg /trout etc.
Banning is now done on network address instead of UT's old method of nick.
Fixed old UT bug when messaging nick/chanserv.
Banning is now done by *!*@HOST-ADDRESS same as most IRC clients. The old behaviour
was just to ban the nick ( nick*@* )


And one extra command for console:

font large|small			sets console font size

BUGS:

There are some bugs in UT's irc link code that strip colons and !'s from start of line.
So if someone types a smiley :) you will only see the ).
It also does not support /topic and /names properly.
I did fix some bugs and made my own irc link but this gets detected as a cheat by
League AS CSHP and will disconnect you, so for now it's better to put up with bugs.
For some reason if you get forwarded to another channel then the user list is empty but
does fill up when people join. I haven't figured out why yet. But I've only seen this
on some big channels like ##linux on freenode.
The console font size only changes the text area and input box font. UT doesn't seem
to allow setting a lot of the other elements as far as I can tell.

TODO:

Customisable right click IRC user menu maybe.


That's about all the features so far. If you can think of anything extra worth adding
let me know at xconsole@unrealize.co.uk


============================================================================================


					CONSOLE COMMANDS
 
 	Trans              Toggles console transparency on/off
 	Beep               Toggles console message beeps on/off (only script messages)
	TimeOn		       Shows date and time at bottom of console
	TimeOff		       Turns off above
 	Help or ?          Shows help
	Log                Logging on/off - does not save state when you shut down UT
	Lock               Log Lock on/off - on will auto start logging every time UT boots up
	TimeLog		       Log Timestamp on/off (not in safe mode)
	Rounds		       Assault logging in rounds on/off
	SafeMode	       Safe mode on/off 
	/C /S /T /A	/M     Change console mode - 'command','say','teamsay','Admin','Moderator'
	/Me				   Displays your name IRC style if used at the start of a line
	Info		       Some info about server, map, date, time etc.
 	ShowDemoWin        Toggle display of [Auto-Demo] window.
	DeletePasses	   Deletes saved passwords
	Spec/Spectate	   Goes to spec mode
	Play			   Goes to play mode
	Follow			   Spectates player through levels
	Stopfollow		   Turns off 'follow'
	
	Use / as an escape character to type console commands while in speech modes

CONSOLE/BIND/EXEC COMMANDS

    Echo               Echoes text to console
    Exo                Echoes test to console + HUD
	Dump		       Instantly dumps console text to a [Dump] log file
	Time		       Shows date and time in console
	SayTime			   Says the time
	SayDate			   Says the date

*notes: None of these are case sensitive
        In say or teamsay modes, you must use '/' to make any console commands
        To swap back to command mode from admin, say or teamsay use '/c'
        Bind/Exec commands work from keybinds and in an execed file but usually only 
		offline so eg use 'Disconnect | Dump' in a keybind.

===========================================================================================

Editing xconsole.ini

	There are a few things you may need to set up by editing the ini file.

Textured backgrounds

	There are three types of backgrounds - the console, IRC status and IRC channels.
	You can use any type of texture you like but obviously bigger the better. It does
	take maybe a little longer to load the console at startup, but I think it's worth
	it.

	Here's a list of textures you might want to check out:

	Botpack.BlueSkin2 (default)
	UWindow.BlackTexture (plain black)
	unreali.silver
	Botpack.ASMDAlt_a00 (an animated shock ball)
	Botpack.ASMDex_a00
	Botpack.bigshockmark
	Botpack.exp1_a00
	Botpack.exp2_a00
	Botpack.JBoulder1
	City.skyblu
	City.stucco4
	Genfluid.bluesky
	Skybox.nebula

If anyone has some other examples (from the default packages only) let me know and I will
update this list.


Server stuff

	The UseLocalMapList option will read the maps in your unrealtournament.ini. The easiest
	way to set this up is to go into the practise session options, open the map list window
	and change the maps cycled list to reflect the maps on the server. Do this for each 
	gametype you need. Using this local list GREATLY SPEEDS UP THE LOADING TIME!

	MapVote= change to reflect your server's version. Default is MapVoteLA13.BDBMapVote
	Mutators[0-19] can set for more mutators than the default tick box ones.

	You can now set up to 4 custom gametypes with 64 maps. Example using custom map list 1:

	set GameName[0-19] to your custom game name
	set UseCustomMapList1=True
	set MapList1Pos= to the position in the dropdown menu where you want the gametype listed
	set Prefix[0-19] to the prefix of the maps
	set GameClass[0-19] to the custom gametype class
	set Mutators[0-19] to add any custom mutators separated by commas
	set CustomMapList1[0-63] to list your maps (no need to add .unr)

	MapList1Pos starts at 0

	Example for Sniper Jailbreak:

	GameName[6]=Sniper Jailbreak 
	UseCustomMapList1=True
	MapList1Pos=6
	Prefix[6]=JB
	GameClass[6]=Jailbreak.Jailbreak
	Mutators[6]=Botpack.SniperArena
	CustomMapList1[0]=JB-Warehouse-III
	CustomMapList1[1]=JB-Freya][-III etc

	If map list fails to load properly, it is usually because the MapListPos is set wrong.
	You can usually find the game class by opening its .int file in notepad.

	
Log formats if LogPage=False

	LogMode=0/1 defines whether dump/logging is in html or text .log format.
	DateStyle=0/1 defines UK/Europe or USA style.

UTDC (Version 3.00+)

	There are two settings here:

	[XConsole.XConsole_UTDCTab]
	shotpassword=<pass> is for semi-admins. If you are a full admin leave it blank.
	UTDCVersion= is the version of UTDC your server runs. Default UTDCv18.

UTDC2 is similar

Custom Buttons (Version 3.00+)

	You can define these very easily. E.g:

	[XConsole.XConsole_CustomTab]
	ButtonText[0]=Mass Kick
	ButtonText[1]=End Assault
	...
	Com[0]=admin killall playerpawn
	Com[1]=admin killall fortstandard
	...

Demo (Version 3.10+)

	You need to add DemoPage=True/False in [XConsole.XConsole_CW] section if upgrading
	to 3.10 from 3.00 and you want to use the demo page.

IRC

	A slightly improved version of the default IRC client.
	Supports autojoin channels, autoauth with nickserv etc, colours, hostname ban and more.
	There are some bugs with UT's IRC Link code though that removes : and ! from start of
	lines, i.e. if someone types a smiley ':)' you will only see the ')'

============================================================================================

					BUGS/TO DO

For any problems, bugs, crashes etc please mail me at xconsole@unrealize.co.uk including:
 
	Your UnrealTournament.log in the UnrealTournament\System folder (make a copy before 
	restarting UT)
	Your XConsole.ini file (erase those passwords though)
	Which server you were playing on
	Which map you were playing
	What commands, buttons etc you were using if it made UT crash
	What type CSHP on the server if you know

TODO

	Support alternative IRC Link code, but this would be dependent on CSHP allowing it to
	function.
	Probably more. Ideas? Get in touch.



============================================================================================

					FILE LIST

The .ini files will be created automatically on first use if they don't exist.

UnrealTournament\System\:

 		XConsole.u = the main package
 		XConsole.ini = saved settings
 		XConsole.int = info for UT about the package needed for advanced options
        XMacros.ini = saved key macros settings
		XDemos.ini = demo file list 

UnrealTournament\Help\XConsole\:

 		readme-xconsoleVERSION.txt = this file

UnrealTournament\XLogs:
		
		style.css
		favicon.ico	
		
============================================================================================

Thanks to Benjamin for ideas, testing and helping with all those accessed nones ;)

Dave

AKA Quasi^ & <[NBS]>~V~

============================================================================================


