Cursed Text Generator
Generate creepy Zalgo cursed text with Unicode combining diacritical marks. Adjust intensity, direction, and style for glitchy corrupted text effects.
About
Cursed text (commonly called Zalgo text) exploits a feature of the Unicode standard: combining diacritical marks. These are code points in the ranges U+0300 - U+036F (above), U+0316 - U+0333 (below), and U+0334 - U+0338 (middle) that attach to the preceding base character without advancing the cursor. Stacking dozens of these marks on a single glyph forces the renderer to draw overlapping strokes that extend far beyond the character's bounding box. The result appears corrupted or "cursed." This tool applies real Unicode combining characters. The output is not an image. It is valid text that can be pasted into any text field, social media post, or messaging app that supports Unicode. Note: rendering varies by platform. Some systems cap visible combining marks or reorder them. Mobile keyboards may strip excessive marks on paste.
Formulas
For each base character c in the input string, the generator appends n randomly selected combining marks. The total count n is determined by the intensity parameter I (range 1 - 100) scaled to a maximum mark budget M.
Where M = 30 (maximum combining marks per character), I is the user-selected intensity (1 - 100), and rand() returns a uniform random value in [0, 1). The marks are drawn from three pools based on user toggles:
Each mark mi is selected uniformly from Pool via index floor(rand() × |Pool|). If all three position toggles are disabled, the generator returns the original text unmodified. Characters that are themselves combining marks (category Mn in Unicode General Category) are passed through without additional marks to prevent unbounded stacking.
Reference Data
| Unicode Block | Range | Position | Count | Example Marks | Visual Effect |
|---|---|---|---|---|---|
| Combining Diacriticals | U+0300 - U+0315 | Above | 22 | ̀ ́ ̂ ̃ ̄ | Accents, tildes, overlines stacking upward |
| Combining Diacriticals | U+0316 - U+0333 | Below | 30 | ̖ ̗ ̘ ̙ ̚ | Hooks, cedillas, underlines extending downward |
| Combining Diacriticals | U+0334 - U+0338 | Middle (Overlay) | 5 | ̴ ̵ ̶ ̷ ̸ | Strikethrough, slash, crosshatch through glyph |
| Combining Diacriticals | U+0339 - U+033F | Below / Above | 7 | ̹ ̺ ̻ ̼ ̽ | Bridges, inverted bridges, x-marks |
| Combining Diacriticals | U+0340 - U+034E | Above | 15 | ̀ ́ ͂ ̓ ̈́ | Double accents, chandrabindu, tone marks |
| Combining Diacriticals | U+034F - U+0362 | Mixed | 20 | ͏ ͐ ͑ ͒ ͓ | Arrows, asterisks, fermata, zigzag |
| Combining Half Marks | U+FE20 - U+FE2F | Above / Below | 16 | ︠ ︡ ︢ | Ligature half marks, tilde halves |
| Cyrillic Combining | U+0483 - U+0489 | Above | 7 | ҃ ҄ ҅ ҆ | Titlo, palatalization, pokrytie |
| Hebrew Combining | U+0591 - U+05BD | Mixed | 45 | Various cantillation marks | Trope marks, dagesh, additional layering |
| Arabic Combining | U+0610 - U+061A | Above | 11 | Various sign marks | Small letter overlays, Quranic marks |
| Thai Combining | U+0E31 - U+0E3A | Above / Below | 10 | Sara, Mai, Nikhahit | Vowel marks, tone marks |
| Devanagari Combining | U+0900 - U+0903 | Above | 4 | Chandrabindu, Anusvara, Visarga | Nasal marks, aspiration dots |