Skip to main content
CalcChef

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

Result

H̡̢͉͈̪̟̠̒̅͂̃̔E̵̠̘̣̤̲̔̓̌ͤ͐ C̸͚̥̳̯͊̋̏ͧƠ̝̻̎̓̇ͩͧM̧̢̭̳̻̓ͯͣÉ̡̛͔̐̽ͪS̡͈̄̽

Where the marks go

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 levelAboveThroughBelowAverage per letterMost per letter
111133
21 to 211 to 245
31 to 31 to 21 to 35.58
51 to 51 to 31 to 5813
81 to 81 to 41 to 811.520
101 to 101 to 51 to 101425
151 to 151 to 81 to 1520.538
201 to 201 to 101 to 2026.550

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

DirectionCombining classMarksCode points
Above230 Above, 232 Above_Right50U+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
Through1 Overlay, 202 Attached_Below, 216 Attached_Above_Right10U+031B, U+0321–U+0322, U+0327–U+0328, U+0334–U+0338
Below220 Below39U+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 tools