Cursed Text & Zalgo Generator Guide | Free Online Tool

All posts

Learn how cursed and Zalgo text work with Unicode combining marks. Generate glitch text in your browser and copy it to Discord, X, and more.

Cursed and Zalgo glitch text created with Unicode combining diacritical marks above and below letters

Cursed text and Zalgo text are nicknames for the same visual trick: ordinary letters plus stacks of Unicode combining marks (nonspacing diacritics) that render above, through, or below each base character. The result looks corrupted, haunted, or "glitched," which is why meme creators, horror writers, and streamers paste it into Discord, X, bios, and game chat. Under the hood it is valid Unicode, not a special font file. This guide explains how combining characters work, how Zalgo differs from homoglyph spoofing, platform character limits, safe intensity settings, how to reverse the effect, and how to generate copy-ready output with the free Cursed Text Generator on OnlineMiniTools (100% in your browser).

U+0300

Combining Marks

Mn

Unicode Category

3

Zones (Top/Mid/Bot)

0

Server Upload

Key facts: cursed text and Zalgo (quick reference)

Use this section when you need a direct answer for search, chatbots, or AI summaries:

What is Zalgo text?

The name comes from a 2004 creepypasta meme about an entity that "corrupts" typography. Technically, Zalgo text is a stylistic abuse of the same combining-mark system that powers accents in French, Vietnamese, and many Indic scripts. You start with a base character (for example LATIN CAPITAL LETTER H, U+0048). You append combining diacritical marks from blocks such as Combining Diacritical Marks (U+0300–U+036F). A renderer draws each mark attached to the base, often centered horizontally and stacked vertically.

People search for cursed text generator when they want to:

How combining marks build the glitch effect

Unicode assigns each code point a General_Category. Combining marks are usually Mn (nonspacing). When you type or paste T followed by COMBINING TILDE (U+0303) and COMBINING CEDILLA (U+0327), you still have two user-perceived "characters" in some editors but one grapheme cluster on screen. Add ten more marks and the cluster grows visually while the letter T remains readable at the core.

The OnlineMiniTools generator groups marks into three zones (matching common Zalgo presets):

Max Height controls how many marks can attach per zone per letter. Height Randomization controls what percentage of letters receive marks at all, which creates uneven "corruption" instead of a uniform wall of noise.

Cursed text vs Unicode spoofing vs fancy fonts

Technique Mechanism Typical look OnlineMiniTools tool
Zalgo / cursed Base letter + stacking combining marks Vertical glitch, spikes above/below Cursed Text Generator
Homoglyph spoof Replace letters with similar Unicode letters Same shape, different code points Spoof Unicode Text
Mathematical alphanumeric Predefined styled Unicode symbols (bold, fraktur) Clean bold or script, no spikes Facebook Bold Text
Reverse / clean up Remove Mn marks or normalize Plain ASCII or NFC text Remove Zalgo Text

Platform limits: why short phrases explode character counts

Unicode does not cap how many marks you stack on one letter. Apps do. Discord allows 2,000 code points per message (4,000 with Nitro). Server nicknames and display names are often capped at 32 code points. X (Twitter) standard posts allow 280 characters; many combining marks count toward that budget. A single heavily cursed word can consume hundreds of code points even though it looks like one word.

Figure 1: Approximate limits for short social text (2026). Cursed output uses multiple code points per visible letter, so stay well under these caps.

Practical rule: For nicknames and bios, use low Max Height (1–3), enable only Top or Bottom, and paste into a Unicode character counter before saving. For long Discord messages, regenerate with lower randomization if you hit the limit mid-sentence.

Method 1: Generate cursed text online (OnlineMiniTools)

The fastest workflow is the Cursed Text Generator: type plain text on the left, tune options, copy from the right.

  1. Open the Cursed Text Generator.
  2. Paste or type your source phrase in Input Text. You can upload a .txt file for longer copy.
  3. Choose zones: Top, Middle, and Bottom. All three produce classic Zalgo. Disable Middle for fewer strikethrough overlays.
  4. Set Max Height (0–25). Start at 4–6 for readable memes; raise slowly for horror aesthetics.
  5. Set Height Randomization (0–100%). Lower values leave some letters clean; 100% corrupts every non-space character that rolls successfully.
  6. Copy Cursed Output or download cursed-text.txt. Paste into your target app and preview before publishing.

Spaces are left untouched so words stay separated. If every zone is unchecked or Max Height is 0, output equals input (useful when you only want to test settings).

Preset recipes

Alternative methods

JavaScript (manual mark loop)

Developers can append marks in code for custom pipelines:

const marks = ["\u0300", "\u0301", "\u0302", "\u0327"];
const zalgo = "hello".replace(/[^\s]/g, (ch) =>
  ch + marks.map(() => marks[Math.floor(Math.random() * marks.length)]).join("")
);
console.log(zalgo);

Filter input length in production. Unbounded generation is a common source of UI jank.

Python (detect excessive marks)

Moderation pipelines often flag long runs of combining characters:

import re
text = "..."  # user content
if re.search(r"[\u0300-\u036f\u1ab0-\u1aff]{5,}", text):
    raise ValueError("Possible Zalgo spam")

Pair detection with unicodedata.normalize("NFKD", text) and stripping category M for cleanup.

Remove or inspect Zalgo

Common mistakes and rendering quirks

Related tools

Frequently Asked Questions

Is cursed text the same as Zalgo text?

Yes. Both names describe text built from normal letters plus stacked Unicode combining marks. "Cursed" emphasizes the horror meme aesthetic; "Zalgo" references the early internet creepypasta meme. The underlying Unicode mechanism is identical.

Why does my cursed text look different on Discord versus my phone?

Rendering depends on the font, line height, and the app's Unicode stack algorithm. Some clients clip marks that exceed the line box. Lower Max Height and avoid extreme stacks if you need a consistent look across devices.

How do I remove Zalgo from pasted text?

Use the Remove Zalgo Text tool or normalize with NFKD and strip all characters in Unicode category M (marks). That returns plain letters without the glitch visuals.

Does the Cursed Text Generator upload my message to a server?

No. Generation runs entirely in your browser. You can paste sensitive draft titles locally, but remember that copying cursed text into a chat still sends it to that platform's servers.

Can I use cursed text in Discord usernames?

Discord's @username handle (letters, numbers, underscore, period) cannot include combining marks. Display names and server nicknames accept wider Unicode but stay within a 32-character limit where every mark counts. Use subtle settings and verify length before saving.

Cursed and Zalgo text are not magic fonts: they are deliberate stacks of valid combining marks on ordinary letters. Once you understand code point counts, zone toggles, and platform caps, you can create readable memes, spooky titles, and moderation test cases without wasting paste attempts. When you are ready, open the Cursed Text Generator, start with moderate height, and scale up only after you preview on the app where the text will live.

Browse all posts