AROYN UI LIBRARY / CORE CONCEPTS

Components

Shared constructor options, typed handles and consistent state semantics.

Choose the right control#

ButtonRun an explicit action; no stored value.ToggleBoolean preference.Text InputText committed on focus loss or Enter.SliderBounded, step-quantized numeric value.DropdownOne optional selection.Multi-DropdownA copied array of selections.KeybindBinding capture and activation modes.ColorPickerRGB/HSV selection with hex helpers.
Aroyn standalone showcase in Roblox, with General preferences, slider at 40%, selected dropdowns, shortcut H and preview color #A4B8A9.Open full size ↗
Actual desktop Roblox capture of the standalone showcase. These labels and values belong to the demo.

Common options#

OptionTypeDefaultMeaning
NamestringRequiredNonempty label. Not a configuration identifier.
Descriptionstring?nilOptional secondary text.
DisabledbooleanfalseBlocks user interaction; setters remain usable.
Callbackfunction?nilProtected handler; signature depends on the control.
Flagstring?nilExplicit unique configuration key. Stateful controls only.
PersistbooleantrueSet false to exclude a registered value from snapshots.
SensitivebooleanfalseSet true to exclude private values from snapshots.

Flag, Persist and Sensitive apply to stateful controls. Buttons are not registered for persistence. A Flag is unique across the window and must be an ASCII identifier of 1–64 characters, beginning with a letter or number and containing only letters, digits, underscore or hyphen.

Common handle methods#

MethodReturnsBehavior
GetValue()ValueReads the current typed value. Multi selections return a copy.
SetValue(value, notify?)selfSilent by default; true calls Callback only after a changed normalized value.
SetDisabled(boolean)selfChanges user availability without discarding the value.
IsDisabled()booleanReads the requested disabled state.
Destroy()nilRemoves this control and its subscriptions; safe to repeat.

Ownership#

Constructors return handles, not Roblox instances. The public API controls state; manipulating internal Root, Control or Scope fields is not a supported extension. After destruction, stop using value getters/setters. Repeat Destroy is safe.

Validation and callbacks#

Invalid constructor arguments usually assert. Callback errors are protected and reported with warn. Configuration I/O instead returns ok, info. For a changed SetValue(value, true), your handler receives the normalized value; constructor defaults do not invoke Callback.