Myslot
Myslot
Copy your whole UI setup to any character — action bars, macros and keybinds — with one text string.
Setting up a new alt, moving to a new account, or rebuilding after a UI reset? Myslot exports your setup as a short, copy‑paste friendly text. Paste it on any character — even a different class — and click Import.
Browse and share profiles at <https://myslot.net>.
Features
- Action bars — every bar, including the main action bar pages, stance bars and the Skyriding bar
- Macros — both account‑wide and character‑specific
- Key bindings
- Click Cast Bindings (Retail)
- Cooldown Manager layouts (Retail)
- Talents (Retail) — see the profile's talent loadout string, get warned when it differs from yours, and load it into the talent window with one click
- Cross‑class & cross‑account — spells, items, mounts and pets you don't have are skipped with a clear message; unowned mounts can fall back to a random mount
- Saved profiles — keep up to 100 exports in game, sort by name / date / class and filter to your class
- Automatic backup — your current setup is saved before every import, so you can always roll back
- Choose what to import or clear — pick exactly which bars, macros and bindings to apply
- Fast & safe — asynchronous import with a progress bar, blocked during combat, CRC‑checked text
- Minimap button and
/myslotslash command
Supported game versions
Retail (The War Within / Midnight), Classic Era & Anniversary, Burning Crusade, Wrath, Cataclysm, Mists of Pandaria, Titan and WoW Forever. Options that a game version doesn't support are hidden automatically.
Usage
Export
- Type
/myslot(or click the minimap button) to open Myslot - Click Export
- Copy the text and save it anywhere — a text file, Discord, email, or myslot.net
Import
- Type
/myslotto open Myslot - Paste the exported text into the text box (or pick a saved profile)
- Choose what to import, then click Import
Importing a profile exported with talents other than the ones you are using asks for confirmation first — a profile's action bars rarely fit another build.
Talents (Retail)
Myslot doesn't import talents with the rest of a profile, but helps you switch to them:
- The profile's talent loadout string is shown in the Talents box under the text box — click it to select the string and copy it with Ctrl+C, e.g. for the talent window's Import.
- When the profile's talents differ from yours, click Apply talents: they are saved as the talent loadout
Myslot(replacing the previous one) and the talent window opens with it selected. Review it there and click Apply Changes to switch to it. - A profile saved before a talent tree change (a patch or hotfix) shows Talents out of date; it can still be loaded, but check it carefully since talents may have moved.
- The profile must be for your current specialization, and talents can't be changed in combat.
Talent loadout strings only exist since Dragonflight, so none of this is shown on Classic versions.
Slash commands
| Command | Description |
|---|---|
/myslot |
Toggle the Myslot window |
/myslot load <ProfileName> |
Import a saved profile by name — put it in a macro to swap setups with one click |
/myslot clear action |
Clear every action bar slot |
/myslot clear macro |
Delete all macros |
/myslot clear binding |
Clear all key bindings (Blizzard defaults included) |
/myslot clear talents |
Delete the Myslot talent loadouts made by Apply talents, in every specialization (Retail; your talents in use are kept) |
/myslot trim [N] |
Keep only the newest N saved profiles (default 100) and reload the UI |
Get Myslot
- CurseForge — <https://www.curseforge.com/wow/addons/myslot>
- Wago — <https://addons.wago.io/addons/myslot>
Contributing
Source code lives on GitHub: <https://github.com/tg123/myslot>. Bug reports and pull requests are welcome.
Localization
Translations are welcome! Please submit them at <https://www.wowace.com/projects/myslot/localization>.
Build your own Myslot
- Clone the source code into
Interface\AddOns\Myslot
$ git clone https://github.com/tg123/myslot.git Myslot
- Run the tests (Lua 5.1 + luabitop)
$ lua5.1 ci/run.lua
- Run the tests in game — a git checkout loads the test suite (it is stripped from CurseForge/Wago packages), then type:
/myslottest -- run all tests
/myslottest <filter> -- run only tests whose name matches <filter>
The results are shown in a pop-up you can copy with Ctrl+A / Ctrl+C. Tests cannot run in combat.
Changing Protobuf
Myslot use a modified version of lua-pb to serialize/deserialize the data. You may want to change the data structure sometimes if you want add some new things to export.
Please check lua-pb about how to generate protobuf stub files.
Copyright and License
- Copyright (C) 2009-2026 by Boshi Lian <[email protected]>
- Use of this software for profit purposes are NOT allowed except by prior arrangement and written consent of the author.
- This software is licensed under the Apache License, Version 2.0
- All rights of Exported text are owned by end-users.
-
View User Profile
-
Send Message
Posted Jul 1, 2024The command /myslot load ProfileName no longer works. It just outputs "<Myslot>Profile to load found : Rogue", but there is no import. Can you please check?
-
View User Profile
-
Send Message
Posted Jul 2, 2024In reply to warkonaut:
fixed in 5.17.2
-
View User Profile
-
Send Message
Posted Jun 30, 2024Hi, when checking the ignore macro checkbox, is it supposed to also ignore the macros you placed on your action bars? I save my binds/macros/bars separately since I prefer to update my global binds/macro profiles separate of each other, so I ran into this issue where I have to place my macros back onto the bar after importing the action bar layout, even if the macros have the exact same name.
Also, the link to the github on this curseforge page has a type at the end with >
-
View User Profile
-
Send Message
Posted Jul 1, 2024In reply to psydfexrein:
short answer: yes, by design
myslot will have no idea which macro the actionbar slot is pointing to if macro are ignored in exported string.
myslot is designed to transfer settings between players. thus, myslot must make sure 100% cloned: the macro the slot point to will be exactly the same including the macro body
-
View User Profile
-
Send Message
Posted Jun 30, 2024Getting this when I log in and the addon won't start
7x Myslot/gui.lua:307: attempt to concatenate global 'ACTIONBAR_LABEL' (a nil value)
[string "@Myslot/gui.lua"]:307: in function `CreateSettingMenu'
[string "@Myslot/gui.lua"]:379: in main chunk
Locals:
opt = <table> {
ignorePetActionBar = false
ignoreActionBars = <table> {
}
ignoreBinding = false
ignoreMacros = <table> {
}
}
tableref = <function> defined @Myslot/gui.lua:69
childchecked = <function> defined @Myslot/gui.lua:83
childclicked = <function> defined @Myslot/gui.lua:87
parentchecked = <function> defined @Myslot/gui.lua:93
parentclicked = <function> defined @Myslot/gui.lua:104
actionbarlist = <table> {
1 = <table> {
}
2 = <table> {
}
3 = <table> {
}
4 = <table> {
}
5 = <table> {
}
6 = <table> {
}
7 = <table> {
}
8 = <table> {
}
9 = <table> {
}
10 = <table> {
}
11 = <table> {
}
12 = <table> {
}
13 = <table> {
}
}
(*temporary) = <table> {
}
(*temporary) = <table> {
hasArrow = true
checked = <function> defined @Myslot/gui.lua:93
notCheckable = false
isNotRadio = true
func = <function> defined @Myslot/gui.lua:104
arg1 = "action"
keepShownOnClick = true
menuList = <table> {
}
}
(*temporary) = <table> {
checked = <function> defined @Myslot/gui.lua:272
keepShownOnClick = true
notCheckable = false
text = "Key Binding"
func = <function> defined @Myslot/gui.lua:269
isNotRadio = true
}
(*temporary) = <table> {
hasArrow = true
checked = <function> defined @Myslot/gui.lua:93
notCheckable = false
text = "Macro"
func = <function> defined @Myslot/gui.lua:104
arg1 = "macro"
keepShownOnClick = true
menuList = <table> {
}
isNotRadio = true
}
(*temporary) = <table> {
}
(*temporary) = "Pet"
(*temporary) = " "
(*temporary) = nil
(*temporary) = "%s Specific Macros"
(*temporary) = ""
(*temporary) = "attempt to concatenate global 'ACTIONBAR_LABEL' (a nil value)"
menuFrame = Frame {
0 = <userdata>
Text = UIParentText {
}
Icon = UIParentIcon {
}
Button = UIParentButton {
}
Right = UIParentRight {
}
Middle = UIParentMiddle {
}
Left = UIParentLeft {
}
}
L = <table> {
Stance Action Bar = "Stance Action Bar"
Key Binding = "Key Binding"
Myslot = "Myslot"
Main Action Bar Page = "Main Action Bar Page"
Ignore during Import = "Ignore during Import"
Close = "Close"
Import = "Import"
}
-
View User Profile
-
Send Message
Posted Jun 30, 2024In reply to Mythris: fix in 5.17.1 thanks
-
View User Profile
-
Send Message
Posted Jun 12, 2024Removed temporary code as author fixed it. Thanks Oishii
-
View User Profile
-
Send Message
Posted Jun 14, 2024In reply to tjocksmock:
fixed in 5.15.1
-
View User Profile
-
Send Message
Posted Jun 11, 2024This is the single best addon ive encountered in years. THANK YOU
-
View User Profile
-
Send Message
Posted Jun 14, 2024In reply to photonz_:
/love
-
View User Profile
-
Send Message
Posted Jun 9, 2024Any chance for a version that works with The War Within Beta? Could really use this to copy everything from Live. :)
-
View User Profile
-
Send Message
Posted Jun 11, 2024In reply to oakensoul:
Updated TWW support in 5.15
-
View User Profile
-
Send Message
Posted Jun 11, 2024In reply to oishii1992: Thanks SO Much!
-
View User Profile
-
Send Message
Posted May 22, 2024Are the chat tab presets able to be added to this export? The combat log (thankfully) keeps its config account wide, but I have to remake my chat tabs, PMs, Loot, /say, etc on every new char.
-
View User Profile
-
Send Message
Posted May 25, 2024In reply to psydfexrein:
layout or something else you wish to export and import?
-
View User Profile
-
Send Message
Posted May 25, 2024In reply to oishii1992:
The channel filters, I have one for PMs, Loot, /say, trade (and a junk tab so they aren't auto added into the general tab). The layout I just use a global edit mode config for.
For instance, this is my Loot tab filter, with everything else in the other sections unchecked as well. These are the settings I'd want to also have backed up. https://imgur.com/a/Vb4n2Cm
Edit, Also, the background transparency is annoying to have to change for each chat tab. I usually have it at about 75% alpha to make it readable above bright textures.
-
View User Profile
-
Send Message
Posted May 10, 2024Needs update of TOC files for Cata Classic https://i.imgur.com/JBFx5Zi.png
-
View User Profile
-
Send Message
Posted May 7, 2024Hi,
Could you update it to the latest Classic Era Game Version of 1.15.2?
Would be awesome, thanks a lot in advance!
-
View User Profile
-
Send Message
Posted May 11, 2024In reply to maximus210793:
done
-
View User Profile
-
Send Message
Posted May 2, 2024Cataclysm update please?