I have been playing World of Warcraft (WoW) on and off ever since 2005. Customising the user interface has always been a big part of the experience for me. I love being able to customise the interface entirely to my likes and needs.
Digging through my old screenshots from around 2007 we see what I was doing with my interface back then. My screenshots go back to when I was still using a 4:3 screen, good old times. The 3rd screenshot is when I started using UI compilations from other people, this one was called Caith UI.
Around 2016 during and after the Legion expansion I started using the popular ElvUI compilation which includes a lot of configurable options and covers almost the entire WoW UI. Below are three screenshots which show the evolution of my setup going from Legion to Battle for Azeroth to current expansion Shadowlands.
For my current setup I have taken inspiration from various other people their UI setups. Combining what I like and what works for me. Currently my setup resembles RedTuzkUI the most; But I have set mine up manually using ElvUI, various other addons and a few small .lua additions I made.
The main idea behind the layout is to have all interface essentials neatly grouped and in proximity of the character area to minimize having to scan the entire screen. The interface essentials part has all the vital information you need at your fingertips. The character area is mostly free of UI elements to make it easy to focus on the things happening in the game world. The rest of the elements can go to the sides and have a minimal design as these elements are only read when needed. The elements on the sides have a more minimal design to not cover up the screen with interface elements.
When I am not doing any group content but just playing the game solo PvE the interface is as minimal as possible to enjoy the games’ visuals. When not in combat most elements fade out or are hidden completely until engaged in combat.
The objective tracker that includes the questlog is one of the elements I influenced with custom lua code. When not in a group it is located in the top left, but when doing group content with more than 5 people (a raid) the tracker is moved to the right below the minimap. This is done because the raid interface elements are on the left. Moving the tracker based on conditions wasn’t possible so I written some lua that handles it.
The code is a very simple check that happens based on the RAID_ROSTER_UPDATE event which is one of the many interface events you can subscribe your own custom code to. Whenever your group size changes it checks if you are in a raid (5+ players usually) and if that is true and the tracker has not been moved yet we move the tracker to the position used for raid groups. The extra check is there to prevent the MoveTrackerForRaid() method executing everytime the group size changes. We only need to move the tracker once.
A functionality I wanted was to know the total value of all the items in my bags. The addon Auctionator already stores the value of individual items so I was looking for a way to scan my bags and add all the values up. After doing some searching I found some custom code a user has made to do just that but it wasn’t working anymore due to addon and API changes.
I have modified this code so that it works again for me. I have also registered the code to a slash command; typing /bagsvalue in the chat will run the code.
My main UI profile also has the action bars hidden since I am using a custom display to show skill buttons. The action bar is still needed when you are in a vehicle as this modifies your skills to that of the vehicle and you want to see those buttons on the bar.
Toggling visibility of the action bar based on your character being in a vehicle is not possible with ElvUI, but luckily there are UI events surrounding vehicles! I have written a piece of code that toggles the visiblity of the main action bar when you enter a vehicle and turns it off again when you leave the vehicle.