TinTin++ checklist for MUDs
This checklist ensures that a TinTin++ script configuration is stable, secure, and optimized for high-level MUD gameplay and automation. Follow these steps to transition from a basic script file to a production-ready environment.

Core Session Management
0/5Automated Connection Logic
criticalVerify that the startup script uses #SESSION and #CONNECT to automatically reach the target host without manual input.
Session Naming Convention
recommendedEnsure every session is assigned a unique, descriptive name to prevent command collisions in multi-session environments.
Auto-Reconnect Implementation
recommendedImplement a #EVENT {SESSION DISCONNECTED} trigger that attempts to reconnect after a staggered delay (e.g., 5, 10, 30 seconds).
Startup Event Handlers
criticalConfirm that #EVENT {SESSION CONNECTED} triggers the loading of character-specific scripts and initial status requests.
Graceful Shutdown Sequences
recommendedTest that a 'quit' command or session kill triggers a #WRITE command to save persistent variables before the session closes.
Script Architecture and Modularity
0/5Class-Based Scoping
criticalWrap all feature-specific scripts (mapping, combat, inventory) in #CLASS blocks to allow for clean loading and killing without restarting the client.
Relative Pathing
criticalReplace absolute file paths with paths relative to the main script directory to ensure portability across different machines.
Variable Initialization
recommendedDefine default values for all essential variables at the top of the script to prevent errors when logic checks undefined variables.
Configuration File Separation
criticalSeparate user-specific settings (passwords, character names) into a 'config.tin' file that is excluded from version control.
Alias Namespace Management
recommendedPrefix all internal script aliases with a unique identifier (e.g., .map_move) to avoid overwriting standard MUD commands.
Trigger Safety and Performance
0/5Priority Assignment
criticalExplicitly set numeric priorities for all #ACTION and #PROMPT commands to ensure critical triggers fire before generic ones.
Infinite Loop Prevention
criticalReview all triggers that send commands back to the MUD to ensure they cannot trigger themselves or other scripts in a loop.
Prompt Detection Efficiency
recommendedUse the #PROMPT command or specific anchor characters (^ or $) in regex to minimize CPU usage on high-traffic sessions.
Gagging and Filtering
optionalImplement #GAG for frequent, non-essential messages (e.g., weather, ambient room noise) to reduce terminal scroll-back bloat.
Multi-line Trigger Anchoring
recommendedEnsure multi-line triggers use state variables or line counters to prevent partial matches on fragmented network packets.
Terminal UI and Display
0/5Split Screen Configuration
criticalEnable #SPLIT and verify that the input line is separated from the scroll-back buffer to prevent input corruption by incoming text.
Status Bar Updates
recommendedConfigure the #PROMPT or #SHOWME to populate the split-screen status line with health, mana, and experience data.
UTF-8 Encoding Support
recommendedVerify that #CONFIG {CHARSET} is set to UTF-8 if the MUD or terminal uses non-ASCII characters or map symbols.
Color Variable Usage
optionalUse TinTin++ color codes (<088>, <118>, etc.) instead of raw ANSI sequences to maintain script readability.
Scrolling Buffer Limits
recommendedSet #CONFIG {SCROLL LOCK} and buffer size limits to prevent memory exhaustion during long play sessions.
Logging and Debugging
0/5Automated Session Logging
recommendedImplement #LOG {APPEND} {filename} on session start, using timestamps in the filename for easy retrieval.
Sensitive Data Scrubbing
criticalEnsure passwords sent via #SEND or #CONNECT are not echoed to the screen or written to plain-text log files.
Debug Mode Toggle
recommendedCreate an alias to toggle #DEBUG and #MESSAGES on/off for troubleshooting complex trigger logic.
Log Format Selection
optionalChoose between RAW (includes ANSI) or PLAIN (text only) logging based on whether the logs will be parsed by external tools.
State Persistence Verification
recommendedVerify that character variables (e.g., gold, inventory counts) are successfully written to a .tin file using #READ and #WRITE.
Network and Protocol Support
0/5Keep-Alive Pings
recommendedSet up a #TICKER that sends a null character or 'look' command every 60 seconds to prevent idle timeouts from firewalls.
SSL/TLS Verification
criticalIf the MUD supports it, use #SSL CONNECT to encrypt the session traffic and protect credentials.
MCCP Compression
recommendedVerify that Mud Client Compression Protocol (MCCP) is enabled in #CONFIG to reduce bandwidth usage and latency.
Telnet Option Negotiation
criticalEnsure #CONFIG {TELNET} is set to ON to correctly handle server-side requests like window size (NAWS) or terminal type.
Input Packet Patching
recommendedEnable #CONFIG {PACKET PATCH} to handle fragmented packets from the server that might otherwise break triggers.