CoffeeMud MUD Engine

repository·master·Indexed 42 days ago

https://github.com/bozimmerman/coffeemud

A comprehensive Multi-User Dungeon (MUD) engine written in Java. It provides a framework for hosting and building complex virtual worlds with extensive configuration and content creation capabilities, including a robust system of player commands for character management, movement, and world interaction.

Tokens
29.8K
Snippets
117
Records
143
Agent score
51%

What's inside CoffeeMud

  1. Access Archon help categories

    master

    Archon commands in CoffeeMud are organized into functional categories. You can explore these categories to find specific administrative and system-level commands. The primary categories include:

    • Building: Commands for managing world objects (create, destroy, modify, link, etc.).
    • Adv Building: Advanced building tools (generate, import, export, catalog, etc.).
    • Movement: Commands for teleportation and visibility (at, transfer, goto, poof, etc.).
    • Players: Player management (ban, boot, expire, snoop, etc.).
    • Toys: Specialized utility commands (as, possess, chargen, jconsole, etc.).
    • System: Core engine management (load, unload, shutdown, shell, etc.).
    • Communication: Global messaging (announce, wizemote, motd).
    • Information: Discovery and status commands (ahelp, atopics, where, etc.).
    • Archon Skills: Specialized magical or administrative abilities (multiwatch, wrath, hush, freeze, etc.).
  2. View MOB state and hygiene status

    master

    When running the AFFECT command without arguments, the system provides a summary of the character's current physical and mental state, including:

    • Hygiene: Messages regarding cleanliness (e.g., "You could use a bath", "Your stench is horrendous!").
    • Movement/Posture: Current state such as bound, sleeping, resting, swimming, climbing, flying, or standing.
    • Riding: If the character is mounted, it displays the mount's state and name.
    • Stealth/Visibility: Statuses like invisible, hidden, sneaking, or QUIET mode.
    • Vitals: Fatigue levels, hunger, and thirst status.
  3. Review command journal history

    master

    You can review the history of a specific command journal using the REVIEW sub-command. This allows you to read previous entries in the journal.

    Syntax: [JournalName] REVIEW [count] [target]

    • count: The number of messages to retrieve (starting from the most recent).
    • target: (Optional) A specific player, journal name, or the keyword ALL to filter the history.

    If no count is provided, it defaults to reading the available messages. If the journal is empty, you will see: There are no [journalWord] listed at this time.

  4. Transfer command journal messages

    master

    The TRANSFER sub-command allows you to move a specific message from one journal to another or to a different recipient.

    Syntax: [JournalName] TRANSFER [count] [target] [destination]

    • count: The index of the message to transfer (e.g., 1 for the most recent).
    • target: The recipient or filter (Player name, ALL, or a specific journal name).
    • destination: The name of the journal or entity where the message should be moved.

    Security: Transferring messages requires CMSecurity.SecFlag.JOURNALS permission or specific journal access rights. If unauthorized, you will see: Transfer not allowed.

  5. Use the CALENDAR command to view game events

    master

    The CALENDAR command allows players to view upcoming, current, and past game events. You can view events based on different timeframes using specific sub-commands.

    Sub-commands

    • CALENDAR NOW: Shows events occurring at the current game time.
    • CALENDAR SOON: Shows events occurring now or starting within the next 2 game days.
    • CALENDAR RECENT: Shows events that occurred within the last 2 game days.
    • CALENDAR NEXT [num] [period]: Shows the next set of events.
      • num: The number of time periods to look ahead (defaults to 1).
      • period: The time unit (e.g., hour, day, week, month, season, year). Defaults to week if omitted.
    • CALENDAR PAST [num] [period]: Shows events that occurred within the specified number of past time periods.

    Real-Life Time

    To view events based on real-world time rather than game time, prefix your period with REAL or RL (e.g., CALENDAR NEXT 1 REAL WEEK).

    CALENDAR NOW
    CALENDAR SOON
    CALENDAR RECENT
    CALENDAR NEXT 2 MONTH
    CALENDAR PAST 1 WEEK
    CALENDAR NEXT 1 REAL DAY
  6. Use the AFFECT command to view status effects

    master

    The AFFECT command (aliases: AFFECTS, AFF, AF) allows a user to view current status effects (abilities/buffs/debuffs) on themselves, a specific target, or a location.

    Usage Patterns

    1. View your own status effects Simply type the command to see your current status, hygiene, and active effects.

    AFFECT

    2. View effects on a target To see what is affecting a specific person or item, provide the name of the target.

    AFFECT <target_name>

    3. View effects in a location You can check for effects currently active in your immediate surroundings using specific keywords:

    • AFFECT here or AFFECT room
    • AFFECT area or AFFECT zone

    Sorting and Filtering

    You can append sorting keywords or type/domain filters to the end of your command to organize the output.

    Sorting Options:

    • NAME: Sort by the display name of the effect.
    • TYPE: Sort by the ability type.
    • DOMAIN: Sort by the ability domain.
    • REMAIN: Sort by the remaining duration (time left).

    Filtering: You can filter the list by providing an ability type or domain at the end of the command. Note that the command parser handles these as part of the argument string.

    # Examples of command usage
    AFFECT
    AFFECT <target_name>
    AFFECT here
    AFFECT area
    AFFECT <target_name> NAME
    AFFECT <target_name> REMAIN
  7. Install and configure CoffeeMud

    master

    To install and configure CoffeeMud, you should refer to the guides/InstallationGuide.html file. This guide provides instructions for:

    • Initial installation
    • Primary configuration
    • Secondary configuration
    • Content building processes
  8. Schedule delayed or recurring commands with AFTER

    master

    The AFTER command allows a user (with appropriate security permissions) to schedule a command to be executed by them after a specific delay, or repeatedly at a set interval.

    Usage Syntax: after (every) [X] [TICKS/MINUTES/SECONDS/HOURS] [COMMAND]

    Parameters:

    • every: (Optional) If included, the command will repeat indefinitely at the specified interval. If omitted, the command runs only once.
    • [X]: The numeric value of the delay/interval.
    • [TICKS/MINUTES/SECONDS/HOURS]: The time unit for the delay.
    • [COMMAND]: The actual command string to be executed.

    Time Units: Supported units include TICKS, MINUTES, SECONDS, and HOURS. The system uses a multiplier to convert these into milliseconds.

    Security: This command requires CMSecurity.SecFlag.AFTER permissions.

    # Run a command once after 5 minutes:
    after 5 MINUTES say Hello world
    
    # Run a command every 10 seconds:
    after every 10 SECONDS say Tick
  9. Use the Announce command to broadcast messages

    master

    The ANNOUNCE command family allows authorized users to broadcast messages to other players. The message format depends on the user's alignment or a custom prefix set via ANNOUNCEMSG.

    Command Syntax

    • ANNOUNCE (MESSAGE): Broadcasts a message to all online players.
    • ANNOUNCETO [ALL|HERE|(USER NAME)] (MESSAGE): Targets specific players or groups.
      • ALL: Broadcasts to everyone online.
      • HERE: Broadcasts to everyone in your current location.
      • (USER NAME): Broadcasts to a specific player by name.
    • ANNOUNCEMSG (NEW ANNOUNCE PREFIX): Sets a custom prefix for all future announcements made by this character.

    Security Requirements

    To use these commands, the character must have the CMSecurity.SecFlag.ANNOUNCE permission for their current location.

    ANNOUNCE The world is ending!
    ANNOUNCETO HERE The dragon has arrived!
    ANNOUNCETO Bob You have been chosen!
    ANNOUNCEMSG I am the herald of doom!