The best way to use MudCore is to use it as your starting database when you build a new game; the objects are numbered from #0 to #54. You can, however, simply strip-mine the objects for the code that you need, if that's what you'd like to do. (The objects are not currently separately available in their own code files, but they may become so in the future.)
Please credit MudCore if you use code from this package; the database includes a '+help mudcore' (#8/HELP_MUDCORE) for this purpose.
Download the latest version (1.4) now.
Once you download the package, you should be able to unpack it with:
gzip -d -c mudcore-current.tar.gz | tar -xvf -
Then, move the flatfile (mudcore-1.4.flat) and mudcore.conf to your
TinyMUSH game directory. Look at the README.mudcore file for further
installation instructions.
Upgrading a Previous MudCore Installation
If you currently have a MudCore distribution installed, you can upgrade it using a quotable diff file. Download the file, save it (in a file like 'upgrade.txt') and then use your MUD client to quote it to your MUSH. For instance, use TinyFugue to log in #1 (the God character), and then do a:
/quote -wYourWorldName -0 'upgrade.txt
This may take several minutes to finish, depending on your network.
Here's the patch from MudCore 1.3 to 1.4.
What's Included in MudCore?
The systems used in MudCore were originally developed primarily for PernMUSH and AmberMUSH, with additional systems being added for a number of other games over time. The code has now been used on dozens of games, and it has run stably on both PernMUSH and AmberMUSH for the last decade. Players are familiar with MudCore's interfaces and commands, and the code should be effectively maintenance-free.
Ambience: This system is used to trigger off "ambient" messages in rooms, in some reasonably efficient manner. It is based on a concept originally developed by Mark Grundy (Meg@AmberMUSH).
Authorization System: Handles locking and other permission-checking tied into groups, through the use of "authorization lists". It's integrated with the org system (see below), and is used by a number of other systems in this package.
Bulletin Board: This is a basic global bulletin board. It supports multiple bulletin boards, with permissions done with authorization lists.
Descer: This is a customizable, very powerful global descer. The interface is complex, though the generic back-end makes it possible to write arbitrary front-ends to the system.
Doors: Door locking and unlocking, to simulate groups of people with keys, using authorization lists. There is a door parent (#44) for the inheriting of default messages.
Editor: An attribute editor, similar to the editor used for +mail. It allows the entering of text without parsing, so percent-signs and the like do not get eaten.
Exits: A global exit that fakes the existence of cardinal-direction exits, allowing one to easily do things like, "The desert stretches endlessly to the north." without having a real 'north' exit.
Local Help: This is a local help system for individual areas. It is based upon code and concepts by Mark Grundy.
Login Monitoring: Members of the Login Monitoring org are automatically notified when someone connects or disconnects.
Mail: This is a global mail system, in the tradition of +mail systems begun by Jon Kull (F'jon@PernMUSH). It makes extensive use of the improved "look and feel" designed by Carol Gaupp (Brandy@CrystalMUSH), but all code is original. (My mail system is also sometimes known as FluffMail.)
Meta-Rooms: Temporary room-generation code that incorporates randomized elements into a name and description.
New Player Room: Manages new players, setting them up with basic attributes, not allowing them to leave the initial room without certain things set. Members of the Staff org are notified when a player connects for the very first time.
Organization ("Org") System: Manages "factions", "groups", etc. Incorporates a general data-storage system with a chat system. Extremely flexible and customizable. There are three default orgs, one for Wizards, one for Staff, and one for Login Monitoring.
Parent Room: There is a global parent room (#50) which pretty-prints and formats room descriptions for views and places, among other things.
Places: This is a "virtual places" system, whose most obvious use is simulating tables in a room. The code was originally written by Jeff Vance (formerly Drake@AmberMUSH, Sh'dow@PernMUSH), and then extensively bugfixed by Mark Grundy. I have since improved it in functionality and efficiency.
TrueNames: People can use "fake names" that show up in says and poses, as well as the room description.
Watches: This is a system which allows rooms to be watched, as if one had a puppet there, without needing to have an object in the room. Other players can see who's watching, of course, but it allow people to keep an eye on something like the MUSH's main chat room without cluttering it with puppets. It is tied into a '+go' system that allows one to teleport between locations identified with aliases, if the authorization lists allow one to do so.
Webster: An interface to the Webster robot is supported, through the +spell command and +request command (which requires the modified Webster with character creation code).
WizTools: This is a collection of useful commands for wizards: +addcomment to stamp a signed and dated note into something's @comment attribute (based on code by Chris Siebenmann), +brief to quickly list numeric data for an object, +lcon and +lexits to get the contents and exits of objects. This tool also manages MOTDs across restarts, based on code by Tim Poe (T'nor@SouCon).
+awake: This is an improved softcoded version of the @sweep command.
+check: This checks an item for missing attributes. It is based upon a concept by Ken Bartlett (Kynn).
+compass: This displays various types of compasses. It is based upon concepts and code by Kynn. It also includes Pandora's compass formats.
+decompile: This is a softcoded version of the @decompile command is not subject to the 16K output limit, so very large objects may be decompiled.
+details and +view: These commands provide additional information about objects and rooms, allowing extension of descriptions without spam. Based off models and code bits by: John Batzel (Tiercel@PernMUSH), Joshua Bell (Tash@NarniaMUSH), and Laura Burchard (Air@TooMUSH).
+finger: This provides information about a player. Its format is highly configurable.
+grep and +lattr: These search and list attributes, respectively.
+info: This provides basic information about a player. (This was the +finger command in MudCore 1.1.)
+idle, +who, +where, +3who: Commands to display idle times and locations, in varying formats.
+inspect, +scope, +size, +sizeall: Building-inspection and related database-control commands.
+knock: "Knock" on a door. Based on code and concepts by Mark Grundy.
+last: Display the last login/logout times of players.
+margins: Format a block of text with specified margins.
+mutter: Mutter something to someone, which is shown to the room with bits and pieces cut out of it. Based on concepts and code by Mark Grundy and Joshua Bell.
+mvattr: This command moves attributes between objects.
+online: Allows players to register times that they are online, and then provides a way to find overlaps in player availability.
+pairs: Locate errors in parentheses/braces/bracket matching.
+scan: Look for where $commands are getting matched.
+selfboot: Boot off all but your most recent connection.
+shout: "Shout" a message, so that people in the ajoining rooms can hear it.
+sizeall: Figure out how much database space a player is taking up.
+tidy: Sweep disconnected players and puppets from a room.
+uptime: List the game uptime.
+wizards: List on-line wizards.
+zoom: Shortest-path automatic movement and direction-finding code.
+3look: Display room contents in a 3-column format.
mp: Multi-page, in a format which closely mimics normal MUSH page (close enought that client hilites should work the same way for both). Obsoleted by server versions with multipage built into page.
Compatibility
The database is in TinyMUSH 3 format. If you'd like to use it directly on some other platform, you'll need a converter. If you just want to copy the code, here's the compatibility:
- TinyMUSH 3.0 and later
- Intended target platform. Fully compatible.
- TinyMUSH 2.2
- Original target platform. Most code will be compatible, except for code that uses newer features, such as @addcommand.
- TinyMUX 2
- Likely to work. Some small changes may be needed, particularly in the area of configuration.
- TinyMUX 1.6
- Most things will work. Some larger changes may be needed, particularly where TinyMUX 1.6 behavior and features differ from TinyMUSH 2.2.
- Other MUSH versions
- Unknown. Try it and see.
Revision History
| 04/16/95 | Began MudCore project from the Academy MUSH database and what would eventually become Pax Magica. (Those databases in turn were founded upon globals work for PernMUSH and AmberMUSH.) |
| 04/25/95 | Initial MudCore database finalized. |
| 03/20/96 | MudCore 1.0 released privately. |
| 04/28/97 | MudCore 1.1 frozen for public release. |
| 08/31/99 | MudCore 1.2 frozen for private release. TinyMUSH 3.0-based. |
| 08/31/04 | MudCore 1.3 released to the public. |
| 09/14/04 | MudCore 1.4 released to the public. |