Skip to content

Write areas: build, unbuild, lint and walk - #24

Merged
ctoth merged 18 commits into
masterfrom
feat/area-tools
Oct 10, 2026
Merged

ctoth merged 18 commits into
masterfrom
feat/area-tools

Conversation

@ctoth

@ctoth ctoth commented Oct 10, 2026

Copy link
Copy Markdown
Owner

Tools for writing new ROM areas, not only reading old ones.

What it adds

  • area-reader build <src> -o x.are: compiles a directory of YAML (symbolic ids, exits by id with the reverse side made for you, flags by name, dice as 3d8+20, mob stats defaulted from level, placements compiled to resets, programs inline on the mob) into a ROM 2.4 .are with #MOBPROGS. Vnums come from a per-area block and a lock file.
  • area-reader unbuild x.are -o <src>: the same format from an existing area, so stock areas are examples.
  • area-reader lint: 86 rules (structure, dangling references, prose, balance, mob programs) with JSON findings and metrics.
  • area-reader walk: a walk-through of an area as a visitor meets it, rooms in breadth-first order, with doors, keys, mobs, gear, shops and programs.
  • scripts/verify_rom_writer.py boots a real engine with a new area: stock ROM 2.4b6, or QuickMUD (which reads #AREADATA and mob programs).
  • test/authoring/saltworks/: a ten-room example source.

Checked

  • Full suite on this branch after merging master (da2bca7): 1711 passed in 378.67s.
  • The 48 stock ROM areas round trip through unbuild then build (in test_authoring.py).
  • Five areas written with these tools build, lint with no errors and load in QuickMUD at 364c26f with no bug line.

Known gaps

  • Mob F flag-removal lines are applied by the reader and not written back by the writer.
  • build accepts a pinned program vnum with no code; lint's dangling-mob-program reports it.
  • mob commands and if-checks in programs are checked by lint, not by build.
  • The verify script has no pytest of its own.

ctoth added 18 commits October 5, 2026 23:06
@ctoth
ctoth merged commit 5e64b9c into master Oct 10, 2026
4 checks passed
@ctoth
ctoth deleted the feat/area-tools branch October 10, 2026 01:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant