Some sort of cutscene system, where cutscenes can be triggered by many different events such as talking to an NPC, walking over a square, and other things which I can totally think of. During a cutscene there should be lots of different options you can have, like dialogue, moving the players about, giving a player an item, and plot dependent actions. You could use some sort of scripting language like XML or maybe Lua. It would also be nice to save and load levels as XML, then you could have a level editor which generates a file which you can share with others. But I suggest you encrypt the XML file first then decrypt it when you come to use it, so it just looks like binary code to most people.
I am going to add more ideas that I have in separate paragraphs. You could encrypt the XML files with a password, if the user so desires, so that one can only play the game with the password. Or you could have an option to just use a default password, so anyone could play it.
At the moment I have a system (which I am going to recode, when/if I get back to coding the engine) where events are specified as just an array. I'm going to change it so that it's still an array, but elements in that array are "actions". For example, the room manager thing will have a "changeRoom" method that returned an action. The actions would then play out in order, with the next one occurring after the previous and all that. This should handle a lot of things like menus and stuff as well, with the ability to cancel.
So basically, the "scripts" will be a JS file, basically. Maps are also JS file, but really they are just a single function call with an object, so maybe in the future I could change it to JSON. I don't really intend to encrypt it though, since it probably isn't that hard to decrypt it.