Create panels for customizing your UI, sucessor to eePanels

Wiki and FAQ

Sample Scripts

OnClick now provides a pressed and released variable you can check for.

if pressed then
  -- do mouse down actions
elseif released then
  -- do mouse up actions

This means your script will get called twice when someone clicks the panel.

Here is a youtube link to a video Tutorial

Ive created an Example Texture Pack.

This example pack is just a template. If you want to use it as a storage spot for your art, look at the read me file for directions on usage.

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of Narodigg Narodigg Mar 02, 2010 at 02:41 UTC - 0 likes

    I have tried an underscore and it did not help. Sorry I should have mentioned that.

    Here is the error. 1x <string>:"rightmenu-info_OnLoad":40: attempt to index global 'LegoFortressFishing_Broker' (a nil value)

    Last edited Mar 02, 2010 by Narodigg
  • Avatar of kagaro kagaro Mar 02, 2010 at 02:06 UTC - 0 likes

    try an _ char it might just not be shwn well thats its an underscore.

  • Avatar of Narodigg Narodigg Mar 01, 2010 at 19:34 UTC - 0 likes

    I have scripted my Fortress blocks in Kgpanels to show and hide with onclick events.

    However one specific Fortress piece is giving me an issue because it has a space in its name.

    As the Frame Finder displays it LegoFortressFishing Broker

    of course scripting this the space causes issues.

    Sample Onload script of panel.

    LegoFortressFishing Broker:Hide() LegoFortressFishing Broker:SetFrameStrata("HIGH")

    I have tried wrapping this to get the right syntax here.

        " "
        ' '
        ( )
        [ ]

    Also played the google game, with not luck. Anyone here able to help me get this wrapped correctly?

    Last edited Mar 01, 2010 by Narodigg
  • Avatar of VanillaXS VanillaXS Feb 26, 2010 at 20:52 UTC - 0 likes

    Hey guys, I´m having a problem with KG Panels which I recently noticed. (Only the action bar layer, chat and recount layer working correctly.)

    When I log on, my action bar layer looks like this:

    When I /reload UI, and only when I /reload UI, it looks like this:

    As you can see, the boarders are a bit thicker when I /reload UI.

    This is how its supposed to be AND how it was originally designed.


    So then I thought, just make it a big thicker, and I added 1 width and 1 height each panel and then it looked like it should look.

    But when I /reload UI now OR even when I log off / on again, it looks like this:

    (P.S: I can avoid /rl, the problem is, when I do not change the settings it looks smaller. (screen 1)

    When I change the widht and height to the settings I want to (screen 2), THEN THEY CHANGE THRU logging on or off and look bigger (screen 3). (so this time no /rl).)

    The same happens with skada, it just wont let me set a new position for it, after each relog / new log on it moved 1inch to the left.

    Last edited Feb 26, 2010 by VanillaXS
  • Avatar of XeguH XeguH Feb 20, 2010 at 15:25 UTC - 0 likes

    Hi, and thanks for nice work.

    Don't have much experience with scripting, but trying figure out how to change texture or background color based on DK presence change (Blood, Frost, Unholy).

    Please )

  • Avatar of Vexryn Vexryn Jan 12, 2010 at 23:05 UTC - 0 likes

    I've been experimenting with using kgPanels to toggle a ChatFrame when I enter/exit a city (and the associated Trade Channel), but can't seem to get it work. I've tried the scripts from the kgPanels page at:

    But that doesn't seem to work (even when I correct the typo on "RegisterEvent" and add quotes around CHAT_MSG_CHANNEL_NOTICE

    Right now, here's what I'm using, and not certain why it won't work:

    OnLoad: self:RegisterEvent("CHAT_MSG_CHANNEL_NOTICE") { note this is different than the sample scripts page, which is self:RegsiterEvent('CHAT_MSG_CHANNEL_NOTICE') }

    OnEvent: if event == "CHAT_MSG_CHANNEL_NOTICE" then if arg1 == "YOU_JOINED" and arg7 == 2 then ChatFrame3:Show() end if arg1 == "YOU_LEFT" and arg7 == 2 then ChatFrame3:Hide() end end

    Note that I tagged it as ChatFrame3:Show() and Hide() respectively, because I actually want to toggle that frame, not the kgPanels frame itself.

    I've tried toggling the self:Show() and self:Hide() and anchoring/parenting it to ChatFrame3, and that doesn't seem to work either.

    Notably, I *can* make it work by making an OnClick event as follows: if pressed then if ChatFrame3:IsVisible() then ChatFrame3:Hide() else ChatFrame3:Show() end end

    I just cannot make it occur "automatically" based on CHAT_MSG_CHANNEL_NOTICE

    Any insight would be greatly appreciated!

  • Avatar of ImpalerCore ImpalerCore Nov 06, 2009 at 15:03 UTC - 0 likes

    Excellent! If those scripts work, then you should be able to do something based on whether you enter or exit a vehicle (arg1 == "player"), and ignore those events where someone else enters or exits a vehicle (arg1 == "partyN" or arg1 == "raidN" where N is a number representing a particular member of the party).

    Here is a slightly modified script to respond to those events by printing a simple chat message.

    if (event == "UNIT_ENTERED_VEHICLE") then
        if ( arg1 == "player" ) then
            DEFAULT_CHAT_FRAME:AddMessage( UnitName("player") .. " is ready to rock-n-roll!" )
            DEFAULT_CHAT_FRAME:AddMessage( "Does " .. UnitName( arg1 ) .. " know how to drive?" )
    else if ( event == "UNIT_EXITED_VEHICLE" )
        if ( arg1 == "player" ) then
            DEFAULT_CHAT_FRAME:AddMessage( UnitName( arg1 ) .. " has left the vehicle." )
            DEFAULT_CHAT_FRAME:AddMessage( UnitName( arg1 ) .. " didn't know how to drive." )
 is a good resource for manipulating strings in lua. I would recommend playing around with them. If you want to respond to a particular party member by name, class, level, etc, you can query their attributes by passing arg1 to those respective functions, UnitName, UnitClass, UnitLevel. You can use the SendChatMessage API to even communicate with other members based on these attributes.

    if (event == "UNIT_ENTERED_VEHICLE") then
        if ( arg1 == "player" ) then
            SendChatMessage( UnitName( arg1 ) .. " is ready to rock 'n roll", "PARTY" )

    If this works, you should be able to replace the chat messages with sound effects if you wish. It should be something similar to the following.

    if (event == "UNIT_ENTERED_VEHICLE") then
        if ( arg1 == "player" ) then
    else if ( event == "UNIT_EXITED_VEHICLE" )
        if ( arg1 == "player" ) then

    You can find paths to the wow sounds here.\Sounds

    Give these scripts a try and see if they do what you expect. Then, if you can get these working, see if you can replace the appropriate lines with hiding and showing the frames you want.

  • Avatar of arturogatti arturogatti Nov 06, 2009 at 01:19 UTC - 0 likes

    All seems to be working okay.

    On the first test i do get the following messages on chat frame.


    when entering... and...


    when exiting.

    So that works fine.

    On the second test i get the same from above but i get a 3th line message "player" or "party#".


    player or party1

    Tell me more ;)

    Last edited Nov 06, 2009 by arturogatti
  • Avatar of ImpalerCore ImpalerCore Nov 05, 2009 at 14:54 UTC - 0 likes

    Alright, let's start simple. Registering all the events for getting in and out of a vehicle as far as I know.


    The above panel should print the registered events when you enter and exit vehicles. See if you can get that working first.

    (The arg1 parameter is what is passed along with the event to the OnEvent handler. For example, the UNIT_HEALTH event has an arg1 that represents the unit id. This can be player, target, party1, etc. This is what I'm hoping is the arg1 of the vehicle events up above. Again, I'm unable to play with vehicles yet or otherwise I would be able to do the testing)

    Then try to use this and see if it will print arg1 for the following events.

    if (event == "UNIT_ENTERED_VEHICLE" or event == "UNIT_EXITED_VEHICLE") then
        DEFAULT_CHAT_FRAME:AddMessage( arg1 )

    It should print the unit id of the person entering or exiting the vehicle. For yourself, it should be "player". For other people, it may be party1, party2, etc...

    Let me know if this works at all for you.

    Last edited Nov 05, 2009 by ImpalerCore
  • Avatar of arturogatti arturogatti Nov 05, 2009 at 14:06 UTC - 0 likes

    Damn... this is starting to get a bit too much for me...

    I tried the <OnEvent> code but it didnt work... cause it gets "stuck" on the arg1 "parts".

    Can you explain better what you mean with that arg1 parameter is?

    ...and what you mean by these:

    Try to print arg1 if it exists Should work if UNIT_ENTERED_VEHICLE and UNIT_EXITED_VEHICLE events have an arg1 parameter that is a unit id.

    The best is to example me what to put on the arg1 part of the code.

    My english isn't the best... it blows my mind when i try to understand some parts of what you're saying.

    Thanks again ;)


Date created
Sep 16, 2008
Last update
Jun 23, 2015
Development stage
  • enUS
  • frFR
  • koKR
  • zhCN
All Rights Reserved
Curse link
Reverse relationships
Recent files
  • A: r437 for 6.2.0 Jun 23, 2015
  • A: r436 for 6.1.0 Feb 24, 2015
  • R: 1.20 for 6.0.2 Oct 24, 2014
  • R: 1.19 for 6.0.2 Oct 17, 2014
  • A: r433 for 6.0.2 Oct 17, 2014