send-chat-message
Post HTML messages to Foundry VTT chat with visibility options (public, GM whisper, blind, self), optionally speaking as a character and embedding images via local files or URLs.
Instructions
Post a message to the Foundry chat log as the GM bridge user. Content is HTML. Choose a visibility mode (public / gm whisper / blind / self) and optionally speak AS a character (speakerActor). Embed images via the images param (local files upload over WebDAV; Data-relative paths and https URLs link directly — uploaded files are PUBLIC). GM-only.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| style | No | Presentation style (defaults to ic when speakerActor is set, else ooc). | |
| enrich | No | Pre-enrich content (resolve @UUID links and inline rolls) before posting. | |
| flavor | No | Optional secondary header line, e.g. "Perception Check". | |
| images | No | Images to embed. Local files are uploaded to the world over WebDAV and linked; Data-relative paths and https URLs are linked directly. PRIVACY: uploaded files are served publicly with no auth. | |
| content | Yes | Message body as HTML (all formatting is just HTML). Inline rolls like [[/r 1d20+5]] and @UUID[Type.id]{label} links are enriched on render. Use the images param to attach images rather than hand-writing <img>. | |
| visibility | No | public = everyone; gm = whisper to all GMs; blind = whisper to GMs (mainly meaningful for rolls — for plain text it behaves like gm but also sets blind); self = only the bridge user. For "public as a character", use public + speakerActor. | public |
| imageFolder | No | Data-relative folder for uploaded local images (default "worlds/<world>/assets/chat"). | |
| speakerActor | No | Actor id / exact name / name-substring (or scene token id) to speak AS — the message renders with that character as speaker (the "public as character" mode). | |
| overwriteImages | No | Overwrite an existing uploaded image of the same name instead of refusing. |