1. I've noticed that whenever I make a texture, of any simplicity, it will not appear at all unless I make it inherit something. For instance:

      local shadowBar = CreateFrame("Frame", nil, UIParent)
      shadowBar:SetSize(300, 24)
      shadowBar:SetPoint("CENTER", 0, -96)
      local texture = shadowBar:CreateTexture()
      texture:SetTexture(0, 0, 0, 0.3)
    

    doesn't show anything, however if I put anything at all for the texture to inherit - EVEN A BUTTON, it shows fine:

     local shadowBar = CreateFrame("Frame", nil, UIParent)
     shadowBar:SetSize(300, 24)
     shadowBar:SetPoint("CENTER", 0, -96)
     local texture = shadowBar:CreateTexture(nil, nil, "ActionBarButtonTemplate")
     texture:SetTexture(0, 0, 0, 0.3)
    

    I've been living with this strangeness for a long time, however now I'd like to find out why it's happening and possibly fix it, with your help if you can do so.

    Thanks :)

    That's because you aren't giving the texture a size or a placement. It is treated the same as a frame, you have to place it somewhere on the screen for it to be visible. The reason the template works is because it has a default size/anchor, basically.

    The easiest way to do this is something like this:

     -- make the texture the same size as the parent frame by
     -- anchoring all points (TOPLEFT, TOPRIGHT, BOTTOMLEFT, BOTTOMRIGHT, etc.)
     -- to that frame. You can leave out the argument, and it will anchor to 
     -- whichever frame it belongs.
     texture:SetAllPointa(shadowBar) 
    

    Oh sorry, I forgot to include that (it was somewhere else in the script). In cases that I include the size and everything, it still doesn't show. When everything is seemingly perfect but the texture doesn't inherit anything, it doesn't show, and then when I change only 1 thing - the texture's inherit, it does show. Yeah the size actually was on my script, just not the example one, so I still have the same problem.

    Size and placement (i.e. anchor points). You do not, absolutely do NOT need to inherit a texture to make it work. You're doing something wrong with your code if that is the case, but you have not posted a minimal NOT working example, so I cannot comment on that..