New window and runtime APIs
Widgets, dialogs, admin and private tabs, dynamic-island notifications, media center, tab styling, and parameter introspection.
New window and runtime APIs
The latest XLQP source adds window-level systems that are not normal section elements. This page shows their public entry points and the values returned by each API.
For the October update, see AI agent, Key system, and Current API additions for grids, subtabs, named slider parameters, macros, music-title helpers, and runtime health.
Widgets
Enable the dashboard in MakeWindow with the Widgets group, then create cards from the returned window.
local Window = Library:MakeWindow({
Widgets = {
Enabled = true,
BetaButton = true,
StartOpen = false,
ButtonText = "Widgets",
Icon = "layout-dashboard",
Width = 1020,
Height = 560,
ScreenPadding = 32,
CornerRadius = 18,
DimBackground = false,
BackgroundTransparency = 1,
HideMainWindow = true,
CloseOnOutside = false,
},
})
local Recent = Window:AddWidget({
Name = "Recent scripts",
Icon = "history",
Position = UDim2.new(0, 300, 0, 0),
Size = UDim2.fromOffset(300, 220),
})
Recent:AddButton({ Name = "Run", Callback = function() print("run") end })Window widget methods: AddWidget, GetWidget, RemoveWidget, ClearWidgets, OpenWidgets, CloseWidgets, ToggleWidgets, SetWidgetsEnabled, IsWidgetsOpen, and IsWidgetsEnabled.
Widget controllers support SetTitle, SetImage, SetVisible, Toggle, SetPosition, SetSize, SetCornerRadius, AddElement, Clear, and Destroy. A widget can also forward normal Add* element methods.
Tab button styling
Window:SetTabButtonsStyle({
Gap = 4,
Padding = 8,
CornerRadius = 6,
Indicator = true,
IndicatorWidth = 2,
IndicatorHeight = 20,
})
local CurrentStyle = Window:GetTabButtonsStyle()
local StyleFields = Window:GetTabButtonsStyleParameters()The same table may be supplied as top-level TabButtonsStyle in MakeWindow.
Admin tabs
local Admin = Window:MakeAdminTab({
Name = "Admin",
Icon = "shield",
Password = "change-this-password",
PromptTitle = "Admin access",
PromptDescription = "Enter the password to continue.",
Remember = true,
RememberText = "Remember this admin tab",
RememberKey = "MyHubAdmin",
})
Admin:AddButton({ Name = "Lock now", Callback = function() Admin:Lock(false) end })Aliases: AddAdminTab and CreateAdminTab. Lock(true) also forgets the remembered login.
Dialogs and inputs
local NameInput
local Dialog = Window:AddDialog("ProfileDialog", {
Title = "Edit profile",
Description = "Choose the name shown in this session.",
OutsideClickDismiss = false,
AutoDismiss = false,
FooterButtons = {
Cancel = { Title = "Cancel", Variant = "Ghost", Order = 1 },
Apply = {
Title = "Apply",
Variant = "Primary",
Order = 2,
Callback = function(currentDialog)
print(NameInput.Text)
currentDialog:Dismiss()
end,
},
},
})
NameInput = Dialog:AddInput("Name", {
Text = "Display name",
Default = "Player",
Placeholder = "Type a name",
})
Dialog:AddToggle("Remember", { Text = "Remember this value", Default = true })Dialog controllers expose Dismiss, AddInput (AddTextbox alias), and AddToggle.
Dynamic island and media center
Library:SetDynamicIslandNotificationsEnabled(true)
Library:ShowDynamicIslandNotification({
Title = "Connected",
Content = "XLQP is ready",
Time = 4,
})
Library:OpenMediaCenter()
Library:ToggleMediaCenter()Use GetDynamicIslandNotificationsEnabled() to read the saved notification setting, PreviewDynamicIsland() to display a preview, and ShowDynamicIsland() / HideDynamicIsland() for now-playing content.
Private tabs
Enable the editor with the PrivateTabs MakeWindow group. It accepts Enabled, Password, TopName, TopIcon, EditorName, EditorIcon, EditorTitle, EditorSubtitle, EditorWidth, EditorHeight, and DefaultName.
local Private = Window:CreatePrivateTab({
Name = "Private Controls",
Kind = "Side Tab",
Icon = "lock-keyhole",
Group = "Private",
})
local Left = Window:AddPrivateGroupbox({
Tab = Private,
Name = "Private Features",
Side = "Left",
Ratio = 56,
Icon = "shield-check",
})
Left:AddToggle({ Name = "Private Toggle", Default = true })
Window:SelectPrivateTab("Private Controls")
Window:OpenPrivateTabEditor("Side Tab")CreatePrivateMiniTab adds an editable mini-tab rail inside a private tab.
Parameter introspection
local Names = Library:GetElementParameterNames()
local ToggleInfo = Library:GetElementParameters("AddToggle")
local AllInfo = Library:GetAllElementParameters()
local Text = Library:FormatElementParameters("AddToggle")
local NewAPI = Library:GetNewAPIParameters()
local Toggle = Section:AddToggle({ Name = "Enabled" })
print(Toggle.Parameters)
print(Toggle:GetParameters())Every returned Add* controller receives .Parameters, .ParameterInfo, and :GetParameters() when parameter information is registered.
Shared element properties
Every registered element can use the shared access and appearance properties below in addition to its constructor-specific fields.
| Property | Purpose |
|---|---|
TextColor | Named color, hex, RGB table, or Color3 text override. |
Style | Per-element surface, stroke, radius, height, title, and description styling. |
LockedTo | User IDs or names allowed to see the element. |
CursorGlow | Enables the optional pointer glow where supported. |
CursorGlowColor, CursorGlowSize, CursorGlowStrength | Customizes that glow. |
Stored element controllers expose SetStyle(newStyle) when the shared style wrapper is active.
Next steps
- See Window configuration for every startup group.
- See Element options for constructor fields.
- Use the Full example to see these systems combined.