1. Hello, I have become interested in making my own custom wow addons and more importantly getting familiar with LUA and XML enough to modify the ones i like. Here is what i have been trying to do for years. I simply want to make and addon that will allow me to dynamically hide ANY frame on the screen or any other addon based on conditions that i set or that are pre programmed into the addon. more specifically when i enter a raid i want the minimap to not just hide but to animate as it hides.. ie:quickly slide off the screen and/or alpha down to zero. I have seen the addon called GOOSE, and it has the basic principles but the instant away instant return is less elegant. I want to also do the same for the entire chatbox.

    It's a bit difficult to do for any frame, that's the problem. You can easily taint the system, and that is not something you want to get into. if you want to create some manner of custom animation, you can try to do that.. but I suspect you'll find the result is a bit less than you would have desired.

    If you have any specific questions, I'll do my best to answer them.. but there aren't any in your post.

    okay here is a specific question. I need an addon that will hide the Chat frame, and the Minimap cluster when i enter combat. and/or when i enter a raid. When in a raid i want the minmap gone. When in combat i want the minimap and the chat frame totally gone. at the moment i have an addon that will make them go away instantly. But it gets annoying when i am out farming and they pop out and pop back in in between killing mobs. So i would like them to gradually fade out and back in when i enter/leave combat. Is that specific enough? that is what i meant by animation. i simply need a For loop to move them off the screen quickly but not instantly or to alpha fade them to invisible quickly but not instantly.

    You can manually change the alpha of the frame by calling SetAlpha(value) where value is a number between 0.0 and 1.0. You can do this over time by using an OnUpdate script on a frame, making a simple timer. You could also create a new animation group with an alpha animation that you can play whenever you'd like.

    Thank you for the response, i am only just starting to try an teach myself XML and Lua coding. Can you give me an example of how this code may be structured?

    if i enter into combat OnEnterCombat() FadeTime = number of seconds i want it to take before it is invisible -- fade away certain frames For i = FadeTime (lets say 3 seconds)

          chatframe.alpha = chatframe.alpha - .1
          minimapcluster.alpha = minimapcluster.alpha -.1 
    

    else if i leave combat -- fade the frames back into view

          chatframe.alpha = chatframe.alpha + .1
          minimapcluster.alpha = minimapcluster.alpha +.1 
    

    end loop

    or something like that , you know what i mean?

    Easiest way is to use the template functions provided:

     UIFrameFadeOut(frame, timeToFade, startAlpha, endAlpha)
     UIFrameFadeIn(frame, timeToFade, startAlpha, endAlpha)
    

    i.e.

    /run UIFrameFadeOut(Minimap, 3.0, 1.0, 0.2)

    awesome! you are so smart! you keep giving me a little bit at a time. but im learning i guess. you are a sweetie! my boyfriend plays more serious than i do and he is going to be so jealous when i figure this out before him. teach me more!

    Would there be a way to do something with the frame only after it's faded out, e.g. frame:SetSize(0, 0) and frame:SetPoint("BOTTOMLEFT", UIParent, "BOTTOMLEFT")? If I put these commands directly after UIFrameFadeOut, the frame will vanish instantly because the script doesn't wait for the fade-out to complete before moving on to the next line.

    Would there be a way to do something with the frame only after it's faded out, e.g. frame:SetSize(0, 0) and frame:SetPoint("BOTTOMLEFT", UIParent, "BOTTOMLEFT")? If I put these commands directly after UIFrameFadeOut, the frame will vanish instantly because the script doesn't wait for the fade-out to complete before moving on to the next line.

    There's a few ways you could do it, the easiest is to probably use an OnUpdate timer and then after X seconds have passed (where X is the time you gave to the fade function), to move the frame. The other ways are more hacky, to be honest.