Skip to content

SharpMUSH Features

SharpMUSH plays PennMUSH softcode and imports PennMUSH databases, and adds the systems below. Each line names the help topic that explains it. For where SharpMUSH still differs from PennMUSH, see pennmush compatibility.

  • Players can hold a web-portal account with several characters linked to it. At the login screen, register and login reach the account, and make and play create and connect its characters. Wizards manage accounts with @account.
  • @locale sets the language the server addresses you in.
  • The game has a wiki that the web portal serves and softcode can read. See wiki and Wiki functions.
  • Every command has an output, which the next command in the same action list reads as %>. See command output. piping hands what a command printed to the next command as %|.
  • Each command runs under a time limit, its execution budget, and queue budgets limit how much work may wait in the queue. @queue inspects and controls queued work.
  • restrictedexpr() evaluates code limited to the functions you allow. localfun gives each owner their own named functions.
  • @map runs an attribute once for each element of a list, and @input passes each line a player types to an attribute until the session ends.
  • Every new game is seeded with handler objects for EVENTS and [http] requests, so softcode can answer them without any setup.
  • JSON FUNCTIONS, rendermarkdown() and [~] (strict argument parsing) round out the toolset.
  • MEDIA FUNCTIONS write a sound, picture or pane once, and each client gets it in its own form: MXP, Pueblo, the web portal or plain text.
  • IMAGE ATTRIBUTES name the pictures the portal shows for characters, rooms, exits and things.
  • CMDLINK() writes a clickable command for every client that has one.
  • recurring jobs run an attribute on a schedule. object snapshots recover mistakes on a room, exit or code object without restoring the whole world.
  • @reality sets reality layers, so objects in one room can be present to some viewers and not to others.
  • @backup copies the live world, @storage reports its disk use, and @package turns objects into installable softcode packages.
  • @profile records which functions and commands run, and @ps/history lists recent queue outcomes.
  • An internal error is reported as an exception with an id the server log can be searched for.

::: seealso