First thing : sorry for my English, free feel to correct

Well, i downloaded the source code from the cvs and have a look on some xml files. I looked the files you have mentitioned for npc.
Well, now you have 10 npc, you put 10 entries in the xml files.
But when you have 1000 npc, what you will do? You will put 1000 entries in your xml file? It seem not to be a good solution.
Now there are three solution :
a) ignore this comment, and send me a \"xxxx you\"

hehehehe
b) create a STRONG xml specification for planeshift scripting, and when i mean strong i mean
-> npc global variables
-> npc local variables
-> sensors
-> events
-> actions
-> npc classes and instances
ecc ecc
but also
-> loops
-> conditionals
-> data structures ?
... and i can help writing and coding the specification and the xml for it ...
c) keep ai calcs in another \"server\", call it the \"AI server\" which can stay on the same machine or in another machine of course.
The AI server simply communicates with the planeshift server what ACTIONS should be done on the world (quest creation, creatures behaviour, ecc). With this separation of concerns you keep in the planeshift player server the player accounts and the full resource handling (net,zones, ecc), and the AI server (which communicates with xml with the planeshift player server) keep calcs of npc and world behaviour.
In this way we can see the planeshift server as a scriptable device.
Ok, now there are only npc. But think of levers, traps, and things like this. This can be done well with a good scripting/AI solution.
Tip : games like Dark age of camelot has three servers and about 3000 simultaneous players. Very often the server crashes, and they have 3 servers. How many players will have planeshift? Only 1000 ? No i don\'t think so. Looking at enemy territory stats you can see how many people play good free games, so when i say \"another server\" or \"more then one server\" and \"separation of concerns\" please think about it

.
EDIT :
d) keep things as they are if you want to have a very rigid but simple ai for monsters. But why have 10 little xml language when you can have one good?

Loading a resource from the disk (a texture for example) is an action for the engine, but also describe a piece of gui is an action, and also \"start rain in zone x\" is an action, and also \"npc id 3455 engage fight with npc id 5677\". Think about a big interpreter which executes actions in the server, not 10 interpreters for 10 types of thing. For types there are tags, or not?

Bye bye!