An extensible MUSH / MUD server written in Java.
Each player in the game has one or more roles. A role helps to control what a player is allowed to do. Here are the roles available in the game, and their purposes.
The DENIZEN role is for ordinary player characters. Anyone not on the server staff who has been accepted into the game has this role. A DENIZEN has the ability to freely move around the universe and interact with it, but limited ability to make changes to it.
The BARD role is a wizard role focused on building the world. A BARD may do anything a DENIZEN can, but also has the ability to build and destroy things, and may circumvent some of the rules of the world in order to arrange it as needed for the story.
The ADEPT role is a wizard role for enforcing the rules of the game. An ADEPT cannot build or destroy things, but they have the ability to boot or lock actors and to police the game through extraordinary actions, such as taking things from other players.
The THAUMATURGE role combines the abilities of the BARD and the ADEPT, and more. There are very few actions a THAUMATURGE may not take: loading and saving the game and shutting down the server are some of them. Notably, a THAUMATURGE can fully administer actor accounts except removing them, and can change the roles of other players.
The GUEST role is reserved for guest players who have not yet been accepted into the game. Anyone who logs in as the “guest” actor is assigned a new, unique guest player with this role. A GUEST has very limited ability to interact with the universe and cannot go anywhere except where they are placed.
The GOD player has no roles, but it may do anything. You should rarely play as GOD, but instead take on a player with more limited power. The THAUMATURGE role is appropriate for the core administrators of the server to hold. Staff who are focused on world-building can get by with the BARD role, while other staff who contribute to the smooth running of the game should play as ADEPTs.
The “root” actor is assigned GOD as a player. Additionally, Grounds rejects attempts to log in as “root” from anywhere except the local host where Grounds is running.