Skip to content

UI Components

UI components let you create user interfaces - text displays, images, buttons, and organized layouts. These work within a Canvas and are designed for 2D screen-space elements.


🏷️ Category: UI

💡 Simple Explanation: The container that holds all UI elements - required for any 2D interface.

⚙️ Technical Description: The root component for UI rendering that defines how UI elements are rendered to the screen, supporting screen-space overlay, screen-space camera, and world-space render modes.

📖 Full Details & Properties

🔧 How It Works: A Canvas is the foundation for all UI. Every UI element (text, image, button) must be a child of a Canvas. The render mode determines how the UI appears:

  • Screen Space - Overlay: UI draws on top of everything, always visible
  • Screen Space - Camera: UI is positioned relative to a camera
  • World Space: UI exists as a 3D object in the scene

Perfect For:

  • HUD overlays
  • Menus and panels
  • On-screen text and images
  • Interactive UI elements

📋 Properties:

PropertyTypeDescription
Render ModeDropdownHow the canvas renders (Overlay, Camera, World Space)
Pixel PerfectBooleanSnap UI to pixel boundaries for crisp rendering
Sort OrderIntegerDrawing priority (higher = on top of other canvases)
Target DisplayIntegerWhich monitor to render to

🎬 Streaming Example: “Create a Canvas with Screen Space - Overlay mode for your donation alerts that always appear on top.”

🎯 Tips:

  • Use Screen Space - Overlay for UI that should always be visible regardless of camera position.
  • Use World Space for UI that exists in your 3D scene (like floating name tags).
  • Higher Sort Order values render on top of lower values.

🏷️ Category: UI

💡 Simple Explanation: Displays a 2D image or texture in your UI.

⚙️ Technical Description: A UI component that renders sprites and textures with support for different fill modes, tinting, and material effects.

📖 Full Details & Properties

🔧 How It Works: The Image component displays a sprite or texture within the UI canvas. It supports various rendering modes for different use cases - simple stretching, 9-slice scaling for UI panels, tiling for patterns, and fill modes for progress indicators.

Perfect For:

  • Icons and logos
  • Background panels
  • Progress bars (using Fill mode)
  • Webcam borders and frames
  • Alert graphics

📋 Properties:

PropertyTypeDescription
Source ImageSpriteThe image to display
ColorColorTint color applied to the image
MaterialMaterialCustom material for special effects
Image TypeDropdownRendering mode (see below)
Preserve AspectBooleanMaintain original proportions when resized
Raycast TargetBooleanWhether clicks/touches register on this image

Image Types:

  • Simple: Stretches the image to fill the area
  • Sliced: 9-slice scaling (corners stay fixed, edges stretch)
  • Tiled: Repeats the image to fill the area
  • Filled: Partial fill for progress indicators

🎬 Streaming Example: “Use a Filled image type to create a donation goal progress bar that fills up as donations come in.”

🎯 Tips:

  • Use Sliced for UI panels and buttons so corners stay crisp at any size.
  • Set Raycast Target to false for decorative images that shouldn’t block clicks on elements behind them.
  • The Color property can be animated to flash or fade images.

🏷️ Category: UI

💡 Simple Explanation: Displays text in your UI with full formatting options.

⚙️ Technical Description: An advanced text rendering component supporting rich text formatting, multiple fonts, and comprehensive typography controls.

📖 Full Details & Properties

🔧 How It Works: The Text component renders text with high-quality typography. It supports rich text tags for inline formatting, custom fonts, and precise control over spacing and alignment. Text automatically wraps and handles overflow based on your settings.

Perfect For:

  • Labels and titles
  • Dynamic text displays (donations, alerts)
  • Chat overlays
  • Score counters
  • Any on-screen text

📋 Properties:

PropertyTypeDescription
TextStringThe text content to display
Font AssetFontThe font to use
Font StyleFlagsBold, Italic, Underline, Strikethrough
Font SizeFloatSize of the text
ColorColorText color
AlignmentDropdownHorizontal and vertical text alignment
WrappingBooleanAllow text to wrap to multiple lines
OverflowDropdownHow to handle text that doesn’t fit
Character SpacingFloatSpace between characters
Word SpacingFloatSpace between words
Line SpacingFloatSpace between lines
Paragraph SpacingFloatSpace between paragraphs
Rich TextBooleanEnable formatting tags

Rich Text Tags (when enabled):

  • <b>bold</b> - Bold text
  • <i>italic</i> - Italic text
  • <color=red>colored</color> - Colored text
  • <size=20>sized</size> - Different sizes

🎬 Streaming Example: “Display donation messages with the donor name in bold and colored, using rich text tags.”

🎯 Tips:

  • Enable Rich Text to use formatting tags within your text content.
  • Set Overflow to “Ellipsis” to show ”…” when text is too long.
  • Use the SetText node to change text content from node graphs.

Layout components automatically arrange child UI elements within them.


🏷️ Category: UI

💡 Simple Explanation: Controls how an element behaves inside a layout group.

⚙️ Technical Description: Provides size preferences and constraints for UI elements participating in automatic layout calculations.

📖 Full Details & Properties

🔧 How It Works: When a UI element is inside a layout group (Grid, Horizontal, or Vertical), the Layout Element component lets you specify size preferences. The layout system uses these to determine how much space each element gets.

Perfect For:

  • Making specific elements larger/smaller in a layout
  • Setting minimum sizes for elements
  • Controlling which elements stretch to fill space

📋 Properties:

PropertyTypeDescription
Ignore LayoutBooleanExclude this element from layout calculations
Min WidthFloatMinimum width (won’t shrink below this)
Min HeightFloatMinimum height
Preferred WidthFloatIdeal width if space is available
Preferred HeightFloatIdeal height
Flexible WidthFloatStretch priority for extra horizontal space
Flexible HeightFloatStretch priority for extra vertical space

🎬 Streaming Example: “In a horizontal layout of icons, use Layout Element to make the center icon twice as wide as the others.”

🎯 Tips:

  • Flexible values are relative - an element with Flexible Width 2 gets twice as much extra space as one with 1.
  • Set Ignore Layout to true to manually position an element while keeping it in the layout hierarchy.

🏷️ Category: UI

💡 Simple Explanation: Arranges child elements in a grid pattern.

⚙️ Technical Description: Automatically positions child elements in a grid with configurable cell size, spacing, and fill direction.

📖 Full Details & Properties

🔧 How It Works: Child elements are automatically positioned in rows and columns. All cells are the same size, defined by Cell Size. Elements fill the grid in order based on the Start Corner and Start Axis settings.

Perfect For:

  • Icon grids
  • Inventory displays
  • Gallery layouts
  • Button matrices
  • Achievement displays

📋 Properties:

PropertyTypeDescription
PaddingRectOffsetSpace around the edges (Left, Right, Top, Bottom)
Cell SizeVector2Width and height of each cell
SpacingVector2Gap between cells (X, Y)
Start CornerDropdownWhere the first element is placed
Start AxisDropdownFill horizontally or vertically first
Child AlignmentDropdownHow to align the grid within available space
ConstraintDropdownFixed row count, column count, or flexible

🎬 Streaming Example: “Display subscriber badges in a 4-column grid that automatically wraps to new rows.”

🎯 Tips:

  • Use Constraint to fix the number of columns or rows.
  • Cell Size must be set manually - it doesn’t auto-size to children.
  • Combine with a Scroll View for grids with many items.

🏷️ Category: UI

💡 Simple Explanation: Arranges child elements in a horizontal row.

⚙️ Technical Description: Automatically positions child elements side by side horizontally, with optional sizing control and spacing.

📖 Full Details & Properties

🔧 How It Works: Child elements are positioned left to right (or right to left) in a single row. You can control whether children are auto-sized or maintain their own dimensions, and how they align vertically within the row.

Perfect For:

  • Navigation bars
  • Button rows
  • Icon strips
  • Horizontal menus
  • Side-by-side comparisons

📋 Properties:

PropertyTypeDescription
PaddingRectOffsetSpace around the edges
SpacingFloatGap between elements
Child AlignmentDropdownVertical alignment of children
Reverse ArrangementBooleanRight-to-left instead of left-to-right
Control Child SizeBoolean (W/H)Auto-size children width and/or height
Use Child ScaleBoolean (W/H)Consider child scale in calculations
Child Force ExpandBoolean (W/H)Force children to fill available space

🎬 Streaming Example: “Create a row of social media icons that stay evenly spaced across the bottom of your stream.”

🎯 Tips:

  • Enable Child Force Expand Width to make elements stretch to fill the row.
  • Use Child Alignment to center elements vertically if they have different heights.
  • Combine with Layout Element components on children for fine control.

🏷️ Category: UI

💡 Simple Explanation: Arranges child elements in a vertical column.

⚙️ Technical Description: Automatically positions child elements stacked vertically, with optional sizing control and spacing.

📖 Full Details & Properties

🔧 How It Works: Child elements are positioned top to bottom (or bottom to top) in a single column. Works identically to Horizontal Layout Group but in the vertical direction.

Perfect For:

  • Vertical menus
  • Chat message lists
  • Leaderboards
  • Stacked notifications
  • Settings panels

📋 Properties:

PropertyTypeDescription
PaddingRectOffsetSpace around the edges
SpacingFloatGap between elements
Child AlignmentDropdownHorizontal alignment of children
Reverse ArrangementBooleanBottom-to-top instead of top-to-bottom
Control Child SizeBoolean (W/H)Auto-size children width and/or height
Use Child ScaleBoolean (W/H)Consider child scale in calculations
Child Force ExpandBoolean (W/H)Force children to fill available space

🎬 Streaming Example: “Create a vertical list of recent donations that automatically stacks new entries below existing ones.”

🎯 Tips:

  • Enable Control Child Size Width to make all children the same width as the container.
  • Use Reverse Arrangement for chat-style layouts where newest items appear at the bottom.
  • Combine with a Scroll View for long lists.