Set up a powerful, scriptable MUD client in minutes.
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.
sudo apt update
sudo apt install tintin++
brew install tintin
Download the Windows binary from the official TinTin++ download page. We recommend using WSL2 (Ubuntu) for the best experience.
Launch TinTin++ and connect with a single command:
#session eots adeptlogic.us 4000
Or create a startup script so it connects automatically every time.
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.
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 fire automatically when matching text arrives from the server.
# Auto-kill anything that attacks you
#action {^%1 hits you} {kill %1}
# 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
}
}
# Automatically loot corpses
#action {^You receive %w experience points.} {
get all corpse;
sacrifice corpse
}
# Alert when you've been garroted
#action {^%1 garrotes you} {
#echo \e[1;33m*** GARROTED by %1 — spells may fumble! ***\e[0m
}
# 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}
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}
}