Threshold
=========
.. raw:: html
_ _
_________{( })_________
/.-------./\\ T H R E S H O L D //\.-------.\
//@@@@@@@//@@\\ //@@\\@@@@@@@\\
//@@@@@@@//@@@@>> <<@@@@\\@@@@@@@\\
//O@O@O@O//@O@O// \\O@O@\\O@O@O@O\\
//OOOOOOOO//OOOO|| \ / ||OOOO\\OOOOOOOO\\
//O%O%O%O%//O%O%O%\\ ))(( //%O%O%O\\%O%O%O%O\\
||%%%%%%%%//' `%%%%\\ // \\ //%%%%' `\\%%%%%%%||
((%%%%%%%(( %%%%%\\ (( )) //%%%%% ))%%%%%%))
\:::' `::\\ `:::::\\ \)~~(/ //:::::' //::' `:::/
)' `;)' (` ` \\ `<@ @>' / / ' ') `(;' `(
_ ( \`\ )^^( / / )
(@) ) \\oo/ (
|-|\_________________\_\__/__/_______oOo__________ (@)
| | VVV \|-|
|-| Broaden your hori
zons beyond the Threshold! |-|
|_|\_____________________________________________ | |
(@) / ,/ \_____/ \\ ~\/~ `\|-|
~ ___//^~ ___ \\___\\ (@)
<<< \ <__ \ <___/|| ~
|| <___//
\_\/__//
This system is for the use of authorized users and legitimate new users only.
Threshold is a live performance, text roleplaying game. Acceptable usage of
this computer system is ONLY to play Threshold RPG. Inappropriate or unlawful
use of this computer system will be reported to the appropriate authorities.
[If you already have a character on Threshold, enter your character name now. ]
[If you want to create a character, type "new" at the prompt (without quotes).]
Who dares cross this Threshold?
.. raw:: html
thresholdrpg.com:3333
⎘
Server Info
-----------
- **Codebase**: Custom
- **Family**: LPMud
- **Genre**: Fantasy
- **Gameplay**: Adventure
- **Players online**: 113 [#scan]_
- **Created**: 1996
- **Status**: Live
- **Website**: `https://www.thresholdrpg.com/ `_
- **Location**: US
Protocol Support
----------------
MUD-specific protocols detected via MSSP flags or
Telnet negotiation.
- **MSSP**: :proto-yes:`Yes` (MSSP)
- **GMCP**: :proto-yes:`Yes` (MSSP)
- **MSDP**: :proto-no:`No`
- **MCCP**: :proto-yes:`Yes` (MSSP)
- **MCCP2**: :proto-no:`No`
- **MXP**: :proto-yes:`Yes` (MSSP)
- **MSP**: :proto-no:`No`
- **MCP**: :proto-no:`No`
- **ZMP**: :proto-no:`No`
Telnet Fingerprint
------------------
:ref:`f1eff463068df2d8... `
*This fingerprint is shared by 7 other servers.*
**Options offered by server**: ``BINARY``, ``CHARSET``, ``ECHO``
**Options requested from client**: ``NAWS``, ``NEW_ENVIRON``, ``TTYPE``
**Data source**: `f1eff463068df2d8/87e4859e6ef4502d.json `_
The complete JSON record collected during the scan,
including Telnet negotiation results and any
MSSP metadata.
.. code-block:: json
{
"server-probe": {
"fingerprint": "f1eff463068df2d8",
"fingerprint-data": {
"offered-options": [
"BINARY",
"CHARSET",
"ECHO"
],
"probed-protocol": "server",
"refused-options": [
"AUTHENTICATION",
"BM",
"COM_PORT",
"DET",
"ENCRYPT",
"EOR",
"FORWARD_X",
"KERMIT",
"NAMS",
"NAOCRD",
"NAOFFD",
"NAOHTD",
"NAOHTS",
"NAOL",
"NAOLFD",
"NAOP",
"NAOVTD",
"NAOVTS",
"PRAGMA_HEARTBEAT",
"PRAGMA_LOGON",
"RCP",
"RCTE",
"RSP",
"SEND_URL",
"SGA",
"SSPI_LOGON",
"STATUS",
"SUPDUP",
"SUPDUPOUTPUT",
"SUPPRESS_LOCAL_ECHO",
"TLS",
"TN3270E",
"TTYLOC",
"VT3270REGIME",
"X3PAD",
"XAUTH"
],
"requested-options": [
"NAWS",
"NEW_ENVIRON",
"TTYPE"
]
},
"session_data": {
"banner_after_return": "zons beyond the Threshold! |-|\r\n |_|\\_____________________________________________ | |\r\n (@) / ,/ \\_____/ \\\\ ~\\/~ `\\|-|\r\n ~ ___//^~ ___ \\\\___\\\\ (@)\r\n <<< \\ <__ \\ <___/|| ~\r\n || <___//\r\n \\_\\/__//\r\n\r\nThis system is for the use of authorized users and legitimate new users only.\r\nThreshold is a live performance, text roleplaying game. Acceptable usage of\r\nthis computer system is ONLY to play Threshold RPG. Inappropriate or unlawful\r\nuse of this computer system will be reported to the appropriate authorities.\r\n\r\n[If you already have a character on Threshold, enter your character name now. ]\r\n[If you want to create a character, type \"new\" at the prompt (without quotes).]\r\n\r\nWho dares cross this Threshold? ",
"banner_before_return": " _ _\r\n _________{( })_________\r\n /.-------./\\\\ T H R E S H O L D //\\.-------.\\\r\n //@@@@@@@//@@\\\\ //@@\\\\@@@@@@@\\\\\r\n //@@@@@@@//@@@@>> <<@@@@\\\\@@@@@@@\\\\\r\n //O@O@O@O//@O@O// \\\\O@O@\\\\O@O@O@O\\\\\r\n //OOOOOOOO//OOOO|| \\ / ||OOOO\\\\OOOOOOOO\\\\\r\n //O%O%O%O%//O%O%O%\\\\ ))(( //%O%O%O\\\\%O%O%O%O\\\\\r\n ||%%%%%%%%//' `%%%%\\\\ // \\\\ //%%%%' `\\\\%%%%%%%||\r\n ((%%%%%%%(( %%%%%\\\\ (( )) //%%%%% ))%%%%%%))\r\n \\:::' `::\\\\ `:::::\\\\ \\)~~(/ //:::::' //::' `:::/\r\n )' `;)' (` ` \\\\ `<@ @>' / / ' ') `(;' `(\r\n _ ( \\`\\ )^^( / / )\r\n (@) ) \\\\oo/ (\r\n |-|\\_________________\\_\\__/__/_______oOo__________ (@)\r\n | | VVV \\|-|\r\n |-| Broaden your hori",
"encoding": "ascii",
"mssp": {
"ANSI": "1",
"CLASSES": "12",
"CLASSES-NOTES": "Classes are referred to as guilds",
"CODEBASE": "Custom",
"CONTACT": "threshold@frogdice.com",
"CRAWL DELAY": "-1",
"CREATED": "1996",
"DISCORD": "https://discord.gg/0rDwGcIiYEueqon1",
"FAMILY": "LPMud",
"GAMEPLAY": "Adventure",
"GAMESYSTEM": "Custom",
"GENRE": "Fantasy",
"GMCP": "1",
"HIRING BUILDERS": "0",
"HIRING CODERS": "0",
"HOSTNAME": "thresholdrpg.com",
"ICON": "https://wiki.thresholdrpg.com/images/9/92/Griffon-right-wiki.jpg",
"INTERMUD": "",
"IP": "35.160.129.187",
"LANGUAGE": "English",
"LOCATION": "US",
"MCCP": "1",
"MCP": "0",
"MINIMUM AGE": "18",
"MSP": "0",
"MXP": "1",
"NAME": "Threshold",
"PAY FOR PERKS": "1",
"PAY TO PLAY": "0",
"PLAYERS": "113",
"PORT": "3333",
"PUEBLO": "0",
"RACES": "12",
"RACES-NOTES": "only includes playable races",
"SSL": "-1",
"STATUS": "Live",
"SUBGENRE": "Medieval Fantasy",
"UPTIME": "1769962072",
"UTF-8": "1",
"VT100": "0",
"WEBSITE": "https://www.thresholdrpg.com/",
"XTERM 256 COLORS": "1",
"XTERM TRU COLORS": "0"
},
"option_states": {
"environ_requested": [],
"server_offered": {
"0x56": false,
"0x5a": false,
"CHARSET": true,
"GMCP": true,
"MSSP": true
},
"server_requested": {
"0x5b": false,
"NAWS": true,
"NEW_ENVIRON": true,
"TTYPE": true
}
},
"timing": {
"probe": 0.10677075386047363,
"total": 0.6078896522521973
}
}
},
"sessions": [
{
"connected": "2026-02-08T07:05:13.222887+00:00",
"host": "thresholdrpg.com",
"ip": "35.160.129.187",
"port": 3333
}
]
}
Connection Log
--------------
Debug-level log of the Telnet negotiation session,
showing each IAC (Interpret As Command) exchange
between client and server.
.. code-block:: text
DEBUG client.py:770 Fingerprint client: host=thresholdrpg.com port=3333
INFO client_base.py:174 Connected to
DEBUG stream_writer.py:697 recv IAC DO TTYPE
DEBUG stream_writer.py:1739 handle_do(TTYPE)
DEBUG stream_writer.py:3036 pending_option[WILL + TTYPE] = True
DEBUG stream_writer.py:938 send IAC WILL TTYPE
DEBUG stream_writer.py:3036 pending_option[SB + TTYPE] = True
DEBUG stream_writer.py:3036 local_option[TTYPE] = True
DEBUG stream_writer.py:3036 pending_option[WILL + TTYPE] = False
DEBUG stream_writer.py:697 recv IAC DO NAWS
DEBUG stream_writer.py:1739 handle_do(NAWS)
DEBUG stream_writer.py:3036 pending_option[WILL + NAWS] = True
DEBUG stream_writer.py:938 send IAC WILL NAWS
DEBUG stream_writer.py:2306 send IAC SB NAWS (rows=25, cols=80) IAC SE
DEBUG stream_writer.py:3036 local_option[NAWS] = True
DEBUG stream_writer.py:3036 pending_option[WILL + NAWS] = False
DEBUG stream_writer.py:697 recv IAC DO NEW_ENVIRON
DEBUG stream_writer.py:1739 handle_do(NEW_ENVIRON)
DEBUG stream_writer.py:3036 pending_option[WILL + NEW_ENVIRON] = True
DEBUG stream_writer.py:938 send IAC WILL NEW_ENVIRON
DEBUG stream_writer.py:3036 pending_option[SB + NEW_ENVIRON] = True
DEBUG stream_writer.py:3036 local_option[NEW_ENVIRON] = True
DEBUG stream_writer.py:3036 pending_option[WILL + NEW_ENVIRON] = False
DEBUG stream_writer.py:697 recv IAC WILL MCCP2_COMPRESS
DEBUG stream_writer.py:713 WILL MCCP2_COMPRESS unsolicited
DEBUG stream_writer.py:1869 handle_will(MCCP2_COMPRESS)
DEBUG stream_writer.py:3036 remote_option[MCCP2_COMPRESS] = False
DEBUG stream_writer.py:938 send IAC DONT MCCP2_COMPRESS
WARNING stream_writer.py:1974 Unhandled: WILL MCCP2_COMPRESS.
DEBUG stream_writer.py:697 recv IAC DO MXP
DEBUG stream_writer.py:1739 handle_do(MXP)
DEBUG stream_writer.py:3036 pending_option[WILL + MXP] = True
DEBUG stream_writer.py:938 send IAC WILL MXP
DEBUG stream_writer.py:3036 pending_option[SB + MXP] = True
DEBUG stream_writer.py:3036 local_option[MXP] = True
DEBUG stream_writer.py:3036 pending_option[WILL + MXP] = False
DEBUG stream_writer.py:697 recv IAC WILL GMCP
DEBUG stream_writer.py:713 WILL GMCP unsolicited
DEBUG stream_writer.py:1869 handle_will(GMCP)
DEBUG stream_writer.py:3036 pending_option[DO + GMCP] = True
DEBUG stream_writer.py:938 send IAC DO GMCP
DEBUG stream_writer.py:3036 remote_option[GMCP] = True
DEBUG stream_writer.py:3036 pending_option[DO + GMCP] = False
DEBUG stream_writer.py:697 recv IAC WILL MSSP
DEBUG stream_writer.py:713 WILL MSSP unsolicited
DEBUG stream_writer.py:1869 handle_will(MSSP)
DEBUG stream_writer.py:3036 pending_option[DO + MSSP] = True
DEBUG stream_writer.py:938 send IAC DO MSSP
DEBUG stream_writer.py:3036 remote_option[MSSP] = True
DEBUG stream_writer.py:3036 pending_option[DO + MSSP] = False
DEBUG stream_writer.py:697 recv IAC WILL CHARSET
DEBUG stream_writer.py:715 WILL CHARSET (bi-directional capability exchange)
DEBUG stream_writer.py:1869 handle_will(CHARSET)
DEBUG stream_writer.py:3036 pending_option[DO + CHARSET] = True
DEBUG stream_writer.py:938 send IAC DO CHARSET
DEBUG stream_writer.py:3036 remote_option[CHARSET] = True
DEBUG stream_writer.py:3036 pending_option[DO + CHARSET] = False
DEBUG stream_writer.py:697 recv IAC WILL MSP
DEBUG stream_writer.py:713 WILL MSP unsolicited
DEBUG stream_writer.py:1869 handle_will(MSP)
DEBUG stream_writer.py:3036 pending_option[DO + MSP] = True
DEBUG stream_writer.py:938 send IAC DO MSP
DEBUG stream_writer.py:3036 remote_option[MSP] = True
DEBUG stream_writer.py:3036 pending_option[DO + MSP] = False
DEBUG stream_writer.py:1292 IAC GA: Go-Ahead (unhandled).
DEBUG stream_writer.py:689 begin sub-negotiation SB TTYPE
DEBUG stream_writer.py:676 sub-negotiation cmd TTYPE SE completion byte
DEBUG stream_writer.py:3036 pending_option[SB + TTYPE] = False
DEBUG stream_writer.py:2203 recv TTYPE SEND: b''
DEBUG stream_writer.py:2214 send IAC SB TTYPE IS b'xterm-256color' IAC SE
DEBUG stream_writer.py:689 begin sub-negotiation SB NEW_ENVIRON
DEBUG stream_writer.py:676 sub-negotiation cmd NEW_ENVIRON SE completion byte
DEBUG stream_writer.py:3036 pending_option[SB + NEW_ENVIRON] = False
DEBUG stream_writer.py:2249 recv NEW_ENVIRON SEND (all)
DEBUG stream_writer.py:2272 env send: LANG='C', TERM='xterm-256color', LINES=25, COLUMNS=80, COLORTERM=''
DEBUG stream_writer.py:689 begin sub-negotiation SB MSSP
DEBUG stream_writer.py:676 sub-negotiation cmd MSSP SE completion byte
DEBUG stream_writer.py:2031 [SB + MSSP] unsolicited
DEBUG stream_writer.py:1642 MSSP: {'PLAYERS': '126', 'PAY TO PLAY': '0', 'PORT': '3333', 'LOCATION': 'US', 'DISCORD':
'https://discord.gg/0rDwGcIiYEueqon1', 'XTERM 256 COLORS': '1', 'RACES-NOTES': 'only includes playable races', 'INTERMUD': '',
'HOSTNAME': 'thresholdrpg.com', 'SSL': '-1', 'RACES': '12', 'XTERM TRU COLORS': '0', 'GENRE': 'Fantasy', 'GAMEPLAY':
'Adventure', 'LANGUAGE': 'English', 'CONTACT': 'threshold@frogdice.com', 'VT100': '0', 'PUEBLO': '0', 'HIRING CODERS': '0',
'FAMILY': 'LPMud', 'IP': '35.160.129.187', 'CRAWL DELAY': '-1', 'HIRING BUILDERS': '0', 'UTF-8': '1', 'CLASSES-NOTES':
'Classes are referred to as guilds', 'CREATED': '1996', 'PAY FOR PERKS': '1', 'CLASSES': '12', 'NAME': 'Threshold', 'MSP':
'0', 'UPTIME': '1769962072', 'GAMESYSTEM': 'Custom', 'STATUS': 'Live', 'GMCP': '1', 'CODEBASE': 'Custom', 'MXP': '1',
'WEBSITE': 'https://www.thresholdrpg.com/', 'ICON': 'https://wiki.thresholdrpg.com/images/9/92/Griffon-right-wiki.jpg', 'MCP':
'0', 'MCCP': '1', 'ANSI': '1', 'SUBGENRE': 'Medieval Fantasy', 'MINIMUM AGE': '18'}
DEBUG stream_writer.py:689 begin sub-negotiation SB CHARSET
DEBUG stream_writer.py:676 sub-negotiation cmd CHARSET SE completion byte
DEBUG stream_writer.py:2031 [SB + CHARSET] unsolicited
DEBUG client.py:266 encoding negotiated: UTF-8
DEBUG stream_writer.py:2111 send IAC SB CHARSET ACCEPTED UTF-8 IAC SE
DEBUG client_base.py:463 negotiation failed after 4.00s.
DEBUG client_base.py:470 failed-reply: 'SB MXP'
DEBUG stream_writer.py:697 recv IAC WILL ECHO
DEBUG stream_writer.py:713 WILL ECHO unsolicited
DEBUG stream_writer.py:1869 handle_will(ECHO)
DEBUG stream_writer.py:3036 pending_option[DO + ECHO] = True
DEBUG stream_writer.py:938 send IAC DO ECHO
DEBUG stream_writer.py:3036 remote_option[ECHO] = True
DEBUG stream_writer.py:3036 pending_option[DO + ECHO] = False
DEBUG stream_writer.py:1292 IAC GA: Go-Ahead (unhandled).
DEBUG stream_writer.py:3036 pending_option[DO + BINARY] = True
DEBUG stream_writer.py:938 send IAC DO BINARY
DEBUG stream_writer.py:3036 pending_option[DO + SGA] = True
DEBUG stream_writer.py:938 send IAC DO SGA
DEBUG stream_writer.py:3036 pending_option[DO + STATUS] = True
DEBUG stream_writer.py:938 send IAC DO STATUS
DEBUG stream_writer.py:3036 pending_option[DO + EOR] = True
DEBUG stream_writer.py:938 send IAC DO EOR
DEBUG stream_writer.py:3036 pending_option[DO + COM_PORT_OPTION] = True
DEBUG stream_writer.py:938 send IAC DO COM_PORT_OPTION
DEBUG stream_writer.py:3036 pending_option[DO + MSDP] = True
DEBUG stream_writer.py:938 send IAC DO MSDP
DEBUG stream_writer.py:3036 pending_option[DO + MXP] = True
DEBUG stream_writer.py:938 send IAC DO MXP
DEBUG stream_writer.py:3036 pending_option[DO + ZMP] = True
DEBUG stream_writer.py:938 send IAC DO ZMP
DEBUG stream_writer.py:3036 pending_option[DO + AARDWOLF] = True
DEBUG stream_writer.py:938 send IAC DO AARDWOLF
DEBUG stream_writer.py:3036 pending_option[DO + ATCP] = True
DEBUG stream_writer.py:938 send IAC DO ATCP
DEBUG stream_writer.py:697 recv IAC WILL BINARY
DEBUG stream_writer.py:1869 handle_will(BINARY)
DEBUG stream_writer.py:912 skip DO BINARY; pending_option = True
DEBUG stream_writer.py:3036 remote_option[BINARY] = True
DEBUG stream_writer.py:3036 pending_option[DO + BINARY] = False
DEBUG stream_writer.py:697 recv IAC WILL SGA
DEBUG stream_writer.py:1869 handle_will(SGA)
DEBUG stream_writer.py:912 skip DO SGA; pending_option = True
DEBUG stream_writer.py:3036 remote_option[SGA] = True
DEBUG stream_writer.py:3036 pending_option[DO + SGA] = False
DEBUG stream_writer.py:697 recv IAC WONT SGA
DEBUG stream_writer.py:1991 handle_wont(SGA)
DEBUG stream_writer.py:3036 remote_option[SGA] = False
DEBUG stream_writer.py:697 recv IAC WONT STATUS
DEBUG stream_writer.py:1991 handle_wont(STATUS)
DEBUG stream_writer.py:3036 remote_option[STATUS] = False
DEBUG stream_writer.py:3036 pending_option[DO + STATUS] = False
DEBUG stream_writer.py:697 recv IAC WONT EOR
DEBUG stream_writer.py:1991 handle_wont(EOR)
DEBUG stream_writer.py:3036 remote_option[EOR] = False
DEBUG stream_writer.py:3036 pending_option[DO + EOR] = False
DEBUG stream_writer.py:697 recv IAC WONT COM_PORT_OPTION
DEBUG stream_writer.py:1991 handle_wont(COM_PORT_OPTION)
DEBUG stream_writer.py:3036 remote_option[COM_PORT_OPTION] = False
DEBUG stream_writer.py:3036 pending_option[DO + COM_PORT_OPTION] = False
DEBUG stream_writer.py:697 recv IAC WILL MSDP
DEBUG stream_writer.py:1869 handle_will(MSDP)
DEBUG stream_writer.py:912 skip DO MSDP; pending_option = True
DEBUG stream_writer.py:3036 remote_option[MSDP] = True
DEBUG stream_writer.py:3036 pending_option[DO + MSDP] = False
DEBUG stream_writer.py:697 recv IAC WONT MXP
DEBUG stream_writer.py:1991 handle_wont(MXP)
DEBUG stream_writer.py:3036 remote_option[MXP] = False
DEBUG stream_writer.py:3036 pending_option[DO + MXP] = False
DEBUG stream_writer.py:697 recv IAC WILL ZMP
DEBUG stream_writer.py:1869 handle_will(ZMP)
DEBUG stream_writer.py:912 skip DO ZMP; pending_option = True
DEBUG stream_writer.py:3036 remote_option[ZMP] = True
DEBUG stream_writer.py:3036 pending_option[DO + ZMP] = False
DEBUG stream_writer.py:697 recv IAC WONT AARDWOLF
DEBUG stream_writer.py:1991 handle_wont(AARDWOLF)
DEBUG stream_writer.py:3036 remote_option[AARDWOLF] = False
DEBUG stream_writer.py:3036 pending_option[DO + AARDWOLF] = False
DEBUG stream_writer.py:697 recv IAC WONT ATCP
DEBUG stream_writer.py:1991 handle_wont(ATCP)
DEBUG stream_writer.py:3036 remote_option[ATCP] = False
DEBUG stream_writer.py:3036 pending_option[DO + ATCP] = False
INFO fingerprinting.py:737 new server fingerprint fe4ad172809da44c
INFO client_base.py:105 Connection closed to
*Generated by* `telnetlib3-fingerprint `_
.. code-block:: shell
telnetlib3-fingerprint --loglevel=debug thresholdrpg.com 3333
.. [#scan] measured 2026-02-08 at 07:05 UTC