TinTin++
A console MUD client whose embedded, C-like TINTIN scripting language powers triggers, aliases, and automation for text-based multiplayer games.
Created by Bill Reiss (based on Peter Unold’s original TINTIN)
TinTin++ (also written tt++) is an extensible, command-line MUD client whose defining feature is its built-in scripting language, commonly called the TINTIN scripting language. Designed for playing text-based multiplayer games known as MUDs (Multi-User Dungeons), the language lets players automate gameplay through triggers, aliases, and variables, while its later evolution grew into a general-purpose tool for text processing, automation, and shell scripting. Its syntax deliberately resembles C, giving it a familiar feel to programmers of the era.
History & Origins
The story of TinTin++ begins not with TinTin++ itself but with a much simpler program. On April 1, 1992, Danish programmer Peter Unold posted a small MUD client to Usenet — roughly 700 lines of C code that supported aliases and triggers. It was named TINTIN. Later that year, Unold released TINTIN III, a substantially more mature and feature-rich version, which became his final release of the original client.
In 1993, development passed to Bill Reiss, who had begun mudding in January of that year. Reiss discovered the TINTIN codebase, fixed bugs, and added features, ultimately announcing TinTin++ v1.0 on July 3, 1993. The client spread quickly, propelled by its approachable scripting language and by the surging popularity of DikuMUD, the game family for which it was especially well suited. Over the following year, a small team — including Bill, Dave, Joann, and David Wagner — expanded the client, culminating in v1.61, released in January 1995 as the original team’s last version.
Years of Dormancy and Revival
After 1995, little progress was made for nearly a decade. The official homepage eventually went offline, and fragmented copies of the source circulated online. During this period Davin Chan maintained the project and, in a pivotal move, re-licensed TinTin++ under the GNU General Public License with his final release, v1.86b, in 2001 — ensuring the software would remain free and open.
In 2004, Igor van den Hoven discovered the neglected project and took over maintenance. He performed a dramatic rewrite of the v1.84b codebase — deleting roughly a third of the code and rewriting more than half of what remained — and, with Bill Reiss’s approval, released a new official TinTin++. Under Igor’s stewardship the client and its scripting language have been continuously developed ever since.
Design Philosophy
The TINTIN scripting language was born from a practical need: MUDs are fast-paced, text-driven worlds, and players wanted a way to react automatically to what the game sent them. The language is organized around that goal.
- Event-driven at its core — The central idea is the action (trigger): a pattern that, when matched in incoming text, fires a scripted response.
- C-like familiarity — The syntax echoes C conventions, making it comfortable for the programmers who dominated early MUD communities.
- Everything is text — Values are strings; the language leans on pattern matching and substitution rather than a rich type system.
- Terminal-native — The language lives inside a console client, embracing VT100/xterm terminal emulation rather than a graphical interface.
Key Features
The modern TinTin++ scripting environment provides a comprehensive command set for automating and manipulating MUD sessions:
Triggers and Aliases
#action {%1 tells you '%2'} {tell %1 I got your message: %2}
#alias {greet} {say Hello, everyone!}
Actions watch the incoming stream and run commands when patterns match; aliases turn short player-typed commands into longer sequences.
Variables and Substitution
#variable {target} {dragon}
#showme {My target is $target}
Variables store state, and $-prefixed references expand inside commands, enabling dynamic scripts.
Control Flow and Math
#if {$hp < 100} {quaff healing};
#math {result} {5 * (3 + 2)}
Conditionals, loops (#loop, #while), and integer/floating math give the language genuine programmatic power beyond simple macros.
Modern Capabilities
Later releases extended the language and client with support for TELNET, PCRE regular expressions, UTF-8, SSL/TLS, VT100 and xterm terminal emulation, and IPv6. These additions turned TinTin++ into a capable tool for text processing, automation, interprocess communication, redirection, and session multiplexing — well beyond its MUD-playing origins.
Evolution
TinTin++’s history divides cleanly into eras:
| Era | Maintainer | Highlights |
|---|---|---|
| 1992 | Peter Unold | Original TINTIN client (aliases, triggers) |
| 1993–1995 | Bill Reiss and team | TinTin++ born; grows to v1.61 |
| ~1995–2004 | Davin Chan and others | Maintenance; GPL re-licensing (2001) |
| 2004–present | Igor van den Hoven | Major rewrite; modern feature set |
Under active maintenance, the scripting language has accreted commands and capabilities steadily, with the client reaching version 2.02.61 in January 2026.
Current Relevance
Although MUDs are a niche compared to their early-1990s heyday, TinTin++ remains actively maintained and widely available. It is packaged for Debian and Ubuntu, runs on Android through Termux, and can be built from source on Unix-like systems; the project also documents running it on Windows (via Cygwin, WSL, or an installer) and on other platforms. A community persists around its GitHub repository, forum, and Discord.
The scripting language has also found a second life outside gaming. Because it can drive TELNET connections, process text with regular expressions, and orchestrate shell commands, some users employ TinTin++ purely as an automation and text-processing engine.
Why It Matters
TinTin++ occupies a distinctive place in computing history as one of the longest-lived scripting environments to emerge from the MUD community. For a generation of players, the TINTIN scripting language was an accessible first encounter with event-driven programming — writing a trigger to auto-heal or an alias to speedwalk was, for many, an entry point into coding. Its endurance from a 700-line Usenet post in 1992 to an actively maintained client more than three decades later is a testament to the durability of small, focused, open-source tools and to the vibrant, self-taught programming culture that grew up around text-based virtual worlds.
Sources
Timeline
Notable Uses & Legacy
DikuMUD players
TinTin++ gained early popularity as a client for DikuMUD and its derivatives, where its trigger and alias scripting automated combat and navigation.
Debian and Ubuntu
TinTin++ is packaged in the Debian and Ubuntu repositories (installable via apt), making it a readily available terminal MUD client on Linux.
Termux on Android
The client is distributed as a Termux package, letting players run MUD sessions and scripts from Android devices in a Linux-like terminal.
Automation and shell scripting
Beyond gaming, the TINTIN scripting language is used for text processing, automation, interprocess communication, and terminal multiplexing tasks.
MUD bots and mapping
Players build auto-mappers, healing bots, and speedwalking systems using the client's session, trigger, and variable commands.