A Discord username is lowercase only: letters a-z, digits 0-9, the period and the underscore, between 2 and 32 characters. Everything expressive — capitals, spaces, emoji, small caps, non-Latin scripts — belongs in the display name, which Discord lets you change as often as you like. So pick the handle first (it has to be free, and it is the one thing you cannot decorate), then dress up the display name on top. Below are 300 ideas we generated for this page: 250 usernames that already pass the character rules, and 50 display names built from fonts and symbols.
Three names, three sets of rules
| Field | Who sees it | Rules |
|---|---|---|
| Username | Anyone adding you as a friend | Lowercase a-z, 0-9, period, underscore; 2-32 characters; must be free |
| Display name | Everyone, everywhere in the app | Almost any character, spaces and emoji included; changeable at will |
| Server nickname | One server only | 1-32 characters; a moderator can change or reset it |
Discord's announcement of the system draws the line clearly: usernames are "limited to lowercase characters (a-z), numbers (0-9) and two special characters (period and underscore)", while display names "can include just about anything (as long as it adheres to our Community Guidelines), including special characters, spaces, emojis and non-Latin characters". The same post says you can change the display name "whenever you want, even minute to minute" — which is why it is worth spending the effort there and keeping the username boring and permanent.
The numbers, and where they come from
| Rule | Value | Source |
|---|---|---|
| Username length | 2-32 characters | Discord developer documentation |
| Nickname length | 1-32 characters | Discord developer documentation |
| Forbidden in a username | @ # : backtick, the word "discord" |
Discord developer documentation |
| Reserved | everyone, here |
Discord developer documentation |
| Whitespace | Leading, trailing and excessive internal whitespace is stripped | Discord developer documentation |
| No leading or trailing dot or underscore, no double dot | Enforced by the form | Our own testing, in the nickname dataset |
Two honest caveats. First, the documentation warns that further restrictions exist "for the sake of spam and abuse mitigation" that it does not list, so an unusual handle can be refused without an explanation you can act on. Second, the same page still carries a line saying usernames are not unique across the platform — a leftover from the days of the #1234 discriminator. The current system treats the username as your one handle; if it is taken, you get an error, not a duplicate.
250 Discord usernames by theme
Every name below passes the character rules as written: lowercase, no leading or trailing separator, no double period, inside 32 characters. Popular short ones will already be taken — the fix is a separator swap (ashchoir → ash.choir → ash_choir) or one digit at the end, not a rethink.
Everyday themes
| Aesthetic | Gaming | Dark | Cute |
|---|---|---|---|
mist.noise |
anchor.enjoyer |
umbra.hour |
berry.duck |
mist_letter |
anchor_hater |
grim_thorn |
bean_wisp |
velvetstatic |
stackking |
voidchoir |
mochifox |
soft.orbit |
clutch.andy |
grim.hymn |
bean.frog |
glasshaze |
lurkmerchant |
boneritual |
plumotter |
lunar_hour |
flick_fan |
ash_thorn |
peach_wisp |
velvet.orbit |
entry.andy |
void.hymn |
mochi.frog |
linen_letter |
entry_fan |
ash_choir |
mochi_wisp |
glassecho |
lurkmain |
bonewake |
plumbunny |
glass.petal |
lurk.god |
bone.veil |
plum.moth |
softhour |
entrydiff |
umbraengine |
clovernap |
lunar_orbit |
flick_andy |
ash_hymn |
peach_frog |
cloud.window |
clutch.diff |
coal.letter |
bean.fox |
silk_haze |
trade_merchant |
rust_ritual |
honey_otter |
silkpetal |
tradegod |
rustveil |
honeymoth |
ivory.letter |
reset.king |
gloom.engine |
cocoa.toes |
lunarstatic |
flickdiff |
cryptengine |
peachfox |
quiet_window |
clutch_fan |
null_letter |
berry_toes |
pale.petal |
peek.god |
hollow.veil |
bubble.moth |
silk_echo |
trade_main |
rust_wake |
honey_bunny |
softstatic |
rotatehater |
grimchoir |
marshnap |
pale.echo |
peek.main |
hollow.wake |
bubble.bunny |
velvethour |
sprayhater |
voidthorn |
waffletoes |
ivory_noise |
rotate_enjoyer |
gloom_hour |
cocoa_duck |
pale.haze |
peek.merchant |
hollow.ritual |
bubble.otter |
Personality themes
| Funny | Music | Tech | Anime |
|---|---|---|---|
mildly.wizard |
metro.church |
socket.monk |
shiro.ghost |
certified_consultant |
bass_hour |
null_error |
haru_bell |
reluctantlycritic |
reverbroom |
socketwizard |
yukiroad |
certified.intern |
bass.loop |
null.overflow |
yuki.blade |
formernpc |
synthclub |
packetrunner |
roninshrine |
emotional_consultant |
tape_hour |
proxy_error |
hoshi_road |
local.intern |
reverb.loop |
root.overflow |
kage.blade |
chronically_bystander |
drum_fault |
daemon_wizard |
aoi_dream |
formermenace |
synthhiss |
packetdrift |
roninpetal |
former.support |
synth.static |
packet.ghost |
ronin.lantern |
mildlybystander |
radiowave |
shellnoise |
shirodream |
emotional_intern |
tape_loop |
proxy_overflow |
hoshi_blade |
certified.goblin |
bass.room |
byte.wizard |
kitsune.dream |
part.time_npc |
lofi_club |
kernel_runner |
akira_shrine |
part.timesupport |
lofistatic |
kernelghost |
akiralantern |
legally.bystander |
chord.fault |
null.pointer |
rei.bell |
emotionalgoblin |
reverbhour |
proxypointer |
hoshisensei |
local_goblin |
metro_fault |
root_pointer |
kage_sensei |
unpaid.support |
vinyl.static |
cache.ghost |
sora.lantern |
part.time_menace |
lofi_hiss |
kernel_drift |
akira_petal |
officiallycritic |
tempowave |
stacknoise |
yukisensei |
unpaid.menace |
vinyl.hiss |
cache.drift |
sora.petal |
localconsultant |
taperoom |
rooterror |
kageroad |
legally_wizard |
chord_church |
byte_monk |
kitsune_ghost |
unpaid.npc |
vinyl.club |
cache.runner |
sora.shrine |
Short and calm
| Minimal | Nature |
|---|---|
wp.thanks |
hazel.meadow |
no_guy |
fern_hollow |
wptwice |
mossgrove |
ok.again |
moss.brook |
afksorry |
stoneshore |
yes_today |
birch_grove |
no.again |
fern.brook |
no_today |
birch_hollow |
afklater |
stoneridge |
afk.maybe |
stone.glade |
oktoday |
heatherwood |
yes_again |
birch_brook |
gg.twice |
amber.wood |
brb_sorry |
river_shore |
brbmaybe |
riverglade |
ok.guy |
moss.hollow |
uwutwice |
ferngrove |
nvm_once |
hazel_vale |
idk.maybe |
pine.glade |
brb_later |
river_ridge |
yeponce |
thistlevale |
idk.later |
pine.ridge |
yesguy |
reedvale |
gg_thanks |
thistle_meadow |
idk.sorry |
pine.shore |
50 display names with fonts and symbols
These go in the display name field, not the username. They use small caps, bold and light bracket symbols, which render on desktop, iOS and Android without turning into boxes. Copy them as a whole string — retyping small caps on a phone keyboard is not a thing.
| Fonts and stars | Brackets and marks |
|---|---|
★ ꜰʀᴏꜱᴛᴡᴀᴋᴇ ★ |
𝗙𝗿𝗼𝘀𝘁𝘄𝗮𝗸𝗲 ⁺ |
𝗩𝗲𝗹𝘃𝗲𝘁 𝗦𝘁𝗮𝘁𝗶𝗰 |
˚ Velvet Static ˚ |
「 Null Pointer 」 |
୨ ɴᴜʟʟ ᴘᴏɪɴᴛᴇʀ ୧ |
ᵐᵒᵗʰ ʰᵒᵘʳ |
ᴍᴏᴛʜ ʜᴏᴜʀ ⊹ |
⟢ ᴀꜱʜ ᴄʜᴏɪʀ |
꒰ Ash Choir ꒱ |
★ Qᴜɪᴇᴛ ᴡɪɴᴅᴏᴡ ★ |
𝗤𝘂𝗶𝗲𝘁 𝗪𝗶𝗻𝗱𝗼𝘄 ⁺ |
𝗣𝗲𝗮𝗰𝗵 𝗪𝗶𝘀𝗽 |
˚ Peach Wisp ˚ |
「 Kernel Ghost 」 |
୨ ᴋᴇʀɴᴇʟ ɢʜᴏꜱᴛ ୧ |
ˡᵒᶠⁱ ᶜʰᵘʳᶜʰ |
ʟᴏꜰɪ ᴄʜᴜʀᴄʜ ⊹ |
⟢ ʀᴏɴɪɴ ᴘᴇᴛᴀʟ |
꒰ Ronin Petal ꒱ |
★ ᴄʟᴜᴛᴄʜ ᴀɴᴅʏ ★ |
𝗖𝗹𝘂𝘁𝗰𝗵 𝗔𝗻𝗱𝘆 ⁺ |
𝗕𝗲𝗮𝗻 𝗙𝗿𝗼𝗴 |
˚ Bean Frog ˚ |
「 Umbra Engine 」 |
୨ ᴜᴍʙʀᴀ ᴇɴɢɪɴᴇ ୧ |
ᶜᵒᶜᵒᵃ ᵈᵘᶜᵏ |
ᴄᴏᴄᴏᴀ ᴅᴜᴄᴋ ⊹ |
⟢ ꜱɪɢɴᴀʟ ɢᴀʀᴅᴇɴ |
꒰ Signal Garden ꒱ |
★ ᴘᴀᴘᴇʀ ʀᴏᴏꜰᴛᴏᴘ ★ |
𝗣𝗮𝗽𝗲𝗿 𝗥𝗼𝗼𝗳𝘁𝗼𝗽 ⁺ |
𝗡𝗶𝗴𝗵𝘁𝗷𝗮𝗿 |
˚ Nightjar ˚ |
「 Late Lounge 」 |
୨ ʟᴀᴛᴇ ʟᴏᴜɴɢᴇ ୧ |
ʰᵒˡˡᵒʷ ʳⁱᵗᵘᵃˡ |
ʜᴏʟʟᴏᴡ ʀɪᴛᴜᴀʟ ⊹ |
⟢ ᴛᴀᴘᴇ ʀᴏᴏᴍ |
꒰ Tape Room ꒱ |
★ ꜱᴀʙʟᴇ ʀᴏᴡ ★ |
𝗦𝗮𝗯𝗹𝗲 𝗥𝗼𝘄 ⁺ |
𝗦𝘁𝗼𝗿𝗺 𝗥𝗮𝘃𝗲𝗻𝘀 |
˚ Storm Ravens ˚ |
「 Yuki Road 」 |
୨ ʏᴜᴋɪ ʀᴏᴀᴅ ୧ |
ʳᵉᵉᵈ ᵛᵃˡᵉ |
ʀᴇᴇᴅ ᴠᴀʟᴇ ⊹ |
⟢ ᴡᴀʟʟʙᴀɴɢ ɢᴜʏ |
꒰ Wallbang Guy ꒱ |
Two practical limits. A display name that is mostly decoration is unreadable in a member list at 12 pixels, and heavy fonts are exactly the ones screen readers give up on. One decoration per name is the working rule: a font swap or a bracket pair or a star, not all three. The fancy text generator has the full alphabet in every style, and the nickname symbols page keeps the copyable bracket and mark sets.
The invisible name, honestly
A blank Discord name is a display-name trick, and only that: the username field will never accept it, because a space is not one of the four allowed characters. In the display name, people paste a Unicode character that draws nothing — most often the Hangul filler ㅤ (U+3164) — so the name appears empty in chat.
What is documented: Discord sanitises names by removing "leading, trailing, and excessive internal whitespace". So ordinary spaces are not a route to a blank name, and a name built from them collapses. What is not documented: whether the Hangul filler and its relatives will keep working. They are ordinary characters today, they can be filtered tomorrow, and server moderators can rename you on the spot if an invisible name makes you impossible to tag. Use it knowing that, and keep a real name ready. Our invisible name generator hands you the exact characters with per-platform notes.
Changing the name, step by step
- Open User Settings → My Account.
- Edit next to your username to change the handle. Type it lowercase; if it is taken you get an error, so have two spares ready.
- Edit next to Display Name for the visible label. Paste the finished string — do not retype it, or the font is lost.
- For one server only, right-click your name in the member list → Edit Server Profile → nickname. That leaves the global name alone.
Server nicknames are the safe place to experiment: nothing there follows you anywhere else, and if a moderator resets it you have lost nothing.
Picking one you will keep
Say it out loud. Voice chat turns x_shadowfox_x into "shadow fox, with the x's". If a name needs a spelling explanation every time you join a call, it costs you more than it gives.
Tag-ability. Moderators and friends type @ and the first three letters. A handle that starts with an underscore or a rare character breaks that reflex, and it is the single most common reason a community asks someone to change.
Age it by a week. The display name is free to change, so test the shortlist for a few days before you burn the username on it. The handle is the part that is hard to move: friends' notes, bot logs and old messages all point at it.
If nothing here fits, the Discord name generator builds handles around your own word and checks them against the rules while you type, then styles a matching display name.
FAQ
What characters can a Discord username contain?
Lowercase letters a-z, digits 0-9, the period and the underscore. Discord's own announcement puts it exactly that way, so capital letters, spaces, emoji and fancy Unicode fonts are all out. Those belong in the display name instead.
How long can a Discord username be?
Between 2 and 32 characters, according to Discord's developer documentation. Server nicknames run from 1 to 32. The display name field behaves the same way in practice, but Discord does not publish a separate number for it.
What is the difference between a username and a display name?
The username is the lowercase handle people add you by and it is yours alone. The display name is the label shown in chat: it takes spaces, emoji and non-Latin scripts, and Discord says you can change it whenever you want, even minute to minute.
Can I have an invisible Discord name?
Not as a username, because only a-z, 0-9, the dot and the underscore are allowed there. In a display name people use a Unicode character that draws nothing, such as the Hangul filler. Plain spaces will not work: Discord's documentation says names are stripped of leading, trailing and excessive internal whitespace.
Is there a cooldown on changing a Discord username?
Discord does not document one. What is documented is that a username must be free: if someone already holds it, the change is simply refused, which is why almost every short clean handle now carries a dot, an underscore or a digit.