This is a guest post by Robb Fulks
DISCLAIMER: This particular method only works in Windows Vista or Windows 7. I have no access to an XP machine for testing or alternatives. Use at your own risk. This site, its owners and affiliates cannot be held responsible for any problems that might occur.
Lots of us toy with addons, and have our interfaces just as we want them. Others tinker and meddle with everything, always. What happens when you share a computer with someone? Or a patch won’t install, and you have to do a reset and repair? What if you want your perfect UI ready in an instant to raid with, but you want a testing environment to try out your new layout ideas? Most people will just advise you to copy your entire /World of Warcraft folder, paste it beside the original, and make shortcuts from that folder to WoW.exe or Launcher.exe. Indeed works like a charm, and I will not advise you otherwise if you have space to burn and time to kill. Why time to kill? You have to patch each install separately. And you know how long THAT would take, even if you copied the patch file you downloaded to each folder. And how big is that folder? Huge. My "stripped" install is almost 17 gigabytes. Almost all of that is "\World of Warcraft\Data" That’s pretty huge to copy over and over. So let’s not.
The magic sauce in my solution involves making symlinks and Directory Junctions to share that huge \Data folder among all your sandbox installs. It takes just a little Windows command-line voodoo, and some simple copy and paste. On Mac and Linux, you have your own tools to do what I will describe, so I’m sure you can steal this concept for yourselves, and probably implement it easier.
Step 0: Make sure you are patched up!
Never start this process without making sure you are completely installed and patched up. Patching from a sandbox install leads to weirdness. Again: Patching from a sandbox install makes things weird. Don’t. Patch up before you do this, and when you patch again, patch from your original installation. Always.
Step 0.5: Now that you are patched, backup or delete all those patch files!
You could burn them to a DVD, move them to a new folder, whatever you chose to do with them, but I like to get them out of the folder. Anything with a version number glommed onto it is fair game for moving or deleting. Anything with the word "downloader" in it is fair game for outright deletion, even if you are backing up your patch files. The reason for this is we are going to be copying all the essential files to run WoW into our new sandbox folder, and why copy things that will never be checked until the next patch? After all major patches, you should repeat this process of managing your patch files and recopying these fresh files into each of your sandboxes. All of these files together are around 21 MB. If you keep all your patches, it’s closer to 200-400 MB. Which ever you are more comfortable with and have the space for.
Step 1: Create the sandbox installation folder.
Create a new folder alongside your World of Warcraft folder. Not inside it, but next to it. That could be in "/Program Files", or in "/Users/Public/Games", depending on your Windows version. I’m calling mine WoWTestbed. the reason for the folder being in this location, and not elsewhere is so your updaters will pick it up. Curse Client will detect both as discrete installations, and update as such. Otherwise, if you don’t mind manual configuration, put the testbed anywhere you want.
Step 2: Create a a Directory Junction between the /World of Warcraft/Data folder and the /WoWTestbed/Data folder.
This is where the command line voodoo comes in. Do not fret. It’s easy. The command involved is called "mklink", and How-To Geek has a great overview of the command. We will be creating a Directory Junction, which uses the switch "/J". The command is a little wonky in that the links are created "backwards". The link order in the command is "To" to "From", not "From" to "To". In this case, we would use:
mklink /J "C:\Users\Public\Games\WoWTestbed\Data" "C:\Users\Public\Games\World of Warcraft\Data"
This should create a hard link between the two, meaning when you go into "C:\Users\Public\Games\WoWTestbed\Data", you should see the full contents of "C:\Users\Public\Games\World of Warcraft\Data". Try that now. See?
Step 3: Copy the needed game files into the sandbox installation folder.
Copy the contents of "Users\Public\Games\World of Warcraft", not it’s subfolders, and paste them into "\Users\Public\Games\WoWTestbed\" You do not need any other folders in "\Users\Public\Games\WoWTestbed\" other than the link to "\Data". /WTF, /Cache, /Interface, all the other necessary folders will be created the first time you launch the game.
Step 4: Launch the Game.
Navigate to your /WoWTestbed folder, and double-click WoW.exe. You should know it all worked out fine if you see the first-run cinematic, and your login screen is lower resolution than usual. Log in and you should see a stock interface! It’s all over but the shortcuts!
Step 5: Create desktop shortcuts to your new testbed installation
While you have that folder open, right-click WoW.exe and choose Send To > Desktop (create shortcut). Name this shortcut "WoWTestbed". It is also a good idea to make a copy of the original World of Warcraft shortcut and rename it. I have renamed mine "WoWDefault". The reason for this is that WoW itself will create and modify the standard "World of Warcraft" desktop shortcut, which may spoil our custom shortcuts. For instance, if you check "Show Launcher" from the login screen, it will change the shortcut from WoW.exe (if it was set there originally), to Launcher.exe. Making a copy of the default shortcut gives us control over both the testbed and the main installation.
Step 6: Profit!
That’s it! You should be able to launch your default WoW setup separately from your testbed setup, and create as many of these installations as you wanted to, as long as the folder names are different.
But what do I do with it?
Case 1: My girlfriend plays on my account. She loves her interface, and I love to try new things. I could just enable and disable addons willy-nilly, but that gets old quick, and often I screw up something anyway. I created a testbed for myself, so I can tweak and twiddle to my heart’s content without disturbing her settings.
Case 2: You’re an addon developer, and you need different environments with different setups to test your code. Create as many as you’d like.
Case 3: Multiboxing. Enough said.
Case 4: Patch day sadness. Patch won;t install? Have to do one of those "Repair and Resets"? Don’t want to wipe your UI, or count on the Blizzard Repair Tool to back everything up totally? Create a bare testbed, and log in and try patching with that. The most work is done in the Data folder, so it can wreck the sandbox all it would like, while tending to your /Data. I used this just today. My main UI would not load fully, getting to a full load bar and stopping. Instead of unloading all addons, I created a bare testbed and logged in and put with it. Loaded fine. Back to my main, untouched UI, and the same character now loads.
I encourage any interface enthusiast or Lua jockey to at least give this a try. It works wonders so far!

Clever. I use mklink to store my log files on a regular HDD and all WoW files on a zippy SSD (because writing to a SSD is quite slow).
However, aren’t key bindings and other settings held on the server? Or am I mistaken?
[...] This post was mentioned on Twitter by wowplayer, No Stock UI. No Stock UI said: Making a World of Warcraft User Interface Sandbox: This is a guest post by Robb Fulks DISCLAIMER: This particular … http://bit.ly/b9gRoL [...]
I’ve been doing this for years — however as opposed to making an entirely different WoW directory (that you have to also patch come each path) — I just make subfolders in the Interface & WTF folders.
Like this:
Interface\Addons (Symlink that points to the “active” set)
Interface\Addons-Live
Interface\Addons-Dev
Same setup in the WTF folders, then I just had a script that I could launch to change the links when needed between live and dev.
I make a link to the addons folder as well since that means I only need to download updates into one location. Since the settings for the addons are stored in the WTF folder I can still muck around with different settings. Only thing is I have to remember to disable all the stuff I’m downloading in my other installs. (I do this for multiboxing and want my ‘follow’ character to have minimal addons turned on)
Tara´s last blog ..Downed Mr Lich King
This worked a treat, hardest part (if you call it that) was getting the Junction setup on Windows XP. If you don’t have the resource kit, you’ll need an app to help create the Junction points. I used Junction Link Magic, which has a nice GUI and worked a treat.
That’s a cool idea.
BTW, this can also work in XP, as it does have support for junctions. You need to use the Sysinternals tool junction instead of mklink: http://technet.microsoft.com/en-us/sysinternals/bb896768.aspx
This is actually pretty cool! Thank you.
[...] NoStockUI) Making a World of Warcraft User Interface Sandbox (link) (via The Mana Obscura) The Campaign For Cheese Sculpting (link) (via Lorehound) Haiku contest [...]
Seems like a lot of work. I just create a new copy of the wow install. maybe I’m missing the whole point?
Mat´s last blog ..Armory Sync doesn’t correctly Update Rank (Fix Included)
@Squiggle: I believe only macros are stored on WoW’s servers. Key bindings, screen resolution, sound settings, mods, etc are all stored locally. Don’t know why macros are stored server-side actually as if I want to play WoW on another computer, I’ll put my game on a USB stick.
@Mat: Your way is quicker and easier true, but this method 1) saves hard drive space, 2) allows you to start WoW with a fresh, default UI, hence the point behind the article, and 3) is cooler from a geek cred standpoint. :D
FYI, the curse client will currently not auto update addons for the 2nd/3rd installs if your a premium user.
Current bug report is listed here:
http://clientsupport.curse.com/ticket.aspx?id=4037
Here’s how you do this on Mac OSX. Create the sandbox folder as described in step 1 above. To create the “junction” you’ll need to create a symbolic link. In the terminal change directory to the sandbox folder like so:
cd “/Applications/WoW Sandbox”
Assuming you have WoW installed at /Applications/World of Warcraft. Then do the following to create a symbolic link to the Data folder:
ln -s “../World of Warcraft/Data”
Then continue at step 3!
Here’s how you do this on Mac OSX. Create the sandbox folder as described in step 1 above. To create the “junction” you’ll need to create a symbolic link. In the terminal change directory to the sandbox folder like so:
cd “/Applications/WoW Sandbox”
Assuming you have WoW installed at /Applications/World of Warcraft. Then do the following to create a symbolic link to the Data folder:
ln -s “../World of Warcraft/Data”
Then continue at step 3!
Don’t make the mistake I did when doing junction and delete the data folder that is in the testbed. It deletes the main data folder and now I’m in for a fun time reinstalling.
[...] Making a World of Warcraft User Interface Sandbox [...]
does this require gametime to use it?
I’m assuming you mean you have a pre-paid account. You would need to have paid to log in, so yes you would need gametime. This does not circumvent Blizzard’s accounting system, it just allows you to have more than one UI.