Area/room development feature request~

In the process that is ongoing with developing Callendriver Town, the surrounding areas, as well as the secrets (which will be explained in game later, at the Archives), I have begun considering potential methods for controls in an rpg text based game setting. I have one currently known option: literally text based, talking to a bot, specifically in whispers.

However, for the sake of ease of interaction, and with my awareness that the bots themselves run on javascript (thank you, again Xetem for directing me, and Acci for making the material available)… I would like to request button hooks as an available option. These could be situated into the room description window, possibly with a prerequisite that they are nested inside of a dropdown window box, or perhaps handled directly in the chat window by being able to be sent by a staff/acci verified bot entity.

Why buttons? Well… Because sometimes, you just plain forget what the commands text wise are for a game, and that can be a royal bummer. Yes, game. I’m so selfishly asking for assistance in making a game inside of a game… Much like playing Legend of Zelda inside of Animal Crossing on the gamecube.

Function Discuss():
If YOUR_INPUT =< 1 then
if MORALE =/ 0 do
CONVERSATION + 1
end
end
end

1 Like

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! :smiley:

3 Likes

This. This made my day.

2 Likes

Oh my god, excuse my french here but now I’m even more excited for the future of wolfery. (I know I am… Really late to this but…) This seems awesome.