I really like what I am reading, @Myk. And I have also through about making it possible to do things like this. Eventually, I hope to provide enough tool that you could actually build MUD-like games, with monsters, generated dungeons, loot, etc. Though, that is quite a bit further on.
But II can tell you what plans I have for the future, and you can see what could be used:
LUA scripting
One thing that will be added, not too far from now I hope, is support for LUA scripting.
LUA scripts will run on the server, have access to some sort of persistent storage, and would be tied to entities such as rooms/areas/items (once that is created) where they can hook into different types of events.
The LUA scripts will also be able to communicate on internal channels, so that a script running in one room can send a message to scripts in another room, telling it to block or change an exit (allowing the creation of locks).
The LUA scripts would require permissions from the owner of the entities which it needs access to, using the same ownership structure that exists.
Client addons
I have an idea of allowing custom modules to be added to the client, which would eg. be able to add commands, graphical elements, and… well… buttons!
The client is completely built with modules in a flat hierarchy. Eg. you can try out to deactivate/reactivate a module by opening the Dev Tools Console (F12) and type:
// Deactivate the areaMap module and see what disappears
app.deactivate('areaMap');
// Activate the area map module again. All restored!
app.activate('areaMap');
Like the example above, the areaMap
module is a module that hooks into the charLog
module by adding itself as an overlay. Similar things can be done for buttons to the pageRoom
module.
However, my plan for such custom addons was to make it a ‘per account’ feature, rather than addons being part of a specific area. This might need some reconsideration.
Bots
The current API can be access to write bots. We already have some boilerplate bot code in the mucklet-bot repository on GitHub.
But I am thinking about allowing the creation of ‘bot credentials’ (tokens) that can be used specifically for bots. They will have different limitation than the client’s API access. They might not have access to all the methods the client API can use, but they would also be able to perform more commands in quick succession than the client is allowed.
Also, a bot using a bot-token as credentials would also be clearly marked with a bot
tag, to make them more obvious to other players.
But right now, we only have the same API the client uses.
If you need to know how to perform a specific action over the API, just ask and I will tell you!