(Last updated 12/01/25)
Want to spice up your Discord messages with some flavour and personality, well then you have found the right place.
Discord uses something called Markdown text, a simple yet powerful text formatting system, that can help make your sentences pop. All you have to do is just put a few characters in front of text, and voila a unique sentence is created
This guide contains the following:
- TEXT FORMATTING
- ORGANIZATIONAL TEXT FORMATTING
- CODE BLOCKS
- SYNTAX HIGHLIGHTING
- BLOCK QUOTES
- SPOILER TAGS
- TIMESTAMPS
- DISCORD BOT/APP SYNTAX
| Output | Syntax |
|---|---|
| Italics | *Italics* OR _Italics_ |
| Underline italics | __*Underline italics*__ |
| Bold | **Bold** |
| Underline Bold | __**Underline Bold**__ |
| Bold Italics | ***Bold italics*** |
| Underline bold italics | __***Underline bold italics***__ |
| Underline | __Underline__ |
~~Strikethrough~~ |
To create a header you just need to include a specific number of the hash/pound sign character (#). Use (#) for a big header, (##) for a smaller header, or (###) for an even smaller header as the first character(s) in a new line to make a header. Here is an example of what each header type looks like.
# Big Header
## Smaller Header
### Even Smaller Header
Like Headers, you can add subtext to any chat message. To do so, add a (-#) before the text you want to appear in the subtext. Don’t forget the space after # before your message. For example:
-# This is subtext
You can use masked links to make text a clickable or pressable hyperlink. To do so, you need to include the text you want displayed in brackets and then the URL in parentheses. For example:
[This is Google]\(https://google.com/)
You can create a bulleted list using either (-) or (*) in the beginning of each line. For example:
- list of stuff
- and things
* and more things
You can also indent lists by leaving two spaces before the (-)/(*) Symbols:
- This is another list
* of stuff
- and things
You can make your own code blocks by wrapping your text in backticks (`).
If you want to create a multi-line code block, you can do so by wrapping your text in (```), like this beautifully written haiku.
If you really want to spruce up your code blocks, you can denote a specific language for syntax highlighting, by typing the name of the language you want the code block to expect right after the first three backticks beginning your code block. For example:
```fix
klinton isn't my real name
```
There are many different languages in place of Markdown that Discord's syntax highlighting support. Each different language has its own approach to highlight-able syntax. Note: you won't be able to view syntax highlighting on the Mobile app.
asciidoc
autohotkey
bash
cofeescript
cpp (C++)
cs (C#)
css
diff
fix
glsl
ini
json
md(markdown)
ml
prolog
ps
py
tex
xl
xml
yaml
Another option is using block quotes. To use a block quote, you just need to put (>) at the beginning of a line of text to create a single block quote. For example:
> Bubblegum Ice Cream
Blueberry Ice Cream
Strawberry Ice Cream
If you want to add multiple lines to a single block quote, just add (>>>) before the first line. For example:
>>> Bubblegum Ice Cream
Blueberry Ice Cream
Strawberry Ice Cream
You can manually tag spoilers by using the syntax (||) around your text or by typing /spoiler before your message. This is also negated by a code block.For example:
Don't click on the grey box below:
||SPOILER||
Timestamps are a very useful feature, they allow you to turn a specific time or date into a link that reflects correctly accross all timezones.
Additionally, you can use timestamps to set countdowns or reminders. For example:
<t:1764690300:R>
You can also display full date and time, just the date, just the time, or a short date, whichever fits your message. For Example:
<t:1764690300:F>
You can use the website below to generate a timestamp for you to post in your server:
Unlike users, bots cannot just mention roles, users, channels, etc.
They must use a special syntax with IDs to identify and mention any given roles and/or something else
Below, you will find all of the syntaxes that I could find:
To ping a user, type in a smaller than(<) symbol followed by an @ symbol, the user ID of the user and a greater than(>) symbol. For example:
<@{Copy User ID}>
To ping a user by their server nickname, type in a smaller than(<) symbol followed by an at (@) symbol, an exclamation mark (!), the user ID of the user and a greater than(>) symbol. For example:
<@!{Copy User ID}>
To ping a channel on your server, type in a smaller than(<) symbol followed by a hash/pound (#) symbol, an exclamation mark (!), the ID of the channel and a greater than(>) symbol. For example:
<#{Copy Channel ID}>
To ping a role on your server, type in a smaller than(<) symbol followed by an at (@) symbol, an ampersand (&), the ID of the role and a greater than(>) symbol. For example:
<@&{Copy Role ID}>
The channels and roles feature got added alongside the Discord Server Onboarding feature, which allows server owners to add reaction roles, without adding an external app/bot to do it.
Bots/Apps can also mention this features, just like it does with channels, etc.
For example:
<id:customize>
To use emojis you need the formatted version of the emoji which looks like <:emoji\_name:emoji\_id>
To get it, type \:YourEmoji: into any channel within your server to get the formatted version
OR
Just type in your emoji, and add a (\) in front of it before sending
Now you're a Discord Markdown Expert. Get out there and highlight your statements!