jamie prince 9473d853ce Add Mastermind and Hangman single-player games
- Mastermind: 4-color sequence, 10 tries, black/white peg feedback
- Hangman: 6 lives, progressive letter reveal, 10-word vocabulary
- Both available in BBS (telnet) and web (WML/XHTML) sides
- Shared sp_games persistence, scores table integration
- Updated games index and menu navigation
2026-09-10 02:09:09 +01:00

txt3 BBS (wap.txt3.net)

A retro multi-front-end community platform that brings back the early 2000s internet experience of txt3 (Connecting people - since 1997). One account works across three front-ends: WML mobile, XHTML web, and telnet BBS, sharing forums, private mail, profiles, games, and an RPG MUD.

Front-ends

1. PHP Web Site (wap.txt3.net)

  • Markup: Auto-detects WML 1.1 (for period phones) vs XHTML (modern browsers)
  • URL: https://wap.txt3.net/
  • Features: Forums, private messaging, user profiles, embedded games, RPG character overview
  • Tech: PHP 8+, SQLite, session IDs in URL for WAP clients without cookies
  • Responsive: Designed to work on 2-inch phone screens up to desktop browsers

2. Telnet BBS (wap.txt3.net:12300)

  • Protocol: Raw telnet with minimal negotiation (RFC 854 compliant)
  • URL: telnet://wap.txt3.net:12300 or ssh -t wap.txt3.net nc 12300
  • Features: Text-based interface to the same forums, mail, games, and full MUD RPG
  • Tech: Python 3, SQLite, same database as web front-end
  • Control: Arrow keys for movement, single-letter commands (k=look, t=take, k=fight)

3. RPG MUD (shared)

  • Integrated: The telnet BBS includes a full RPG world separate from web features
  • Play: Create a character when you login; explore rooms, fight monsters, find items, level up
  • Items: Weapons, armor, potions (healing), gold bank
  • PvP: Attack other players in the same room
  • Leaderboards: High scores across all games

How It Works

Single Database: Both front-ends read/write the same SQLite database (public_html/data/wap.sqlite). You create one account and it works everywhere:

  • Login on the web → check mail → post in forums → play games
  • Or start a telnet session → explore the MUD → fight monsters → collect loot
  • Your character, items, and game scores are shared across all three interfaces

Password Security: PHP handles bcrypt hashing. Python BBS calls the PHP binary to verify/create passwords - no shared password library needed.

Markup Detection: Clients advertising vnd.wap.wml in the Accept header get WML 1.1 decks with softkeys. Everything else gets XHTML. You can manually force a markup with ?m=wml or ?m=html.

Quick Start

Running the Telnet BBS (development)

cd /home/jp/IdeaProjects/txt3-wap
python3 bbs/bbsd.py

Requires php binary at /usr/bin/php for password hashing.

Web Front-end

Already deployed at https://wap.txt3.net

Database

Existing seed data includes:

  • 3 forums: General, Mobile, Games
  • Pre-populated MUD world with rooms, monsters, and items
  • Default admin user (admin/wapadmin)

Client List

Telnet clients that work well:

  • telnet wap.txt3.net 12300 (standard)
  • PuTTY in raw mode
  • Windows telnet
  • nc wap.txt3.net 12300

Mobile: Any WAP 1.1 browser can access wap.txt3.net directly (phones from early 2000s still work)

Project History

  • 1997: txt3 begins "Connecting people"
  • 2002-2003: First txt3 domains archived by Internet Archive
  • 2004: txt3.net joins family, original WAP deck launched
  • 2016: Revival with unlimited free SMS + forum + blog
  • 2025: This hybrid reborn - same account across WML, XHTML, and telnet

See public_html/about.php for detailed timeline.

Technical Notes

Security

  • Hardened systemd service (txt3-bbs.service) with read-only filesystem protection
  • Passwords hashed with PHP's bcrypt (password_hash/password_verify)
  • Tailscale-only listener for BBS (port 12300)

Architecture

  • PHP: bootstrap.phpdb.phpui.phpmud.php
  • Python: bbsdb.pymud.pyboards.py/games.py/screens.py
  • Shared tables: users, messages, forums, topics, posts, scores, matches, sp_games
  • MUD tables: mud_rooms, mud_mobs, mud_items, mud_spawn, mud_chars, mud_events, etc.

MUD Controls

  • Movement: [n/s/e/w/u/d] (North/South/East/West/Up/Down)
  • Actions: [l]ook, [k]ill <monster>, [t]ake <item>, [w]ield/[d]rink
  • [i]nventory, [sc]ore, [b]ank <amt>, [bank] interface
  • PvP: [a]ttack <player> in same room
  • [board] for leaderboards

Games

  • Single-player: Guess the Number (scoring by tries), Quick Quiz (5 questions)
  • Multiplayer: Noughts & Crosses (TTT) and Nim - 21 sticks (turn-based)
  • Scores stored in scores table; leaderboards show top 5 per game

Admin Tools

  • Telnet BBS: [A]dmin tools → user management, forums, topics, MOTD, stats
  • Web: Admin link visible on profile when is_admin=1

Community

This isn't just a technical project - it's a time capsule of early internet culture. The same account works whether you're:

  • On a modern browser checking messages
  • On a vintage phone browsing WML
  • Sitting at a terminal with telnet

The MUD adds a gamified layer, and games bridge web and telnet play. Your character progresses whether you type commands or click links.

Future Enhancements (TODO)

See TODO.md for detailed roadmap.

License

Original txt3 concept from 1997, this revival released under original terms. No commercial redistribution without explicit permission from JP.


Questions? Comments? Bugs? Use the admin tools or contact via the website. Remember: This site works best with patience and a nostalgic spirit.

Recent Changes

  • Initial commit: All three front-ends, shared database, basic MUD world
  • Both front-ends synchronized on first boot
  • telnet BBS service hardened with systemd unit
  • Password hashing handled entirely by PHP (no shared libs)
Description
No description provided
Readme 221 KiB
Languages
Python 39.3%
PHP 37.4%
HTML 22.8%
CSS 0.5%