From WowAce Wiki
Jump to: navigation, search
Create and modify panels and art
TOC 2.3 (20300)
Category Interface Enhancements Addons
Author Evil Elvis
Version 2.0
Embeds Ace2, DewdropLib, FuBarPlugin-2.0, LibSharedMedia-2.0, Waterfall-1.0
OptionalDeps FuBar, SharedMedia-2.0
Betas Ace SVN Zip
Changelog FishEye

eePanels has undergone a significant rewrite, and many new features have been implemented, and I consider it a 2.0 release. Unfortunately, the downside is your existing eePanel layouts are not compatible with the new version. Don't try to use eePanels and eePanels2 at the same time.


aims to ease the creation and modification of panels (frame) through both a FuBar/Dewdrop menu system and a Waterfall GUI. You can do many things with eePanels, including modifying the size, position, background color and opacity of panels and textures placed within the panels. You can also parent panels to other frames and attach scripts to your panels.
What eePanels Is Not 
This is not Skinner. This addon doesn't modify your existing frames, and isn't meant to. While it's possible to mimic some of Skinner's functionality by setting a panel's Parent value, it's main purpose is to allow you to quickly and easily create new panels and display textures on your screen.

Likewise, it's not Aperture. It has no built-in way to modify your viewport settings. Again, you can somewhat mimic this affect by creating black panels, setting the width or height to 100%, and moving them to the sides of your screen.

If you want the functionality of either of these mods, it's best that you use them. This mod will not replicate their behavior.
What's been changed in eePanels2 from eePanels(1)?
  • Major rewrite; less bloat, cleaner
  • Embedded waterfall menu; shift-click on eePanel icon to open
  • All panel options now available in Global Settings
  • Individual panel locking; lock/unlock all panels through global options
  • Ability to move/resize panels not parented to UIParent
  • Individual panel dewdrop menus; right-click on an unlocked panel to display
  • Warning messages for when you should perform a /reload
  • Changing profiles no longer requires a /reload for the panels to appear
  • Global Settings panel filters implemented; only change certain panel's settings
  • User-supplied lua scripts; ability to add your own lua scripts to perform non-native tasks, etc.
  • Support for panel anchoring
  • Copy & Paste functionality

Quick Links

Screenshot using textures from XArt: [1]
example UI 1
example UI 2
Forum Post 
If you have any questions, bug submissions, or requests, please post them them in the thread:


(Note: These two tutorials are for the original version of eePanels, but should give everyone a starting point.)

Creating & Displaying Textures by Demisirius
General Tutorial by Seito

User Guide

eePanels can be configured through its FuBar menu, a waterfall GUI (shift-click the eePanels icon), or by right-clicking on an existing panel.

Creating Panels 
When you move to the New Panel, there are two options: From Global Settings and From Default Settings.

What's the difference between the two? From default settings will basically just create a panel on your screen based on the addon's default settings. From global settings will create the panel based on any global value settings you've set – this is an easy way to create many panels with the same settings.
Moving A Panel 
You can either move a panel by changing its Horizontal/Vertical coordinates, or by unlocking the panel and dragging it around with the mouse. A panel is unlocked by default when it is created.

By default, the horizontal (x), and vertical (y) position of your panel is based on the panel's center in relation to the center of the game screen. This can be changed in the panel's options. For example, you can have its x,y position based on the top-left corner of the panel in relation to the top-left corner of the screen. If you find a panel missing off of your screen, make sure that you check its anchor points and x,y offsets.

Note:If the panel's highlight color is yellow when it's unlocked, it is parented to another frame in your UI – not the UI parent.
Resizing A Panel 
You can resize a panel by changing it's Height or Width values. You may enter pixel values, or percentages. This percentage is based on the panel's parent (which is the entire game window by default). Percent values can include a decimal, such as 33.33%

You can also resize a panel by unlocking the frames, and dragging from the bottom-right corner of the frame.

Note:If the panel's highlight color is yellow when it's unlocked, it is parented to another frame in your UI – *not* the UI parent. There's also a 16x16 size limit on a panel you resize by mouse. This is to make sure you don't accidentally resize a panel too small that you can't see it. If you need to make a panel smaller, you will have to do it by menu.
Global Settings 
The Global Settings option panel displays some of the options available in the individual panel options. These options allow you to modify the settings of all existing panels, and any new panels created from global settings. This allows you to easily create a theme for all your panels.
Using Gradients 
When in gradient mode, the background color and background gradient color determine the overall gradient. Due to how gradients work, you have to have the background color set to something besides absolute black (it's default setting) for the gradient to change anything besides the gradient's alpha.

The gradient direction option gives you the choice of using horizontal or vertical gradients.

Note: If you wish to flip your gradient (ie, fade top->down rather than bottom->up), you will need to switch your background and gradient color/alpha. That is, the gradient is now your background and the background is now the gradient.
Using Background Textures (Images) 
Textures must be in .tga or .blp format (I suggest using tga), and must be uncompressed, 32-bit depth (which is 24-bit + alpha). The size of the texture must also be a power of 2. Some examples of valid image sizes are: 16x16, 32x32, 128x256. There is a max size limit of 512x512. These are all restrictions imposed by the WoW game client, not the addon. These requirements must be met in order to display an image/texture.

By default, you only have access to a few default background textures. If you have SharedMedia installed, you'll have access to any background textures that addon includes (currently not many), and may switch between them at will. If you want to specify a custom texture path, you will need to turn on Advanced Mode. For instance, if you wanted to set the texture to the icon used by eePanels, you could set the texture to: \\Interface\\Addons\\eePanels2\\icon.tga. If you want to supply your own texture, place the texture in the eePanels2 directory, and use the same format. You may also add your texture to SharedMedia, using the MyMedia instructions included in that addon. Textures will then appear in the “shared textures” menu in the eePanels options. Note: You must fully exit the game to load a new texture added to SharedMedia or when editing a texture currently loaded into the game. Reloading your UI doesn't cut it. :)

By default, the icon will stretch to fit the panel. This is because tiling is turned off by default. If you keep tiling off, you'll need to modify the height/width of the eePanel so that it has the same ratio of the texture so that it doesn't look distorted.

Tiling stops the image from stretching. Instead, the image will duplicate itself across the panel as many times as possible, based on the tile size. The tile size will set the size height and width of the texture to whatever pixel size you've entered.

Important: The background color, background blend mode and texture opacity all affect the texture's visibility. If you know the texture is right (for instance, you're using my icon image above), but can't see the texture, make sure the panel is transparent, or that the blend mode is set how you need it. It's also possible if you have tiling enabled that you've set a tile size so large, you can't actually see the image. Double check these settings. You may also alter the texture's transparency without altering the transparency of the whole panel.
Changing A Panel's Parent 
The parent is the frame which the eePanel is bound to. The eePanel will inherit the visibility, opacity, and strata of its parent. By default, the parent is set to UIParent, which is the normal game window. However, if you were to set it to PlayerTarget, the eePanel would appear and dissapear along with the panel. NOTE: you may need to adjust the level or size of the panel after you parent it, or the parent may cover up the eePanel keeping you from seeing it.

Once an eePanel has its parent changed, it will automatically set the size of the eePanel to 100% to make the new parent's size. You can modify these afterwards. You may notice that the eePanel doesn't seem to fill the entire area of it's parent. This padding is caused by two things: the background inset size, and the border edge size. To fill the entire area, you can either set the edge size to near-zero, and set the inset size to 0, or you can set the frame width/height to be larger than it's currently set to, and change the x,y values to 5,-5 respectively.

When the parent is changed, the anchor will be set to the It will auto change the Anchor of the eePanel to the parent. Please read that section to understand what it does.
Changing A Panel's Anchor 
The anchor controls the positioning of the panel. By default, the anchor is set to UIParent. The AnchorTo field controls which point of the anchor frame you wish to anchor to. The AnchorFrom field controls which point of the eePanel you wish to anchor on. The horizontal and vertical fields are actually offsets which move the panel based on your anchor settings.

For instance, if you have your Anchor set to UIParent, and your AnchorTo point set to TOP, and your AnchorFrom point set to CENTER, the horizontal-middle of the eePanel will align itself to the top-middle of the game window (the top-half of the eePanel would be offscreen). You could then change your resolution or UIScale, and the panel would still be in the same place. If you increased the vertical field by half of the eePanel's height, the entire panel would then be on screen.

The eePanel will also move relative to it's anchor. While UIParent never moves, if you set your anchor to PlayerTarget, the panel will move relative to the PlayerTarget frame.

When you change the anchor, the Vertical and Horizontal positions reset to 0, and the AnchorFrom and AnchorTo points reset to CENTER. This is done so that the frame doesn't get moved offscreen due to the position of the new anchor, making you wonder where the eePanel went. You can modify it afterwards. Also, changing the parent will set to the anchor to whatever the parent was set to, and also reset the anchor settings. You don't have to have the same anchor/parent, you simply have to change the anchor after changing the parent (if you change the parent).
Parenting to Pitbull Party/Raid panels (or other create-on-demand frames) 
Pitbull's party and raid frames are what we call 'create-on-demand'. These frames aren't created until they are actually needed. This is done to increase your gaming performance when the frames aren't needed. The unfortunate side effect of this is that you can't anchor an eePanel to a frame which doesn't exist. There are a few workarounds to this. One way is to not anchor/parent the eePanel to the frame, and to instead use a script to replicate the functionality you need. You can find more information on this in the eePanels Scripts wiki.

Another alternative is to switch on the Dynamic Frames Fix in the eePanels2 option menu. This may allow you to hook to these frames without causing any problems, but it could potentially cause a performance hit (I'm not sure, it may be not be noticeable to anyone, I've done no real-world testing. It will depend on your system and installed addons). If you aren't hooking to any dynamically created frames, I suggest you keep this switched off.
How to find a frame's name
  1. Put the following in a macro: /print GetMouseFocus():GetName()
  2. Use the macro to get the name of whatever frame your mouse is hovering over
  3. DON'T use this on an unlocked eePanel. You'll get a name like eePanelGuideFrame1 if you do. The actual panel name would actually be eePanel1 in this case.
Note: If you would like your eePanel to resize when it's parent does, you may do so by attaching a script to it. See the eePanels Scripts page for an example.
Note2: Some problems may arise when attempting to parent a panel to another addon's frame. This usually has something to do with frames not being created when the eePanel needs to reference them. See the eePanels Scripts page for other ideas on how to make panels appear when you wish them to.

Known Bugs / Issues

My settings won't save, and my panels reset every time I log out/in 
This may be caused by upgrading from an old version of eePanels, however the exact reason hasn't' been found. Going into your World of Warcraft\WTF\Account\YOUR_ACCOUNT_NAME\SavedVariables folder, and delete the file name eePanels.lua. This will cause a new database to be created to save your settings, and should resolve your problem.

Note: This question was taken from the original wiki thread – not sure if this issue still exists in eePanels2, but if you have issues with your panels, try this fix. -Seerah
I upgraded to eePanels2 from eePanels(1) and now my UI is gone!!!1 
Layouts from the original eePanels are not compatible with the new version. Also make sure that you do not run both versions at the same time.
I sometimes notice buggy behavior with panels I make, but they seem to 'fix themselves' when I relog 
Whenever you delete an eePanel or reset your eePanels layout, you should always perform a /reload ui! Without being too technical, it's possible for a deleted frame to conflict with a new frame. This is because frames can't be destroyed until you reload the user interface or relog, and the eePanel# names can conflict. For this reason, you should always reload your UI.