promotional bannermobile promotional banner

AutoSetup – Edit Mode Layouts, UI Scale & AddOn Sets per Resolution

Switch Edit Mode layout, UI scale and enabled addons automatically per resolution — PC, laptop, Steam Deck, TV.
Back to Files

0.3.0

File nameAutoSetup-0.3.0.zip
Uploader
ollidiemausollidiemaus
Uploaded
Oct 17, 2026
Downloads
45
Size
64.9 KB
Flavors
RetailForever
File ID
9219309
Type
R
Release
Supported game versions
  • 12.1.5
  • 1.60.1

What's new

AutoSetup

0.3.0 (2026-10-17)

Full Changelog Previous Releases

  • Add the in-game test checklist
    docs/TESTING.md holds the 14-item release checklist from #8 for Retail and WoW Forever, with the setup files and commands each item needs. docs/ stays out of the release (.pkgmeta).
  • Build the profile list on show and gate controller support by capability
    Closes #15: the options panel builds its list when shown instead of from a
    load-time timer, controller support checks for C_InputInterfaceStyle instead
    of the Forever flag, the unused Retail flag is gone, and the reload popup
    hides its inherited OKAY button at load without the dead timer.
  • Run one resolution check per size/scale event burst
  • Register target events only while a target layout applies
    Target, soft-enemy and combat-start events are registered only while the
    current profile has a target layout that AutoSetup would apply, recomputed
    on every full evaluation and written to the debug log. The profile's
    layout names are cleaned once per evaluation, so the per-event path no
    longer looks up the profile or cleans names. EDIT_MODE_LAYOUTS_UPDATED is
    unregistered once the initial evaluation has run.
    Refs #13
  • Version the saved data and run each migration once
    AutoSetupDB is now { version = 2, profiles = { ["WIDTHxHEIGHT"] = profile } }.
    The unversioned shape counts as version 1. LoadDB runs the migrations at
    ADDON_LOADED, one version at a time, on a copy, and stores the result only
    when every step succeeds. 1 -> 2 moves the profiles under their own key,
    drops autoReload and suppressChat, and renames ForeverQoL: features to QoL:,
    keeping the QoL: value when both exist. This replaces the two migrations
    that ran on every load, and the rename map moves into the migration step.
    A missing table starts at the current version. Data from a newer version is
    used as it is, without being migrated. A failed migration goes to the error
    handler and the saved data stays as it was. When the saved data can't be
    used, profiles live for this session only and a chat line says so.
    Closes #12
  • Read and write profiles only through the database functions
    AutoSetup.DeleteProfile and AutoSetup.IterateProfiles join
    GetProfileForResolution and EnsureProfile. The options panel's profile
    list and delete button use them instead of indexing AutoSetupDB, and
    the load-time migration gets the table from GetDB(), so GetDB() is the
    only code that names the saved variable. The AutoSetup.GetDB export is
    gone; nothing outside AutoSetup.lua needs the raw table any more.
    Players see no change. This is groundwork for versioned saved data,
    which then only has to change these functions and the migration.
    Closes #11
  • Protect calls into feature providers
    A feature provider counts as loaded only when its global is a table
    with IsFeatureEnabled and SetFeatureEnabled functions
    (AutoSetup.GetFeatureProvider); anything else, such as an outdated addon
    or a name clash, is skipped as not loaded without an error.
    Every call into a provider goes through AutoSetup.CallFeatureProvider,
    an xpcall with CallErrorHandler, so a failure reaches BugSack or the
    script errors frame with the provider's own stack. A failed check or set
    skips only that entry: applying a profile goes on with the next one, and
    a save still prints its message, refreshes the list and applies the
    profile.
    Closes #10
  • Switch layouts silently and remove "Suppress chat"
    Layouts are switched with C_EditMode.SetActiveLayout instead of
    EditModeManagerFrame:SelectLayout, which calls the same API but also
    prints "layout applied" in chat. AutoSetup no longer replaces
    ChatFrame1.AddMessage, so no chat line passes through its code (no more
    errors or lost lines on secret chat text in Retail instances).
    The "Suppress chat" checkbox and the suppressChat profile default are
    removed; saved suppressChat fields stay until the saved data is versioned.
    Closes #9
  • Add agent skill docs and keep docs out of the release package
    docs/agents/ tells the engineering skills where issues live (GitHub
    Issues via gh) and how to read GLOSSARY.md and docs/adr/ once they exist.
    .pkgmeta ignores docs/ and GLOSSARY.md, so they don't end up in the
    packaged addon.

This mod has no additional files