UI profile format

A UI profile is one ZIP that goes with a collection's addons: the settings a character ends up with, ready to install from the launcher. The root holds one folder per profile, named by realm, role and resolution, and optionally a GLOBAL/ folder and a NOTES.md.

VinyUI-7.3.1.zip
├── order-tank-1080p/
│   ├── ProfileSettings.xml
│   ├── EA_ActionBars/
│   │   ├── ModSettings.xml
│   │   └── SavedVariables.lua
│   ├── Enemy/
│   │   └── SavedVariables.lua
│   └── ...
├── order-healer-1080p/
├── order-dps-1080p/
├── destruction-tank-1080p/
├── ...                        one folder per variant, any number
├── GLOBAL/                    optional: account-wide addon settings
│   └── Shinies/
│       └── SavedVariables.lua
└── NOTES.md                   optional: shown as install notes
Where the folders come from

The game keeps each character's UI in user/settings/<server>/<character>/<Profile>/. Copy such a profile folder into the ZIP and rename it after its tags. Copy user/settings/GLOBAL/ as GLOBAL/ if your setup relies on account-wide settings (Shinies, Effigy and the like keep theirs there).

Nothing else from the game folder belongs in the ZIP: no CharacterSettings.xml, no Macros.xml, no UserSettings.xml, no Interface/AddOns. The addons themselves are the collection's items.

Folder names

A profile folder's name is its tags, joined by -, in any order and case. Each tag may be left out:

  • realm: order or destruction
  • role: tank, healer or dps
  • resolution: 1080p, 1440p, 2160p, ...

So order-tank-1080p is shown as Order Tank 1080p, healer as Healer, and default is a profile with no tags at all, which is how you share one character's setup as it is. Two folders that mean the same profile (order-tank and tank-order) are refused; keep one.

GLOBAL is not a profile: it holds only module folders, never ProfileSettings.xml.

What may be inside a profile folder
  • ProfileSettings.xml at the folder root (key bindings). Optional.
  • <Module>/ModSettings.xml and <Module>/SavedVariables.lua, one folder per addon module, exactly as the game writes them. At least one module per profile.
  • Junk such as Thumbs.db, .DS_Store and __MACOSX/ is dropped. Anything else is refused, and the message names the path.
  • No executables, scripts or nested archives; at most 25 MB compressed.
What happens to it
  • The registry rebuilds the ZIP: folders are renamed to their canonical key (Order-Tank-1080p becomes order-tank-1080p), junk goes, and the result is stored with its SHA-256.
  • Module folders that match neither an addon in the collection nor a stock module are listed as a warning on the edit page. Add the addon, or leave the settings; they do no harm without it.
  • A new upload is published with the collection's next revision. An upload a published revision uses stays downloadable and cannot be removed; upload a replacement and publish again.
  • In the launcher, a player opens the pack, presses Install profiles, picks characters and a variant. The folder is copied to user/settings/<server>/<character>/<Name Label>/, made the active profile, and GLOBAL/ is merged into user/settings/GLOBAL/ for the modules the set ships. Replaced folders are backed up first.