multi-user text game/environment, in typescript
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Robey 3dfca54bf9 completely pointless code golfing :) 2 weeks ago
bin add xance, a CLI tool for messing with the database 7 months ago
docs add the ability to change your home location to be anywhere you can teleport 2 weeks ago
src completely pointless code golfing :) 2 weeks ago
tests if you're already in an editor screen, and we try to display an error, display it in a haltbox instead of way back into the hidden ux window 2 weeks ago
text split the player editor into player-specific and a "top" editor for general game things 2 weeks ago
tools working systemd crap 1 year ago
.gitignore start of a new/better db interface that will let me replace the "flat files of json" with sqlite 7 months ago stub start of sqlite support: can save (part of) player 7 months ago
make_build.mjs don't associate an archetype with a location anymore, that's silly. always "user/key". auto-generate the key when creating a thing, so no creativity is wasted. 1 year ago
package-lock.json patched microfugue to not need this hack anymore 2 weeks ago
package.json patched microfugue to not need this hack anymore 2 weeks ago
tsconfig.json look at thing, look under thing 1 year ago



"zdani" is a lojban word that refers to home.

This zdani is a server that runs a multi-user text game/environment, similar to a MUD (or MUCK or MUSH or MOO), or an Interactive Fiction with multiple real-time players.

under construction

This is very much a work in progress.

Defend your dependencies


  • teilz - scripting language
  • - inbound connections
  • ssh2 - inbound connections
  • pino, pino-pretty - logging
  • ballvalve - async iterators
  • argon2 - password hashing

Used for the user interface:

  • antsy - xterm codes and drawing primitives
  • microfugue - TUI framework

Used by xance for command-line parsing and text diffing:

  • commander
  • fast-diff