About
A dialogue generator! It uses a specialized grammar and actor lists to let a user quickly create simulated conversations in a variety of formats. For various purposes.
FAQ
- Why are all my actors are showing up as "Unknown"?
- There are a few possible issues. You may not have an actor with the specified ID for the
script you've written. You may have an invalid type of ID – IDs are made up of only
letter and numbers. You may be selecting a different actor group than the one you're trying to
use the ID of.

- How do I add icons?
- Icons are stored as links to external images, so copy the link to an image into your icon.
- How can I use a discord profile picture as an icon?
- You must have Developer Mode enabled (see below if you do not have it set). With developer
mode enabled, click on the user's profile, then the three dots (), then hover "Copy User Info" to open its sub-menu and click "Copy Avatar Image Link". Their
profile picture link will be copied to your clipboard.

- How do I enable Developer Mode on Discord?
- Go to settings, Developer, and enable the Developer Mode switch.
- Why aren't my images loading?
- Not all sites allow hotlinking of media files, so you may have to upload them to a separate location such as Discord or an external file site like catbox.moe or such.
- Can I suggest new features such as themes?
- Yes! Direct message me on Discord or add it as an issue on Codeberg! If you do not know my Discord username you can find it on my home website.
- Who are the sample actors?
- They're arbitrarily made up based on some letters I also arbitrarily chose. I have included arbitrary character summaries below if you wanted to make scripts with them more in-character for whatever reason.
Sample Group Character Summaries

Aya (she/her)
Bird girl. Easily excitable and prone to repeating things she finds funny constantly until it
bothers everyone.
- Thinks herself responsible, though deep down she knows she isn't.
- Wishes Key would relax more and allow more things, but understands.
- Likes Ico and her questions, as questions validate answers.

Key (she/they)
Strict and thinks she's the voice of reason. Enjoys homemade food, but isn't very good at cooking.
Doesn't like wasting things.
- Thinks Aya is a little silly, too silly sometimes.
- Feels happy with herself, she's balanced as far as she's concerned.
- Hasn't spoken a lot with Ico, mostly through her being adjacent in questions.

Ico (she/her)
Laid back and can actually cook. Questions Aya often, though mostly out of curiosity. Often quiet,
always thinking. Secretly likes archery but thinks it would be childish to talk about.
- Respects Aya, thinks her deep down to be a reasonable girl.
- Thinks Key is a bit too strict, but still cares for her.
- Loathes own inaction, but doesn't show it outwardly
Technical Details
For those curious to what I used to make this and how it works in somewhat specifics.
Parsing Grammar
The grammar is created using the Ohm JS library.
Dialogue {
Message
= msgId #(msgClass+)? #msgSep msgContent
msgId
= alnum*
msgClass
= #msgClassPrefix #msgClassContent
msgClassPrefix
= "."
msgClassContent
= (alnum | "-")+
msgSep
= ":"
msgContent
= any+
}
This roughly translates to [id]: [message] or with optional classes as [id].[class]: [message] in which the ID is a sequence of letters or numbers and the message
is anything. Blank lines are thrown out and everything else is handled by the themes.
Creating Images
Images are created with the modern-screenshot JS library. It's just a faster version of the HTML to Canvas libraries and has some convenient functionality.