Jedi MUD Client migration

JMC smudgy

Turn a JMC .set config into a smudgy TypeScript module. Best-effort conversion of aliases/actions/highlights/subs/hotkeys/vars.

Drop a JMC .set file here

Plain-text .txt exports are accepted too.

LOCALConversion happens in this browser tab. The file is not uploaded.

Installing the module

  1. Download the generated .ts file.
  2. Move it into the modules folder for the relevant server.
  3. Start a session for that server. If it is already open, reload its scripts.
Windows
Documents\smudgy\<Server>\modules\
macOS and Linux
~/Documents/smudgy/<Server>/modules/

Editing module-created automations

jmc2smudgy creates a smudgy module. Automations created by a module are read-only in the automations window; otherwise, rerunning the module could overwrite changes made there. To change an alias, trigger, or hotkey, edit the generated .ts file.

Conversion reference

JMC inputGenerated smudgy code
#aliascreateAlias. Typed arguments append, TinTin-style, when the body has no %0%9.
#actioncreateTrigger, named after the JMC pattern so nested #unaction commands continue to resolve it.
#highlightcreateTrigger with line.highlight(...).
#substitutecreateTrigger with line.replace(...). {.} becomes line.gag().
#hotcreateHotkey, including JMC names such as NUM8 and MIN.
#variablevars.* seeds. Existing persisted values take precedence.
#output, #showme, #statusStyled echo calls or vars.statusN assignments.
#if, #loop, #math, #varExperimental search/replace into TypeScript.
Unsupported inputComments and warnings, so it remains visible for manual review.

What to check

After converting, check these cases:

  • JMC replaces and highlights every match on a line. smudgy currently changes the first one.
  • A highlight or action that only matches text captured by a substitute wildcard may need to be reworked by hand.
  • There is no direct match for #multiaction off; more than one generated trigger can fire on the same line.
  • JMC’s pattern matcher and JavaScript regular expressions handle a few ambiguous wildcards differently. If a trigger fires too often, inspect its generated regex.
  • Connection commands, tick timers, #read, and other client-level commands are kept as comments rather than guessed at.