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 Aug 22, 2026In reply to Zevyn:
could you please share more detail error ?
-
View User Profile
-
Send Message
Posted Aug 22, 2026@oishii1992 @oishii1992 Hi oishii, since 6.1.0's update I've been able to save and import myslot profiles again.
Just looking at my BugSack history, I believe the error was the same one posted above, pertaining to MAX_ACCOUNT_MACROS changing.
5x Myslot/Myslot.lua:532: attempt to perform arithmetic on global 'MAX_ACCOUNT_MACROS' (a nil value)
[Myslot/Myslot.lua]:532: in function 'FindMacro'
[Myslot/Myslot.lua]:714: in function 'RecoverData'
[Myslot/gui.lua]:481: in function 'OnAccept'
[Blizzard_StaticPopup/StaticPopup.lua]:713: in function 'StaticPopup_OnClick'
[Blizzard_StaticPopup_Game/GameDialog.lua]:48: in function <...faceBlizzard_StaticPopup_Game/GameDialog.lua:46>
Locals:
self=<table>{
R_KEYS=<table>
MOD_KEYS=<table>
ast=<table>
L=<table>
KEYS=<table>
BINDS=<table>
R_BINDS=<table>
crc32=<table>
settingcategory=<table>
MainFrame=Frame <gui.lua:9>
base64=<table>
R_MOD_KEYS=<table>
SLOT_TYPE=<table>
luapb=<table>
}
macroInfo=<table>{
body="#showtooltip 14"
icon="134501"
name=" ."
oldid=1
}
localMacro=<table>
(*temporary)=1
(*temporary)=nil
(*temporary)=nil
(*temporary)=nil
(*temporary)=nil
(*temporary)=nil
(*temporary)=nil
(*temporary)=nil
(*temporary)=nil
(*temporary)=nil
(*temporary)="attempt to perform arithmetic on global 'MAX_ACCOUNT_MACROS' (a nil value)"
-
View User Profile
-
Send Message
Posted Aug 18, 2026Import‑export for character‑specific macros can only save 3 lines of macro commands, while there are 5 lines in total. This issue did not seem to exist before 12.1.
-
View User Profile
-
Send Message
Posted Aug 22, 2026In reply to 霓裳舞:
please check if 6.1.0 fixes it
-
View User Profile
-
Send Message
Posted Aug 15, 2026When I import my action bar that has all my mounts, I get for most mounts the message: "<Myslot> Use random mount instead of unattained mount" even though I have attained the mounts in question as I am using the import on the same account, just a different alt.
-
View User Profile
-
Send Message
Posted Aug 22, 2026In reply to marsdiep:
please check if 6.1.0 fixes it
-
View User Profile
-
Send Message
Posted Aug 13, 2026/myslot not opening for ptr.
-
View User Profile
-
Send Message
Posted Aug 16, 2026In reply to ogvnshy:
do you mean 12.1.5?
-
View User Profile
-
Send Message
Posted Aug 13, 2026Import with error occupied
-
View User Profile
-
Send Message
Posted Aug 16, 2026In reply to gigantic_bassi84:
could you please more detail?
-
View User Profile
-
Send Message
Posted Aug 13, 2026character‑specific macros fail to import/export correctly(only import 18 character‑specific macros).
-
View User Profile
-
Send Message
Posted Aug 16, 2026In reply to qingxuqingxu:
fixing in next version
-
View User Profile
-
Send Message
Posted Aug 12, 2026I'd like to report a UI issue with the MySlot export feature.
Currently, the text in the export window is always in a fully selected state. This makes it extremely difficult to manually select and copy only the talent code, as I can't highlight just that specific part.
Could you please look into this issue? Thanks for your hard work on this great addon!
-
View User Profile
-
Send Message
Posted Aug 13, 2026In reply to wt345316277:
agree, let me think how to optimize it
-
View User Profile
-
Send Message
Posted Jun 23, 2026It completely resolved. Importing keybindings only took about 0.5 seconds, and none of my macros or keybinds went missing like they did before.
-
View User Profile
-
Send Message
Posted Jun 25, 2026@霓裳舞 this is fixed and thanks, will release new version soon
-
View User Profile
-
Send Message
Posted Jun 26, 2026@oishii1992 I’ve found the root cause of the lag, missing macros and lost keybinds. When my EllesmereUI action bars are set to only show on mouse hover, MySlot experiences severe lag during import/export. This issue never occurs if I set the bars to stay permanently visible instead.
Earlier when I commented that the bug seemed fixed, it was just a coincidence — I had accidentally disabled the hover-only display for all my action bars at that time. With this new information, could this bug be resolved in a future update?
-
View User Profile
-
Send Message
Posted Jun 27, 2026@霓裳舞 please check v6.0.0,
-
View User Profile
-
Send Message
Posted Jun 22, 2026it cost very long time to import my slot and cant import correctly with EllesmereUI addons.and i catch a bug ,i dont know which wrong with myslot or EllesmereUI
1x Myslot/Myslot.lua:532: script ran too long
[Myslot/Myslot.lua]:532: in function 'FindMacro'
[Myslot/Myslot.lua]:557: in function 'FindOrCreateMacro'
[Myslot/Myslot.lua]:710: in function 'RecoverData'
[Myslot/gui.lua]:481: in function 'OnAccept'
[Blizzard_StaticPopup/StaticPopup.lua]:680: in function 'StaticPopup_OnClick'
[Blizzard_StaticPopup_Game/GameDialog.lua]:46: in function <...faceBlizzard_StaticPopup_Game/GameDialog.lua:44>
-
View User Profile
-
Send Message
Posted Jun 14, 2026Cooldown Manager support would be so nice. I have to take screenshots to make sure things are set up properly. It is part of the game's base UI.