Difference between revisions of "MUSH to MOO Guide"

From Super Robot Wiki
Jump to navigation Jump to search
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
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.
 
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 ==
 
== Non-Channel Communications ==
Line 11: Line 16:
 
=== Semiposing ===
 
=== 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.
 
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.
 +
 +
== Channel Communications ==
 +
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.
 +
 +
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...) ==
 
== Colors (jibun wo sekai sae mo...) ==
In a much happier note, colorizing text works in a much simpler way than in the MUSH format. If you, Lelouch vi Britannia, wanted to highlight a Geass command in a pose with that familiar Geass red:
+
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.
 +
 
 +
If you, Lelouch vi Britannia, wanted to highlight a Geass command in a pose with that familiar Geass crimson:
  
<code>Lelouch flares his hand out over his eye. "[170:51:51]Tell me the time,[normal]" he commands, watching expectantly.</code>
+
<code>Lelouch flares his hand out over his eye. "[170:051:051]Tell me the time,[normal]" he commands, watching expectantly.</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.
 
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.
 +
 +
== @mail ==
 +
@mail works way, way differently from MUSH.
 +
 +
=== Starting an @mail ===
 +
To begin an @mail, type the following:
 +
 +
<code>@send Person1 Person2 Person3 (...) Subj="Subject"</code>
 +
 +
For example:
 +
 +
<code>@send Alexis subj="Tomato Juice"</code>
 +
 +
=== Populating an @mail ===
 +
This will open a mail editor. Adding lines to a mail requires putting a " in front of them.
 +
 +
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.
 +
 +
To finish your mail and send it, send the command<pre>
 +
send
 +
</pre>
 +
 +
=== 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.
 +
 +
To read an @mail, type @read #, where # is the number of the mail in the box, as in "<code>@read 20</code>".
 +
 +
=== 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!