2021-08-22 How to MUSH and click

I have a MUSH running that requires a Gemini client to play. Since I couldn’t express everything I wanted using a hypertext, I also added a prompt. And since everything can be done via the prompt, I added a command-line client and a streaming client. It works quite well.

Screenshot showing the two command-line clients, side by side

But then I read about Gruescript, introducing three ideas: choice games are easy to model in browsers as every choice corresponds to a link; this makes puzzles hard because where do you put secrets; and the solution being that you hide options until some conditions are fulfilled.

There’s a puzzle early on in that game – not a particularly hard or complex puzzle, but essentially a parser-type puzzle – in which you come to a graveyard, one of whose inhabitants can be dug up if you happen to have a shovel. The interface implements this by showing the verb button “dig” next to the grave, if and only if you are standing in the graveyard and holding the shovel. – Gruescript is now in open beta release

So perhaps we can model this in Ijirait? Right now, you can hide “things“ and “exits“. Both of these are usually clickable hyperlinks: to click a thing shows you its description; to click an exit is to take the exit. But in order to examine an invisible thing or to take an invisible exit, you need to invoke the prompt and type the name of the thing or exit. This is not good.

If every character carried a record of all the things they had examined and all the rooms they had been in, then we could show hidden things and exits automatically if some particular thing had been examined or a particular room had been visited.

I really want to have a good way of setting this up from the game’s command line. In the following example, “create thing“ creates a stone, which is then renamed; “key book” gives you the id of the book.

create thing
name stone The Black Book (book)
describe book You start reading the book and realize what’s missing! You can go back now, and summon the demon!
id book

With the id of that book, you can now create a hidden demon that’s only visible if you’ve read the book.

create thing
name stone Summon the demon! (summon)
describe summon You mumble the words and wave your arms, you close your eyes and think of hell – and there it is! The demon Avexeer appears and gives you the key you’ve been seeking.
hide summon
reveal summon for 123

And you can continue the chain: display the id the summon and use it to show an exit to a new room that can only be taken with the knowledge of that key…

Anyway, that would be an addition to Ijirait that enables more “solo” gaming where people add rooms to explore, and puzzles.

I’m not sure how I’d support more social interactions. For one, there is hardly anybody online when I am. Days pass with nobody online. Perhaps such commands as “shout“ which would allow communication for all, or “send“ which would allow communication irrespective of where people are would be nice additions, but if there is nobody online at the same time, perhaps it makes more sense to focus on features that allow building.


Implemented the “id“ command, and implemented the tracking of all the things examined and all the rooms visited.

Not yet implemented: clearing out all the list of things examined once a thing is deleted (currently rooms cannot be deleted). I’ll probably add this to the clean up routine that runs as the world is being saved.

Still missing: the “reveal <thing|exit> for <id>” command, and the actual implementation for the “look“ command which generates the clickable menu.

– Alex 2021-08-22 22:20 UTC

I think for testing you need two more commands: “seen” lists all the things you have seen and all the rooms you have been to, with the id; and “forget <id>” allows you to remove from that list.

– Alex 2021-08-23 11:44 UTC

I made it so that “forget“ without an argument lists the things you might want to forget. And it’s all installed and online, now!

– Alex 2021-08-23 13:18 UTC

Please make sure you contribute only your own work, or work licensed under the GNU Free Documentation License. Note: in order to facilitate peer review and fight vandalism, we will store your IP number for a number of days. See Privacy Policy for more information. See Info for text formatting rules. You can edit the comment page if you need to fix typos. You can subscribe to new comments by email without leaving a comment.

To save this page you must answer this question:

Just say HELLO