The initial post doesn't seem to have been updated
Anyway, while I was trying to fix the problem with '!' in kit names, I found that correct IDS entries are of the form
['A'-'Z''a'-'z']['0'-'9''A'-'Z''a'-'z''#''_''-''!']*
(the '!' I'm trying to code in now), so prefixes starting with a non-letter aren't legal. I can try to change this to
['A'-'Z''a'-'z''#''_']['0'-'9''A'-'Z''a'-'z''#''_''-''!']*
if you ask, but I can't add IDS entries starting with a number or a ! since they conflict with other BAF synthax (and I've already explained the problem with starting a file with '-').
[note: the ' symbols you see there have a relation with how char are represented, they don't mean you can use ' in file names].
EDIT: I just fixed my version of WeiDU so that Kit(Player1,B!SOMEKIT) works, so A!, U! et all are safe.
I'm trying to fix prefixes starting with '#', '_' or a number.
EDIT II: starting with a number or with '#' isn't a 5 minutes job, so for now it's scraped. starting with '_' is added the trivial way, it doesn't cause obvious problems.
EDIT III: prefixes can start with a number (freely), or with a '#'.
Exceptions:
1) it is underrecommended to use file names made up entirely of numbers (EG no ADD_KIT 123456), since this way
Kit(Player1,123456) will be interpreted wrongly (IE it isn't replaced with kid.ids's entry for 123456, it'll contain the number 123456.
2) if your prefix starts with a dash, the following character must be a non-numeric, since
Kit(Player1,#123)
will trigger the routine for RESPONSE # 100 (with or without space).
Starting with '-' or '!' can't be added at all.