October API additions
Current slider parameters, AI agent fields, new grid and subtab aliases, bytebeat options, macro controls, and runtime health APIs.
October API additions
This page records the API changes verified against the October 17, 2026 source. The bundled parameter registry contains example values; those strings are not guaranteed constructor defaults. The guides below describe defaults read from the implementation.
New elements
| Constructor | Purpose | Documentation |
|---|---|---|
AddSubTabs | Nested tab manager. | Options and controllers |
AddSubTab | Automatic shared nested-tab manager. | Options and controllers |
AddOptionGrid | Selectable cards with embedded elements. | Options and controllers |
AddElementGrid | Responsive columns of ordinary elements. | Options and controllers |
AddCustomSlider | Compact preset wrapper around AddSlider. | Custom sliders |
Named slider stops
AddSlider now accepts Parameters, with Points, Stops, and Modes as alternatives. Each item may be a scalar or a table. Tables accept Name / Label / Text / Title, Value / Id / Key, Description / Desc / Content, Color / Accent, Color2 / Accent2, and Icon.
local Mode = Section:AddSlider({
Name = "Effort",
Parameters = {
{Name = "Instant", Value = "Instant", Description = "Quick answers"},
{Name = "Balanced", Value = "Balanced", Description = "Normal planning"},
{Name = "Deep", Value = "Deep", Description = "More context"},
},
Default = "Balanced",
Preset = "Compact",
ShowDots = true,
ParameterArrow = true,
ShowParameterDescription = true,
DotSize = 5,
ActiveDotSize = 8,
KnobWidth = 30,
KnobHeight = 26,
FormatParameter = function(value, index, parameter)
return parameter.Name
end,
Callback = function(value, parameter, index)
print(value, parameter.Name, index)
end,
})
Mode:SetParameter("Deep")
local selected, index = Mode:GetParameter()
print(selected.Name, index)The selected parameter value is passed to Callback(value, parameter, index). GetParameter() returns the normalized parameter and index; GetParameters() returns the normalized list. Other controller additions are SetParameter(value, instant, silent), SetDotsVisible, SetColor, GetColors, UsePlugin, and ApplyStyle.
Slider appearance and plugins
| Fields | Behavior |
|---|---|
Preset / StylePreset | Compact, Thin, and ChatGPT select compact styling. |
AllowSmall / AllowMini | Permits sizes below the compact preset's normal minimum. |
Style / CustomStyle | Slider-specific appearance table. |
Plugin / CustomPlugin / SliderPlugin | Function or event-hook table. |
FormatParameter(value, index, parameter) | Formats the visible named-stop value. |
ShowDots, ParameterArrow, ShowParameterDescription | Each defaults to true. |
DotSize, ActiveDotSize | Defaults 5 and 8; clamped to valid sizes. |
KnobWidth, KnobHeight | Defaults 30 and 26; Style values take precedence. |
The Style table accepts layout and appearance values used by the slider, including Height, TrackHeight, TrackX, TrackY, TrackRight, FullWidth, ValuePosition, TrackColor, TrackTransparency, FillColor, FillTransparency, ShowFill, UseParameterColors, KnobColor, ShowKnob, KnobWidth, KnobHeight, KnobStrokeColor, KnobStrokeThickness, ShowKnobStroke, ShowTrackStroke, ShowFrameStroke, FrameTransparency, TitleSize, TitleFont, TitleColor, ValueSize, ValueFont, and ValueColor.
A plugin table can provide Build, Changed, DragStart, and DragEnd, or corresponding On* names. Render is also accepted for Changed. Hooks receive the slider context followed by event values. A function plugin receives (context, event, ...).
Mode:UsePlugin({
Changed = function(context, value, parameter, index)
print("Selected", value, index)
end,
})
Mode:ApplyStyle({KnobWidth = 32, KnobHeight = 30})AI fields
AddTextbox({Ai = true}), CreateTextbox({Ai = true}), and AddXLQPGen1AI expose PermissionMode, Effort, AgentPlanner, WorkspaceTools, ShowContextDetails, MultilineInput, PromptTransform, and OnResponse, plus the new tool and task controllers. Read the complete AI agent guide.
Key-system replacement
The new gate adds local function validators, case-sensitivity controls, provider adapters, get-key menus, themes, notification styles, and new persistence behavior. Read the Key system guide before migrating old configurations; the old raw-key/hash precedence, signed-record path, and skip-button descriptions no longer apply.
Bytebeat render settings
AddBytebeat accepts Looped, Cache, FrameBudget, and WriteBlock. Presets may also supply their own renderer settings. The optimized renderer clamps frame budget to 0.001–0.02 seconds and write blocks to 256–32768 samples; its defaults are 0.004 and 4096. Looping defaults to enabled when not overridden.
local Bytebeat = Section:AddBytebeat({
Name = "Bytebeat",
Mode = "Bytebeat",
Default = "t*(t>>5|t>>8)",
Looped = true,
Cache = true,
FrameBudget = 0.004,
WriteBlock = 4096,
})Macro helpers
| Method | Behavior |
|---|---|
StartMacroRecording(name) | Creates a recording with a name, start time, and action list. |
StopMacroRecording(save) | Stops recording; stores it in the runtime macro map unless save is false. |
GetMacroNames() | Returns names sorted case-insensitively. |
DeleteMacro(name) | Removes a recording from the runtime map. |
PlayMacro(name) | Replays actions asynchronously; returns false if missing or already playing. |
These helpers use in-memory recordings. Do not assume they persist across sessions unless a separate persistence layer supplies that behavior.
Runtime health and music titles
Library:GetRuntimeHealth() returns Running, Destroyed, Connections, Popups, Schema, and StabilityMode.
Library:GetSmartMusicTitle(url, rawTitle) returns a cached or locally cleaned title and a cache-hit boolean. QueueSmartMusicTitle(url, rawTitle, callback) queues title cleanup, combines pending callbacks, and uses the title cache. A cached title is returned immediately.
Library:BindPress(button, callback) connects a button's Activated event and registers the connection for cleanup.
Compatibility names
| Alias group | Canonical target |
|---|---|
CreateSubTabs, SubTabs | AddSubTabs |
CreateSubTab, SubTab | AddSubTab |
CreateOptionGrid, OptionGrid | AddOptionGrid |
CreateElementGrid, ElementGrid, AddWidgetGrid, CreateWidgetGrid, WidgetGrid | AddElementGrid |
CreateCustomSlider, CustomSlider | AddCustomSlider |
CreateToggle, Toggle, AddSwitch, CreateSwitch | AddToggle |
CreateTextbox, Textbox, AddInput, CreateInput | AddTextbox |
CreateSlider, Slider | AddSlider |
CreateDropdown, Dropdown | AddDropdown |
CreateButton, Button | AddButton |
CreateWindow, Window | MakeWindow compatibility entry points |
Use table configurations in new code. Some older positional aliases accept a different calling shape.