Est. 1993 Intermediate

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)

Paradigm Scripting: Event-driven, Imperative, Domain-Specific
Typing Dynamic, Weak (string-based)
First Appeared 1993
Latest Version TinTin++ 2.02.61 (January 2026)

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:

EraMaintainerHighlights
1992Peter UnoldOriginal TINTIN client (aliases, triggers)
1993–1995Bill Reiss and teamTinTin++ born; grows to v1.61
~1995–2004Davin Chan and othersMaintenance; GPL re-licensing (2001)
2004–presentIgor van den HovenMajor 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

1992
Peter Unold posts the original TINTIN MUD client to Usenet, roughly 700 lines of C supporting aliases and triggers
1992
Unold releases TINTIN III, a more mature and feature-rich final version of the original client
1993
Bill Reiss continues development and announces TinTin++ v1.0 on July 3, popularized alongside DikuMUD
1995
TinTin++ v1.61 released in January as the last version from the original development team
2001
Davin Chan re-licenses TinTin++ under the GNU GPL with his final release, v1.86b
2004
Igor van den Hoven revives the project, substantially rewriting the codebase and releasing a new official TinTin++
2020
By this period, continued development under Igor van den Hoven had extended the client with features such as PCRE, UTF-8, SSL/TLS, and IPv6 support
2026
TinTin++ 2.02.61 released on January 29, reflecting ongoing active maintenance

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.

Language Influence

Influenced By

C TINTIN

Running Today

Run examples using the official Docker image:

docker pull
Last updated: