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 Oct 27, 2022Importing does not seem to work. I just have blank action bars.
-
View User Profile
-
Send Message
Posted Oct 27, 2022In reply to DiscordianKitty:
There's just been an update which has a fix to "support extra bars for dragon flight" -- hopefully that fixes your issue.
I think I had the same issue when I tried myslot earlier in the week for action bar 6, but haven't had time to test this version.
-
View User Profile
-
Send Message
Posted Oct 27, 2022In reply to Quartzfire:
Thanks LMK if you still have issues
-
View User Profile
-
Send Message
Posted Oct 27, 2022In reply to oishii1992:
Hi,
Just tested on 1 alt (hunter) - seems to have resolved what I saw earlier in the week - many thanks :-)
I'll get around to the rest of my alts at the weekend and feed back if I see any issues.
Thanks for your quick work on the updates.
-
View User Profile
-
Send Message
Posted Oct 30, 2022In reply to oishii1992:
Hi,
I think I've spotted one issue, and one observation.
Observation - Racial abilities do not copy across if the alt isn't of the same race (obvious) i.e. Escape Artist (Gnome Racial). Not sure if there could be an option to ignore racial abilities?
Issue - on Ret Paladin, "Radiant Decree" doesn't copy across. It is in my talents, but it's initially "Wake of Ashes" which is replaced by Radiant Decree. I can drag it manually from the Ret tree.
Error I get is " <Myslot>Ignore unlearned skill [id=383469], [Radiant Decree]"
Not sure if this will help you or not ==> https://imgur.com/a/7rg39LN
Cheers,
Quartz
-
View User Profile
-
Send Message
Posted Oct 31, 2022n reply to Quartzfire:
https://www.wowhead.com/spell=383469/radiant-decree
https://www.wowhead.com/spell=384052/radiant-decree
are indeed two different skills technically
hmm it is too hard to map all similar skills from race to race,
still need to re-think how to handle such case
-
View User Profile
-
Send Message
Posted Oct 31, 2022In reply to oishii1992:
Thanks again for your quick responses :-)
-
View User Profile
-
Send Message
Posted Oct 23, 2022I have an issue (Wrath Classic) where I cant delete TBC era Templates for my warrior. Deleting Addon folder doesnt work, and I would prefer not clear the whole WTF folder. Any suggestions?
-
View User Profile
-
Send Message
Posted Oct 23, 2022In reply to Tertran:
any errors?
please /console scriptErrors 1 and /reload
delete it again, send me any errors poped up
-
View User Profile
-
Send Message
Posted Oct 27, 2022Here is the output that I get:
Message: Interface\AddOns\Talented\encode.lua:179: assertion failed!
Time: Thu Oct 27 22:56:56 2022
Count: 1
Stack: Interface\AddOns\Talented\encode.lua:179: assertion failed!
[string "@Interface\AddOns\TradeSkillMaster\LibTSM\Service\ErrorHandler.lua"]:761: in function <...Ons\TradeSkillMaster\LibTSM\Service\ErrorHandler.lua:717>
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "@Interface\AddOns\Talented\encode.lua"]:179: in function `StringToTemplate'
[string "@Interface\AddOns\Talented\encode.lua"]:263: in function `UnpackTemplate'
[string "@Interface\AddOns\Talented\core.lua"]:250: in function `OpenTemplate'
[string "@Interface\AddOns\Talented\ui\menu.lua"]:51: in function `func'
[string "@Interface\FrameXML\UIDropDownMenu.lua"]:944: in function `UIDropDownMenuButton_OnClick'
[string "*:OnClick"]:1: in function <[string "*:OnClick"]:1>
Locals: errMsg = "Interface\AddOns\Talented\encode.lua:179: assertion failed!"
isBugGrabber = nil
tsmErrMsg = nil
oldModule = nil
private = <table> {
globalNameTranslation = <table> {
}
FormatErrorMessageSection = <function> defined @Interface\AddOns\TradeSkillMaster\LibTSM\Service\ErrorHandler.lua:517
ErrorHandler = <function> defined @Interface\AddOns\TradeSkillMaster\LibTSM\Service\ErrorHandler.lua:134
origErrorHandler = <function> defined @Interface\AddOns\RCLootCouncil_Classic\RCLootCouncil\Core\ErrorHandler.lua:144
hitInternalError = false
CreateErrorFrame = <function> defined @Interface\AddOns\TradeSkillMaster\LibTSM\Service\ErrorHandler.lua:536
num = 0
SanitizeString = <function> defined @Interface\AddOns\TradeSkillMaster\LibTSM\Service\ErrorHandler.lua:510
AddonBlockedHandler = <function> defined @Interface\AddOns\TradeSkillMaster\LibTSM\Service\ErrorHandler.lua:502
GetStackLevelInfo = <function> defined @Interface\AddOns\TradeSkillMaster\LibTSM\Service\ErrorHandler.lua:344
ParseLocals = <function> defined @Interface\AddOns\TradeSkillMaster\LibTSM\Service\ErrorHandler.lua:396
ignoreErrors = false
errorReports = <table> {
}
IsTSMAddon = <function> defined @Interface\AddOns\TradeSkillMaster\LibTSM\Service\ErrorHandler.lua:478
localLinesTemp = <table> {
}
GetStackInfo = <function> defined @Interface\AddOns\TradeSkillMaster\LibTSM\Service\ErrorHandler.lua:313
}
MAX_STACK_DEPTH = 50
OLD_TSM_MODULES = <table> {
1 = "TradeSkillMaster_Accounting"
2 = "TradeSkillMaster_AuctionDB"
3 = "TradeSkillMaster_Auctioning"
4 = "TradeSkillMaster_Crafting"
5 = "TradeSkillMaster_Destroying"
6 = "TradeSkillMaster_Mailing"
7 = "TradeSkillMaster_Shopping"
8 = "TradeSkillMaster_Vendoring"
9 = "TradeSkillMaster_Warehousing"
}
-
View User Profile
-
Send Message
Posted Oct 28, 2022In reply to Tertran:
the error you posted is from
Talented
TradeSkillMaster
not myslot
-
View User Profile
-
Send Message
Posted Oct 23, 2022How do I get rid of this addon? i deleted it from teh folder and it still shows up on the minimap?
-
View User Profile
-
Send Message
Posted Oct 23, 2022In reply to kreahk2018:
like all other addons, you can delete the folder from
-
View User Profile
-
Send Message
Posted Oct 14, 2022On the latest Dragonflight PTR, I had a LUA error exporting (was still able to grab the text), but I can't successfully import.
-
View User Profile
-
Send Message
Posted Oct 14, 2022In reply to coldalloy:
I do not have acc nor PTR acc at the moment, but will definitely fix it
-
View User Profile
-
Send Message
Posted Oct 15, 2022In reply to coldalloy:
In reply to coldalloy:
hello, do you have some special new skill?
you can email me for inspection
just download and found I can play PTR for free
-
View User Profile
-
Send Message
Posted Oct 26, 2022In reply to oishii1992:
Unless I'm doing something wrong, this no longer works with the new UI update. I did try the beta version of this addon as well, but still couldn't get it to work.
-
View User Profile
-
Send Message
Posted Oct 23, 2022In reply to coldalloy:
How do I get rid of this addon? i deleted it from teh folder and it still shows up on the minimap?
-
View User Profile
-
Send Message
Posted Oct 13, 2022Is there a way to macro a keybind/ shortcut for different profiles?
Instead of needing to open the addon, selecting the profile and hit import every time?
This addon is a lifesaver, truly appreciate your work!
-
View User Profile
-
Send Message
Posted Oct 14, 2022In reply to Tenzo1o1:
the import process is too slow, I do not think you can do it with a simple click