Table of Contents

Namespace RichHudFramework.UI

Classes

BindGroupInitializer

A collection designed to simplify the definition and registration of groups of key binds.

Supports mixed control types (Strings, MyKeys, RichHudControls, JoystickButtons) via ControlHandle.

BindInputElement

Attaches custom control-bind (key/combo) event handling to a UI element. Allows arbitrary IBind definitions to trigger NewPressed/PressedAndHeld/Released events on a specific UI node, optionally requiring input focus.

BorderBox

A UI element that renders a textured frame. Supports coloring, transparency, texture alignment/scaling, and masking.

BorderedButton

LabelBoxButton styled to closely match the appearance of buttons in the SE terminal.

Formatting temporarily changes when it gains input focus.

BorderedCheckBox

Bordered checkbox designed to mimic the appearance of the checkbox used in the SE terminal.

Does not have a label. Use NamedCheckBox for a version with a label.

Formatting temporarily changes when it gains input focus.

Button

Clickable button with a textured background.

No styling by default; it's just a clickable TexturedBox with highlighting.

CamSpaceNode

HudSpace node that builds its Plane-to-World matrix directly from the player camera.

In its default state this exactly replicates the vanilla HighDpiRoot transform (screen-space UI). By modifying its properties you can create rotated, offset, or world-space (non-screen-space) HUDs that still follow the camera.

ChainSelectionBoxBase<TContainer, TElement>

Abstract selection box that uses a HudChain<TElementContainer, TElement> as its backing list. Intended for fixed-size lists that do not require scrolling.

ChainSelectionBox<TContainer, TElement, TValue>

A non-scrolling list of arbitrary selectable UI elements. Specialization of SelectionBox using HudChain

CmdGroupInitializer

A helper container used to define a list of commands and their callbacks before registering them to a ICommandGroup.

CmdManager

Singleton Session Component responsible for managing chat command registration, parsing incoming chat messages, and executing matching commands.

ColorPickerHSV

A named color picker using sliders designed to mimic the appearance of the Space Engineers terminal color picker.

Operating in HSV mode (Hue, Saturation, Value). Alpha (transparency) is not supported.

ColorPickerRGB

A named color picker component utilizing RGB sliders, styled to mimic the Space Engineers terminal interface.

Operating in RGB mode. Alpha (transparency) is not supported.

CustomSpaceNode

HudSpace node that uses a completely user-supplied world matrix each frame. If no delegate is assigned, the node simply inherits its parent's Plane-to-World matrix.

Ideal for attaching UI to moving cockpits, turret bases, custom billboards, etc.

DoubleLabelBox

A text box with a text field on the left and another on the right.

Dropdown<TValue>

Collapsable list box. Designed to mimic the appearance of the dropdown in the SE terminal.

Alias of Dropdown<TContainer, TElement, TValue> using ListBoxEntry<TValue> and Label as the container and element, respectively.

Dropdown<TElement, TValue>

Collapsable list box. Designed to mimic the appearance of the dropdown in the SE terminal.

Alias of Dropdown<TContainer, TElement, TValue> using ListBoxEntry<TElement, TValue> as the container.

Dropdown<TContainer, TElement, TValue>

Generic collapsable list box. Allows use of custom entry element types. Designed to mimic the appearance of the dropdown in the SE terminal.

EmptyHudElement

A bare HUD element that renders nothing, does no input handling.

Useful for organizing or grouping UI elements in an area using DimAlignment and ParentAlignment

EntryData<T>

Represents a single entry in a ListBox or Dropdown.

HudChain

Organizes child elements into a linear stack, either horizontally or vertically.

Alias of HudChain<TElementContainer, TElement>.

HudChain<TElementContainer>

Organizes child elements into a linear stack, either horizontally or vertically.

Alias of HudChain<TElementContainer, TElement>.

HudChain<TElementContainer, TElement>

Organizes child elements into a linear stack, either horizontally or vertically. Conceptually similar to a CSS Flexbox or a UI StackPanel.

HudCollection

Generic collection of HUD elements, each wrapped in a decorator container. Elements inside containers are parented directly to this collection (not to their containers). Supports full IList-like manipulation while ensuring proper registration/unregistration with the HUD tree.

Alias for HudCollection<TElementContainer, TElement> using HudElementContainer as the wrapper and HudElementBase as the element type.

HudCollection<TElementContainer>

Generic collection of HUD elements, each wrapped in a decorator container. Elements inside containers are parented directly to this collection (not to their containers). Supports full IList-like manipulation while ensuring proper registration/unregistration with the HUD tree.

Alias for HudCollection<TElementContainer, TElement> where the element type is HudElementBase.

HudCollection<TElementContainer, TElement>

Generic collection of HUD elements, each wrapped in a decorator container. Elements inside containers are parented directly to this collection (not to their containers). Supports full IList-like manipulation while ensuring proper registration/unregistration with the HUD tree.

HudElementBase

Abstract base for all UI elements with definite size and position. Extends HudParentBase and HudNodeBase.

HudElementContainer

Standard container class for HudChain<TElementContainer, TElement> members using the base HudElementBase.

HudElementContainer<TElement>

Standard container class for HudChain<TElementContainer, TElement> members.

HudElementTuple<TData>

Container class used to associate a base HudElementBase with an arbitrary data object.

HudElementTuple<TElement, TData>

Container class used to associate a HudChain entry with an arbitrary data object.

HudNodeBase

Abstract base for hud elements that can be parented to other elements.

HudNodeContainer

Standard container class for HudCollection<TElementContainer, TElement> members using the base HudNodeBase.

HudNodeContainer<TElement>

Base container class for generic HudCollection<TElementContainer, TElement> members.

Can be extended to associate data with arbitrary HUD nodes.

HudParentBase

Abstract base for HUD elements to which other elements are parented. Types deriving from this class cannot be parented to other elements; only types of HudNodeBase can be parented.

HudSpaceNodeBase

Abstract base for all HUD nodes that define their own custom coordinate space (replacing the default screen-space Pixel-to-World transform with an arbitrary world matrix).

Provides cursor projection, facing/in-front detection, and origin retrieval for derived classes.

InputFocusHandler

Default implementation of IFocusHandler. Handles acquiring and releasing global input focus through HudMain and raises the appropriate events.

KeyComboInit

Helper class for defining a specific combination of controls (up to 3).

Used with BindGroupInitializer to specify bind combos or aliases.

Label

A HUD element dedicated to rendering formatted RichText. This element acts as a wrapper for the underlying TextBoard.

LabelBox

A composite UI element that renders text over a textured background.

LabelBoxBase

Abstract base class for UI elements that combine a text label with a textured background.

LabelBoxButton

Clickable button with text on top of a textured background with highlighting.

LabelButton

Clickable text element. Text only, no background.

No styling by default; it's just a clickable Label with no highlighting.

LabelElementBase

Abstract base class for UI elements responsible for rendering text.

ListBoxEntry<TValue>

A List Box entry that associates a Label with an object of type TValue.

ListBoxEntry<TElement, TValue>

A concrete implementation of a List Box entry, pairing a text element with a data value.

ListBox<TValue>

Scrollable list of text elements. Each list entry is associated with a TValue

Alias of ListBox<TContainer, TElement, TValue> using ListBoxEntry<TValue> and Label as the container and element, respectively.

ListBox<TContainer, TElement, TValue>

Generic scrollable list of text elements. Allows use of custom entry element types. Each list entry is associated with a TValue

ListInputElement<TElementContainer, TElement>

Specialized MouseInputElement that manages selection, mouse highlighting, and keyboard navigation for scrollable lists (vertical or horizontal). Supports both mouse and keyboard-driven selection.

MouseInputElement

Core mouse interaction component for clickable UI elements. Handles cursor enter/exit, left/right clicks, tooltip registration, and automatic focus acquisition on click.

NamedCheckBox

Named checkbox designed to mimic the appearance of checkboxes used in the SE terminal.

Adds a label to BorderedCheckBox.

Formatting temporarily changes when it gains input focus.

NamedOnOffButton

A labeled pair of horizontally aligned on and off bordered buttons used to indicate a boolean value. Made to resemble on/off toggle used in the SE terminal.

Adds a label to OnOffButton.

Formatting temporarily changes when it gains input focus.

NamedSliderBox

A composite control containing a horizontal slider box, a name label, and a value label.

Note: The value label is not updated automatically; it must be updated manually via the ValueChanged event.

OnOffButton

A pair of horizontally aligned on and off bordered buttons used to indicate a boolean value. Styled to resemble on/off button used in the SE terminal.

Does not have a label. Use NamedOnOffButton for a version with a label.

Formatting temporarily changes when it gains input focus.

RadialSelectionBox

Non-generic radial selection box using the default ScrollBoxEntry container with plain HudElementBase elements.

Alias of RadialSelectionBox<TContainer, TElement> using ScrollBoxEntry and HudElementBase as the container and element, respectively.

RadialSelectionBox<TContainer>

Generic radial selection box allowing custom containers while keeping HudElementBase as the element type.

Alias of RadialSelectionBox<TContainer, TElement> using HudElementBase as the element.

RadialSelectionBox<TContainer, TElement>

Generic radial selection wheel (pie-menu style). Displays a collection of entries arranged in a circular pattern around a central point. Supports both cursor-based and gesture-based (drag-to-select) input methods.

RichText

Reusable rich text builder designed for efficient construction and reuse of formatted text. Internally minimises StringBuilder allocations by merging consecutive text segments that share identical formatting.

ScaledSpaceNode

A specialized HUD space node that rescales the X/Y (Right/Up) plane of its parent's plane-to-world transformation matrix, enlarging or shrinking all child UI elements attached to it uniformly.

ScrollBar

A clickable scrollbar designed to approximate the appearance of standard Space Engineers scrollbars.

ScrollBox

A scrollable container for HUD elements, based on HudChain<TElementContainer, TElement>. It clips content that exceeds its bounds and provides a scrollbar for navigation.

Alias of ScrollBox<TElementContainer, TElement> with ScrollBoxEntry<TElement> as the container and HudElementBase as the element.

ScrollBoxEntry

Base container class for ScrollBox members using HudElementBase.

ScrollBoxEntryTuple<TData>

Container class associating a base ScrollBox element with an arbitrary object of type TData.

ScrollBoxEntryTuple<TElement, TData>

Container class associating a ScrollBox element with an arbitrary object of type TData.

ScrollBoxEntry<TElement>

Base container class for ScrollBox members.

Adds an Enabled state to the standard HudElementContainer<TElement>.

ScrollBox<TElementContainer>

A scrollable container for HUD elements, based on HudChain<TElementContainer, TElement>. It clips content that exceeds its bounds and provides a scrollbar for navigation.

Alias of ScrollBox<TElementContainer, TElement> with HudElementBase as the element type.

ScrollBox<TElementContainer, TElement>

A scrollable container for HUD elements, based on HudChain<TElementContainer, TElement>. It clips content that exceeds its bounds and provides a scrollbar for navigation.

ScrollSelectionBoxBase<TContainer, TElement>

Abstract selection box that uses a ScrollBox<TElementContainer, TElement> as its backing list. Supports scrolling (mouse wheel + scrollbar).

ScrollSelectionBox<TContainer, TElement, TValue>

A scrollable list of arbitrary selectable UI elements. Generic SelectionBox using ScrollBox

SelectionBoxBase<TChain, TContainer, TElement>

Core abstract base class for selection box controls. Manages a list of entries, keyboard/mouse selection, highlighting, and visual feedback (selection box + highlight box).

SelectionBoxEntryTuple<TElement, TValue>

Implementation of a Selection Box entry that pairs the element with a value.

SelectionBoxEntry<TElement>

Implementation of a Selection Box entry.

Manages enablement and highlighting permissions for the contained element.

SelectionBox<TChain, TContainer, TElement, TValue>

Generic list of pooled, selectable entries of uniform size.

SharedBinds

A collection of immutable, commonly used key binds used by the framework library.

SliderBar

A clickable slider bar consisting of a track (Bar) and a movable thumb (Slider), based on MouseInputElement. It can be oriented vertically or horizontally, and the current value is automatically clamped between min and max.

Size is determined by the slider and bar, not Size or UnpaddedSize.

SliderBox

A horizontal slider control designed to mimic the appearance of the standard sliders found in the Space Engineers terminal.

TerminalFormatting

Colors and text formatting used in styling the Rich HUD Terminal and other UI elements themed on the Space Engineers terminal style.

TextBox

Interactive, clickable text box with caret and highlighting. Text only, no background or scrollbars.

TextField

Unlined clickable textbox with a background and border designed to look like text fields in the SE terminal.

TextInput

Provides a simple mechanism for handling text input, integrating with the game's input system to process characters and backspace events.

TexturedBox

A UI element that renders a textured rectangle. Supports coloring, transparency, texture alignment/scaling, and masking.

ToolTip

Class used to define tooltips attached to the RHF cursor.

Set via the ToolTip property of the given UI element, or registered to RegisterToolTip(ToolTip) manually in HandleInput() every input tick.

The first tooltip registered takes precedence.

TreeBoxBase<TContainer, TElement>

Abstract, generic base class for tree-style dropdown lists Provides a collapsible hierarchy of entries with a header that toggles visibility of the list.

Alias for TreeBoxBase<TSelectionBox, TChain, TContainer, TElement> using default non-scrolling chain and selection box types

TreeBoxBase<TContainer, TElement>.TreeChainSelectionBox

Minimal ChainSelectionBoxBase<TContainer, TElement> used internally by TreeBoxBase<TContainer, TElement>.

TreeBoxBase<TSelectionBox, TChain, TContainer, TElement>

Fully generic abstract base for tree box controls. Combines a clickable header (with expand/collapse arrow) and a dropdown selection list that appears below it when opened.

TreeBox<TValue>

Tree box supporting custom entry types of arbitrary height, provided they have a label.

Alias of TreeBox<TContainer, TElement> with LabelElementBase as the element and SelectionBoxEntryTuple<TElement, TValue> as the container.

TreeBox<TContainer, TElement>

Generic tree box supporting custom entry types of arbitrary height, provided they have a label.

TreeList<TValue>

Indented, collapsable list. Designed to fit in with SE UI elements.

Alias of TreeList<TContainer, TElement, TValue> using ListBoxEntry<TValue> and Label as the container and element, respectively.

TreeList<TElement, TValue>

Indented, collapsable list. Designed to fit in with SE UI elements.

Alias of TreeList<TContainer, TElement, TValue> using ListBoxEntry<TElement, TValue> as the container.

TreeList<TContainer, TElement, TValue>

Generic indented collapsable list of pooled, uniformly-sized entries. Allows use of custom entry element types. Designed to fit in with SE UI elements.

WindowBase

Base class for a standard window element featuring a header, body, and border. Includes built-in support for mouse dragging, edge resizing, and focus management.

Structs

BindAliasDefinition

Wrapper for serializing bind aliases (alternate key combinations) to XML.

BindDefinition

Serializable container for individual key binds.

Includes the bind name, the primary control combination, and any optional aliases.

ControlHandle

A unified handle for referencing UI controls.

Abstracts the differences between VRage.Input.MyKeys (Keyboard), RichHudControls (Mouse/Custom), and VRage.Input.MyJoystickButtonsEnum (Gamepad) by wrapping them in a unique integer ID.

GlyphFormat

Defines the formatting applied to characters in RichText and ITextBoard. Includes color, font, style, size, and alignment.

Interfaces

IBind

Interface representing an input tied to one or more key combinations in a IBindGroup

IBindEventProxy

Provides per-bind event proxies (NewPressed / PressedAndHeld / Released) for custom control bindings attached to a UI element.

IBindGroup

A collection of unique keybinds in the BindManager

IBindInput

Allows a UI element to respond to arbitrary custom control binds (IBind).

IBindInputElement

Marks a UI element as supporting custom bind input via an IBindInput instance.

IChainElementContainer<TElement>

Interface for objects containing UI elements compatible with HudChain<TElementContainer, TElement>.

Provides layout weighting information required for proportional sizing.

IChatCommand

Represents a single chat command registered within a ICommandGroup.

IClickableElement

Indicates that a UI element supports mouse interaction via an IMouseInput instance.

ICommandGroup

Represents a collection of IChatCommands that share a common prefix (e.g., "/modname").

IControl

Interface for controls used by the BindManager

ICursor

Represents the global mouse cursor managed by Rich HUD Framework. Provides screen/world position, capture state, and tooltip registration functionality. Used by all clickable UI elements for correct hit-testing and interaction within and between HUD spaces.

IEntryBox<TContainer, TElement>

Minimal interface for UI elements that represent a collection of selectable IScrollBoxEntry<TElement>.

IFocusHandler

Manages keyboard/input focus for a UI element. Only one element in the entire UI can have focus at a time. Input-related events use InputOwner as the sender object.

IFocusableElement

Represents a UI element that can receive keyboard/input focus.

IHudCollection

Mutable interface for HUD collections supporting decorator-wrapped child elements.

Alias of IHudCollection<TElementContainer, TElement> using HudElementBase as the element type and HudElementContainer as the wrapper.

IHudCollection<TElementContainer>

Mutable interface for HUD collections supporting decorator-wrapped child elements.

Alias of IHudCollection<TElementContainer, TElement> using HudElementBase as the element type.

IHudCollection<TElementContainer, TElement>

Mutable interface for HUD collections supporting decorator-wrapped child elements.

IHudNodeContainer<TElement>

Interface for objects acting as decorator wrappers for UI elements.

Separates the UI element from metadata.

ILabelElement

Interface for UI elements rendering formatted RichText

IListBoxEntry<TElement, TValue>

Interface implemented by objects that function as list box entries, pairing specific data types with a label-based UI element.

IMinLabelElement

Minimal interface for UI elements rendering formatted RichText

IModControlRoot

Interface for the root category for the client's settings.

This is the entry point where pages and subcategories are added.

IModRootMember

Interface for items that can be added to a mod's control root

IMouseInput

Low-level mouse input handler providing cursor enter/exit detection and click events. Events are raised using the owning InputOwner as the sender.

IReadOnlyHudCollection

Default read-only collection interface using standard container and element types.

Alias for IReadOnlyHudCollection<TElementContainer, TElement> with HudElementBase as the element type and HudElementContainer as the wrapper.

IReadOnlyHudCollection<TElementContainer>

Read-only interface for collections of HUD elements wrapped in decorator containers.

Alias for IReadOnlyHudCollection<TElementContainer, TElement> with HudElementBase as the element type.

IReadOnlyHudCollection<TElementContainer, TElement>

Read-only interface for collections of HUD elements wrapped in decorator containers.

IReadOnlyHudElement

Read-only interface for hud elements with definite size and position.

IReadOnlyHudNode

Read-only interface for hud elements that can be parented to another element.

IReadOnlyHudParent

Read-only interface for types capable of serving as parent objects to HudNodeBases.

IReadOnlyHudSpaceNode

Interface for all HUD nodes that define their own custom coordinate space.

IScrollBoxEntryTuple<TElement, TData>

Interface for scrollbox entries that associate an arbitrary data object with the UI element.

IScrollBoxEntry<TElement>

Interface for container entries within a scrollable list or box.

ISelectionBoxEntryTuple<TElement, TValue>

Interface for a selection box entry that pairs a UI element with a data value of type TValue.

ISelectionBoxEntry<TElement>

Interface for a selection box entry wrapping a UI element.

Adds selection highlighting capabilities to the standard scroll box entry.

IValueControl

Minimal interface for UI elements controlling a value that invokes an event when changed.

IValueControl<T>

Minimal interface for UI elements controlling a value that invokes an event when changed, with a property for reading that value.

Enums

DimAlignments

Automatic size matching flags for DimAlignment

HudChainSizingModes

Controls the sizing behavior of the HudChain<TElementContainer, TElement> and its members. The "Align Axis" is the direction the elements are stacked (Vertical = Y, Horizontal = X). The "Off Axis" is perpendicular to the stack (Vertical = X, Horizontal = Y).

HudInputMode

Used to indicate the global input state of the framework

ParentAlignments

Used to determine the default position of an element relative to its parent via ParentAlignment.

RichHudControls

Unified control enum type for keyboard, mouse and gamepad/joystick

SeBlacklistModes

Flags determining which game inputs are blocked (blacklisted) by the framework.

Useful for modifying or disabling normal game input behavior while UI elements are active.

TextAlignment

Used to determine text alignment.

TextBuilderModes

Line breaking modes for ITextBuilder