Docs / User / Marinara documented macro catalog
Marinara documented macro catalog
Every name below is taken from Pasta-Devs/Marinara-Engine docs prompts/macros.md at commitb7545a63e7e264a1cd9eeea1a5490d50c08ddb29. Built-in names are case-insensitive. Fields that support
macros are listed on Prompts and macros. The in-app Macro Reference and/macros are live-engine authorities and may list the same names generated from engine code.
This page does not invent extension macros. Unknown {{NAME}} tags (letters, numbers, underscores)
resolve as preset variables or remain literal when no preset variable matches.
Identity and card macros
| Macro / aliases | Return | Notes |
|---|---|---|
{{user}}, {{userName}} |
Active user/persona display name | Defaults to User when no persona is set |
{{userNamePhonetic}} |
Persona phonetic name | Falls back to {{user}} when empty |
{{char}}, {{charName}} |
Current character name | Defaults to Character |
{{charNamePhonetic}} |
Character phonetic name | Falls back to {{char}} when empty |
{{characters}} |
All characters in chat, comma-joined | Group roster |
{{group}} |
Other active group characters excluding current responder | Persona is not in this roster; follows current speaker during group generations |
{{persona}} |
Persona Description, Personality, Backstory, Appearance, Scenario joined by newlines | Multi-field block |
{{personaDescription}} |
Persona Description only | |
{{personaPersonality}} |
Persona Personality only | |
{{personaBackstory}} |
Persona Backstory only | |
{{personaAppearance}} |
Persona Appearance only | |
{{personaScenario}} |
Persona Scenario only | |
{{description}} |
Character Description | Solo: current character; group: first character by default unless group blocks iterate |
{{personality}} |
Character Personality | Same group default |
{{backstory}} |
Character Backstory | Same group default |
{{appearance}} |
Character Appearance | Same group default |
{{scenario}} |
Character Scenario | Same group default |
{{example}} |
Character Example Dialogue | Same group default |
{{charSysInfo}} |
Character System Prompt | |
{{charPostHistory}} |
Character Post-History Instructions |
Conversation Mode only
These resolve to empty outside Conversation Mode.
| Macro / aliases | Return |
|---|---|
{{convo_display}} |
Character Convo Display Name, or card name when empty |
{{char_about}} |
Character About Me (per-chat override if set, else card default) |
{{persona_about}} |
Persona About Me |
{{convo_behavior}} |
Character Convo Behavior when insertion setting places it at this macro |
Conversation placement (move + suppress auto-insert)
Using a placement macro renders the block at the macro and skips automatic insertion to avoid
duplication. Conversation Mode only.
| Macro / aliases | Places |
|---|---|
{{context}}, {{status}} |
Conversation context / status block |
{{commands}}, {{commandList}} |
Available-commands reminder |
{{reactRules}}, {{emojiReact}} |
Custom-emoji reaction rules |
{{replyRules}} |
Custom-emoji and sticker reply rules |
{{memories}}, {{memoryRecall}} |
Memory-recall block |
{{lorebook}}, {{lore}} |
Lorebook injections |
In one-character Conversation, placing {{char_about}} / {{persona_about}} yourself similarly skips the
automatic participant About block. Group Conversation keeps the automatic participant block because a
singular about macro covers only one participant.
Context and request macros
| Macro | Return / behavior |
|---|---|
{{input}} |
Most recent user message available to the prompt |
{{model}} |
Current model name when selected |
{{chatId}} |
Current chat ID |
{{lastGenerationType}} |
Label for generation reason; documented examples include normal, continue, regenerate, impersonate, guided, autonomous, turn_game, preview, game_setup, lorebook_scan, retry_agents (open set) |
{{idle_duration}} |
Human-readable idle time such as 8 minutes |
{{gameStoryboardKeyframeCount}} |
Game Mode keyframes-per-turn target 1-6; default 3; narrative target not a hard paragraph quota |
{{agent::TYPE}} |
Saved output of agent type TYPE; resolved last so agent text cannot inject further macros |
Time macros
All share one resolution timestamp; timezone from browser.
| Macro / aliases | Format |
|---|---|
{{date}} |
YYYY-MM-DD |
{{time}} |
HH:MM 24-hour |
{{datetime}}, {{isotime}} |
Full timestamp with timezone offset (same meaning) |
{{weekday}} |
Weekday name |
{{timezone}} |
Timezone name |
Random and dice
| Form | Behavior |
|---|---|
{{random}} |
Integer 0-100 inclusive |
{{random:X:Y}} |
Integer between X and Y inclusive |
{{random::A::B::C}} |
Pick one option; macros resolve only inside the chosen option |
{{random::A@2::B@0.5}} |
Weighted pick; missing weight = 1; decimal weights allowed; weight 0 never selected; all weights 0 yields empty; only a final @number is a weight |
{{roll:XdY}} |
Dice total, e.g. {{roll:2d6}} |
Reply-scoped variables
Exist only for one reply generation; reset every turn.
| Form | Behavior |
|---|---|
{{setvar::name::value}} |
Store value; emits empty |
{{getvar::name}} |
Read value; empty if unset |
{{addvar::name::value}} |
Append to stored value |
{{incvar::name}} |
Add 1 to numeric variable |
{{decvar::name}} |
Subtract 1 from numeric variable |
Do not put {{setvar}} inside {{random::...}} options: setvar runs for every option before the pick.
Formatting macros
| Form | Behavior |
|---|---|
{{newline}}, {{\n}} |
Line break |
{{trim}} |
Remove itself and trim surrounding whitespace |
{{trimStart}} |
Trim start of surrounding text |
{{trimEnd}} |
Trim end of surrounding text |
{{uppercase}}...{{/uppercase}} |
Uppercase wrapped text |
{{lowercase}}...{{/lowercase}} |
Lowercase wrapped text |
{{noop}} |
Removed; harmless placeholder |
{{// comment}} |
Author note removed from output |
{{banned "text"}} |
Removed; does not filter or ban model output |
Lifecycle rules (pinned)
- Built-in macros need no API key; they resolve inside Marinara. Preset variables need a defining
preset.{{agent::TYPE}}stays empty until that agent has produced saved output; it resolves
last so agent text cannot inject further macros. - Variables evaluate left to right in one prompt build (early lore
setvarcan be read later). - Random: macros resolve only inside the chosen option, except
setvar/addvar/incvar/decvarwhich run for every option before the pick. - Reply-scoped variables reset every generation.
- Weighted random: missing weight = 1; weight 0 never selected; all-zero weights yield empty.
Non-macros and failure modes
{{prompt}}alone opens Peek Prompt; it is not a resolving macro.- No escape character for braces; unknown names stay literal unless a preset variable matches.
- Custom Tools do not resolve macros.
- Impersonate templates accept only a restricted placeholder set, not the full list.
- Very large or deeply nested expansions are cut off silently.
- Live
/macrosand Macro Reference may update with the engine; this catalog is the pinned static floor.
Conditionals
Conditional operators live on Prompts and macros ({{#if}}, else, operators,&&/||). They are part of the macro system and apply wherever macros work.