-
Notifications
You must be signed in to change notification settings - Fork 0
Field Glossary
Contents
This page is the quick lookup for metadata fields used by LibSettingsDesigner. Use it when creating examples, reviewing docs, or adding a new setting to a host addon.
For full behavior and examples, use the dedicated element pages under Elements.
Passed to:
Config:RegisterAddOn(addonID, opts)| Field | Type | Meaning |
|---|---|---|
title |
string | Short addon name used in dashboard/sidebar areas. |
settingsTitle |
string | Main window title. |
dashboardTitle |
string | Label for the dashboard navigation entry. |
icon |
string | Main addon icon texture path. |
addonFolder |
string | Host addon folder name, used for fallback asset paths. |
assetRoot |
string | Explicit path to vendored LibSettingsDesigner assets. Should usually end with \\Assets\\. |
db |
function | Returns the table used for simple DB-backed controls. |
profile |
function | Optional profile provider for status/dashboard integrations. |
locale |
table | Host addon locale table. |
density |
string/function | Default density, usually "compact" or "comfortable". |
showDensityButton |
boolean/function | Controls whether users can switch density. |
getSize / setSize
|
function | Read/write persisted frame size. |
getLocked / setLocked
|
function | Read/write whether the frame is locked. |
dashboard |
table/function | Dashboard configuration. |
version |
string/function | Version text for status displays. |
isNewTag |
function | Returns whether a newTagID should show a badge. |
iconTextures |
table | Maps icon keys to texture paths. |
categoryIconTextures |
table | Maps category ids/keys to texture paths. |
openLegacySettings |
function | Called by bridge controls that jump to Blizzard settings. |
Example:
local app = Config:RegisterAddOn(addonName, {
title = "My Addon",
settingsTitle = "My Addon Settings",
dashboardTitle = "Dashboard",
addonFolder = addonName,
assetRoot = "Interface\\AddOns\\MyAddon\\libs\\LibSettingsDesigner\\Assets\\",
density = "compact",
db = function() return MyAddonDB.profile end,
locale = L,
})Passed to:
app:RegisterCategory(data)| Field | Type | Meaning |
|---|---|---|
id |
string | Required stable category id. |
title |
string | Display label. |
order |
number | Sort order. |
icon |
string | Texture path. |
iconAtlas |
string | Blizzard atlas name. |
iconKey |
string | Lookup key in app icon maps. |
Passed to:
app:RegisterPage(data)| Field | Type | Meaning |
|---|---|---|
id |
string | Required stable page id. |
category |
string | Parent category id. |
title |
string | Display label. |
description |
string | Summary shown on cards/detail views. |
icon, iconAtlas, iconKey
|
string | Page icon source. |
mainToggleID |
string | Control id used as main feature toggle. |
newTagID |
string | New badge tag for the page. |
order |
number | Sort order. |
layout |
string | Use "info" for static/help pages. |
content |
table/function | Info page content blocks. |
visible, isVisible, visibleWhen
|
boolean/function | Show gates. |
hidden, hiddenWhen
|
boolean/function | Hide gates. |
Passed to:
app:RegisterGroup(pageID, data)| Field | Type | Meaning |
|---|---|---|
id |
string | Stable group id. |
title |
string | Group heading. |
order |
number | Sort order. |
Controls can join a group with groupID or modernGroup.
Passed to:
app:RegisterControl(pageID, data)| Field | Type | Meaning |
|---|---|---|
id |
string | Stable control id. Defaults to key/var when omitted. |
type |
string | Widget type, such as toggle, slider, dropdown. |
key / var
|
string | DB key for simple opts.db() persistence. |
label / text / name
|
string | User-visible row label. |
description / desc
|
string | Short row description. |
groupID / modernGroup
|
string | Group assignment. |
order |
number | Sort order within page/group. |
default |
any/function | Default value used by reset/customized checks. |
dbDefault |
any/function | Alternate DB default provider. |
trackCustomized |
boolean/function | Overrides customized-count behavior. |
refreshOnChange |
boolean | Re-render visible content after a value changes. |
| Field | Use when |
|---|---|
key / var
|
The value is directly under opts.db(). |
getValue / get
|
You need custom read logic. |
setValue / set
|
You need custom write logic or runtime refresh. |
getSelection |
MultiDropdown reads an entire boolean selection map. |
setSelection |
MultiDropdown writes an entire boolean selection map. |
isSelectedFunc |
MultiDropdown reads one option at a time. |
setSelectedFunc |
MultiDropdown writes one option at a time. |
setting |
Existing settings object with GetValue/SetValue/default methods. |
Use explicit getters/setters for nested DB tables:
getValue = function()
return MyAddonDB.profile.window and MyAddonDB.profile.window.scale or 1
end,
setValue = function(value)
MyAddonDB.profile.window = MyAddonDB.profile.window or {}
MyAddonDB.profile.window.scale = tonumber(value) or 1
MyAddon.RefreshWindow()
endUse visibility when the row/page should disappear:
visibleWhen = function(control, app)
return MyAddon.HasAdvancedMode()
endUse enabled state when the row should remain visible but disabled:
parentCheck = function()
return MyAddonDB.profile.enabled == true
end| Field | Result |
|---|---|
visible, isVisible, visibleWhen
|
Show only when true. |
hidden, hiddenWhen
|
Hide when true. |
isEnabled |
Disable row when false. |
parentCheck |
Disable child row when parent check is false. |
| Field | Meaning |
|---|---|
keywords |
Extra search aliases. String or table. |
searchtags |
Extra search aliases. String or table. |
newTagID |
Badge tag checked by opts.isNewTag(tagID). |
Example:
app:RegisterControl("interface.names", {
id = "showNicknames",
key = "showNicknames",
type = "toggle",
label = "Show nicknames",
description = "Use nicknames in group frames.",
keywords = { "alias", "display name", "social" },
newTagID = "Nicknames",
default = false,
})| Element | Key fields | Reference |
|---|---|---|
| Toggle |
default, getValue, setValue, parentCheck
|
Toggle |
| Slider |
min, max, step, formatter, suffix
|
Slider |
| Dropdown |
list, options, orderList, listFunc, optionfunc, menuHeight
|
Dropdown |
| MultiDropdown |
getSelection, setSelection, isSelectedFunc, setSelectedFunc
|
MultiDropdown |
| Input |
numeric, min, max, maxChars, multiline, readOnly
|
Input |
| Button |
buttonText, onClick, setValue
|
Button |
| ColorPicker |
hasOpacity, colorizeLabel, callback
|
ColorPicker |
| ColorOverrides |
entries, getColor, setColor, getDefaultColor
|
ColorOverrides |
| SoundDropdown |
soundResolver, previewSoundFunc, playbackChannel
|
SoundDropdown |
| CheckboxDropdown |
dropdownKey, dropdownList, dropdownOrder, dropdownDefault
|
CheckboxDropdown |
| ReorderList |
getEntries, moveEntry, removeEntry, setEntryFormat
|
ReorderList |
| Notes |
note, notes, richNote, richNotes, blocks
|
Notes |
| Dashboard |
hero, cards, status, features, newEntries
|
Dashboard |
| InfoPage |
layout = "info", content, entries
|
InfoPage |
Aliases exist to support wrapper bridges and older settings helper names. Prefer the canonical field in new direct LibSettingsDesigner examples.
| Prefer | Accepted aliases |
|---|---|
key |
var |
label |
text, name
|
description |
desc |
getValue |
get |
setValue |
set |
groupID |
modernGroup |
list |
options |
orderList |
order |
When documenting wrapper code, use the wrapper's native names at the wrapper boundary, then show how they map to canonical LibSettingsDesigner fields inside the wrapper.
Wiki
• Home
• Architecture
• Vendoring
• Quick Start
• Field Glossary
• Troubleshooting
• Validation
Reference
⚬ Config API
⚬ UI API
⚬ Elements
⚬ Examples
Elements
Structure
• Category
• Page
• Group
• Dashboard
• InfoPage
• Custom
Controls
• Toggle
• CheckboxDropdown
• Dropdown
• MultiDropdown
• SoundDropdown
• Input
• Slider
• Button
Advanced
• ColorPicker
• ColorPalette
• ColorOverrides
• ReorderList
• Expandable
• Notes
Examples
Start
• Minimal Addon
• Complete Settings Center
• Wrapper Bridge Pattern
Data and Behavior
• Dependent Controls
• Nested Database Values
• Dynamic Dropdowns
• Runtime Refresh
• Search and New Badges
• Custom Hosted Editors
Polish
• Support Links
• Theme Colors
• Theme Borders