I can really see good use for some of those, and it even give me ideas for new mods (like a mod where you have another quest tab for paused quests - quests that you have recieved but no intention of doing for the time being, and therefore want them out of the running quest tab).
Ohhh, that would be very interesting to see. I'm always struggeling between avoiding to start a quest vs finishing a small quest as soon as possible, both have the same reason which is to avoid my questlog from cluttering. :facepalm:
I was trying to understand exactly how the mqGet/SetMenuChild... functions worked, and was afraid from this post that they fell a bit short of my needs, but then I looked up the documentation in the dowloaded package and found that they were even more powerful and versatile than I had imagined! So cudos to you. They seem to be all I can dream of when it comes to xml handling functions (almost, see below).
The original implementation was alot more limited, it didn't allow the use of filtering the child elements by their name. Which made them terribly inefficient when dealing with large lists. I didn't include the examples in the second post cause that would make it rather large and possibly confusing. I figured it'd be nice to have a brief function list before downloading the plugin.

One note, if I understand it correctly, you have one error in the document examples. The first MenuChild example is mqGetMenuChildName "background\##" 1001 4, but isn't mqGetMenuChildName "background\_test_rect\##" 1001 4 the correct path - and similar for the others?
Hmmm, I admit that the last bit of documentation was mostly copy-paste so I'm not suprised to see a small error in it. I'll go over it again and re-check everything, I know from experience how confusing erronous documentation can be.

As for the mqCreateMenuStringValue function. I guess
let include_string := ""mqCreateMenuStringValue "|%z" include_string 1004
...(in order to add a completely new hud element, defined in new_xml_file.xml) is too advanced for its use?
Yes, unfortunately that would be a bit out of the function's league. Mainly because
include is only used during parsing of the XML files, after it has been loaded into memory all traits and elements are stored (and linked) not as a simple string but as an actual data structure. Giving some trait a string value that would, from a pre-parsing point of view, effectively create a new trait/element won't work (see below).
SetMenuStringValue "_str|%r<_newtrait> 99 %r<_str> Hello"
If you just look at the string and what will be replaced then the result is this
Which would appear as if a new trait (which could have been an entire new insert-line) has been inserted or created, but in reality the "_str" data structure that is already loaded into memory will simply have a (string) value of
<_newtrait> 99 <_str> Hello
In theory I might be able to parse the inserted-file by hand and construct the new element by hand (besides creating new traits I can also create new elements from inside the plugin). The biggest problem or limitation is is that it would need to be done by hand (the converting of a string to whatever data structure it represents), each operator (copy, add, mul, etc) and each link or reference to an element (src="http://forums.bethsoft.com/index.php?/topic/1097119-relz-obse-plugin-menuque/...", trait="...", etc.). But there might still be an easier way, assuming I can get that to work properly (it would use some existing code to parse and insert the element into the menu structure), I managed to get it working (as in, the element did appear) but only to be followed by Oblivion freezing. <_<
Btw, what is the plugin name to use with OBSE's IsPluginInstalled function? Is it "MenuQue" ?
Nope, although I'm not so sure why anymore. Anyways, it's
OBSE_Kyoma_MenuQue (yeah, I looked at Pluggy for guidence

). Not case sensitive ofcourse, that's just for my sanity.

-kyoma