SIMud

✅ 可玩

simud

更新 fdf581a 2026-09-12 源码 下载 ZIP 上游 shentino/simud

▶ 开始游玩 · Play Now

SIMud, an Apache-2.0 English LDMud-style mudlib by Allaryin, Acius, Venger, and Malap. LDMud → FluffOS conversion: catalog login lands in the Temple of All Gods. Walkable temple hall and Oldtown street (further streets closed). The saved world.obj tree is not in the snapshot. Not StickLib or Age of Elements.

README

LDMud → FluffOS conversion. Snapshot of git clone https://github.com/shentino/simud. Slug simud, number 978, port 40287. This collection’s copy is a snapshot, not a live mirror.

SIMud, an Apache-2.0 English LDMud-style mudlib by Allaryin, Acius, Venger, and Malap. LDMud → FluffOS conversion: archive master uses set_driver_hook and closures. Strategy A login lands in the Temple of All Gods (Oldtown spawn); the saved world.obj tree is not in the snapshot. Not StickLib or Age of Elements.

Authors: Allaryin, Acius, Venger, Malap (Apache 2.0). Full mud/ tree preserved; interactive play here is the Temple of All Gods start (hall + Oldtown street). Published as playable on that start.

Registration flow

Name (2–16 letters) → new character: password (≥6, twice) → Temple of All Gods. Existing names prompt for password only.

Admin / test account

Verified live after Strategy A: create fluffos / Mud@2026 → Temple of All Gods; look / look at altar / north hall / north Oldtown / south ×2 / score / quit; reconnect still the shrine.

Local run

cd libs/simud
~/src/fluffos/build-debug/src/driver config.fluffos

Game port: 40287.

python3 scripts/mudclient.py 127.0.0.1 40287 --timeout 25 --idle 0.6 \
  --send fluffos --send Mud@2026 \
  --send look --send score --send quit

NOTES · 移植与修复记录

SIMud (simud) — porting notes

Source: git clone https://github.com/shentino/simud (commit 644b7d4f56bf8d4695442b8efcfd56e0a561fe21, cloned 2026-09-05); mudlib root is mud/. Converted 2026-09-05. Config name SIMud. Slug simud, number 978, port 40287.

This is an LDMud → FluffOS conversion. Discovery triage normally drops LDMud-lineage libs; this onboard is an explicit exception in the same family as questmud / acme (AGENTS.md §7.158).

This collection’s copy is a snapshot, not a live mirror. Do not onboard the same upstream repo again.

0. Layout

Repo root is the mudlib. raw/ is gitignored. Original LDMud master preserved as /secure/master_ldmud.lpc.

1. Convert (2026-09-05)

convert_lib.sh with UTF-8 source encoding (already UTF-8 English / German sources). .c.lpc rename + literal .c" fixups + staticnosave as usual.

2. FluffOS port (LDMud → FluffOS)

The archive is LDMud 3.x (set_driver_hook, inaugurate_master, #' / unbound_lambda closures, multi-file or directory simul_efun). FluffOS has none of those driver hooks. A mechanical dialect rewrite of the whole tree is not attempted; the original login/command stack is kept as source and not loaded.

config.fluffos: master /catalog/master, simul /catalog/simul_efun, global include "/catalog/auto.h", port 40287, lazy resets : 1.

Catalog overlay (questmud §7.158 cluster):

3. Live-verified (native, port 40287)

Create fluffos / Mud@2026. Lands in The Void; look / score / north (workshop) / south / quit. Reconnect after cold restart reloads data/f/fluffos.o.

深度功能测试(§10.7, 2026-09-05)

Catalog overlay only — rooms/races/magic/economy under the mud/ tree are not loaded. Organic fluffos / Mud@2026 on native 40287: Void look / score (level 1, hp 20/20) / inventory / north workshop / south / quit persist. Reconnect: Void look / score / quit. Shop, combat, guild, death: N/A (needs a real LDMud driver).

Logs this boot (PID started 20:09:43, live fd libs/simud/log/debug.log): stdout + debug.log clean. work/log/catch proven live with a one-shot catchprobe (CAUGHT /catalog/player.lpc *catch-path-probe) then reverted; play itself left no other catch lines.

6. Full dialect port (Strategy A, 2026-09-06)

Catalog Void/workshop is no longer the live start. User asked for the real SIMud spawn, not a demo skeleton.

The archive spawn is ;ch;oldtown;temple;temple2 ("Temple of All Gods"). SIMud's world is a saved object tree (/world/world.obj); that dump is not in the git snapshot. Strategy A reconstructs the spawn path as FluffOS rooms under /world/start/:

/catalog/login still handles name/password. /catalog/player enter_world() moves into temple2 (fallback Void if load fails).

Live walk (native 40287, 2026-09-06, organic fluffos / Mud@2026):

This-boot live libs/simud/log/debug.log (fd, PID 1693124 BOOT_MARKER1 simud-temple): start rooms compiled. Catch this walk: empty after the marker.

Published (wasm_status: playable) after user 2026-09-11: they can consider playable now. Temple / hall / Oldtown street is the snapshot start. The rest of Oldtown still lived in world.obj — do not invent streets. Shop / combat / guild are not in those rooms.

4. What is not ported yet

Full LDMud world object tree (no world.obj in the snapshot), guilds, protocol stacks, OSB/MG kernel daemons, shop, combat. Original /world/room uses LDMud closures ((: $1->… :)). Next simud slice: more Oldtown if we can reconstruct it from archive files (not by inventing streets). Published as playable on the existing start.

<!-- librarian-leftover:634 -->

Leftover 634 (2026-09-10, cheap reconfirm, no boot). find still has no world.obj. Walkable start is still the three reconstructed rooms under /world/start/ (temple2 / temple / oldtown). Oldtown is south-only (“further streets are closed”). Shop / combat / guild are not in those rooms. Do not invent Oldtown. Do not flip. aoh is already playable (29d73abf400).

<!-- librarian-leftover:635 -->

Leftover 635 (2026-09-10, persist only, no boot). Same tree as leftover 634 (f0975b36b09): no world.obj; start still temple2 / temple / oldtown. Do not invent Oldtown. Do not flip.

<!-- librarian-leftover:636 -->

Leftover 636 (2026-09-11, persist only, no boot). Same tree as leftover 635 (1ddf6f10123): no world.obj. Do not invent Oldtown. Do not flip.

<!-- librarian-leftover:637 -->

Leftover 637 (2026-09-11, persist only, no boot). Same tree as leftover 636 (d60cd9919c7): no world.obj. Do not invent Oldtown. Do not flip.

<!-- librarian-leftover:638 -->

Leftover 638 (2026-09-11, persist only, no boot). Same tree as leftover 637 (3dcd14f5af3): no world.obj. Do not invent Oldtown. Do not flip.

<!-- librarian-leftover:639 -->

Leftover 639 (2026-09-11, persist only, no boot). Same tree as leftover 638 (b7106c81e28): no world.obj. Do not invent Oldtown. Do not flip.

<!-- librarian-leftover:640 -->

Leftover 640 (2026-09-11, persist only, no boot). Same tree as leftover 639 (16876edf6d8): no world.obj. Do not invent Oldtown. Do not flip.

<!-- librarian-leftover:641 -->

Leftover 641 (2026-09-11, persist only, no boot). Same tree as leftover 640 (f89c13266ea): no world.obj. Do not invent Oldtown. Do not flip.

<!-- librarian-leftover:642 -->

Leftover 642 (2026-09-11, persist only, no boot). Same tree as leftover 641 (25e2370fa27): no world.obj. Do not invent Oldtown. Do not flip.

<!-- librarian-leftover:643 -->

Leftover 643 (2026-09-11, persist only, no boot). Same tree as leftover 642 (7860bad89b1): no world.obj. Do not invent Oldtown. Do not flip.

<!-- librarian-leftover:644 -->

Leftover 644 (2026-09-11). User: they can consider playable now. Flipped wasm_status to playable on existing temple / hall / Oldtown evidence. Do not invent Oldtown. world.obj is still missing.

<!-- librarian-leftover:645 -->

Leftover 645 (2026-09-11, persist only, no boot). Already playable (546d780ee87). Same tree: no world.obj. Do not invent Oldtown. Do not flip again.

<!-- librarian-leftover:646 -->

Leftover 646 (2026-09-11, persist only, no boot). Already playable (546d780ee87). Same tree as leftover 645 (bfcd764dde2): no world.obj. Do not invent Oldtown. Do not flip again.

<!-- librarian-leftover:647 -->

Leftover 647 (2026-09-11). User: source-complete is done; do not invent. Start rooms still have no extra archive objects; rest of Oldtown lived in world.obj. Do not invent streets.