In multiplayer online games, a MUSH is a text-basedonline social medium to which multiple users are connected at the same time. MUSHes are often used for online social intercourse and role-playing games, although the first forms of MUSH do not appear to be coded specifically to implement gaming activity. MUSH software was originally derived from MUDs; today's two major MUSH variants are descended from TinyMUD, which was fundamentally a social game. MUSH has forked over the years and there are now different varieties with different features, although most have strong similarities and one who is fluent in coding one variety can switch to coding for the other with only a little effort. The source code for most widely used MUSH servers is open source and available from its current maintainers. A primary feature of MUSH codebases that tends to distinguish it from other multi-user environments is the ability, by default, of any player to extend the world by creating new rooms or objects and specifying their behavior in the MUSH's internal scripting language. Another is the default lack of much player or administrative hierarchy imposed by the server itself. Over the years, both of these traits have become less pronounced, as many server administrators choose to eliminate or heavily restrict player-controlled building, and several games have custom coded systems to restore more of a hierarchal system. The programming language for MUSH, usually referred to as "MUSHcode" or "softcode" was developed by Larry Foard. TinyMUSH started life as a set of enhancements to the original TinyMUD code. "MUSHcode" is similar in syntax to Lisp. Most customization is done in "softcode" rather than by directly modifying the hardcode.
Roleplay
Traditionally, roleplay consists of a series of "poses". Each character makes a "pose"that is, writes a description of speech, actions, etc. which the character performs. Special commands allow players to print OOC messages, distinguished by a prefixed string from IC action. This medium borrows traits from both improvisational stage acting and writing. Roleplaying is one of the primary activities of MUSHes, along with socializing. There is nothing in the code base that restricts a new MUSH from being a traditional hack-and-slash MUD-style game. However, the earliest uses of MUSH servers were for roleplaying and socializing, and these early trends have largely governed their descendants. A large number of roleplaying MUSHes have custom combat systems and other tools coded by their administrators in order to further encourage roleplay. However, as roleplay is the primary goal, many MUSHes have varying ideas of how these programs are used.
Administration
All MUSH servers provide a flag that, when set on a player, bestows the ability to view and modify nearly everything in the game's database. Such players are usually called Wizards, and typically form the basis for the MUSH administration. Although MUSH servers do not impose strong administrative hierarchies, most MUSH games establish additional levels of management besides Wizards. Some do so on a purely organizational basis, naming some Wizards "Head Wizards" or "Junior Wizards" or assigning sphere of responsibility to Wizards, despite the technical equality of their abilities in the game world. Others provide finer-grained control over capabilities that can be assigned to players so that some players can be granted the ability to view, but not modify, the entire game world, or to perform limited modifications. Other levels of power can include added control over one's own character, or fewer limits on resources. PennMUSH, TinyMUSH, and TinyMUX include the "Royalty" flag, which gives a player the powers to do most things that don't involve modifying the database. RhostMUSH has a wide array of staff flags that differ in many ways from its sister servers.
Software
Maintainers and developers of MUSH servers have traditionally shared ideas with one another, so most MUSH servers include concepts or code developed originally in other servers. There is particular interest in ensuring that common MUSHcode features work similarly across servers. PennMUSH, TinyMUSH, TinyMUX and RhostMUSH are all open-source MUSH servers. Some enthusiasts may exclude one or more of the above on the basis of distribution method, name, or parentage, but all are free-form MUSH servers. Differences in the software tend to focus more on the administrative or softcode side. The set of commands that players use to interface with the game are essentially standard amongst servers bearing the appellation MUSH.