Skip to content

Settings Page Example

This example creates a Blizzard settings page with a checkbox, slider, dropdown, and about section.

lua
local addonName = ...

MyAddonDB = MyAddonDB or {
  debug = false,
  scale = 1,
  mode = "compact"
}

local addon = ArcaneWizardLibrary:NewAddon(addonName)

local category, layout = Settings.RegisterVerticalLayoutCategory("My Addon")
Settings.RegisterAddOnCategory(category)
addon:SetMainCategoryId(category:GetID())

ArcaneWizardLibrary.Settings:AddCheckbox(category, {
  settingKey = "my-addon-debug",
  variableName = "debug",
  variableTable = MyAddonDB,
  name = "Debug output",
  tooltip = "Print additional diagnostic messages.",
  default = false
})

ArcaneWizardLibrary.Settings:AddSlider(category, {
  settingKey = "my-addon-scale",
  variableName = "scale",
  variableTable = MyAddonDB,
  name = "Window scale",
  tooltip = "Controls the main window scale.",
  default = 1,
  minValue = 0.8,
  maxValue = 1.4,
  step = 0.1,
  formatter = function(value)
    return string.format("%d%%", value * 100)
  end
})

ArcaneWizardLibrary.Settings:AddDropdown(category, {
  settingKey = "my-addon-mode",
  variableName = "mode",
  variableTable = MyAddonDB,
  name = "Mode",
  tooltip = "Select the behavior mode.",
  default = "compact",
  options = {
    { value = "compact", label = "Compact" },
    { value = "detailed", label = "Detailed" }
  }
})

ArcaneWizardLibrary.Settings:AddAboutSection(layout, addonName)

Built with VitePress (MIT License).