Skip to main content
Scripting lets you build your own messages instead of using the ones mira comes with. You write plain text with nodes in it, and mira swaps those nodes out for real values when the message is sent.
Example
Result

The three kinds of node

Everything in scripting is one of these:
Forms
A placeholder stands in for information mira already knows, like a username or a member count. See Placeholders. A template node builds something, like an embed title or a button. See Embeds, Containers, and Buttons. A pipe changes a value on its way out, like making it uppercase or adding commas to a big number. See Pipes and operators.

Rules that apply everywhere

Node names ignore capitalisation, so {member.NAME} and {member.name} do the same thing. Spaces around the : are up to you. {title: Hello} and {title:Hello} both work. A value can run across several lines. Everything up to the closing brace is part of it.
Multi-line value
Several nodes take more than one value at once, and those are split with &&. Fields, footers, authors, and conditions all work this way.
Multiple values
Anything mira doesn’t recognise is left exactly as you typed it. A misspelled node like {member.nmae} won’t throw an error, it’ll just appear in the message as written. If part of your script shows up raw, that’s almost always a typo.

Where you can use scripts

WIP

Where to go next

placeholders

Every value you can pull in, from usernames to Last.fm scrobbles.

Pipes and operators

Change values, do maths, and add conditions.

Embeds

Build embeds with titles, fields, images, and footers.

Containers

Discord’s newer layout blocks, with headers, dividers, and galleries.

Buttons

Add buttons under a message or inside a container.

Examples

Full scripts you can copy and change.
Last modified on August 4, 2026