info.html · 介绍 · play.html · 游玩 · llms.txt · 下载与本地运行 · ZIP · GitHub
A tiny from-scratch FluffOS learning lib (LPC practice yard) by dzpao. Not a game: no accounts, rooms, or combat. Connecting drops you at a prompt with look/score/hello/test/quit; fb tries a local instance socket on 127.0.0.1:8000. Not collection scratch or imud.
README
Snapshot of https://github.com/dzpao/pao-mud (commit f855715,
2022-12-14). A tiny from-scratch FluffOS learning lib (“LPC 练习场”).
Slug paomud, number 972, port 40281. This collection’s copy
is a snapshot, not a live mirror.
Not a game: no accounts, rooms, or combat. Connecting drops you at a
prompt. look / score / hello / test / quit work. fb tries
a local 副本 socket on 127.0.0.1:8000 (fails cleanly if nothing is
listening).
Not a duplicate of collection scratch or imud.
Registration flow
None. Telnet in.
Admin / test account
None. There is no login.
Verified live 2026-09-05: connect → look / score / quit.
Local run
cd libs/paomud
~/src/fluffos/build-debug/src/driver config.fluffosGame port: 40281.
python3 scripts/mudclient.py 127.0.0.1 40281 --timeout 15 --idle 0.5 \
--send look --send score --send quitNOTES · 移植与修复记录
PaoMUD (paomud) — porting notes
Source: git clone https://github.com/dzpao/pao-mud (commit
f855715a97caa5171f3e7cf5696f5f68ae1a9f94, “feat(GA): 进入副本时,去掉主站冗余的
GA”, 2022-12-14; converted 2026-09-05). Config name PaoMUD. Slug
paomud, number 972, port 40281.
This collection’s copy is a snapshot, not a live mirror.
Tiny from-scratch FluffOS learning lib (“LPC 练习场,从零开始写 MUD”).
Five LPC files: master, simul, user, unused login, and one test
command. No rooms, accounts, or combat. Not a duplicate of scratch
(rmanis three-file echo chamber) or imud. Do not onboard
dzpao/pao-mud again.
0. Layout
Repo root is the mudlib. Master /single/master, simul
/single/simul_efun, connect object /clone/user (LOGIN_OB is
defined but unused). command/test is loaded on demand by the test
verb. Archive etc/config-fb is a second instance on port 8000 for the
fb 副本 tunnel; this collection does not boot it. raw/ is
gitignored.
1. Convert (2026-09-05)
convert_lib.sh UTF-8: already_utf8=12 converted=0 lossy=0
skipped_binary=0. 5 .lpc. No .c" rewrites. No static→nosave.
2. FluffOS port
The archive master was only connect() / uids / valid_socket.
FluffOS needs valid_read/valid_write/valid_* and an error
handler. new(USER_OB) failure is caught and returns 0 (does not
destruct the master). Original saved as master_orig.lpc.
global include file in the main archive config already quoted
"/include/globals.h". etc/config-fb does not (questmud empty-include
trap) — unused here.
prompt_on() / prompt_off() in archive fb() are not efuns on this
driver (Undefined function; user object would not compile). Empty
simul stubs.
Echo-chamber catalog bar: added look / score (l/sc aliases) and
enable_commands() so add_action verbs run. Archive already had
quit/exit, hello, test, fb.
Bugs fixed
fb()usedon_backend_closeassocket_connectwrite_callback. STREAM connect-ready is the write callback. Combined with printing “已经进入副本” immediately onsocket_connect()==0(async in progress), a refused127.0.0.1:8000printed success then immediately “已经离开副本”. Write callback is nowon_backend_connected; success text only fires there. With nothing listening on 8000: “正在连接副本” then the close callback’s “已经离开副本”.
Live-verified (native, port 40281)
No accounts. Connect → 欢迎!; look / score / hello / test
(compiles /command/test, table + ANSI; call_out “hello world [20]”
after 3s) / fb (no listener on 8000) / quit (“再见!”). Cold-boot
after the fb fix still works.
WASM not verified. unique_games stays counting numbers < 900; 972
is still listed as a lib.
深度功能测试(§10.7,2026-09-13)
Practice yard only — the archive has no playable world (no rooms, accounts, shop, or combat). Do not invent rooms. Source-complete bar for a five-file learning lib.
Native boot (~/src/fluffos/build-debug/src/driver config.fluffos
from libs/paomud, port 40281, PID owned by this session):
- Connect →
欢迎!;look/l→ 练习场;score/sc→ 访客(PaoMUD), no stats;hello→ HELLO/WORLD;test→/command/testcompiles, ANSI table +hello world [10], thencall_outhello world [20]after ~3s;fbwith nothing on127.0.0.1:8000→正在连接副本……then已经离开副本。(prior onboarding fix still correct);quit/exit→再见!; driver stayed up. - Fresh reconnect → same
look/sc/quit(no accounts / no persist). - Shop / combat / guild / death: N/A (not in archive).
Logs this boot:
- Driver stdout:
Unable to open log file: "log/debug.log"before chdir intowork/(same §10.9 launch limitation as siblings); no LPC errors across play or quit. Expected boot warnings only (domain_stats/author_stats).debug_message("CMD: test")appeared on stdout. /log/catch(work/log/catch): empty across the clean playthrough; mtime matches this boot. Handler proven live with a one-shotcatch(error("catch-path-probe"))inhello→CAUGHT /clone/user.lpc:… *catch-path-probe, then reverted. No code fixes this pass.