Item equipping Without macros . Note that the need for macro juggling to switch equipment is all but gone with the advent of AddOns such as ItemRack or Outfitter . These addons can themselves be controlled with macros if you like : - ) Basics . codice _ 1 Bags count from 0 to 4 from the right , 0 being your backpack and 4 being your leftmost pack . Slots are numbered starting at the topmost , leftmost slot and counting left to right , top to bottom . For example , a 10 - slot pack is numbered like this : codice _ 2 To access the first slot on the leftmost bag , the script would be codice _ 3 The basic command works like this : / script PickupInventoryItem ( inventorySlot ) Picks up / puts down / switches item into the specified slot . See InventorySlots for ids and mappings . Better method : / script UseContainerItem ( bag , slot ) ; Will automatically equip the item referenced by bag , slot , placing any existing already equipped item in the bag slot . Yes , this is undoubtedly easier . . . until you start dealing with dualwielding . At which point UseContainerItem stops being nice . - - Please be very careful when using the UseContainerItem ( bag , slot ) command . If you are talking to a vendor and use this macro ( assuming no safety measures in the script ) then all your macro items will be sold . I just managed to sell 7 items to a vendor . Fortunately , I was able to retrieve the last item and Blizzard restored the other equipment items for me . For those of us that are prone to doing this you can do a check to see if you are interacting with an NPC . example weaponswap ( 2H < - > 1H / OH ) : codice _ 4 The best method for ensuring that you do not accidentally sell anything to a vendor is : codice _ 5 The aforementioned if - then script can still fail if you are in a vendor window and target another entity , whereas the CloseMerchant script will always close any merchant window . It ' s also much shorter , so you can fit more lines of item swapping into the character - limited macro box . - - Multiple commands . There is a problem when executing multiple Pickup commands because they execute instantaneously on your client , which is not always synched with the server . Therefore , follow these simple guidelines : Good luck ! Weapon swapping scripts . NOTE : When copying the scripts , make sure they end up on ONE line . Also , you will NEED to change the offhandBag , offhandBagSlot and mainhandBag , mainhandBagSlot names to actual numbers , as the scripts will NOT fit in a macro as it is . From mainhand / offhand to mainhand / offhand . Script to swap items in both hands to other items in both hands . offhandBag , offhandBagSlot and mainhandBag , mainhandBagSlot need to be specified ( duh ) . codice _ 6 From mainhand to mainhand / offhand . Script to switch from item in main hand to other items in both hands . offhandBag , offhandBagSlot and mainhandBag , mainhandBagSlot need to be specified ( duh ) . Weapon in main hand will end up in mainhandBag , mainhandBagSlot . codice _ 7 Switch from a 2h to 1h + shield codice _ 8 Any to Any . Script to swap from one set of weapons to another , in any combination . I ' ve included an expanded version of the somewhat obfuscated code , although it ' s a too long to be usable itself . The CloseMerchant ( ) call is included for safety reasons . The shorter version uses bag 3 , slot 5 for the main weapon and bag 4 , slot 6 for the offhand item , whereas the expanded version uses more descriptive terms for those locations . Note that the held weapons will end up in those inventory slots after the swap , so if you ' re swapping between a two - handed weapon and a one - handed + offhand configuration , you ' ll need to leave the offhand bag slot empty while you ' re wielding it , or swapping it out won ' t work properly . " / script local a , b , c = CursorHasItem , PickupInventoryItem , PickupContainerItem ; if ( not a ( ) ) then CloseMerchant ( ) ; b ( 17 ) ; if ( a ( ) ) then c ( 4 , 6 ) ; c ( 4 , 5 ) ; b ( 16 ) else c ( 4 , 5 ) ; b ( 16 ) ; c ( 4 , 6 ) ; b ( 17 ) end end From mainhand to mainhand . Script to switch from item in main hand to another item in the main hand . mainhandBag , mainhandBagSlot need to be specified ( duh ) . The equipped weapon will end up on mainhandBag , mainhandBagSlot . codice _ 9 Swap Mainhand and Offhand Weapons . This script is pretty simple . On my rogue I wanted to switch my offhand to my mainhand , and vice - versa ( use dagger for ambush , then swap so I can SS with the sword ) . You can accomplish this with a very simple macro that will swap back and forth each time you use it . - - codice _ 10 Simple Macro with item slots . codice _ 11 Basically this equips the item specified in your bag to the inventory slot indicated by the first number in your macro . An example would be : codice _ 12 This equips a weapon to your main hand found in your last bag in the first slot . Essentially this accomplishes the same as the scripts from above but with much less characters , leaving your macros free to do other things . With Cosmos . If you are using Cosmos , you can use the following commands : Simple Swap Without Itemslots . Halow ' s Item Switch ( 1h + Shield to 2h ) I don ' t know about you guys but I cant stand item slot specific macros , to complicated for me and a waste of macro space . So I made this little gem . . . codice _ 13 Note * * make sure you don ' t put the < > around your weapons . This macro will equip your 1handed weapon and your shield / offhand weapon when you click it , and when you click it while holding down shift it will equip your 2handed weapon . This should also work for dual wield to 2hander though I haven ' t tested it . Weapon Swap Using Equipment Manager . NOTE : You ' ll have to activate your the Equipment Manager first ( Options > Interface > Features > [ X ] Use Equipment Manger ) , it will appear at the top right corner of your character frame . The next step is to create a set for each weapon you want to use in your macros . It ' s important to deactivate all the other item slots , you simply click the yellow arrow at each slot and choose " Ignore this slot " , this will prevent Error messages in combat . After you ' ve created the weapon sets , you can include them in your macros using this command : codice _ 14 Replace SetName with the exact name of your own weapon set . The advantage of this method is , in comparison to the / equip and / equipslot commands , that it works better when lags appear . Of course it ' s possible to include multiple sets in one macro using modifiers as shown above .