Repository navigation
Wiki Conventions
TL;DR: Every page has an ASCII name that never changes, a fixed four-line header, a verification stamp and one home for each fact. Links are plain markdown. Nothing private goes in. Read this before you add or edit a page. Use when: you write or change a wiki page, or you are an agent that needs to know how far to trust a page and how to cite it. Source of truth: this page. The checks in the maintainer lint implement rules 1, 2, 3, 6, 10 and 11. Verified: 2026-11-02 against dreamland_code 88da8302, dreamland_world 43880467, dreamland_fenia_public c28874b
The wiki is a git repository next to the code: https://github.com/dreamland-mud/dreamland_code.wiki.git. One markdown file per page, file name equals page name plus .md. Editing is limited to collaborators. GitHub wikis take no pull requests, so to propose a change open an issue in dreamland_code or ask in the developer channel on Discord. Start from Agent-Index to find a page and from Home to choose a route by role.
Section-Topic. ASCII letters, digits and hyphens only. TitleCase words, at most four words. A published name never changes: GitHub wikis have no redirects, so a rename breaks every inbound link, including links from in-game help and from the website.
Five older names stay as they are because live links use them: Home, Contribute, Building, OLC, Fenia.
No H1. GitHub prints the file name as the page title. The one exception is Agent-Index, which keeps a single H1 because the llms.txt shape needs it. Every page opens with a blockquote of four lines, in this order, so that tools can grep it:
> **TL;DR:** two or three sentences.
> **Use when:** the task that should send you here.
> **Source of truth:** `dreamland_code/src/fenia/parse.y++` (for_stmt), ...
> **Verified:** 2026-11-20 against dreamland_code abc1234, dreamland_world def5678
-
TL;DRis the answer in short form. A reader who stops here must not be misled. -
Use whennames a task, not a topic. -
Source of truthlists the files and symbols the page was checked against. Public repositories are cited by repo-relative path. Private code is described by behaviour ("the spell scripts"), never by path. -
Verifiedcarries the date and the short git hash of every repository the page was checked against (git rev-parse --short HEAD).
The chrome pages Home, _Sidebar and _Footer are exempt.
- The page-level
Verifiedline is mandatory. No stamp, no publish. - Behaviour that was measured on the running game and is not visible in code gets an inline mark:
(measured live 2026-10-14). - A claim carried over from an older source that nobody could check gets
(unverified)inline and an entry in the maintainers' checklist. Keep such a claim only if it matters. - Old wiki text and old design notes are leads, not facts. A page is written from the current code.
When a page is re-checked, change the date and hashes. When code changes under a page, the page is stale until it is re-stamped.
Each fact has one home page. Other pages give one line and link to the anchor. Before you add a fact, search the wiki for it.
Headings are English, short and stable. Never rename a heading that something links to. Anchors follow the GitHub rules: lowercase, spaces become hyphens, punctuation is dropped.
Wiki pages use standard markdown links with the page name and an optional anchor. This works on GitHub and maps to a local file of the same name:
[Fenia triggers](Fenia-Triggers#object-triggers)
Do not use the [[Page]] wiki syntax. Code is cited by backticked repo-relative path plus the symbol name, for example plug-ins/olc/sedit.cpp and the function name. No line numbers, they rot. External links are full URLs.
Every block is fenced and has a language:
| Content | Language tag |
|---|---|
| Fenia | javascript |
| C++ | cpp |
| Area and config XML | xml |
| JSON | json |
| Shell | bash |
| Game commands and game output | text |
No prompt characters in shell blocks. One game command per line.
English. Russian or Ukrainian text appears only where it is real game data, with an English gloss next to it.
The wiki describes live behaviour. Plans and ideas stay on the project board. Legacy code that still runs is marked with a one-line Legacy: note. The wiki does not cover server operations and does not contain quest solutions or other spoilers.
Many players are blind (see Accessibility), and the same people read this wiki. No information is carried only by an image or by an ASCII layout. Images have alt text. Tables stay narrow, three or four columns (the lookup tables of World-Canon may use five). Do not use tables for prose.
Never include:
- player names
- host names or file-system paths of the live server (the public game address
dreamland.rocks, port 9000, is fine) - tokens, keys, passwords or credentials (the two default local development characters in Local-Setup are documented in the public README and are the only exception)
- quest solutions
- the real people behind in-game gods
- paths inside private repositories
Aim for under 400 lines per page. Split a page above 600.
Close a page with at most five links.
Reference lists are built from code, not typed by hand: trigger names, editor commands, client RPC events, configuration files, public Fenia helpers. The prose around them is hand-written. A page with a generated list says in Source of truth which file the list came from, and the Verified hashes cover it. If the code changes, rebuild the list rather than patching it.
- Pick the name by rule 1. Check that it is not taken.
- Write the header block. Leave
Verifiedfor last. - Read the code first, write second. Mark what you could not check.
- Search the wiki for facts you are about to repeat. Link instead.
- Add the page to Agent-Index and to the sidebar.
- Run the maintainer lint. It fails on a bad name, a missing header block, a link to a page that does not exist, an image without alt text and anything that looks private.
- Re-read the page as a person who has never seen the project.
- Start at Agent-Index. It is shaped like an
llms.txtfile and lists every page with a one-line purpose. - Read the four header lines first.
Verifiedtells you how old the page is. If the hashes are far behind the current code, check theSource of truthfiles before you act on the page. - A claim marked
(unverified)is a lead. Do not build on it without checking. - The API itself is not in the wiki. Fenia-API says where the authoritative lookup is.
- Follow rule 11 in anything you write back.
Start here
Get running
Contribute
- Contribute
- Contributing Workflow
- Code Style
- Accessibility
- Writing Player Text
- Game Design Principles
Build areas
- Building
- OLC
- OLC Rooms
- OLC Mobiles
- OLC Objects
- OLC Resets
- OLC Line Editor
- OLC Other Editors
- Area Format
- Area Quests
- Mob Forms and Parts
Fenia
- Fenia
- Fenia Language
- Fenia Triggers
- Fenia Gotchas
- Fenia API
- Fenia Scripts
- Fenia Behaviors
- Fenia Skills and Spells
- Fenia Cookbook
- Fenia Grammar
Engine
- Engine Architecture
- Engine Time and Pulses
- Output Format
- Mechanics Combat
- Mechanics World
- Data Configs
- Item Power
Localization
Clients
More