UI File Modification
UI files control the layout of a specific element in the game - including level backgrounds.
Every object should have it's type and an optional label, with 3 spaces as indentation:
A uiFrame is a container, usually used for dialog boxes. uiFrames can be adjusted with a uiFlowLayout.
A uiScrollFrame is just like a uiFrame. However, overflow content is clipped and scrollbars appear.
A uiContainer is usually used for adding props, or as an anchor for OFX files.
A uiInputFrame is a container usually used for buttons or controls to change it's contents or icon depending on the active input device, such as a mouse or a controller.
A uiDialog is the root of either a dialog box, or a dialog screen.
⚠️ Luxor Evolved-specific.
A uiSpectrumFrame is a container for uiSpectrumChannels. However, it is not a direct replacement for a uiFrame. A uiSpectrumFrame still needs to be wrapped in a uiFrame.
A uiFlowLayout controls the layout of a uiFrame. This can be used to create grids, for example.
<Path>The OFX file to use.
An objEffectMap applies an OFX file to an object. It takes the object label as the event.
Effect = ~data/maps/town/idle.ofx
Valid labels are:
Announce_PU_<powerup>- LXE specific,
<powerup>must be a powerup ID
Milestone_Combo_<n>- LXE specific,
<n>must be of:
A uiBackground defines the background of an object. It can be a fixed size or a 9-slice background.
A uiTextWidget inserts text into a container.
A uiProgressBar represents a progress bar, usually used in the level HUD to indicate a rough amount of spheres left to destroy, or in the splash screen to indicate loading progress.
A uiSprite adds a sprite to a container.