Zalgo Text Generator
Turn text into Zalgo glitch text: Unicode combining marks stacked above, through and below each letter, at a chaos level from 1 to 20. How it works
Use the Zalgo Text Generator
H̡̢͉͈̪̟̠̒̅͂̃̔E̵̠̘̣̤̲̔̓̌ͤ͐ C̸͚̥̳̯͊̋̏ͧƠ̝̻̎̓̇ͩͧM̧̢̭̳̻̓ͯͣÉ̡̛͔̐̽ͪS̡͈̄̽
59 combining marks added to 7 of 8 characters (spaces get none).
The marks come from the Unicode Combining Diacritical Marks block. The stacks look different in every font and app, and tall ones can run into the lines around them.
About the Zalgo Text Generator
At the default chaos level 5, this Zalgo text generator adds 8 combining marks per letter on average and 13 at most; at level 20 it adds 26.5 on average and 50 at most. The marks come from the Unicode Combining Diacritical Marks block (U+0300 to U+036F) and stack above, through and below each letter.
Marks per letter by chaos level
| Chaos level | Above | Through | Below | Average per letter | Most per letter |
|---|---|---|---|---|---|
| 1 | 1 | 1 | 1 | 3 | 3 |
| 2 | 1 to 2 | 1 | 1 to 2 | 4 | 5 |
| 3 | 1 to 3 | 1 to 2 | 1 to 3 | 5.5 | 8 |
| 5 | 1 to 5 | 1 to 3 | 1 to 5 | 8 | 13 |
| 8 | 1 to 8 | 1 to 4 | 1 to 8 | 11.5 | 20 |
| 10 | 1 to 10 | 1 to 5 | 1 to 10 | 14 | 25 |
| 15 | 1 to 15 | 1 to 8 | 1 to 15 | 20.5 | 38 |
| 20 | 1 to 20 | 1 to 10 | 1 to 20 | 26.5 | 50 |
All three directions on. Each count is drawn with equal odds from its range, so its average is (max + 1) / 2. Spaces, tabs and line breaks get no marks.
The three sets of marks
| Direction | Combining class | Marks | Code points |
|---|---|---|---|
| Above | 230 Above, 232 Above_Right | 50 | U+0300–U+0315, U+031A, U+033D–U+033F, U+0342, U+0346, U+034A–U+034C, U+0350–U+0352, U+0357–U+0358, U+035B, U+0363–U+036F |
| Through | 1 Overlay, 202 Attached_Below, 216 Attached_Above_Right | 10 | U+031B, U+0321–U+0322, U+0327–U+0328, U+0334–U+0338 |
| Below | 220 Below | 39 | U+0316–U+0319, U+031C–U+0320, U+0323–U+0326, U+0329–U+0333, U+0339–U+033C, U+0347–U+0349, U+034D–U+034E, U+0353–U+0356, U+0359–U+035A |
Left out of the block’s 112 code points: U+0340, U+0341, U+0343 and U+0344 (canonically equivalent to other marks), U+0345 (Greek ypogegrammeni, which has special casing), U+034F (combining grapheme joiner, no visible glyph) and U+035C to U+0362 (double marks that span two letters).
Frequently asked questions
- How does Zalgo text work?
- A combining mark is a Unicode character that attaches to the character before it, like the accent in é typed as e + U+0301. Put many after one letter and the font draws them stacked. This generator adds them after each whole character, so emoji and flags are not split, and it skips spaces, tabs and line breaks.
- What does the chaos level do?
- It caps the stack in each direction. Above and Below each get 1 mark up to the level, Through gets 1 up to half the level rounded up, and each count is drawn with equal odds. At level 1 every letter gets exactly 3 marks, one per direction, so “HE COMES” gets 21.
- Why does the pattern change only when I press Regenerate?
- The marks come from a seeded random generator (mulberry32), so the same text, settings and seed always give the same marks and the page looks the same each time it loads. Regenerate draws a new 32-bit seed from crypto.getRandomValues. Each character’s marks depend on its position, so typing at the end leaves the marks before it unchanged.
- How long is Zalgo text when I paste it?
- Every mark is one character, so the pasted text is several times longer than what you typed: a 1,000-character text at level 20 can carry up to 50,000 marks. A length limit that counts characters counts the marks too, so a name or bio that fits in plain letters may be cut off or refused.
- How do I remove Zalgo text?
- Delete every character from U+0300 to U+036F. All the marks this tool adds are in that range, so what is left is the original text. That also removes accents typed as separate combining marks (e + U+0301), but not precomposed letters such as é (U+00E9).
- Will Zalgo text look the same everywhere?
- No. The marks are standard Unicode characters, but each font and app draws a stack its own way, and tall stacks can run into the lines above and below. This page clips the result box so the marks stay inside it.
Related Tools
View all toolsASCII Art Generator
Type text and get an ASCII art banner in standard 5 by 5, small 3 by 5 or tall 5 by 7 block letters, drawn with the letter itself, # or █.
Morse Code Translator
Translate text to Morse code and back, and play it as a 600 Hz tone at 5 to 40 WPM. Paste Morse with a slash between words to read it.
ROT13 Cipher
ROT13 encoder and decoder, plus any Caesar shift from 1 to 25: each letter A to Z moves that many places. Digits, punctuation and accents stay as typed.
Upside Down Text
Flip text upside down and reverse it with look-alike Unicode characters for a to z, A to Z, 0 to 9 and common punctuation, then copy and paste it.
Small Text Generator
Turn text into small caps, superscript or subscript Unicode characters, see which letters have no small form, and copy and paste the result.
Strikethrough Text
Cross out text in nine styles, from strikethrough and double to slash, wavy and underline, made of combining Unicode marks, then copy it into a bio or post.