TinTin++ Guide

Set up a powerful, scriptable MUD client in minutes.

What is TinTin++?

TinTin++ is a free, open-source MUD client that runs in your terminal. It supports aliases, triggers, variables, timers, scripting, and split-screen output — making it one of the most powerful ways to play Eye of the Storm.

Unlike graphical clients, TinTin++ is lightweight, runs on Windows (WSL/MSYS), Linux, and macOS, and can be fully automated through its built-in scripting language.

Installation

Linux / WSL (Ubuntu)

sudo apt update
sudo apt install tintin++

macOS (Homebrew)

brew install tintin

Windows (native)

Download the Windows binary from the official TinTin++ download page. We recommend using WSL2 (Ubuntu) for the best experience.

Connecting to Eye of the Storm

Launch TinTin++ and connect with a single command:

#session eots adeptlogic.us 4000

Or create a startup script so it connects automatically every time.

Startup Script

Save this as eots.tin and launch with tt++ eots.tin:

# Eye of the Storm startup script — eots.tin

# Connect to the MUD
#session eots adeptlogic.us 4000

# Split screen: output on top, input at bottom
#split 10

# Show a status bar with HP/Mana/Move (requires prompt triggers below)
#var HP {?};
#var MN {?};
#var MV {?};

# Auto-login (replace with your character name and password)
#action {^By what name} {mycharname}
#action {^Password} {mypassword}

# Suppress echo during password entry
#action {^Password:} {#echo Password prompt received}

Security note: Keep your script file private. Anyone with access to it can read your password.

Useful Aliases

Aliases let you type short commands that expand into longer ones.

# Short movement
#alias {ne} {n;e}
#alias {nw} {n;w}
#alias {se} {s;e}
#alias {sw} {s;w}

# Quick heals
#alias {hl} {cast 'heal' %1}
#alias {fl} {cast 'flamestrike' %1}
#alias {fs} {cast 'fireball' %1}
#alias {lh} {lay hands %1}

# Combat shorthand
#alias {k} {kill %1}
#alias {kk} {flee;kill %1}   # flee then re-engage

# Score/info
#alias {sc} {score}
#alias {sk} {skills}
#alias {sp} {spells}

Triggers

Triggers fire automatically when matching text arrives from the server.

Auto-Attack Trigger

# Auto-kill anything that attacks you
#action {^%1 hits you} {kill %1}

Low HP Warning

# Flash a warning when HP drops below a threshold
# Assumes your prompt contains HP info — adjust the pattern to match
#action {^<%1hp %2m %3mv>} {
  #var HP {%1};
  #var MN {%2};
  #var MV {%3};
  #if {$HP < 100} {
    #echo \e[1;31m*** LOW HP: $HP ***\e[0m
  }
}

Auto-Loot after Kill

# Automatically loot corpses
#action {^You receive %w experience points.} {
  get all corpse;
  sacrifice corpse
}

Garrote Warning (for Clerics/Mages)

# Alert when you've been garroted
#action {^%1 garrotes you} {
  #echo \e[1;33m*** GARROTED by %1 — spells may fumble! ***\e[0m
}

Variables & Timers

# Store a value
#var myvar {hello}
#echo $myvar

# Increment a counter
#math kills {$kills + 1}

# Timer: cast a buff every 30 seconds
#ticker refresh {cast 'armor';cast 'shield'} {30}

# One-shot delay (cast after 2 seconds)
#delay 2 {cast 'flamestrike' orc}

Full Combat Script Example

A simple cleric combat loop that keeps you buffed and attacks on engage:

# cleric_combat.tin

# Opening buffs when you engage
#action {^You start to attack %1} {
  cast 'armor';
  cast 'bless';
  cast 'flamestrike' %1
}

# Keep re-casting flamestrike each round
#action {^You feel more protected} {}   # absorb armor message
#action {^%1 is DEAD} {
  get all corpse;
  sacrifice corpse;
  cast 'cure serious'    # heal up after each kill
}

# Emergency heal at low HP
#action {^<%1hp} {
  #if {%1 < 80} {cast 'heal'}
}

# Lay hands when critically low
#action {^<%1hp} {
  #if {%1 < 30} {lay hands}
}

Tips & Tricks