Skip to main content
Also has everything from ElementHandle. A slider. Value is always kept inside [min, max].
Value typenumber (clamped to [min, max])
Created bySection:AddSlider

Creation

section:AddSlider(key, label, default, min, max, step, prefix?, suffix?)
min
number
required
Lower bound.
max
number
required
Upper bound.
step
number
required
Increment for nudge and optional snap.
prefix
string?
Text shown before the number.
suffix
string?
Text shown after the number, e.g. "%".

SetValue

slider:SetValue(value: number, snapToStep: boolean?): ()
Set the value. Always clamped into range. Pass true for snapToStep to round to the nearest step.

SetFromAlpha

slider:SetFromAlpha(alpha: number): ()
Set using 0..1 instead of the real range. 0.5 is the middle.

SetFromText

slider:SetFromText(text: string): boolean
Try to set from a typed-in string. Returns true if the string was valid.

GetAlpha

slider:GetAlpha(): number
Current value as 0..1.

Nudge

slider:Nudge(direction: number): ()
Bump the value up (+1) or down (-1) by a sensible amount.

SetValueTextOverrides

slider:SetValueTextOverrides(map: { [number]: string }): ()
Show custom text for specific numbers, e.g. { [0] = "Off" } displays “Off” instead of 0.

Example

local vol = section:AddSlider("volume", "Volume", 50, 0, 100, 1, nil, "%")
vol:SetValueTextOverrides({ [0] = "Mute" })
vol:SetFromAlpha(0.75)
-- Listen to the display string (not the raw number):
vol:Watch("formattedValue", function(s) print(s) end)