These are the issues I had with actionscripts. Some I am sure you are aware of, and perhaps have already fixed, but I thought I would put together a list:
1. Errors in called scripts are not reported, instead the line that called the script is said to be in error.
2. Scripts stop on a lot of errors it shouldn't. MKDir should NOT halt the script if the dir is already there. Perhaps each script action should set a global variable that can be check to see if the action succeded (Like the DOS ErrorLevel).
3. You can't set " in a variable directly. The only way I could was to read that character from a file.
4. Using "If %Somevar% < 1" doesn't work if embedded in menu.xml or mxm.xml, but does work if in a XAS file. > also fails as these are reserved characters in XML. I tried using $gt$, $lt$, >, <. None of these worked.
5. When using the XML commands to write an XML file, if you write a line that contains ", ""e;" is put in the file in it's place. The script will not work like this.
6. As we worked out, to use Context Items you must have 3 dummy items in MXM.xml.
7. When using Context Items, it does not appear that _GameDesc is being filled correctly, it was always blank for me.
8. Not sure if this is how it is expected to work, but when I used the XML commands to build a new XML, I created the "base" node, added a node named "BIOS" to it, and set an element named name within the BIOS node. I then saved the count (which returned 0 instead of one!) and added a new BIOS node. When done the count was STILL 0, and I could only read data from the first BIOS node (But I could read that node as both !.BIOS.Name and !.BIOS:0.Name!)
9. Delete doesn't take wildcards, and doesn't have the option to recurse.
10. RMDir doesn't delete a dir if it has stuff in it.
11. WriteFile and WriteFileLN both seem to do the same thing. Both put a CR/LF at the end of the line.
Think thats about it off the top of my head, as I think of more I will add them.