HTML wrapper

    Actually the wrapper can be called a plugin since it's changeable but I prefer just call it a wrapper. When it comes to HTML formatting it does nearly all, except formatting some messages. When you want to create your own one, subclass the default one - GameLogger.GameLoggerHTMLwrapper and override it's the functions. All the comments are found in code as I think when you code it's easier to refer to the code nearby, than to some other document. I'll only make an overview of current variables and options. Note that the log itself is maintained by the EGameStats.

baseLogger
reference to EGameStats. Being set right after the wrapper is being spawned by the EgameStats

All the options below are configurable

BGcolor=1
BGColorsArray(0)=(ColorHex="#DFDFDF")
BGColorsArray(1)=(ColorHex="#2F4F4F",bInvert=True)
BGColorsArray(2)=(ColorHex="#ffffff")
BGColorsArray(3)=(ColorHex="#191970",bInvert=True)
BGColorsArray(4)=(ColorHex="#c7c28b")
BGColorsArray(5)=(ColorHex="#000000",bInvert=True)
GColorsArray(6)=(ColorHex="#4b0082",bInvert=True)
BGColorsArray(7)=(ColorHex="#696969",bInvert=True)
BGColorsArray(8)=(ColorHex="#04376A",bInvert=True)
BGColorsArray(9)=(ColorHex="#024630",bInvert=True)
BGColorsArray(10)=(ColorHex="#971B04",bInvert=True)
BGColorsArray(11)=(ColorHex="#ff8000")
BGColorsArray(12)=(ColorHex="#283c80",bInvert=True)
BGColorsArray(13)=(ColorHex="#d8a808")
BGColorsArray(14)=(ColorHex="#17191b",bInvert=True)
These are the available background colors, current bgcolor (it's number in array). ColorHex is the color which may be both a hex value and a named color. bInvert should be set to true if the backgroun is dark. This tells the wrapper to use the style table for the white texts.

bUseGraphics=true
This defines the usage of IMG tags. If false, the code inserting IMG tags is not executed

brandomBGcolor=false
This option enables selecting random BG coor for each match If true the selected background color is ignored

imagessubfolder="default"
this one is the images folder, containing images used by this wrapper. This folder should be located in UT2004/Userlogs/gameloggerimages/

DMMutName="Base Rules Mutator"
DMMutDesc="Controls some basic match settings, like brightskins and air control"
ASMutName="Base AS Rules Mutator"
ASMutDesc="Controls some basic match settings, like brightskins and air control"
ONSMutName="Base ONS Rules Mutator"
ONSMutDesc="Controls some basic match settings, like brightskins and air control"
INVMutName="Base INV Rules Mutator"
INVMutDesc="Controls some basic match settings, like brightskins and air control"
LMSMutName="Base LMS Rules Mutator"
LMSMutDesc="Controls some basic match settings, like brightskins and air control"
These are loclaized names and descriptions for so called default mutators. They are loaded always, and provide control of several settings like aircontrol. Mutator themselves aren't listed in the list available ones, and most of common users don't even know about them. GameLogger shows them, but the problem is that they don't have any names or descriptions. Right before listing mutators, wrapper sets their names and descriptions and when ended, clears them back.

SpecifyNumberStr="Specified Number"
PlayersVSBotsStr="Players vs Bots"
UseRosterStr="Rostered Bots"
MapDefsStr="Map Default Number"
Localzed names for the bot mode.

I recommend starting the work with creating layout and styles in some HTML editor, notepad at last, and when you finished the layout and tested it, start splitting the code into sections and moving it into UnrealScript. Believe me, debugging the HTML in UnrealScript is... hard. ANother way for debugging HTML code is to take the produced log and change it's code to see what goes wrong, and what fo you need to do that. Then apply the same fixes to the wrapper's code.

Note on images. it is highly recommended that you keep the images used by your wrapper in the separate folder with unique name. Remeber that several wrappers may use images having the same name, so to avoid problems, create the folder in UserLogs/gameloggerimages, and put images there. Don't forget to specify that folder name in "imagessubfolder" option.