Skip to content

2. Menu Configuration

QuickLava edited this page Feb 9, 2024 · 13 revisions

Menu Configuration

Menu configuration is performed through changes to a pair of files: one called "EX_Config.xml" and another called "Code_Menu_Options.xml".

"EX_Config.xml" (or simply "Config.xml", for non-EX Project+ builds)

This can be thought of as the primary configuration file for the menu. In addition to letting you specify the menu's title and header comments, it's used for configuring the character and roster switcher lists, defining menu themes, as well as enabling/disabling different optional menu features. This file contains several "blocks", each of which deals with a different set of things. Information regarding each of these blocks can be found at the following links:

  • The "menuProperties" Block: Link
  • The "menuLineColors" Block: Link
  • The "characterList" Block: Link
  • The "codeSettings" Block: Link

"Code_Menu_Options.xml"

This is a sort of secondary configuration file. It serves first as an enumeration of all the interactible elements found within the generated menu, and secondly as an interface through which to minorly tweak the settings of individual lines. Information on regarding use of this file can be found here:

  • "Code_Menu_Options.xml": Link

Migrating to the XML Config System

As a result of the move to the new menu configuration system, builds that previously made use of the "EX_Characters.txt", "EX_Rosters.txt", and "EX_Themes.xml" files will need to migrate their options to the new unified config document. To do this, for any of those files, simply simply copy any declarations from those files into the appropriate node of the new config document. After doing this, the next time you run the builder, it'll automatically convert any plain-text entries over to the new XML-style format; you do not need to manually convert your entries!

For instance, if I needed to migrate my declarations from an "EX_Characters.txt" like this one:

All I'd do is paste my declarations into the Character List node like so:

And run the builder! It'll detect those declarations, and auto-promote each entry to the new format, like so:

Other Notes

Optional Netplay Config XML

In addition to the normal configuration XML file, the Netplay version of the menu builder actually supports reading from a secondary configuration file specifically for Netplay, if you'd like to use one. To do so, make a copy of the config document and prefix its name with "Net-" (eg. "EX_Config.xml" becomes "Net-EX_Config.xml"), and the Netplay menu builder will build using the settings from that file instead. Useful if there's some need to differentiate what's in the Offline and Netplay versions of the generated menus!

XML Escape Characters

In editing these configuration files, you may have need to specify strings which include characters not normally allowed in XML string fields, such as quotation marks ("), apostrophes ('), ampersands (&), and angle brackets (< and >). In order to use these, you must use proper XML Escape Strings. The sequences for all affected characters are as follows:

Original Character Escape Character Sequence
Quotation Mark (") &quot;
Apostrophe (') &apos;
Less Than (<) &lt;
Greater Than (>) &gt;
Ampersand (&) &amp;

So, for example, if you wanted give the value "Example" (with quotation marks) in a string field you'd format it as follows:

"&quot;Example&quot;"

Failing to do so will likely prevent the Menu Builder from properly parsing your config file, so take care to handle these correctly!

Clone this wiki locally