From Gwen Morse's Wiki
(Redirected from MUSHcode)
Jump to: navigation, search

Gwen's MUSH Softcode Archives

To start is the softcode I've written, in Gwen's MUSHcode Archive. This includes code written entirely by me, code written by others, and my collection of World of Darkness globals and chargens.

If you take *any* code from this site, all that I ask is that you post back the fixes, updates, or changes you may need to make in order to get the code functional elsewhere. There's no single source out there on "how" to softcode. Each of us has to learn from the scattered notes found online, and by deconstructing and reconstructing other peoples' code creations. Please respect that I am providing a service to the MUSH community by hosting this archive and give back where you're able. Please send code fixes and updates to:

The coding guide that started it all is Amberyl's MUSH manual. Start with this if you want to learn softcoding.

Next is Linda Naughton's Practical MUSH Coding guide. It picks up where Amberyl left off.

Now that you're confident, look over a minimally-formatted lesson on MU Coding Security from Ian Elliot. He'll point out where you're likely to be sloppy about security.

Not Just Softcode: Other "Stuff" MUSHes Need to Succeed

For a long time I've been focused on archiving softcode. As part of helping to set up many MUSHes over the past two decades, I've also watched many of of them implode before opening. I've come to realize that it's probably (past) time to provide at least a nudge in the direction of factors other than code that should be considered.

  • FrostMUD Free Hosting - You'll need a server host. FrostMUD is free (as in beer) with tiered pay options if you like extras
  • The Mud Host - The Mud Host has paid and tiered options.
  • Logedit - For the roleplay staff, Alan Schwartz's perl log editor will make it easier to clean up messy logs for the public to enjoy.
  • Log Cleanup - another log cleaning file, this one by Azundris.
  • Finddbref - a perl script that will help you find all cases of a dbref in a flatfile.
  • Mushpp - code staff will have a use for this perl script that unformats "pretty-printed" softcode files for upload into the database. Written by the ever-helpful Christian J. Robinson.
  • Unformat - this is Adam Dray's perl precursor to Christian's unformatter.
  • Have You Thought it Through: Designing a MMORPG - MMOs at their heart are just MUDs with pretty graphics (and a bankroll). So, the fundamentals of MMO design are similar to planning a MUSH.
  • Omega Flatfile Converter - when you want to move a flatfile from one server to another or update a very old file to newer structure.

Mush Economics

Economies are one of the hardest elements in a MUSH environment to elements to enforce. While players are (in general) willing to abide by enforcement of combat or other conflict resolution by softcoded systems, and are often highly dependent on code systems for transportation, they systematically tend to resent coded economies. The only successful economies I've seen (and successful is somewhat optimistic description) are those that are hooked into every element of game play.


One of the great joys of MUSH (to me, anyway) is that I was able to learn to program without having a programming background. When I began writing MUSH code, I was a young housewife, with a great deal of free time on my hands. I learned through a very long process of trial and error. The programming I do is called "softcoding", and refers to creating objects on the fly within the MUSH database structure. "Hardcoding" refers to writing scripts in more traditional programming languages (or modifying the TinyMUSH server) and requires more real-world programming training to accomplish. I'm no longer a housewife. In fact, I'm now an IT professional. However, I can honestly say that I would have never been on this career path if I hadn't been interested in MUSHing. Because I wanted to learn to code I "had" to learn how to set up server software (which meant setting up my own Linux box). This was before the time of Windows ports. It all grew from there.

I have switched between PennMUSH, TinyMUSH, and TinyMUX coding, the servers are almost identical on a softcode level. Some functions or flags carry different names, while some new ones exist in one server or the other. However, it takes a minimal amount of brainpower to switch from one to the other (after you know at least one). PennMUSH is a little tricker to go to after becoming comfortable with TinyMUSH/TinyMUX, but I'm sure people with young and flexible minds can do it.


It may be useful to install one (or more) servers on a home machine in order to work on code projects. This allows you to have access to wizard powers (assuming you're not wizzing on a live game), and going through the documentation files can teach you much about how the server works.

As a short illustrative example of that, I was asked to work on a PennMUSH game installing WoD globals and my edit of Didi's Chargen. For several weeks, I was frustrated by all of my TinyMUSH/TinyMUX code "breaking" on the Penn server. It was a laborious process to re-write it, but, it seemed that it had to be done. I finally installed Penn on my home machine, to give me more time to work on the porting project. While reading over the sample configuration file, I learned that there was a simple configuration change of a function compatibility setting that would allow my TinyMUX code to run on PennMUSH. I would have never learned this if I hadn't installed the server, myself.

  • TinyMUX has both UNIX/Linux and 32-bit Windows native versions under development. Both are very stable. Includes the World of Darkness "Realms" flags, which vastly simplifies the wraith/changeling/umbra code for White Wolf MUX's.
  • TinyMUSH is a merged server that came from combining TinyMUX 1.6x and old TinyMUSH 2.2x, resulting in a stable and feature-rich server. It's in very friendly competition with the other choices.
  • PennMUSH is a server that I've worked on only under protest. In the past I had agreed to help out a new WoD game that ran on Penn. I find it very confusing when compared to TinyMUSH 2.2, TinyMUSH 3.0, or TinyMUX 1 or 2. It's a nice enough server if you're not "set in your ways" like I am. It also has a reputation for strong security. There's nothing personal with my dislike of PennMUSH, I'm just not all that comfortable with the softcode.

MU Characters

I have characters on different MU*s from time to time. I started MUShing in 1994 and am still semi-active as a code consultant and player.

Gwen's MUSH characters

There's also a Wayback archive of my previous MUSHcode site. This old site hosted at Geocities was a long-time resource for people looking for help with MUSH code. RIP Geocities!


I have characters on several different MU*s from time to time. However, the one MUSH I am completely loyal to is CrystalMUSH. CrystalMUSH has a wiki. I have been playing on CrystalMUSH since 1994 (class 2010 was going through adaption when I first began playing), and I plan to be around until the lights get shut off :).

Crystal Sorting "Rules"

Crystal sorting is reasonably complicated, many people are unable to wrap their heads around the concepts. The sorting algorithm is based on a combination of what occurs in the Crystal Singer books, as well as the compromises and limitations of what was built into the soft code market and sorting objects.

I've written out the CrystalMUSH Crystal Sorting Rules as I can best explain them.

Planet Projects

I run two planetary builder characters on the CrystalMUSH game. One is the Chancellor of the atmosphered moon, Verron IV. The other is the Prime Administrator, Yamarika, of the tropical planet Taal'en. Verron IV is a former military base now settled by a civilian population. It's an earth-gravity atmosphered moon circling a gas giant very similar to our own Jupiter, incredibly mineral and energy rich. Mining the variety of precious metals and minerals, radioactive elements, and gaseous materials is the primary of three industries (Mining, Geo-Physics, and Bio-Genetics). There's also a Medical Academy, exported table wines, and a thriving tourist industry. Much of this wealth has been invested back into the moon, in terraforming and structural improvements.

Taal'en is a tropical world with one habitable continent and multiple archipelagos. It only has two recognizable seasons, a rainy season (where precipitation falls each hour of the day), and a dry (where there is no precipitation at all). These seasons each occur twice within the planet's solar year. It exports a wide range of raw food materials and native crafts. Taal'en is a low-tech world by choice rather than necessity. This lack of technology is balanced by a wide range of beautiful landscapes, including rainforests, black sand beaches sheltering elaborate coral beds, limestone mountains and cave complexes, and grassy savannahs. The residents of Taal'en are known for their exotic, though still humanoid appearance. Dark green skin, green hair, and silvery-blue eyes with slitted pupils are all the marks of a true native. There is a fully-integrated Earth-norm humanoid population as well. The "greenies" tend to get along well with anyone, and racial flare-ups are rare.

Both planets are under constant reconstruction and updating. My goal is to make each of them more elaborate than any other planet in the game, including Ballybran, if possible. I have project lists for both coders and descers.

Update as of January, 2014. Yes, I'm still accepting completed projects. Elite cutter parts are not available at this time, as staff refuses to issue any more cutters.

CrystalMUSH Claim Records

Both Indira and Wolfgang created claim documents that recorded all the claims in the game.

The above two documents were what I used to create my Tinyfugue Claim Array database and the newer Expanded Claim Array database.

Realms of Despair

I don't MUD often, but when I do, I play Realms of Despair.