The Post Editor
This is the reference for the editor itself — modes, toolbar, the PBP-specific blocks, drafts, attachments. Forums, Topics, and Posting is the orientation to posting in general (Quick Reply vs. Full Editor, IC/OOC, character selectors); this guide is about what you can put in a post once the cursor's blinking.
Editor modes
Myth-Weavers ships three editor modes, switchable per-post:
- Rich Text (default, recommended) — A WYSIWYG editor with toolbar buttons for formatting, images, tables, and the PBP-specific blocks (OOC, spoilers, whispers, fieldsets). Best for most writing.
- Markdown — Standard Markdown syntax with a live preview pane. Comfortable if you've been writing for GitHub, Reddit, or Discord for years.
- HTML — Raw HTML in a textarea, for when you want full control over the markup. Sanitized on submit.
Legacy BBCode posts (carried over from the old site) still render correctly, and you can still write in BBCode if that's your home — it's just not one of the three default mode toggles. See The Post Editor for the BBCode reference.
In Account Settings > Editor each mode has three settings:
- Default — the mode every new post, reply, and edit opens in. Exactly one mode is the default.
- Available — kept in the editor's mode switcher so you can switch to it per-post, but it isn't your default.
- Hidden — removed from the mode switcher entirely. Set the modes you never use (say, Markdown and BBCode) to Hidden to declutter the toolbar.
You can't hide your default mode, and hiding a mode never affects existing posts — editing a post always offers whatever mode it was written in, so you can still open and tweak an old BBCode or Markdown post even if that mode is hidden.
Quick Reply
Also in Account Settings > Editor: "Open the Quick Reply box automatically when a topic loads." On by default — the Quick Reply box at the bottom of a topic is open and ready. Turn it off if you'd rather it start collapsed (it then expands when you click its header, or when you quote a post), which keeps long topics from pushing the reply box down the page. Either way, expanding a collapsed box drops your cursor straight into the editor.
Mode-switch warning
Switching a post between modes can change some formatting — most notably, going from HTML to Rich Text drops markup the visual editor can't represent. By default, switching pops a confirmation that lists what may be affected. If you switch modes constantly and don't need the reminder, tick "Don't show this again" in that confirmation, or toggle "Don't warn me before switching editor modes" in Account Settings > Editor. Switches then happen immediately. Re-enable the warning any time from the same setting.
Rich Text (TipTap)
The Rich Text editor's toolbar gives you one-click access to:
Standard text formatting
- Bold, italic, underline, strikethrough
- Headings (H1 through H6)
- Bullet and numbered lists
- Links (insert, edit, remove)
- Block quotes
- Code blocks (syntax-highlighted)
- Horizontal rules
- Text alignment (left, center, right)
PBP-specific blocks
- OOC blocks — inline out-of-character asides within an IC post (see Forums and Posting)
- Spoilers — click-to-reveal regions
- Whispers and Private blocks — audience-restricted content (see Forums and Posting)
- Fieldsets — labeled bordered sections for stat blocks, letters, journal entries, anything you want visually set apart
- Language tags — text spoken in a specific in-game language; comprehension is sheet-driven (covered below)
- Page links —
[[Page Title]]syntax linking to wiki pages - Sheet field placeholders — live values from a character sheet (covered below)
- Style guide — quick reference for site formatting conventions
Markdown
Standard Markdown with a live preview pane. Same syntax you've been writing for GitHub or Reddit, with the PBP blocks accessible via fence syntax.
HTML
Raw HTML in a textarea, sanitized on submit. Use for fine control over markup that the other modes don't expose cleanly. Anything risky (scripts, event handlers, certain attributes) is stripped server-side.
For the exact, complete list of what's kept versus stripped — every tag, attribute, inline-style property (with its accepted values), CSS class, and URL scheme — see the Allowed Content Reference, also linked from the editor's HTML Reference panel.
BBCode (legacy)
Posts written on the old site in BBCode render correctly. You can still write BBCode if you prefer — the editor recognizes the legacy [b]bold[/b] and similar tags. New posts default to the modern-mode syntax, but long-time BBCode authors aren't forced off their style.
Under the hood: full mwbbcode tag reference
The editor recognizes the following BBCode tags (collectively, the "mwbbcode" dialect).
Text formatting
| Tag | Effect |
|---|---|
[b]…[/b] |
bold |
[i]…[/i] |
italic |
[u]…[/u] |
underline |
[strike]…[/strike] |
strikethrough |
[sub]…[/sub] |
subscript |
[sup]…[/sup] |
superscript |
[color=hex|name]…[/color] |
color (e.g. [color=#a00] or [color=red]) |
[size=1-7]…[/size] |
font size |
[font=family]…[/font] |
font family |
[highlight]…[/highlight] |
highlighted text |
Links and media
| Tag | Effect |
|---|---|
[url=https://…]label[/url] |
link with label |
[img]url[/img] |
inline image |
[mention]username[/mention] |
@mention |
[page]Page Title[/page] |
link to a wiki Page |
Lists
| Tag | Effect |
|---|---|
[list]…[/list] |
bulleted list (use [*] for items) |
[list=1]…[/list] |
numbered list |
[list=a]…[/list] |
lettered list |
[*] |
list item |
Block content
| Tag | Effect |
|---|---|
[quote=author]…[/quote] |
block quote with attribution |
[code]…[/code] |
code block |
[spoiler=label]…[/spoiler] |
click-to-reveal spoiler |
[fieldset=title]…[/fieldset] |
labeled bordered section |
[ooc=label]…[/ooc] |
out-of-character inline aside |
[private=recipients]…[/private] |
private block (allow-list audience) |
[h1]…[/h1] through [h6]…[/h6] |
headings |
[hr] |
horizontal rule |
Layout
| Tag | Effect |
|---|---|
[left]…[/left] |
left-align |
[center]…[/center] |
center-align |
[right]…[/right] |
right-align |
[indent]…[/indent] |
indent block |
[floatleft]…[/floatleft] |
float content left |
[floatright]…[/floatright] |
float content right |
Special
| Tag | Effect |
|---|---|
[noparse]…[/noparse] |
render tags inside literally (escape hatch) |
[table][r=col,row]…[/r][/table] |
tabular layout |
[inlinedice]…[/inlinedice] |
inline dice reference |
[sheetfield]…[/sheetfield] |
character sheet field placeholder |
If a tag isn't in this list, it's not recognized — write it inside [noparse]…[/noparse] if you want the literal text to render.
Mentions
Type @ followed by a username and a dropdown of matching members appears. Pick one and the user gets pinged the moment your post lands — whether they're online, offline, or pretending to be neither.
A handful of group mentions also work:
@gm— every GM and assistant GM in the game@players— every player in the game (excludes readers and applicants)@here— everyone who's looked at this topic recently@everyone— every member of the topic; use sparingly — your fellow players know where they live
Each recipient's notification settings decide how they get pinged (in-app, push, email). Group mentions don't bypass mutes — a member who's muted the topic still won't get the email.
Mentions outside of a game (community forums, blogs, DMs) work the same way for individual users; group mentions are game-scoped and won't resolve.
Quoting
Hit Quote on any post and the quoted content flows into your reply, pre-formatted with the author, a link back to the original, and the full text. From there it's normal editor content — trim it down to the line you're actually responding to, leave the rest, whatever the moment calls for.
Quick Reply quotes are tight: single quote, no nesting, dropped at the bottom of your draft. Good for fast back-and-forth. Full Editor quotes give you nested quoting if you're weaving together a longer thread of replies, plus the full toolbar for whatever else the post needs.
Light rules of the road:
- Don't quote the whole post just to add "+1" — your fellow players will skim past, and you'll bury whatever you actually said.
- Quoting an OOC block carries the OOC flag, so the meta-tone survives.
- Quoting a whisper or private block respects the original audience — if you couldn't see it, you can't quote it; if you could, the quoted excerpt is visible only to that same audience.
Where the Quote button lives
Two places:
- On any post's hover-action bar, alongside Reply and Edit. Fastest path.
- In the Full Editor's toolbar, where you can paste a post URL or pick from the topic's existing posts. Useful when you want to quote a post that's far up the topic without scrolling back to find it.
Language tags
The Language dropdown in the editor lets you wrap text as spoken in a specific in-game language. The audience model is sheet-driven: a reader can understand the wrapped text only if their currently-posting-as character has that language in their sheet's languages field.
When you post text in a language, the editor offers the languages your own character knows (drawn from your character sheet's languages field, plus a small set of always-available languages like Common). Non-speakers don't see plaintext — they see obscured text indicating "something's being said, but not in a tongue you know."
A few practical notes:
- Languages live on the character sheet, not on the user. Different characters in the same game can know different languages; the editor picks up whichever character you're posting as.
- GMs see everything. GM-level access bypasses the comprehension check, regardless of which character (if any) the GM is posting as.
- Reading is computed at render time, not at post time. If a player's character later learns a new language, retroactive posts in that language become readable. (Same character; same player. Not the case if the player swaps to a different character mid-campaign.)
- The list of known-by-someone languages is union-derived for the language-picker dropdown — you'll see every language any of the game's characters speaks, even if your character can't speak it. Picking a language your character doesn't speak is allowed (e.g., for narration of overheard NPC speech) but unusual.
[GM]
Languages are derived from the sheet automatically, but the sheet template needs a languages field that the parser recognizes. Most major-system templates have this configured; custom sheets may need a tweak. If a player's expected language list is empty in the picker, check their sheet's data extraction.
Sheet-field placeholders
If you've linked a character sheet to the game, the editor's Sheet field button opens a picker that lets you drop live values from the sheet straight into your post — current HP, AC, spell slots, the dagger you remembered to pick up two sessions ago. Browse or search; each row shows the current value so you know what you're inserting.
When you submit, each chip bakes in the value at that moment. Future sheet edits don't retroactively rewrite old narration — your retelling of that bloody fight in the goblin warren stays accurate to the HP total you actually had at the time. Mid-edit, the Refresh button walks the post and pulls current values into every chip in one pass.
You can also set a value from inside the picker — type your new HP after taking a hit, hit Enter, and the chip uses the updated number. The sheet write happens once on submit; bail on the post and the sheet stays untouched.
[GM]
GMs and assistant GMs can edit any linked sheet's fields from the picker, not just their own characters'. Same interface; the picker respects whatever sheet-edit permissions the actor has. Useful for "the magic item attaches to the rogue mid-narration" — open the picker, set the new slot, insert the chip, post.
The Post Editor guide covers the picker's mechanics in detail — keyboard shortcuts, field search, value-set syntax.
Field picker controls
Open the picker from the editor's Sheet field button. Once it's open:
- Type to filter fields by name; the list narrows as you type.
- Arrow keys navigate the suggestion list; Enter inserts the selected field.
- Each row shows the current value of the field — what'll be baked into the chip when you insert.
- The value editor at the bottom lets you type a new value before inserting. Submitting the post commits both the chip and the sheet write in one transaction; cancelling leaves the sheet untouched.
- The Refresh action walks every chip in the post and pulls current values in a single pass — useful when a sheet's been updated since you started writing.
Images and attachments
The editor supports inline images and file attachments:
- Image upload — click the image toolbar button, or drag-and-drop into the editor. Files upload to S3 and embed inline.
- Image URL — paste an external image URL to embed without uploading.
- File attachments — attach files (PDFs, character sheet exports, maps, anything) to the post. Attachments appear below the post body with download links.
Upload limits depend on supporter status — see Account Settings for tier details. Free accounts have generous limits for normal use; supporters get more headroom for image-heavy posts and large attachments.
Image bubble menu
Click any embedded image and a bubble menu appears with float (left, right, center), resize handles, alt-text editor, and link-wrap toggle. Alt text isn't optional cosmetics — it's how a player using a screen reader experiences your post.
Under the hood: where do uploads live?
Images and attachments upload to S3 storage at static.myth-weavers.com. The post stores a reference to the upload, not the file itself, so re-renders are cheap. Deleting a post doesn't immediately delete the underlying file — a cleanup process handles orphaned uploads on a schedule.
Tables
Insert a table from the toolbar (Rich Text mode). Click into any cell to surface the table bubble menu:
- Add or remove rows and columns
- Toggle zebra striping (alternating row backgrounds)
- Resize columns by dragging the column borders
- Merge or split cells
Tables are useful for initiative trackers, inventory lists, character sheet excerpts, comparison stats — anything that wants structured rows.
Drafts
The editor auto-saves drafts to your browser's local storage. Close the tab by accident, navigate away mid-post, lose power — when you return to the editor, the draft is waiting. A "Draft saved" indicator confirms each save (typically every few seconds while you're typing).
Restoring a draft is offered automatically when you come back; you can also discard if you'd rather start fresh.
Under the hood: drafts are local-only
Drafts live in your browser's localStorage, not on the server. That means:
- They're private to the device and browser you're using.
- Clearing browser data wipes them.
- You can't pick up a draft on your phone that you started on your laptop.
Server-side draft sync (so drafts follow you across devices) is on the post-cutover wishlist.
Style guide
The Style Guide toolbar button opens a quick-reference modal covering common formatting patterns — IC post conventions, stat block layouts, letter prop styles, the rest. Useful when you remember a pattern exists but not the exact syntax.
Next steps
- Dice Rolling — the dice system in detail.
- Forums and Posting — the posting orientation: IC/OOC, character selectors, deadlines, the game-page tabs.
- Characters, Resources, and Maps — linking sheets so the sheet-field picker has something to read from.