Difference between revisions of "MUSH to MOO Guide"

From Super Robot Wiki
Jump to navigation Jump to search
 
(15 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Aliases ==
+
If you're coming from another modern roleplaying codebase, such as MUSH or MUCK, there are a few peculiarities to MOO that may throw you. You're likely used to the general flow of play, which has been substantially unchanged, but there will be differences here and there. We've taken a fair amount of time to adjust them, with interoperability as a priority.
We are well aware that not everyone is going to like every function of MOO, and that there are a lot of common MUSH conventions it gets just... barely... wrong. Just a touch.
 
  
Accordingly, we offer support for aliasing a lot of commands in BeipMU. These aliases are provided below, in the following format:
+
Note that this is a guide for player use cases, not programmer use cases.
  
Matcharoo - place this in the Matcharoo box of the alias prompt.
+
== New Tools ==
 +
The most useful MOO tool that does not exist on MUSH is @paste. @paste lets you simply paste text in without the usual suspects of %r, %t, and %b, and simply have it output unmodified. This can be used to quickly convey large amounts of text without needing to fuss with it. It does take ANSI colors (more on that later).
  
Alias For - place this in the Alias For box of the alias prompt.
+
== Non-Channel Communications ==
 +
Communication on MOOs is much like communication on MUSHes; the usual command markers -- ", :, and @emit -- all work equally well. There are only two core differences between the commands. One has to do with spacing, while the other has to do with semiposing.
  
Other - Boxes that must be ticked in the alias.
+
=== Spacing ===
  
The "Process Aliases" box in the upper right of the alias builder must be checked.
+
* " and : are meant to be compact, short commands on MOOs. These commands do not evaluate %r, %t, and %b; however, they will take any number of nonbreaking spaces you happen to want, unlike MUSHes, which sanitize multiple spaces down to a single space. Emit/@emit still takes %r, %t, and %b in more or less the expected ways.
 +
* %t, rather than inserting an indent to a fixed point, inserts eight consecutive spaces. As %t is generally used only to start a pose, and %b is preferred in formatting internally anyway, this should not cause more than the occasional hiccup. (Use %b for internal formatting. It is more reliable, in general.)
  
=== Interaction Commands ===
+
=== Semiposing ===
 +
In MUSH syntax, the semicolon is used to perform semiposes. While semiposes still exist in MOO (how else would we talk about the things we own?), the syntax for one is ::, rather than ;. For instance, if you, Amuro Ray, wanted to announce that your Haro is stinky, you would input <code>::'s Haro is making a lot of noise...</code>and receive: <code>Amuro Ray's Haro is making a lot of noise...</code> We get that this is horrible and bad if you've been MUSHing for more than three years and offer [[BeipMU Aliases]] specifically to get rid of this behavior.
  
==== Quit ====
+
== Channel Communications ==
This alias makes QUIT (MUSH syntax) fire a successful @quit.
+
Rather than <code>+<channel name/abbreviation> :</code>for posing on channels, MOO uses <code>=<channel name/abbreviation></code>. If you want to adjust this behavior, the [[BeipMU Aliases]] page again offers an alias that adjusts the behavior.
  
Matcharoo: <code>QUIT</code>
+
Likewise, MOO channel text output is just slightly differently formatted. You'll see this when you get on the game, because going over it here in exhaustive detail would add rather than subtract confusion.
  
Alias for: <code>@quit</code>
+
== Colors (jibun wo sekai sae mo...) ==
 +
In a much happier note, colorizing text works in a much simpler way than in the MUSH format; you simply start the sequence with the color in [brackets], such as <code>[red]</code>. Color will also output from RGB values or xterm color codes. RGB values use the format <code>[xxx:xxx:xxx]</code>, while xterm colors use the format <code>[:xxx]</code>. Note that you should make sure your inputs for these formats use three digits each, such as [:051] if you want xterm51, or [153:013:014] if you want RGB 153/13/14.
  
Other: Whole Word, Match Case
+
If you, Lelouch vi Britannia, wanted to highlight a Geass command in a pose with that familiar Geass crimson:
  
==== Semipose ====
+
<code>Lelouch flares his hand out over his eye. "[170:051:051]Tell me the time,[normal]" he commands, watching expectantly.</code>
This alias makes MUSH's semipose character (;) retrieve MOO's semipose syntax (::).
 
  
Matcharoo: <code>;</code>
+
This will output the text in RGB value 170:51:51 (roughly, some flavor of crimson), starting from 'Tell' and terminating at 'time,'. <code>[normal]</code> will always return color to expected system value.
  
Alias For: <code>::</code>
+
== @mail ==
 +
@mail works way, way differently from MUSH.
  
Other: Line Starts With...
+
=== Starting an @mail ===
 +
To begin an @mail, type the following:
  
=== Csys Commands ===
+
<code>@send Person1 Person2 Person3 (...) Subj="Subject"</code>
  
==== Attack Command ====
+
For example:
This alias allows the attack command to take an = instead of a with, in the manner common on MUSHes.
 
  
Matcharoo: <code>\+attack ([\w']*\p{L}*\w[\w.]*(?:-\w+.)?)=([\w']*\p{L}*\w[\w.]*(?:-\w+.)?)</code>
+
<code>@send Alexis subj="Tomato Juice"</code>
  
Alias For: <code>+attack \1 with \2</code>
+
=== Populating an @mail ===
 +
This will open a mail editor. Adding lines to a mail requires putting a " in front of them.
  
Other: Regular Expression
+
For instance:<pre>
 +
"Dear Alexis,
 +
"
 +
"Can you get me some tomato juice? Also, meet me at Ryuutei tonight. We both need to talk to Gridman.
 +
"
 +
"Signed,
 +
"Akane Shinjo
 +
</pre>This will create a six-line @mail that works exactly as you expect. The lines will not be prepended with quotes in the final, sent @mail.
  
==== Defense Command ====
+
To finish your mail and send it, send the command<pre>
This alias allows reaction commands to take the MUSH convention format of +reactiontype # instead of the MOO convention format of +defend # with reactiontype.
+
send
 +
</pre>
  
Matcharoo: <code>\+(block|parry|react|retreat|rush|charge|evade|intercept|accept) ([\w']*\p{L}*\w[\w.]*(?:-\w+.)?)</code>
+
=== Putting it Together ===
 +
A full five-line @mail is presented below. Note that these are seven separate commands.<pre>
 +
@send Rikka_Takarada Yuta_Hibiki Sho_Utsumi Marusa_Ramo Ako_Furuma Namiko Hass Subj="School Festival"
 +
"<The following message arrives via Line.>
 +
"
 +
"You guys should sit back and watch the school festival from a distance! Like maybe a few city blocks?
 +
"
 +
"<crabhands sticker> <crabhands sticker>
 +
send
 +
</pre>To view your @mail, type @mail with no argument.
  
Alias For: <code>+defend \2 with \1</code>
+
To read an @mail, type @read #, where # is the number of the mail in the box, as in "<code>@read 20</code>".
  
Other: Regular Expression
+
=== Quick and Dirty ===
 +
Sometimes you just want to single-line snap off a message, though! Don't worry, we have features for that too.<pre>
 +
@quicksend "Rikka_Takarada Yuta_Hibiki Sho_Utsumi Marusa_Ramo Ako_Furuma Namiko Hass" Subj="School Festival" <The following message arrives via Line.>^ ^You guys should sit back and watch the school festival from a distance! Like maybe a few city blocks?^ ^<crabhands sticker> <crabhands sticker>
 +
</pre>This will send exactly the same thing the last message would have. Note the use of carets (^) rather than %r as separators!

Latest revision as of 17:25, 28 January 2022

If you're coming from another modern roleplaying codebase, such as MUSH or MUCK, there are a few peculiarities to MOO that may throw you. You're likely used to the general flow of play, which has been substantially unchanged, but there will be differences here and there. We've taken a fair amount of time to adjust them, with interoperability as a priority.

Note that this is a guide for player use cases, not programmer use cases.

New Tools

The most useful MOO tool that does not exist on MUSH is @paste. @paste lets you simply paste text in without the usual suspects of %r, %t, and %b, and simply have it output unmodified. This can be used to quickly convey large amounts of text without needing to fuss with it. It does take ANSI colors (more on that later).

Non-Channel Communications

Communication on MOOs is much like communication on MUSHes; the usual command markers -- ", :, and @emit -- all work equally well. There are only two core differences between the commands. One has to do with spacing, while the other has to do with semiposing.

Spacing

  • " and : are meant to be compact, short commands on MOOs. These commands do not evaluate %r, %t, and %b; however, they will take any number of nonbreaking spaces you happen to want, unlike MUSHes, which sanitize multiple spaces down to a single space. Emit/@emit still takes %r, %t, and %b in more or less the expected ways.
  • %t, rather than inserting an indent to a fixed point, inserts eight consecutive spaces. As %t is generally used only to start a pose, and %b is preferred in formatting internally anyway, this should not cause more than the occasional hiccup. (Use %b for internal formatting. It is more reliable, in general.)

Semiposing

In MUSH syntax, the semicolon is used to perform semiposes. While semiposes still exist in MOO (how else would we talk about the things we own?), the syntax for one is ::, rather than ;. For instance, if you, Amuro Ray, wanted to announce that your Haro is stinky, you would input ::'s Haro is making a lot of noise...and receive: Amuro Ray's Haro is making a lot of noise... We get that this is horrible and bad if you've been MUSHing for more than three years and offer BeipMU Aliases specifically to get rid of this behavior.

Channel Communications

Rather than +<channel name/abbreviation> :for posing on channels, MOO uses =<channel name/abbreviation>. If you want to adjust this behavior, the BeipMU Aliases page again offers an alias that adjusts the behavior.

Likewise, MOO channel text output is just slightly differently formatted. You'll see this when you get on the game, because going over it here in exhaustive detail would add rather than subtract confusion.

Colors (jibun wo sekai sae mo...)

In a much happier note, colorizing text works in a much simpler way than in the MUSH format; you simply start the sequence with the color in [brackets], such as [red]. Color will also output from RGB values or xterm color codes. RGB values use the format [xxx:xxx:xxx], while xterm colors use the format [:xxx]. Note that you should make sure your inputs for these formats use three digits each, such as [:051] if you want xterm51, or [153:013:014] if you want RGB 153/13/14.

If you, Lelouch vi Britannia, wanted to highlight a Geass command in a pose with that familiar Geass crimson:

Lelouch flares his hand out over his eye. "[170:051:051]Tell me the time,[normal]" he commands, watching expectantly.

This will output the text in RGB value 170:51:51 (roughly, some flavor of crimson), starting from 'Tell' and terminating at 'time,'. [normal] will always return color to expected system value.

@mail

@mail works way, way differently from MUSH.

Starting an @mail

To begin an @mail, type the following:

@send Person1 Person2 Person3 (...) Subj="Subject"

For example:

@send Alexis subj="Tomato Juice"

Populating an @mail

This will open a mail editor. Adding lines to a mail requires putting a " in front of them.

For instance:

"Dear Alexis,
"
"Can you get me some tomato juice? Also, meet me at Ryuutei tonight. We both need to talk to Gridman.
"
"Signed,
"Akane Shinjo

This will create a six-line @mail that works exactly as you expect. The lines will not be prepended with quotes in the final, sent @mail. To finish your mail and send it, send the command

send

Putting it Together

A full five-line @mail is presented below. Note that these are seven separate commands.

@send Rikka_Takarada Yuta_Hibiki Sho_Utsumi Marusa_Ramo Ako_Furuma Namiko Hass Subj="School Festival"
"<The following message arrives via Line.>
"
"You guys should sit back and watch the school festival from a distance! Like maybe a few city blocks?
"
"<crabhands sticker> <crabhands sticker>
send

To view your @mail, type @mail with no argument.

To read an @mail, type @read #, where # is the number of the mail in the box, as in "@read 20".

Quick and Dirty

Sometimes you just want to single-line snap off a message, though! Don't worry, we have features for that too.

@quicksend "Rikka_Takarada Yuta_Hibiki Sho_Utsumi Marusa_Ramo Ako_Furuma Namiko Hass" Subj="School Festival" <The following message arrives via Line.>^ ^You guys should sit back and watch the school festival from a distance! Like maybe a few city blocks?^ ^<crabhands sticker> <crabhands sticker>

This will send exactly the same thing the last message would have. Note the use of carets (^) rather than %r as separators!