Cheat Sheet
Conversations
- Write your fic like normal until you want to add a chat conversation
- Start conversations with
-- fm: your-config-name --
and end them with-- end --
- Use any number of dashes or hyphens
- Config names can be anything, but can't have spaces
- If you want multiple conversations to look the same as each other, use the same config name
-- fm: your-config-name --
username: Message goes here.
-- end --
Messages
- Messages are just a username, a colon, and the message text:
username: Message goes here.
- Messages from the same user can go on following lines without a username
- Usernames are short names for someone in a chat
- They can have any characters except for spaces, colons (
:
), or brackets ([ ]
) - Usernames can be replaced with longer names when the chat is rendered by Fictional Messenger
- They can have any characters except for spaces, colons (
- Blank lines are fine
- Lines starting with
//
are comments and won't appear in the output - Messages are formatted using Markdown
- e.g.
username: **This is in bold,** and _this is in italics_.
username: [this is a link](https://example.com)
username: 
- e.g.
-- fm: your-config-name --
jane: This is a message from Jane.
This is a another message from Jane.
// This line is a comment and won't appear in the output.
username: You can make parts of messages **bold** or _italics_
Put links like this: [link text here](https://example.com)
Put images like this: 
-- end --
Timestamps
- Message timestamps are optional
- Timestamps go before or after a username:
[1:23am] username: message
username [23:59]: message
- Times can be in 12-hour or 24-hour formats. Seconds are optional:
- These are all the same time:
[1:30pm]
,[13:30]
,[1:30:00 pm]
,[13:30:00]
- These are all the same time:
- Dates must be in either year-month-day or month-day form, separated by dashes:
1999-12-31
,12-31
- Dates must include a time:
[1999-12-31 11:59 pm]
,[12-31 23:59]
- Relative timestamps will set the time based on the last timestamp entered.
[+1h]
will be one hour after the last entered timestamp[+ 1d 2h 3m 4s]
will be one day, two hours, three minutes, and four seconds after the last entered timestamp
- Timestamps will be displayed as specifically as you enter them
- If you only use relative timestamps, then only relative times will be shown
- e.g.
just now
,twelve minutes ago
,six months ago
- e.g.
- If you only use times, then times with relative dates will be shown:
- e.g.
1:30 PM
,Yesterday, 10:01 AM
,Two years ago, 10:00 PM
- e.g.
- If you only use months, days, and times, then dates and times with relative years will be shown:
- e.g.
Dec 3, 12:01 AM
,Two years ago, April 1, 4:45 PM
- e.g.
- If you use years, months, days, and times, then dates and times will be shown in absolute format:
- e.g.
1999 Dec 31, 11:59 PM
- e.g.
- If you only use relative timestamps, then only relative times will be shown
- Timestamps may not be more specific than the first timestamp in a conversation
- If your first timestamp is
[12:00pm]
, then a later timestamp with[2000-01-01 1:00am]
will result in an error
- If your first timestamp is
- Timestamps must always move forward in time, not backwards
- (Sorry, time travelers.)
- Messages without timestamps will be automatically given a timestamp 30 seconds later than the last message
- This can be altered with the
message-interval
attribute, ormi
for short[message-interval = +1m30s]
will make messages be one minute and thirty seconds apart[mi=+2h]
will make messages be two hours apart
- This can be altered with the
-- fm: your-config-name --
// A timestamp that sets the start date and time of the conversation
[1999-12-31 01:00:00 am]
username: This message will have the above timestamp.
[5:30am] username: This timestamp will use the current conversation's current date,
so it's now Dec. 31, 1999, at 5:30 AM.
username: Timestamps are in [year-month-day hour:minute:second] format.
Years and dates are optional. Time can be 12-hour or 24-hour.
[+1h] username: This is a relative timestamp. It'll make this message be an hour after the previous one.
[+1d 2h 3m 4s] username: This message is one day, two hours, three minutes, and four seconds after.
other-username: Messages without timestamps will be moved forward 30 seconds from the last message's timestamp.
This can be controlled like:
[message-interval = +1h]
other-username: So now each message is one hour after the last.
// Shorthand for message-interval:
[mi=+1m30s]
other-username: Now messages are 1 minute and 30 seconds apart.
// This last timestamp will set the conversation timestamp, the time at which the conversation is being read
[2999-12-31 01:00:00 am]
// Now it's the distant future. All timestamps will be shown as full dates and times, instead of e.g. "Just now" or "Yesterday at 3:30 PM"
-- end --
Attributes
- Attributes can change how messages or conversations look or act
- Attributes have the format
[name = value]
, wherename
is the name of the attribute andvalue
is what the attribute is set to - Most attributes are specific to particular styles, so check out your chosen style's docs for details
- Universal attributes are:
message-interval
- Short Name:
mi
- Location: Conversation attribute or message attribute
- Value: Any valid relative timestamp
- Default Value:
+30s
- Examples:
[mi = +2m 30s]
,[message-interval = +0]
- Description: Sets the interval that timestamps will automatically advance for messages without timestamps.
- Short Name:
markdown
- Short Name:
md
- Location: Conversation attribute or message attribute
- Value:
on
oroff
- Default Value:
on
- Examples:
[md=off]
,[markdown = on]
- Description: Controls whether Markdown parsing in messages is enabled. If set on a message, will only affect that message. If set on a conversation, will affect all following messages.
- Short Name:
-- fm: your-config-name --
[message-interval = +0s] username: Messages will now be zero seconds apart.
[md=off] username: This message won't use Markdown, so **this** and _this_ will appear exactly as written.
-- end --