Attributes Files: Layout - WildChargerTV/TRON-2.0-Security-Protocol GitHub Wiki
The Layout file, as the name implies, specifies attributes used for the game's menus, HUD, fonts, and other custom elements. These attributes include, but are not limited to, screen position, text/element color, and element scale.
Important Notices & Disclaimers
Compatibility with the Killer App Mod
This is one of the few files that has been extensively modified by the Killer App Mod, as part of its ability to provide the game with widescreen resolution support. As such, it is important to note that there are three distinct versions of this file that cover the three major PC display aspect ratios: 4:3, 16:9, and 16:10.
The downside to this arrangement is that only one of these versions is ever installed at any one time. TRON 2.0 itself is unable to adjust this file on-the-fly to adapt to a change in resolution, and the Killer App Mod (in its current state) does not have the ability to do this in the game's place. As it stands now, the installer for the Killer App Mod will ask for your desired aspect ratio, and then install the Layout file associated with it once.
Until this issue can be addressed in an alternative manner, the GitHub repository for TRON 2.0: Security Protocol will contain all three versions of the Layout file, differentiated by having their respective aspect ratios appended to the end of their filenames (e.g. "LAYOUT-16X9.TXT").
All values in this file directly managed by the Killer App Mod will have (KAMod)
added to their title. Every value that receives this indicator should be modified with caution, as to avoid any potential issues with compatibility. Even if multiple similar values are grouped together, it is only those on lines with the indicator that are managed, and not the entire group of which that one value is a part.
All values in this file directly modified further by TRON 2.0: Security Protocol have received the same treatment, with an (SP)
added to their title in the same place. However, this marker will not be shown on this wiki page.
File Structure Changes
Although only the fourth largest file of the Attributes folder, the Layout file is easily the most complex by far. All of TRON 2.0's 2D-rendered onscreen elements, with VERY few exceptions, are covered here.
However, Monolith did not treat this file's sheer complexity with very much respect; the structuring of this file, as it appears in the Retail release, is a mess that is only vaguely tied together by category names. Unused values are strewn all over the place, and very few of them were ever labelled as such. To have documented the file in this state would have been way too confusing for everyone. It is to this degree that the file has been restructured, in order to allow for more cohesion in the documentation. This has been proven to not have any negative effect on TRON 2.0 itself; as long as the elements themselves remain in the correct places, the game does not read them in any particular order.
Additionally, all values that have been confirmed to be unused by TRON 2.0 have been isolated, and will not appear on this wiki page. Within the file itself, these removals can be found on a per-section basis, under the <SAFELY DEPRECATED VALUES>
sub-header. None of these values will have any definitions.
All of these modifications are subject to further changes as needed.
Basic Screen Layout
The BasicLayout
definition specifies positions, sizes, and various other attributes for common screen components. Although it doesn't technically set "default values", none of these values are ever overridden when a screen uses them.
- HelpRect (Rectangle) (KAMod)
- The upper-left origin position of the screen's title string.
- HelpFont (Integer),
- HelpSize (Integer) (KAMod)
- The font ID and text height of the screen's "tooltip" text.
- BackPos (2D Point) (KAMod)
- The upper-left origin position of the Quit button in the main menu.
- BackFont (Integer),
- BackSize (Integer)
- The font ID and text height of the back button text. Also applies to the OK button in the Options screens.
- SliderTex (Path String)
- The texture used for sliders on a screen (e.g. the mouse sensitivity option). Notably does NOT apply to all arrow buttons that aren't attached to a slider.
- ArrowBackTex (Path String),
- ArrowBackTexH (Path String)
- The texture used for the back button, when not highlighted and highlighted respectively.
- ArrowBackPos (2D Point) (KAMod)
- The upper-left origin position of the back button. Also applies to the OK button in the Options screens.
- BossRect (Rectangle)
- The space allocated to display the boss health bar.
Screen Layout
The Screen Layout definitions specify positions, sizes, and various other attributes of screen components. The GenericScreen
section below defines default values which will be used by all of the screen efinitions made after it, unless overridden.
Individual screens also have custom values specified in their section that are used in addition to the GenericScreen definitions. These custom values will have their definitions given as they appear inside their respective subcategories.
Screens which include tabs, such as the Single Player Light Cycle Menu, will consist of one subcategory for the parent screen, and then one additional subcategory per tab (properly labeled as such).
Defaults
Category Name: GenericScreen
- TitlePos (2D Point) (KAMod)
- The upper-left origin position of the screen's title string.
- TitleFont (Integer),
- TitleSize (Integer)
- The default font ID and text height of the screen's title string.
- PageRect (Rectangle) (KAMod)
- The space allocated to act as a general container for the main contents of the screen. It doesn't seem to restrict a lot of the elements directly, but it's impossible to know for certain.
- FontFace (Integer),
- FontSize (Integer)
- The default font ID and text height of all screen text.
- ItemSpace (Integer)
- The default line spacing between each specific screen item.
- MusicIntensity (Integer)
- Specifies what the music intensity should be for the current screen.
- In TRON 2.0, there is only one "intensity" for the menu music. Intensity 1 is silence. Intensity 2 is the menu music. Keeping this set to 2 is advised.
- SelectedColor (Vector),
- NonSelectedColor (Vector),
- DisabledColor (Vector)
- The default colors used for screen button text, when selected/highlighted, not selected/highlighted, and unable to be selected/highlighted, in that order.
- ListFontSize (Integer)
- The default text height used for menu options displayed in an additional pop-up box, if the screen has one.
Main Menu Screen
Category Name: ScreenMain
- VersionPos (2D Point) (KAMod)
- The upper-middle origin position of the text showing the game's current version number and custom branch name.
- Light# (String)
- The string ID of a Light to use for the screen.
Single Player Screen
Category Name: ScreenSingle
- DiffRect (Rectangle) (KAMod)
- The space allocated to display the difficulty selector pop-up box (appears when New Game is selected).
- Light# (String)
- The string ID of a Light to use for the screen.
Load Game Screen
Category Name: ScreenLoad
Applies to both the [Single Player → Load Game] screen as well as the Load Game screen that appears following a Game Over.
- SmallFontSize (Integer)
- The text height of the text listing all available save games.
- Indent (Integer)
- Determines the indent of the bounding box listing saves from the left side of PageRect.
- NameWidth (Integer),
- TimeWidth (Integer)
- The total widths of the columns listing save file names and creation dates respectively.
- Light# (String)
- The string ID of a Light to use for the screen.
Single Player → Light Cycles Screen
Category Name: ScreenBaseLightCycle
- TabRect (Rectangle) (KAMod)
- The space allocated to display the tabs utilized by this screen. The space is divided evenly amongst each of the tabs.
- BodyRect (Rectangle)
- The default space allocated to display the main body box for the tabs utilized by this screen.
- Unused by proxy - each tab has a TabBodyRect value that will override this value.
- ColumnWidth (Integer)
- Sets the width of the first column in the "Custom Settings" tab. Notably does not affect the text in that column; seems to only be here to force the column holding the controls away from the text.
- CommandPos (2D Point) (KAMod)
- The upper-left origin position of the commands to Create New, Rename, and Delete new custom configuration presets. Displayed beneath AvailRect.
- AvailRect (Rectangle) (KAMod)
- The space allocated to display the box listing player-defined custom configuration presets. Appears in the middle-right area of the screen when the "Custom Play" and "Custom Settings" tabs are being displayed.
- ConfigTitlePos (2D Point) (KAMod)
- The upper-left origin position of the "Custom Configuration" text displayed above AvailRect.
- NamePos (2D Point) (KAMod)
- The upper-left origin position of the Player Name text.
- NameColumn (Integer) (KAMod)
- The total width of the Player Name string. Includes text wrapping.
- NameWidth (Integer)
- The width of the current Player Name and Light Cycle model. Does not include text wrapping.
- This excludes the "Player Name:" and "Current Light Cycle:" labels, and only applies to the values directly following them.
- CycleNamePos (2D Point) (KAMod)
- The total width of the Current Light Cycle string. Includes text wrapping.
- Light# (String)
- The string ID of a Light to use for the screen.
Circuit Play Tab
Category Name: ScreenLightCycleCircuit
- AvailRect (Rectangle)
- The space allocated to display the box listing all the Light Cycle circuit options.
- TabBodyRect (Rectangle) (KAMod)
- The space allocated for the entire box underneath the tab.
- RestrictionPos (2D Point) (KAMod)
- The upper-left origin position of the "Light Cycles Permitted" text.
- LivesPos (2D Point) (KAMod)
- The upper-left origin position of the "Lives" text, including the dynamic number of lives following it.
- WavesPos (2D Point) (KAMod)
- The upper-left origin position of the "Waves" text, including the dynamic number of waves following it.
- ImagePos (2D Point) (KAMod)
- The upper-left origin position of the selected circuit's thumbnail image.
- ImageRect (Rectangle) (KAMod)
- The space allocated to display the selected circuit's thumbnail image.
- Unlike a traditional Rectangle declaration, this one has its first two values covered by ImagePos, meaning the first two values of this Rectangle are always 0. The last two values then determine the cutoff point for the image box.
- RegularPos (2D Point) (KAMod)
- The upper-left origin position of the "Light Cycle" text, as well as the dynamic text beneath it informing the player whether or not Light Cycles are permitted in the selected Circuit.
- Note that the dynamic text cannot be shifted vertically, only horizontally.
- SuperPos (2D Point) (KAMod)
- The upper-left origin position of the "Super Light Cycle" text, as well as the dynamic text beneath it informing the player whether or not Super Light Cycles are permitted in the selected Circuit.
- Note that the dynamic text cannot be shifted vertically, only horizontally.
- CompletedCircuitColor (Vector),
- UncompletedCircuitColor (Vector)
- The text color of a specific listed Circuit name when it has, or has not, been completed respectively at least once by the player.
- LaunchPos (2D Point) (KAMod),
- LaunchTex (Path String),
- LaunchTexH (Path String)
- These values make up the "Play" button. LaunchPos sets the upper-left origin position. LaunchTex and LaunchTexH set the button's texture when not highlighted/highlighted respectively.
- Light# (String)
- The string ID of a Light to use for the screen.
Light Cycles Tab
Category Name: ScreenLightCyclePlayerConfig
The name is redundant. This screen lets the player choose their Light Cycle model & color.
- TabBodyRect (Rectangle) (KAMod)
- The space allocated for the entire box underneath the tab.
- Character (String)
- The string ID of the Character definition that will display the rotating Light Cycle model for this screen.
- See the Screen Character Layout section for more details.
- LabelPos (2D Point) (KAMod)
- The upper-left origin position of the "Light Cycle" text, seen normally to the upper-left of the tab body box.
- BarWidth (Integer)
- The total width of the bars used to display Light Cycle stats.
- StatsPos (2D Point) (KAMod)
- The upper-left origin position of the entire Light Cycle stats module, including the bars and the label text.
- TypeLeftArrowPos (2D Point) (KAMod),
- TypeTextPos (2D Point) (KAMod),
- TypeRightArrowPos (2D Point) (KAMod)
- The upper-left origin positions of the buttons that make up the setting controlling the currently active Light Cycle type, with the text sandwiched between the left and right arrows.
- ShadeLeftArrowPos (2D Point) (KAMod),
- ShadeTextPos (2D Point) (KAMod),
- ShadeRightArrowPos (2D Point) (KAMod)
- The upper-left origin positions of the buttons that make up the setting controlling the currently active Light Cycle color, with the text sandwiched between the left and right arrows.
- Light# (String)
- The string ID of a Light to use for the screen.
Custom Play Tab
Category Name: ScreenLightCycleCustomMap
- AvailRect (Rectangle) (KAMod)
- The space allocated to display the list of available maps to add to the custom game.
- CommandPos (2D Point) (KAMod)
- The upper-left origin position of the button group holding the controls to add and remove maps for the custom game.
- SelectRect (Rectangle) (KAMod)
- The space allocated to display the list of maps added to the custom game.
- TabBodyRect (Rectangle) (KAMod)
- The space allocated for the entire box underneath the tab.
- LaunchPos (2D Point) (KAMod),
- LaunchTex (Path String),
- LaunchTexH (Path String)
- These values make up the "Play" button. LaunchPos sets the upper-left origin position. LaunchTex and LaunchTexH set the button's texture when not highlighted/highlighted respectively.
- Light# (String)
- The string ID of a Light to use for the screen.
Custom Settings Tab
Category Name: ScreenLightCycleCustomGame
- CommandPos (2D Point) (KAMod)
- The upper-left origin position of the entire list of options.
- TabBodyRect (Rectangle) (KAMod)
- The space allocated for the entire box underneath the tab.
- BodyRect (Rectangle) (KAMod)
- The space allocated to display the pop-up box listing all available Light Cycle powerups. These values are limited to the bounding box of TabBodyRect and will not visually stretch any further.
- LCPowerupListIndent (2D Point)
- The upper-left origin position of the text listing all available Light Cycle powerups. These values are limited to the bounding box of BodyRect and will not visually go any further.
- Light# (String)
- The string ID of a Light to use for the screen.
Light Cycle Victory Screen
Category Name: ScreenLightCycleVictory
This is the screen that shows up when you've beaten all of the Light Cycle circuits. It displays similarly to the Game Over screen, but with different text references.
- VictoryId (Integer)
- The ID of a string in CRES.DLL of text to display for the victory message.
- VictoryStringRect (Rectangle)
- The space allocated to display the victory message.
- VictoryStringSize (Integer)
- The text height of the victory message.
- HelpStringPos (2D Point),
- HelpStringSize (Integer)
- The upper-left origin position and text height of the text telling the player to use the Escape key to return to the previous screen.
- Light# (String)
- The string ID of a Light to use for the screen.
Multiplayer Screen
Category Name: ScreenMulti
- Light# (String)
- The string ID of a Light to use for the screen.
Multiplayer → Player Setup Screen
Category Name: ScreenPlayer
- Character (String)
- The string ID of the Character definition that will display both the rotating Light Cycle model, as well as the rotating player model, for this screen.
- See the Screen Character Layout section for more details.
- GameTypePos (2D Point) (KAMod)
- The upper-left origin position of the Game Type toggle, which is used to switch between customizing the player's character and Light Cycle models for multiplayer.
- NamePos (2D Point) (KAMod)
- The upper-left origin position of the Player Name setting, which lets the player set their name in multiplayer modes.
- NameColumn (Integer)
- The total width of the Player Name string. Includes text wrapping.
- NameWidth (Integer)
- The width of the current Player Name. Does not include text wrapping.
- BandwidthPos (2D Point) (KAMod)
- The upper-left origin position of the Bandwidth toggle, which is used to switch between different bandwidth types for multiplayer.
- BandwidthColumn (Integer)
- The total width of the Bandwidth string. Includes text wrapping.
- BandwidthWidth (Integer)
- Unused function. Unlike the Name and Band2 rows, this row does not rely on a manually-input custom value, making this space unnecessary. It's only staying here for consistency.
- Band2Pos (2D Point) (KAMod)
- The upper-left origin position of the Bandwidth (custom) setting, which lets the player set their own bandwidth value.
- Band2Column (Integer)
- The total width of the Bandwidth (custom) string. includes text wrapping.
- Band2Width (Integer)
- The width of the current custom bandwidth value. Does not include text wrapping.
- ModelTextPos (2D Point) (KAMod),
- ModelLeftArrowPos (2D Point) (KAMod),
- ModelRightArrowPos (2D Point) (KAMod)
- The upper-left origin positions of the buttons that make up the setting controlling the currently used player or Light Cycle model, with the text sandwiched between the left and right arrows.
- ColorTextPos (2D Point) (KAMod),
- ColorLeftArrowPos (2D Point) (KAMod),
- ColorRightArrowPos (2D Point) (KAMod)
- The upper-left origin positions of the buttons that make up the setting controlling the active color/skin applied to the current player or Light Cycle model, with the text sandwiched between the left and right arrows.
- Light# (String)
- The string ID of a Light to use for the screen.
Multiplayer → Join Internet/LAN Game Screen
Category Name: ScreenJoinServerList
Although presented as separate options on the Multiplayer screen, the game treats the screens for joining internet/LAN games as one, since their structure is basically identical and only requires a few elements swapped out depending on which screen the player enters.
It's important to note that this definition counts as both the base screen, as well as the screen for the first tab.
- TabRect (Rectangle) (KAMod)
- The space allocated to be divided evenly amongst the tabs.
- BodyRect (Rectangle) (KAMod)
- The space allocated to display the main body of the box for this tab.
- DedicatedColumn (Integer) (KAMod),
- NameColumn (Integer),
- PingColumn (Integer),
- PlayersColumn (Integer),
- TypeColumn (Integer),
- MapColumn (Integer)
- These values determine the widths of the columns, but it's not yet known exactly HOW these values work, either with each other or the greater screen layout.
- TablePos (2D Point) (KAMod)
- The upper-left origin position of the box holding the server listing. Includes column headers.
- ListRect (Rectangle) (KAMod)
- The space allocated to display the box holding the server listing. Further testing needed.
- PortPos (2D Point) (KAMod)
- The upper-left origin position of the "Join Specific IP" button (Internet) and the Network Port text (LAN).
- PortColumnWidth (Integer)
- The total width of the column holding the player's current network port, with the text justified to the right (LAN).
- IPColumnWidth (Integer)
- The total width of the column holding the "Join Specific IP" button (Internet). Includes text wrapping.
- FilterPos (2D Point) (KAMod),
- FilterPingPos (2D Point) (KAMod),
- FilterPlayerPos (2D Point) (KAMod),
- FilterTypePos (2D Point) (KAMod)
- The upper-left origin positions of the various filters. The first value, FilterPos, just positions the "Filters:" text, and the remaining values position the filters themselves.
- StatusPos (2D Point) (KAMod)
- The upper-left origin position of the Status indicator (both Internet and LAN).
- GameSpyPos (2D Point) (KAMod),
- GameSpyWidth (Integer)
- The upper-left origin position and total width of the GameSpy logo. Changing the width scales height accordingly to maintain aspect ratio.
- LaunchPos (2D Point) (KAMod),
- LaunchTex (Path String),
- LaunchTexH (Path String)
- These values make up the "Join game" button. LaunchPos sets the upper-left origin position. LaunchTex and LaunchTexH set the button's texture when not highlighted/highlighted respectively.
- Light# (String)
- The string ID of a Light to use for the screen.
Server Info Tab
Category Name: ScreenServerInfo
- RefreshPos (2D Point)
- The upper-left origin position of the Refresh button.
- LeftPlayerWidth (Integer)
- The total width of the column displaying player names. Does not include text wrapping.
- RightPlayerWidth (Integer)
- Unknown function. May handle a second column of player names, but verifying this is extremely hard. Or score?
- LeftInfoWidth (Integer),
- RightInfoWidth (Integer)
- The widths of the two columns responsible for displaying the server attributes. Does not include text wrapping.
- LeftColumnPos (2D Point) (KAMod)
- The upper-left origin position of the left column (displaying the list of online players).
- RightColumnPos (2D Point) (KAMod)
- The upper-left origin position of the right column (displaying server properties).
- Light# (String)
- The string ID of a Light to use for the screen.
Multiplayer → Host Screen
Category Name: ScreenHost
- TabRect (Rectangle) (KAMod)
- The space allocated to be divided evenly amongst the tabs.
- TabAlpha (Float)
- The opacity of the background for both the tabs and the box beneath them.
- ConfigurationPos (2D Point) (KAMod)
- The upper-left origin position of the string displaying the server's current configuration.
- GameTypePos (2D Point) (KAMod)
- The upper-left origin position of the string displaying the server's current game type.
- ColumnWidth (Integer)
- The total width of the column listing the available options to modify. Includes text wrapping.
- BodyRect (Rectangle) (KAMod)
- The space allocated to display the entire box underneath the tabs.
- CommandPos (2D Point) (KAMod)
- The upper-left origin position of the commands to Create New, Rename, and Delete new custom configuration presets. Displayed beneath
AvailRect
.
- The upper-left origin position of the commands to Create New, Rename, and Delete new custom configuration presets. Displayed beneath
- AvailRect (Rectangle) (KAMod)
- The space allocated to display the box listing player-defined custom configuration presets. Appears in the middle-right area of the screen when the "Custom Play" and "Custom Settings" tabs are being displayed.
- ConfigTitlePos (2D Point) (KAMod)
- The upper-left origin position of the "Custom Configuration" text displayed above
AvailRect
.
- The upper-left origin position of the "Custom Configuration" text displayed above
- LaunchPos (2D Point) (KAMod),
- LaunchTex (Path String),
- LaunchTexH (Path String)
- These values make up the "Launch" button. LaunchPos sets the upper-left origin position. LaunchTex and LaunchTexH set the button's texture when not highlighted/highlighted respectively.
- Light# (String)
- The string ID of a Light to use for the screen.
Connection Tab
Category Name: ScreenHostConnection
- CommandPos (2D Point) (KAMod)
- The upper-left origin position of the entire server options list.
- Light# (String)
- The string ID of a Light to use for the screen.
Game Tab
Category Name: ScreenHostGame
- CommandPos (2D Point) (KAMod)
- The upper-left origin position of the entire game options list.
- LCPowerupListIndent (2D Point)
- Currently unidentified function, likely unused.
- Light# (String)
- The string ID of a Light to use for the screen.
Maps Tab
Category Name: ScreenHostMaps
- AvailRect (Rectangle) (KAMod)
- The space allocated to display the list of available maps to add to the server.
- CommandPos (2D Point) (KAMod)
- The upper-left origin position of the button group holding the controls to add and remove maps for the server.
- SelectRect (Rectangle) (KAMod)
- The space allocated to display the list of maps added to the server.
- Light# (String)
- The string ID of a Light to use for the screen.
Options Screen
Category Name: ScreenOptions
- Light# (String)
- The string ID of a Light to use for the screen.
Options → Display Screen
Category Name: ScreenDisplay
- ColumnWidth (Integer)
- The total width of the column used to display the names of the screen's settings.
- SliderWidth (Integer)
- The width of any slider bars in the screen.
- Light# (String)
- The string ID of a Light to use for the screen.
Options → Sound Screen
Category Name: ScreenAudio
- ColumnWidth (Integer)
- The total width of the column used to display the names of the screen's settings.
- SliderWidth (Integer)
- The width of any slider bars in the screen.
- EAXImageTexture (Path String)
- The texture used to display the EAX logo.
- EAXImageRect (Rectangle)
- The space allocated to display the EAX logo.
- Unlike a traditional Rectangle declaration, this one has its first two values covered by EAXImagePos, meaning the first two values of this Rectangle are always 0. The last two values then determine the cutoff point for the image box.
- EAXImagePos (2D Point) (KAMod)
- The upper-left origin position of the EAX logo.
- Light# (String)
- The string ID of a Light to use for the screen.
Options → Controls Screen
Category Name: ScreenControls
- ColumnWidth (Integer)
- The total width of the column used to display the names of the screen's settings.
- SliderWidth (Integer)
- The width of any slider bars in the screen.
- Light# (String)
- The string ID of a Light to use for the screen.
Controls → Configure Controls Screen
Category Name: ScreenConfigure
- MoveControlPos (2D Point) (KAMod)
- The upper-left origin position of the four buttons used to switch between the control groups.
- ListRect (Rectangle) (KAMod)
- The space allocated to display the list of controls that the player can modify.
- ActionWidth (Integer)
- The width of the list column displaying the names of controls that the player can modify. Includes text wrapping.
- EqualsWidth (Integer)
- Probably the width of the space between the control names and their bindings. Further verification needed.
- CommandWidth (Integer) (KAMod)
- The width of the list column displaying the current bindings of the controls that the player can modify. Includes text wrapping.
- Light# (String)
- The string ID of a Light to use for the screen.
Controls → Mouse Screen
Category Name: ScreenMouse
- ColumnWidth (Integer)
- The total width of the column used to display the names of the screen's settings.
- SliderWidth (Integer)
- The width of any slider bars in the screen.
- Light# (String)
- The string ID of a Light to use for the screen.
Controls → Keyboard Screen
Category Name: ScreenKeyboard
- ColumnWidth (Integer)
- The total width of the column used to display the names of the screen's settings.
- SliderWidth (Integer)
- The width of any slider bars in the screen.
- Light# (String)
- The string ID of a Light to use for the screen.
Controls → Configure Joystick/Gamepad Screen
Category Name: ScreenJoystick
- HeaderFontSize (Integer)
- The text height of the "Axis" and "Action" column header text.
- ColumnWidth (Integer)
- The total width of the column used to display the names of the screen's settings.
- Light# (String)
- The string ID of a Light to use for the screen.
Options → Game Screen
Category Name: ScreenGame
- ColumnWidth (Integer)
- The total width of the column used to display the names of the screen's settings.
- SliderWidth (Integer)
- The width of any slider bars in the screen.
- Light# (String)
- The string ID of a Light to use for the screen.
Options → Performance Screen
Category Name: ScreenPerformance
- ColumnWidth (Integer)
- The total width of the column used to display the names of the screen's settings.
- SliderWidth (Integer)
- The width of any slider bars in the screen.
- DisplayRect (Rectangle) (KAMod)
- The space allocated to display the Display options pop-up box.
- DisplayColumn (Integer)
- The total width of the column used to display the names of the settings inside the Display options pop-up box. Does not include text wrapping, but does not cut off the text either.
- SFXRect (Rectangle) (KAMod)
- The space allocated to display the Special effects options pop-up box.
- SFXColumn (Integer) (KAMod)
- The total width of the column used to display the names of the settings inside the Special effects options pop-up box. Does not include text wrapping, but does not cut off the text either.
- Light# (String)
- The string ID of a Light to use for the screen.
Profile Screen
Category Name: ScreenProfile
- ProfileNamePos (2D Point) (KAMod)
- The upper-left origin position of the list of screen options.
- DialogSize (2D Point) (KAMod)
- Although it functions as a Point, if set to 0, it does not set the box to the top left of the screen. More understanding is needed.
- Light# (String)
- The string ID of a Light to use for the screen.
Subroutines Screen
Category Name: ScreenSubroutines
Quite a bit of the Subroutines screen (accessed by pressing F1 ingame) has been modified by the Killer App Mod whilst making the game work in widescreen. Unless you really know what you're doing, it is not recommended to touch any of these values.
Due to the inherent complexity of the screen, it has been split up into multiple sections.
General
- ClearPos (2D Point) (KAMod)
- The upper-left origin position of the "Clear" button at the bottom-right corner of the screen.
- SysNamePos (2D Point) (KAMod)
- The upper-left origin position of the name of the chapter the player is currently in.
- VersionSize (Integer)
- The text height of the text displaying the player's current version number.
- VersionPos (2D Point) (KAMod)
- The upper-middle origin position of the text displaying the player's current version number.
- OptimizerHitRect (Rectangle)
- Currently unidentified function, potentially unused.
- Piece# (String)
- The string ID of a Piece to use for the screen.
- Light# (String)
- The string ID of a Light to use for the screen.
Tooltips
These values concern the tooltip that appears when moving the cursor over applicable text. It seems that the position of each tooltip is predefined and not modifiable. These values manage things that apply to all tooltips.
- ToolTipFontSize (Integer)
- The text height of the tooltip text.
- ToolTipTogglePos (2D Point) (KAMod)
- The upper-left origin position of the setting at the bottom-right of the screen that lets the player choose whether or not tooltips should appear.
- ToolTipToggleFontSize (Integer)
- The text height of the setting at the bottom-right of the screen that lets the player choose whether or not tooltips should appear.
- ToolTipTitlePos (2D Point) (KAMod)
- The upper-left origin position of the "Show Tooltips:" text at the bottom-right of the screen.
- ToolTipTitleFontSize (Integer)
- The text height of the "Show Tooltips:" text at the bottom-right of the screen.
- ToolTipColor (Vector)
- The color of the special highlighted text at the beginning of the tooltip, confirming the definition that it is currently displaying.
- ToolTipFrameColor (Vector)
- The background color used for the tooltip box. (This is NOT the color of the border.)
- ToolTipAlpha (Float)
- The opacity of the background color used for the tooltip box.
- ToolTipWidth (Float)
- The total width of the tooltip box.
Build Notes
These values concern the build note count that appears at the lower-middle section of the screen.
- BuildNoteCountColor (Vector)
- Currently unidentified function, potentially unused.
- BuildNoteCountSize (Integer)
- The text height of the text keeping track of the total amount of build notes that the player has collected.
- BuildNoteCountPos (2D Point) (KAMod)
- The upper-middle origin position of the text keeping track of the total amount of build notes that the player has collected.
- BuildNoteCountStringId (Integer)
- The string ID from CRES.DLL to display as the build note counter.
- BuildNoteIconSpacer (Integer)
- The width of the space between the build note icon and the build note counter text.
- BuildNoteIconTexture (Path String)
- Unused function. Although pointing it to a different texture will display the texture near the center of the screen, this is not recommended, as the position of that texture cannot change.
- BuildNoteIconScalar (Float)
- The scale of the
BuildNoteIconTexture
.
- The scale of the
Arrows (KAMod)
This is fairly self-explanatory, so instead of repeating the same thing ten times, this'll be simplified. These Rectangle values allocate the space used to display the arrows next to the five rows of skills: Health, Energy, Weapon Efficiency, Transfer Rate, and Processor. These arrows only appear when the player gets their version number upgraded, and disappear once all available build notes are spent. One line declares the left arrow, the next declares the right, and so on, and so forth.
All of these are managed by the Killer App Mod.
- ArrowLeftRect0 (Rectangle) (KAMod)
- ArrowRightRect0 (Rectangle) (KAMod)
- ArrowLeftRect1 (Rectangle) (KAMod)
- ArrowRightRect1 (Rectangle) (KAMod)
- ArrowLeftRect2 (Rectangle) (KAMod)
- ArrowRightRect2 (Rectangle) (KAMod)
- ArrowLeftRect3 (Rectangle) (KAMod)
- ArrowRightRect3 (Rectangle) (KAMod)
- ArrowLeftRect4 (Rectangle) (KAMod)
- ArrowRightRect4 (Rectangle) (KAMod)
Save Game Screen
Category Name: ScreenSave
- SmallFontSize (Integer)
- The text height of the text listing all available save games.
- Indent (Integer)
- Determines the indent of the bounding box listing saves from the left side of
PageRect
.
- Determines the indent of the bounding box listing saves from the left side of
- NameWidth (Integer)
- The total width of the column listing save file names.
- TimeWidth (Integer)
- The total width of the column listing save file creation dates.
- Light# (String)
- The string ID of a Light to use for the screen.
Game Over Screen
Category Name: ScreenFailure
- FailStringRect (Rectangle) (KAMod)
- The space allocated to display the Game Over text.
- FailStringSize (Integer)
- The text height of the Game Over text.
- HelpStringPos (2D Point) (KAMod),
- HelpStringSize (Integer)
- The origin position and text height of the text that tells the player either to QuickLoad, or go to the Load screen.
- Light# (String)
- The string ID of a Light to use for the screen.
Team Select Screens
The Team Select Screen is more of a glorified pop-up box in the context of TRON 2.0. However, all of the traditional rules still apply, given that it remains in this section.
Default
Category Name: TeamSelect
This is the Team Select overlay window for Disc Arena, Disc Tournament, and Light Cycles (both Free-For-All and Team).
- PlayerTextColor (Vector)
- The text color of whichever line is currently displaying the player's information. Includes all player stats, not just the player name.
- TextColor (Vector)
- The text color of all the other lines that aren't displaying the player's information.
- FrameColor (Vector),
- FrameAlpha (Float)
- The background color and opacity of the bar at the top of the window holding the column names.
- HeaderFontSize (Integer)
- The text height of the column header text.
- TeamRect (Rectangle) (KAMod)
- The space allocated to display the list of players currently on a team.
- TeamColumn (Integer),
- MatchesWonColumn (Integer),
- PlayerColumn (Integer) (KAMod),
- GamesWonColumn (Integer) (KAMod),
- PingColumn (Integer)
- The widths of all the columns that make up the list of players currently on a team.
- SpectatorRect (Rectangle) (KAMod)
- The space allocated to display the list of players currently spectating the game.
- SpectatorColumn (Integer) (KAMod),
- SpectatorPingColumn (Integer)
- The widths of both the columns that make up the list of players currently spectating the game.
- Light# (String)
- The string ID of a Light to use for the screen.
Team Derez
Category Name: TDMTeamSelect
This is the Team Select overlay window for specifically Team Derez. The most notable difference between this and the default Team Select screen is the difference in the columns shown for the player list.
- PlayerTextColor (Vector)
- The text color of whichever line is currently displaying the player's information. Includes all player stats, not just the player name.
- TextColor (Vector)
- The text color of all the other lines that aren't displaying the player's information.
- FrameColor (Vector),
- FrameAlpha (Float)
- The background color and opacity of the bar at the top of the window holding the column names.
- HeaderFontSize (Integer)
- The text height of the column header text.
- TeamRect (Rectangle) (KAMod)
- The space allocated to display the list of players currently on a team.
- TeamColumn (Integer),
- RoundsWonColumn (Integer) (KAMod),
- PlayerColumn (Integer) (KAMod),
- FragsColumn (Integer),
- PingColumn (Integer)
- The widths of all the columns that make up the list of players currently on a team. (Frags is for the "Derezzes" column.)
- SpectatorRect (Rectangle) (KAMod)
- The space allocated to display the list of players currently spectating the game.
- SpectatorColumn (Integer) (KAMod),
- SpectatorPingColumn (Integer)
- The widths of both the columns that make up the list of players currently spectating the game.
- Light# (String)
- The string ID of a Light to use for the screen.
Loading Screens
Category Name: LoadScreenDefault
Loading screens all use the same setup, with LoadScreenDefault
setting the default attributes that the successive loading screens override.
See the file itself for actual loading screen names, as there are way too many to list on this page. None of the individual loading screens have any unique values beyond what is defined in LoadScreenDefault
.
- TitleColor (Vector)
- The color of the current chapter name.
- LevelPos (2D Point) (KAMod),
- LevelFont (Integer),
- LevelSize (Integer),
- LevelColor (Vector)
- The upper-left origin position, font ID, text height, and color of the current level name, in that order.
- ContinuePos (2D Point) (KAMod),
- ContinueFont (Integer),
- ContinueSize (Integer),
- ContinueColor (Vector)
- The upper-left origin position, font ID, text height, and color of the "press any key to continue" string.
- PreLoopFX# (String)
- The string ID of a PreLoopFX to use for the screen.
- LoadScale# (String)
- The string ID of a LoadScale to use for the screen.
- PostScale# (String)
- The string ID of a PostScale to use for the screen.
Credits Layout
The Credits
definition sets values pertaining to the game's credits sequence. This used to be positioned near the bottom of the file, but has been moved up here so that it can fit in with the rest of the screen layouts.
- FadeInTime (Float),
- HoldTime (Float),
- FadeOutTime (Float),
- DelayTime (Float)
- The amount of time it takes for each section of the credits to fade in, stay visible, fade out, and stay invisible (before the next section fades in), in that order.
- PositionUL (2D Point),
- PositionUR (2D Point),
- PositionLL (2D Point),
- PositionLR (2D Point)
- The origin positions used for the credits displayed in each of the four corners of the screen - in the upper-left, upper-right, lower-left, and lower-right corners, in that order.
Font Layout
The Fonts
definition assigns all fonts used in the game.
In TRON 2.0, pretty much all dynamic text in the game uses the same font. Additionally, the font system used in TRON 2.0 is completely unique to it, as it goes completely unused in any Lithtech Engine games both before and after it. This makes the ability to create and manage these fonts almost entirely impossible, as no font editing tool was ever released, officially or otherwise. Setting any font path to reference a .TTF file will not make the game work with it.
As such, the only fonts available to use are ones that are already in the game files, and have a .FFA, .FFB, and .DTX file associated with them. Besides the TwenCen font and its aliased version, the two other usable fonts are TronConsole and TronFont. The only way to modify any of these fonts is to modify their respective .DTX files.
It's important to note that assigning these values here do not directly correspond to a "font ID" in the game itself; any values in this file that reference the usage of a "font ID" integer are not referencing the fonts defined in this section.
- Font# (Path String)
- The font file for the game to load. Must be in .FFB format.
- FontSize# (Integer)
- The intended text height of the font file. This should always be set to the size indicated in the name of the font file.
- This is only considered a default. Any element in this file where a font is used almost always specifies its own size.
HUD Layout
The HUDLayout
definitions specify positions and sizes for in-game interface components.
Although multiple HUD layout definitions are accepted, it seems that TRON 2.0 only uses the first one, HUDLayout0
, and then internally checks if the player is on a Light Cycle or not to determine which of the HUD elements should be visible.
The layout has been split into multiple sections, for everyone's convenience.
General
These are the HUD elements that either apply to the entire HUD, didn't fall under any of the other categories, or weren't complex enough to get their own section.
- LayoutName (Integer)
- The string ID used to identify the layout configuration.
- DO NOT CHANGE - The String ID does NOT reference CRES.DLL, and the actual source is not known.
- UseAmmoBar (Boolean Integer)
- Determines if the ammo display is visible or not.
- TRON 2.0 does not use traditional ammo, so this should always be set to 0.
0
: The ammo bar is hidden.1
: The ammo bar is visible.
- ArmorOffset (2D Point)
- The offset of the armor display from the lower-right corner of the screen. This is the graphic that tells the player what pieces of armor they currently have equipped.
Health & Energy
These are self-explanatory - they control the Health & Energy bars. Does not include the Permissions ring between them.
- BarHeight (Integer) (KAMod)
- The total height used for the Health & Energy bars.
- HealthBarWidth (Integer),
- EnergyBarWidth (Integer)
- The total width used for the Health & Energy bars.
- HealthTex (Rectangle)
- The space allocated to display the Health bar foreground (the bright red layer).
- HealthFGOffset (2D Point)
- The offset of the Health bar foreground (the bright red layer) from the lower-middle point of the screen.
- HealthBGTex (Rectangle)
- The space allocated to display the Health bar background (the dark red layer as well as the little blue line around it).
- HealthBGOffset (2D Point)
- The offset of the Health bar background (the dark red layer as well as the little blue line around it) from the lower-middle point of the screen.
- EnergyTex (Rectangle)
- The space allocated to display the Energy bar foreground (the bright green layer).
- EnergyFGOffset (2D Point)
- The offset of the Energy bar foreground (the bright green layer) from the lower-middle point of the screen.
- EnergyBGTex (Rectangle)
- The space allocated to display the Energy bar background (the dark green layer as well as the little blue line around it).
- EnergyBGOffset (2D Point)
- The offset of the Energy bar background (the dark green layer as well as the little blue line around it) from the lower-middle point of the screen.
- TextHeight (Integer)
- The text height of the Health & Energy indicator text.
- HealthEnergyFont (Integer),
- HealthEnergyFontSize (Integer)
- The font ID and text height of the Health & Energy indicators.
- HealthTextOffset (2D Point),
- EnergyTextOffset (2D Point)
- The offset of the Health & Energy indicators from the lower-middle point of the screen.
Permission Set Indicator
This is the permission ring at the center of the screen. It's unique in that it's one of the few elastic elements - meaning the width and height can be different and the entire HUD element is able to scale accordingly.
- PsetOffset (2D Point)
- The offset of the permission set indicator from the lower-middle point of the screen.
- PsetWidth (Integer),
- PsetHeight (Integer)
- The width and height of the permission set indicator.
Weapon Indicator
This is just the small single box at the top-right corner of the screen that lets the player know what their currently equipped weapon is. Not to be confused with the Weapon Chooser.
- WeaponIndicatorAnimTime (Float)
- Unknown function. It has something to do with the transition between seeing all of the weapons to just seeing the currently equipped one, but changing this value did not really make it easier to understand.
- WeaponIndicatorOffset (2D Point)
- The offset of the currently equipped weapon indicator from the (almost) upper-left corner of the screen.
- WeaponIndicatorIconOffset (2D Point)
- The offset of the currently equipped weapon's icon from the lower-right corner of the indicator box that contains it.
Weapon Chooser
This is the larger graphic that appears when the player wants to change their currently equipped weapon. Not to be confused with the Weapon Indicator.
- ChooserTex (Path String),
- ChooserTexHi (Path String)
- The texture used as the background box for an available weapon, when not highlighted and highlighted respectively.
ChooserTexHi
is inherited by the Weapon Indicator.
- ChooserCorruptTex (Path String),
- ChooserCorruptTexHi (Path String)
- The texture used as the background box for an available, but corrupted weapon, when not highlighted and highlighted respectively.
- ChooserEmptyTex (Path String)
- The texture used as the background box for an unavailable weapon, when not highlighted. Only appears when the player has insufficient energy to use that weapon.
- ChooserEmptyTexHi (Path String)
- The texture used as the background box for an unavailable weapon, when highlighted. The player isn't able to highlight weapons they can't use, so this is technically an unused value.
- ChooserTextColor (Vector),
- ChooserTextSize (Integer)
- The color and text height of the string displaying the name of the currently highlighted weapon.
- ChooserBoxSize (Dimension) (KAMod)
- The defined width and height of each available weapon box. Does not affect the texture size, just the box itself.
- ChooserSpacing (Dimension)
- The defined width and height of the spacing between each available weapon box.
- ChooserIconOffset (2D Point)
- The offset of an available weapon's icon from the lower-right corner of the chooser box that contains it.
- ChooserMargin (2D Point)
- The (scalable?) offset of the weapon chooser from the upper-right corner of the screen.
- ClassNumber# (Path String),
- ClassNumberHi# (Path String)
- These point to the textures used to indicate the numbers of the available weapon classes (4 in total), when not highlighted and highlighted respectively.
New Objective Indicator
I'm leaving this in, but not sure if it's actually used, assuming that it references the UPDATE_FLASH texture. It doesn't seem to be visible anywhere.
- ObjectiveOffsetChris (2D Point)
- Chris' silly little objective indicator. Pay it no mind.
- Seriously, don't bother looking at it. Just.. move on.
- ...
- Why are you still reading this? Go modify a different value, this one's off-limits.
- ObjectiveOffset (2D Point)
- The offset of the new objective indicator from an unknown origin.
Pings
These are for the pings that pop up on the left side of the screen when certain events happen, like getting new subroutines, getting an I/O node message, or getting a new objective.
See the Pings file for more information, as this HUD element ties in with that file directly.
- PingIconSize (Dimension) (KAMod)
- The defined width and height of the ping icon boxes. Does not affect the texture size, just the boxes themselves.
- PingStartPoint (2D Point) (KAMod)
- The upper-left origin position of the ping list.
- PingSpacing (Dimension)
- The defined width and height of the spacing between ping icon boxes.
- PingBlinkCount (Integer)
- The amount of times a ping will blink when it pops up.
Crosshair Text Elements
This isn't about the crosshair itself; rather, it's meant to be for the stuff around the crosshair. The Activation Text is the yellow text beneath the crosshair that shows up when something can be interacted with, and the Info Text is... something.
Research on the Info Text is incomplete, so definitions for values relating to it are currently unavailable.
- ActivationTextPos (2D Point) (KAMod),
- ActivationTextSize (Integer)
- The upper-left origin position and text height of the activation text.
- ActivationTextJustify (Integer)
- The justification value of the activation text.
- It is not currently known what exactly this means in context.
- ActivationTextAlpha (Float),
- ActivationTextColor (Vector)
- The opacity and text color of enabled activation text.
- ActivationTextDisAlpha (Integer?),
- ActivationTextDisColor (Vector)
- The opacity and text color of disabled activation text.
- It is not presently known if this is accessible in-game.
- InfoTextPos (2D Point) (KAMod)
- InfoTextSize (Integer)
- InfoTextWidth (Integer)
- InfoTextJustify (Integer)
- InfoTextAlpha (Integer?)
- InfoTextColor (Vector)
- InfoTextBadAlpha (Integer?)
- InfoTextBadColor (Vector)
Data Log
This HUD element is currently unidentified, potentially unused. Subject to further testing.
- DataLogRect (Rectangle)
- DataLogFontSize (Integer)
- DataLogHeaderFontSize (Integer)
- DataLogFrame (Path String)
Profiler Subroutine Text
This is the text for the Profiler subroutine. By default, appears roughly to the right of the crosshair.
- ProfilerPos (2D Point)
- The lower-right origin position of the Profiler text.
- ProfilerTextSize (Integer)
- The text height of the Profiler text.
LOL & Triangulate Subroutine Zoom Values
The exact unit of measurement used for the FOV zoom is unknown, but the effect is consistent. When Triangulate is equipped, the game moves between the three zoom values for Triangulate. When the LOL is equipped, the game uses the single zoom value for the LOL.
When BOTH subroutines are equipped, and the player zooms in with the LOL, it will initially use the LOL zoom value; however, if the player zooms in further and then zooms back out to the first value, the game will instead use the first Triangulate value rather than going back to the LOL value. This resets every time the zoom is exited.
- FOVZoomLOL (Float)
- The designated FOV zoom value when the player scopes in with the LOL.
- FOVZoomTriangulate# (Float)
- The designated FOV zoom values when the player scopes in with Triangulate. 3 maximum values permitted.
Light Cycle HUD Elements
The HUD is completely different while using a Light Cycle. Luckily, this is one of the very few areas where Monolith provided the exact definition for all of these values!
Powerup Indicator
This is the element that displays the icon of the powerup currently available to the player.
- PowerupIconPos (2D Point)
- The "true center" origin position of the player's currently stored powerup icon.
- PowerupIconTexture# (Path String)
- The textures used to display the icon for each powerup.
- The textures correspond to the in-game powerups as follows:
- Powerup 0: Shield Break
- Powerup 1: Turbo Boost
- Powerup 2: Wall Spike
- Powerup 3: Missile
- Powerup 4: Wall Extender
- Powerup 5: Turbo Curse
- Powerup 6: Grab
- Powerup 7: Wall Reset
- Powerup 8: Force Use
Lives
Lives are only used in the Single Player Light Cycle Circuits.
- LivesIconPos (2D Point)
- The upper-right origin position of the lives icon.
- LivesTextOffset (Integer)
- The offset of the lives text to the left of the lives icon.
- LivesTextHeight (Integer)
- The text height of the lives text.
Roster
This is the list showing the remaining competitors in the current race.
- RosterPosition (2D Point) (KAMod)
- The upper-left origin position of the entire roster list.
- RosterTextHeight (Integer)
- The text height of the names on the roster.
- RosterTextOffset (Integer)
- The offset of the roster names to the left of their respective icons.
- RosterLineOffset (Integer)
- The vertical spacing between roster lines.
- RosterEnableIconScaling (Boolean Integer)
- Decides whether roster icon scaling is enabled or not.
- RosterIconBaseSizeIfScalingIsEnabled (Dimension) (KAMod)
- The defined minimum width and height of a roster icon. Only used if
RosterEnableIconScaling
is set to 1.
- The defined minimum width and height of a roster icon. Only used if
Intro
Currently unidentified, but very likely used.
- IntroMasterPos (2D Point)
- The upper-middle origin position of the intro frame.
- IntroVFrameBorder (Integer),
- IntroHFrameBorder (Integer)
- The vertical and horizontal distance between the intro text and frame.
- IntroTitleHeight (Integer),
- IntroEntryHeight (Integer)
- The text height of the title and entry text.
- IntroTitleSpace (Integer)
- The vertical space between the title and the top of the first entry.
- IntroEntrySpace (Integer)
- The vertical spacing between entries.
- IntroHeaderOffset (Integer) (KAMod),
- IntroValueOffset (Integer) (KAMod)
- The offset of the header and value texts from the center of the screen.
- IntroValueTime (Float)
- The amount of time, in seconds, to show the intro screen for.
- IntroFrameBackground (Path String)
- The texture used for the intro frame background. Potentially unused.
- IntroTexturedFrameName (String)
- The name of the TexturedFrame object used for the intro frame. Potentially unused.
- For more details, see the Textured Frames Layout section.
Speedometer
This is the speedometer that shows the current speed of the Light Cycle.
- SpeedometerPos (2D Point) (KAMod)
- The upper-left origin position of the speedometer.
- SpeedometerFontNum (Integer),
- SpeedometerTextHeight (Integer)
- The font ID and text height of the speedometer text.
- SpeedometerVBorder (Integer) (KAMod),
- SpeedomederHBorder (Integer) (KAMod)
- The vertical and horizontal distance between the speedometer text and frame border. Text is horizontally offset from the right side.
- SpeedometerFrameWidth (Integer) (KAMod),
- SpeedometerFrameHeight (Integer) (KAMod)
- The total width and height of the speedometer frame.
- SpeedometerFrameBackground (Path String)
- The texture used for the speedometer frame background. Potentially unused.
- SpeedometerTexturedFrameName (String)
- The name of the TexturedFrame object used for the speedometer frame. Potentially unused.
- For more details, see the Textured Frames Layout section.
Distance Icon
Currently unidentified HUD element, potentially unused.
- DistanceIconPos (2D Point) (KAMod)
- DistanceIconBlinkSpeed (Float)
- DistanceIconAlpha (Float)
- DistanceIconFadeOutSpeed (Float)
"Useless Stuff"
Monolith claims this entire section is a bunch of "useless stuff". It's gonna stay here, without documentation, until it is confirmed that any of them are used.
Player Version Number
The VersionNumber
definition manages the HUD element displaying the player's name and current version number. For the build note count beneath it, see the Build Note Counter section following this one.
When the player picks up a Build Note, the game will perform either a major or a minor upgrade. A major upgrade occurs when the first of the three numbers increments. A minor upgrade occurs when the second or the third numbers increment.
- Position (2D Point)
- The upper-left origin position of the version number.
- Font (Integer),
- FontSize (Integer)
- The font ID and pixel height of the version number.
- BaseColor (Vector)
- The color of the version number text.
- MinorUpgradeColor (Vector),
- MajorUpgradeColor (Vector)
- The colors that the text will flash to when the player's version number is upgraded.
- MinorUpgradeLoops (Integer),
- MajorUpgradeLoops (Integer)
- The amount of times the text will flash to the respective upgrade color.
- MinorUpgradeLoopLength (Float),
- MajorUpgradeLoopLength (Float)
- The amount of time, in seconds, that the text will take to perform a single flash to the respective upgrade color.
Build Note Counter
The BuildNoteCount
definition manages the HUD element displaying the amount of build notes that the player can get on the current map.
- AnchorPos (2D Point)
- The upper-left origin position of the build note counter.
- IconTexture (Path String)
- The texture used for the build note icon to the left of the counter.
- TextSize (Integer),
- BaseColor (Vector)
- The pixel height and color of the build note counter text.
I/O Node HUD Elements
The IONodeCam
definition manages the HUD elements used for I/O Node calls. There are two main pieces to it: Piece 1 is for the frame and the ring decoration to its sides, and Piece 2 is for the static inside the frame and (assumedly) the glow of the decoration.
Understanding how these I/O Nodes work ingame is a bit difficult, so it's unlikely the definitions provided here will explain it well or are even fully accurate, especially in the case of Piece2
.
- Center (2D Point)
- This defines the "center of the screen" that the HUD Pieces will use for reference.
- Piece1Tex (Path String)
- The texture to use for the first I/O Node HUD Piece.
- Piece1MinAlpha (Float),
- Piece1MaxAlpha (Float)
- The highest and lowest opacity value that
Piece1
will fluctuate between.
- The highest and lowest opacity value that
- Piece1Period (Float)
- The amount of time, in seconds, that
Piece1
will take to perform a single fluctuation.
- The amount of time, in seconds, that
- Piece1Radius (Float) (KAMod)
- The width of the
Piece1Tex
, which makes up half of the frame. The game will use this same width value when mirroring the texture.
- The width of the
- Piece2Tex (Path String)
- The texture to use for the second I/O Node HUD Piece.
- Piece2MinRadius (Float) (KAMod),
- Piece2MaxRadius (Float) (KAMod)
- The highest and lowest width value that
Piece2
will fluctuate between when performing a flicker. The game will use these same width values when mirroring the texture.
- The highest and lowest width value that
- Piece2MinInterval (Float),
- Piece2MaxInterval (Float)
- The highest and lowest time, in seconds, that
Piece2
will wait between flickers.
- The highest and lowest time, in seconds, that
- Piece2MinFlickers (Integer),
- Piece2MaxFlicker (Integer)
- The highest and lowest amount of times
Piece2
will flicker between the minimum and maximum radius.
- The highest and lowest amount of times
- Piece2FlickerTime (Float)
- The amount of time, in seconds, that
Piece2
will take to perform a single flicker.
- The amount of time, in seconds, that
Single String
The SingleString
definition prints a persistent announcement to the screen in multiplayer. This is the big yellow text that usually shows up between rounds or between games.
- Position (2D Point) (KAMod),
- DiscMPPosition (2D Point) (KAMod)
- The upper-left origin position of the text. For Disc Arena and Disc Tournament modes, use
DiscMPPosition
. For all other modes, usePosition
.
- The upper-left origin position of the text. For Disc Arena and Disc Tournament modes, use
- Font (Integer),
- FontSize (Integer),
- FontColor (Vector)
- The font ID, pixel height, and color of the text.
Utility Subroutine Chooser
Definition name: SubroutineChooser
This is a currently unidentified value set that, based on its name, is probably a functionality integrated into the Subroutines menu. Documentation is temporarily unavailable while further clarification is requested.
Objective Progress Layout
The ProgressBox
definition manages the pop-up box accessed by pressing and holding the Tab key. This box displays all of the objectives the player has received, whether completed or otherwise, on the current map. It appears toward the bottom-left corner of the screen.
Note that this does not apply to chooser boxes that appear in the same place (e.g. the prompts to skip tutorials).
- ProgressRect (Rectangle)
- The space allocated to display the objective progress window.
- HUDOffset (Integer)
- Currently unidentified function, potentially unused.
- TitleFont (Integer),
- TitleFontSize (Integer) (KAMod),
- TitleAlpha (Float),
- TitleColor (Vector)
- The font ID, pixel height, opacity, and color of both the "Objective" header and the "Tasks" subheader.
- ObjectiveFont (Integer),
- ObjectiveFontSize (Integer) (KAMod)
- The font ID and pixel height of all objective text.
- ObjectiveAlpha (Float),
- ObjectiveColor (Vector)
- The opacity and color of incomplete objective text.
- CompletedObjectiveAlpha (Float),
- CompletedObjectiveColor (Vector)
- The opacity and color of complete objective text.
- SecondaryObjectiveAlpha (Float),
- SecondaryObjectiveColor (Vector)
- The opacity and color of secondary objective text.
- ObjectiveSpacing (Integer)
- The height of the text spacing between objectives, if multiple are displayed.
UV Box Values
There's a lotta stuff to look at here. For now just know it's responsible for holding all the stuff in the boxes exactly where they are. Awaiting further research.
- UVBoxLeftInset
- UVBoxLeftFullInset
- UVBoxLeftBigInset
- UVBoxLeftBigFullInset
- UVSeparator
- UVProgressEmpty
- UVProgressFull
- UVFrameTopLeft
- UVFrameTop
- UVFrameTopRight
- UVFrameLeft
- UVFrameCenter
- UVFrameRight
- UVFrameBottomLeft
- UVFrameBottom
- UVFrameBottomRight
- UVBoxTopLeft
- UVBoxTop
- UVBoxTopRight
- UVBoxLeft
- UVBoxCenter
- UVBoxRight
- UVBoxBottomLeft
- UVBoxBottom
- UVBoxBottomRight
Procedural Indicator
The ProceduralHUD
definition is responsible for listing subroutines that are active underneath the currently equipped weapon, along the right side of the screen. Holding the Tab key also shows the names of those subroutines.
- FrameTex (Path String)
- The texture used for the frame around each active subroutine.
- TopBound (Integer)
- Currently unidentified function, potentially unused.
- Font (Integer),
- FontSize (Integer),
- Alpha (Float),
- Color (Vector)
- The font ID, pixel height, opacity, and color of the text that names each active subroutine when the player holds the Tab key.
- Spacing (Integer)
- The amount of vertical space between each procedural.
- IconWidth (Integer),
- IconHeight (Integer)
- The width and height of each procedural.
- IconOffset (Integer)
- The offset of the procedural indicator from the right side of the screen.
Progress Bar Settings
This appears to be responsible for the progress bar that is shown when a subroutine is being identified/disinfected, or when a memory block is being defragged. Awaiting further testing.
- EmptyBarTex (Path String),
- FullBarTex (Path String)
- The textures to display for the empty and full segments of the progress bar, respectively.
- PBarXOffset (Integer),
- PBarYOffset (Integer)
- The horizontal and vertical offsets of the progress bar. PBarWidth (Integer), PBarHeight (Integer)
- The width and height of the progress bar.
- StringXOffset (Integer),
- StringYOffset (Integer)
- The horizontal and vertical offsets of unidentified text.
Textured Frames Layout
The TexturedFrame
defitions can be used by practically any HUD element in order to draw a nicely textured box or frame on screen. The game obviously uses these to some degree, just not here. Not in this file, anyway. Not entirely. Awaiting further testing.
- Name (String),
- Texture (Path String)
- The name and used texture of the textured frame.
- Hollow (Boolean Integer)
- Untested. Assumed:
- Tells the game if the textured frame is hollow.
- Inscribe (Integer),
- Margins (Integer)
- Untested.
UV Box Values
- UVTopLeft
- UVTop
- UVTopRight
- UVLeft
- UVCenter
- UVRight
- UVBottomLeft
- UVBottom
- UVBottomRight
Menu Layout
The Menu
definition declares default values that are shared by all in-game menus, and cannot be overridden by specific menus.
This definition - which was from Monolith - is pretty deceptive. Most of the values here are for the pause menu, and the ones that aren't confirmed to be for the pause menu are unconfirmed to be even used at all. Sure, they're never overridden by anything else. But that could just be because nothing else uses them in the first place.
- Position (Integer)
- This is less of a position and more of an offset, since it's an integer instead of a 2D point. It's the offset of the body of the pause menu from the left side of the screen - but scalable, unlike most offsets.
- Size (Dimension) (KAMod)
- The defined width and height of the body of the pause menu.
- Frame (Path String),
- FrameTip (Path String)
- The textures used to display the body of the pause menu. FrameTip is used to show the fading out at the bottom of the menu.
- BarPosition (2D Point)
- The upper-left origin position of the bar at the top of the pause menu.
- BarSize (Dimension)
- The defined width and height of the bar at the top of the pause menu.
- BarFont (Integer),
- BarFontSize (Integer)
- The font ID and text height of the tab buttons on the pause menu bar.
- BarSpacing (Integer)
- The horizontal line spacing between each of the buttons on the pause menu bar. Also applies to the spacing of the first item from the left side of the bar.
- BarSelectColor (Vector)
- The text color of the buttons on the pause menu bar, when highlighted.
- Bar (Path String),
- BarTip (Path String)
- The textures used to display the bar at the top of the pause menu. BarTip is used to show the fading out to the bar's right side.
- SlideInTime (Float),
- SlideOutTime (Float)
- The amount of time, in seconds, that it takes to display the entry and exit sliding animations for the pause menu.
- SlideInSound (Path String),
- SlideOutSound (Path String)
- The sounds used for opening and closing the pause menu.
- UpArrow (Path String),
- UpArrowH (Path String)
- The textures used for the menu's up arrow, when not highighted and highlighted respectively.
- DownArrow (Path String),
- DownArrowH (Path String)
- The textures used for the menu's down arrow, when not highlighted and highlighted respectively.
- SelectedColor (Vector),
- NonSelectedColor (Vector),
- DisabledColor (Vector)
- The text color for not hightlighted, highlighted, and disabled text respectively.
Generic Menu Layout
The GenericMenu
definition declares default values that are shared by all in-game menus, but can be overridden by specific menus.
Same deal as the previous definition; pretty much only applies to the pause menu, and whatever values aren't might not be used at all. Further clarification may be needed.
- Size (Dimension) (KAMod)
- Currently unidentified function, but definitely used.
- FontSize (Integer) (KAMod)
- The text height of the buttons on the body of the pause menu.
- TitleSize (Integer) (KAMod)
- The text height of any title text on the pause menu. Potentially unused.
- Indent (Dimension)
- The indent, both horizontal and vertical, of the buttons on the body of the pause menu.
- SelectedColor (Vector),
- NonSelectedColor (Vector),
- DisabledColor (Vector)
- The text color of the buttons on the body of the pause menu, when highlighted, not highlighted, and disabled, respectively.
- The disabled color is unused by proxy, since there aren't any pause menu buttons that are ever disabled.
Custom Menu Layouts
The custom Menu definitions declare values for specific menus that may override values set under GenericMenu
.
MenuPlayer
Currently unidentified.
- Size (Dimension)
- NameWidth (Integer)
- LevelWidth (Integer)
- PopupSize (Dimension)
- PopupFrame (Path String)
Dialog Box Layout
The DialogBox
definition is currently unidentified. Because all spoken lines in TRON 2.0 are provided through subtitles by default, it's not confirmed that these are even used. Awaiting confirmation.
Message Queues
The MessageQueue
definitions specify data for various message queues in the game.
Incomplete documentation: These are for chat windows and other text areas that require message history to be stored, I think. Chat tests will be performed at a later date.
Mission Text Layout
The MissionText
definition sets the values that manage the "system log"-esque typed text in the upper-left quadrant of the screen.
- Font (Integer),
- FontSize (Integer) (KAMod),
- TextColor (Vector)
- The font ID, text height, and default color of the mission text.
- NumLines (Integer)
- The amount of text lines that can be typed out before playing the
ScrollSound
, since mission text doesn't actually scroll.
- The amount of text lines that can be typed out before playing the
- LetterDelay (Float)
- The time, in seconds, to wait between each typed letter of the mission text.
- LineScrollTime (Float)
- The time, in seconds, to wait between each typed line of the mission text.
- FadeDelay (Float)
- The time, in seconds, to wait before fading out completed mission text scripts.
- FadeTime (Float)
- The time, in seconds, reserved to fade out the mission text.
- Pos (2D Point)
- The upper-left origin position of the mission text.
- TypeSound (Path String)
- The sound effect played while a line is being typed.
- ScrollSound (Path String)
- The sound effect played when a text line has finished being typed.
Subtitle Layout
The Subtitle
definition sets values pertaining to the subtitles in the game. (Surprising, huh?)
- Font (Integer),
- FontSize (Integer)
- The font ID and text height of the subtitle text.
- NumLines (Integer)
- The amount of text lines that the screen can display at once.
- LineScrollTime (Float)
- The amount of time, in seconds, taken to scroll a single line, for the longer subtitles that require it.
- Width (Integer),
- Pos (2D Point)
- The width and upper-left origin position of the subtitle text displayed in cutscenes or other cinematics.
- FullScreenWidth (Integer),
- FullScreenPos (2D Point)
- The width and upper-left origin position of the subtitle text displayed during gameplay.
Scores Layout
The Scores
definitions assign values pertaining to score displays in Multiplayer. By default, the window is accessed by holding the Tab key.
Note that although all of the below definition groups use the same values, the Scores definition is not considered a list of defaults. It is not known what the basic Scores definition group is even for (yet).
Documentation of this section is on hold until I can drag another poor soul to sit in a multiplayer server and play disc games so I can actually get into those lobbies and see the score windows...
Screen Overlays
The Overlay
definition assigns the set of overlays that the game can reference at any time. In the case of TRON 2.0, this only concerns the scopes for the LOL and Triangulate subroutines.
Documentation is awaiting further testing.
- Scale# (Float)
- Sprite# (Path String)
- Model# (Path String)
- Skin# (Path String)
- Anim# (String)
- Renderstyle# (Path String)
- Alpha# (Float)
Menu Piece Layout
The MenuPiece
definitions assign values that create, as the name implies, menu pieces, which (assumedly) are neat little packages of textures/models that make animated menu elements easier to implement.
It's likely most of these have references in the source code, so it is strongly not recommended to change any existing menu pieces.
- Name (String)
- The programmer-friendly name for the menu piece.
- Model (Path String)
- The model used for the menu piece. A menu piece cannot have multiple model definitions.
- Skin# (Path String)
- The skin used for the menu piece. A menu piece can have multiple skin definitions.
- RenderStyle# (Path String)
- The render style used for the menu piece. A menu piece can have multiple render style definitions.
- Pos (3D Point)
- The origin position of the menu piece.
- Monolith says this value must not be used if the menu piece has a
ParentPiece
defined, but most of the menu pieces below seem to ignore this supposed rule, so...
- IntroAnim (String)
- The name of the intro animation that the menu piece will use.
- If there is an intro animation, the game attempts to play that animation, and then play the loop animation. If a
LoopAnim
is specified, the game will attempt to play that specific animation rather than the animation called "loop".
- LoopAnim (String)
- The name of the loop animation that the menu piece will use. If a menu piece does not have this value, it defaults to using the LoopAnim named "loop".
- Fun fact: Monolith's original documentation states that if you want to play a specific loop animation, just declare it in this field, and quote, "all sorts of happiness will come to you".
- ParentPiece (String)
- The name of the parent piece that the menu piece will attach itself to. Leave out this value if none exists.
- ParentSocket (String)
- The name of the parent socket that the menu piece will attach itself to. Leave out this value if none exists.
- Layer (Integer)
- The layer on which this model exists, for rendering order purposes (some games also refer to this as the "Z Layer"). Elements with lower numbers are rendered first, and behind whichever layers come after, regardless of their actual position in the menu.
Screen Character Layout
The Character
element has one purpose: to display a spinning view of the currently equipped Player & Light Cycle model.
In TRON 2.0, because these elements are used exclusively in player customization Screens, they need to be able to dynamically change to show whatever model or skin the player selects. They also need to be spinning. As a result, in both value sets, pretty much all of these values (except for Name
and Pos
) are just placeholders that the game will override internally when they are loaded.
- Name (String)
- The name of the Character element.
- Model (Path String)
- The model to use for the Character element. Must be in .LTB format.
- Skin# (Path String)
- The texture to use for the skin of the Character element. Must be in .DTX format.
- Pos (3D Point)
- The origin position of the Character element.
- Scale (Float)
- The initial scale of the Character element.
- Rotation (Float)
- The initial rotation of the Character element, on the X axis.
Screen Lights Layout
The Light
definitions assign values that create light objects used in screens. Because pretty much all screens are technically rendered as 3D spaces, any 3D models that render inside that screen will need a light in order to display as they normally would ingame. The only major exceptions are loading screens, which consist entirely of 2D elements.
Pretty much all screens in TRON 2.0 use the first definition Light0 as its light. Light1 is used exclusively by the Player Setup screen, and Light2 is completely unused.
- Name (String)
- The programmer-friendly name for the light object.
- Pos (3D Point)
- The origin position for the light object.
- Color (Vector)
- The color of the light itself.
- Radius (Float)
- The effective distance of the light from its origin point.
Screen FX Layout
The FX
definitions assign values that create effect objects used in screens. It's not known where the effects themselves originate when referenced here.
Most of these FX are used in menu screen transitions, in the Screen Transitions section of this file.
- Name (String)
- The programmer-friendly name for the FX object.
- FXName (String)
- The name of the FX to display.
- Pos (3D Point)
- The origin position of the FX object.
- Loop (Boolean Integer)
- Specifies whether or not the FX will loop when displayed.
0
: The FX will not loop.1
: The FX will loop indefinitely.
- Specifies whether or not the FX will loop when displayed.
Decision Window Layout
The DecisionWindow
definition assigns values for the window showing gameplay choices to the player. This is the window that appears at the lower-left corner of the screen to display things like Archive Bin items.
- Pos (2D Point)
- The currently unidentified origin position of the window.
- Width (Integer)
- The total width of the window. Font (Integer), FontSize (Integer), TextColor (Vector)
- The font ID, text height, and color of the window text.
- TextOffset (2D Point)
- The offset of the text from the left side of the window.
- Frame (Path String)
- The texture to use for the window frame.
- Hollow (Integer),
- Inscribe (Integer)
- Currently unidentified functions, potentially unused.
- NumColumns (Integer)
- The number of columns to use for the window.
- RemoveItems (Boolean Integer)
- Determines whether a row of the window is removed or not when an option is selected.
0
: All available selections will remain persistent.1
: Selected rows will be removed.
- Determines whether a row of the window is removed or not when an option is selected.
- RemoveWindow (Boolean Integer)
- Determines whether the window is closed or not when an optionis selected. A window will still be closed if all rows are removed.
0
: The window will remain open after a selection is made.1
: The window will be closed after a selection is made.
- Determines whether the window is closed or not when an optionis selected. A window will still be closed if all rows are removed.
Screen Transitions
The Transition
definitions assign values that manage transitions between menu screens. All transitions take precedence over default menu screen FX values, so if a screen has a transition defined here, any FX values it has are ignored in favor of these.
When a transition occurs, the IntroFX
/ShortIntroFX
is played first, followed by the LoopFX
. If there is no IntroFX
/ShortIntroFX
, then the LoopFX
will begin immediately.
Although ShortIntroFX
values are considered alternatives to IntroFX
for screens that are viewed more frequently, it appears that in TRON 2.0 this is entirely redundant, since pretty much every transition that has both of these values usually make them run the exact same FX.
All of these values are Strings that need the names of the screens & FX to use. Both must have been defined in their respective sections of this file beforehand - the Screen Layout section for screens, and the Screen FX Layout section for FX.
Any duplicate Transition definitions are ignored, in favor of using the FIRST defined one and not the last.
- TransitionFrom (String),
- TransitionTo (String)
- The name of the screen layout either to transition from or to. Every transition must define at least one of these two values. Transitions with both of these values defined take the highest priority for the transition between those two menu screens.
- Transitions that have only a "From" value become the default transition when leaving that menu screen.
- Transitions that have only a "To" value become the default transition when entering that menu screen, basically replacing any
IntroFX
that the menu screen may have had prior.
- IntroFX# (String),
- ShortIntroFX# (String),
- LoopFX# (String)
- The name of each FX to use for its respective function, as detailed above.
Miscellaneous Layout
The Miscellaneous
definition sets values for interface components either not covered under other definitions, or couldn't be properly implemented in the definition they belong to.
Because it's difficult to pinpoint where each of these individual values are, documentation here will be completed during a separate round of testing. Until then, it cannot be confirmed whether or not any of them are used or not.