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
TValueAlias 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