8 min read

How to Change Your Server MOTD and Icon (the Server List Preview)

Change your Minecraft server MOTD and icon by editing motd= and adding a 64x64 server-icon.png, then restart and refresh the Java client cache to see it.

How to Change Your Server MOTD and Icon (the Server List Preview)

Your server's MOTD is the motd= line in server.properties and the icon is a file named server-icon.png sitting next to it. Set both, restart, and they show up in the multiplayer list. The catch that trips people up isn't the syntax; it's that the Java client caches the old preview, so you can do everything right and still stare at the stale name and blank icon until you force the client to re-fetch.

Set the MOTD in server.properties

Open server.properties in the same folder from your Paper setup, the one that also holds view-distance, gamemode, and the jar itself. Find the motd= key. Out of the box it reads motd=A Minecraft Server, which is exactly the placeholder every dead-looking server on the list still has. Plain text works as-is, so motd=My SMP is a valid first step.

The server reads this line once at boot, the same as every other property. Two things to know about length and lines. The visible width is roughly 45 characters per line before the multiplayer list clips it with an ellipsis, and the MOTD supports two lines. You get the second line by putting a literal \n inside the value, like motd=Line one\nLine two. That renders as two stacked rows in the preview.

One more line matters here even though it's not the MOTD itself: enable-status=true. That's the default, and it needs to stay true. If it's false the server refuses to answer the list ping at all, so you get no MOTD, no icon, and no player count. The entry just sits there looking offline.

Add color with section-sign codes (§)

Color comes from the section sign § (Unicode U+00A7) followed by a single character. Here's the full set.

Colors: §0 black, §1 dark blue, §2 dark green, §3 dark aqua, §4 dark red, §5 dark purple, §6 gold, §7 gray, §8 dark gray, §9 blue, §a green, §b aqua, §c red, §d light purple, §e yellow, §f white.

Formatting: §l bold, §o italic, §n underline, §m strikethrough, §k obfuscated (the scrambling one that flickers through random glyphs), and §r to reset back to plain. A code affects everything after it until the next code or a §r.

The practical snag: you usually can't type a raw § into a plain properties file and have it survive the save. So use the escape instead: write \u00A7 where you want the section sign. motd=\u00A7aMy Server renders green, and motd=\u00A76\u00A7lMy Server gives you bold gold. Paper and Spigot also accept the legacy hex format for custom colors on modern clients: §x followed by six hex digits, each prefixed with its own §, so §x§f§f§5§5§5§5 is a specific pinkish red. If you run a managed panel, its MOTD field will often take the raw § characters pasted straight in, and some panels expect the & shorthand and convert it for you.

Make the server icon: exactly 64×64 PNG named server-icon.png

The icon requirements are strict, so state them flatly. The file must be a PNG, it must be exactly 64×64 pixels, it must be named exactly server-icon.png, and it goes in the server's root folder, the same directory as the jar and server.properties. There's no config key pointing at it. The server auto-detects the file by that exact name.

Get any of those wrong and you get nothing. A JPG, a 128×128 image, or a file named servericon.png all end the same way: the server logs a warning at startup and shows a blank icon. Transparency is preserved, so a logo on a transparent background sits cleanly against the list row instead of a solid square.

Restart: the icon and MOTD only load at boot

Both the MOTD and the icon are read once, at startup. A new server-icon.png will never appear while the server is running, no matter how many times players re-open the list. This is the same trap as any other properties edit: /reload re-reads datapacks and plugin configs, not server.properties and not the icon.

There's a nastier version of this too. If you edit server.properties while the server is up, the running process still holds the old values in memory and rewrites the file on shutdown, so your edit gets clobbered. So the order is: stop the server, edit the file, start it again. Do a full stop and start, or lean on your scheduled restarts to pick up the change on the next cycle.

Why players still see the old preview (the client cache)

You restarted, the console shows the new MOTD, and a friend swears it still says "A Minecraft Server" with a blank icon. That's the Java client caching, not your server.

Here's the mechanism. The client stores every server-list entry in servers.dat, an NBT file in the .minecraft folder, and that includes the last-seen MOTD plus the icon encoded as base64. Re-opening the Multiplayer screen sends a fresh ping and usually updates the MOTD, ping, and player count — but the icon in particular is known to stick to the cached copy and refuse to budge.

Force a refresh from cheapest to most drastic:

  1. Back out of the Multiplayer screen and re-open it. That alone triggers a new ping and often fixes the text.
  2. Select the server, hit Edit, then Done, or delete the entry entirely and use Add Server to re-add it. Either one clears that entry's cached icon.
  3. Fully quit and relaunch the Minecraft client.
  4. Nuclear option: close the game and delete servers.dat from .minecraft. The list rebuilds from scratch on the next launch.

The important part: this is the client's cache, not DNS or your SRV record, and nothing on the server side is broken. Anyone who has never pinged you sees the new preview on their first look. If literally nobody sees it, not even brand-new players who've never touched your entry, that's a different problem. Usually it's enable-status=false or the status ping getting blocked upstream, the same failure behind a server showing offline on server lists.

Bedrock note, and why the preview is worth getting right

This guide is Java-focused for a reason: Bedrock Dedicated Server has no icon file at all and uses the server-name line (plus a second sub-line) instead of motd=, and it doesn't read § color codes the same way. So none of the § work above carries over to a Bedrock listing.

Still worth doing well, because the MOTD and icon are the entire first impression in a crowded list. They're what a stranger judges before they ever type your address. Pair a clean, readable preview with the plugins that actually make a new server feel alive and the rest of the work that pulls players in, and browse the live rankings to see how the active servers present themselves.

FAQ

Can I have a different MOTD for each version, or animate it?

Vanilla and server.properties give you exactly one static MOTD. Rotating text, animation, or a per-player MOTD needs a plugin that hooks the server-list ping event. That's also the only way to change the MOTD without a restart, because the plugin intercepts the ping in memory instead of reading the file at boot.

Why does my MOTD show the literal \u00A7a text instead of colors?

The file was saved in a way that left the escape unparsed, or a control panel double-escaped it into \\u00A7. Fix it by pasting a raw § character directly into the panel's MOTD field, or confirm the value has a single backslash, not two. Some panels expect the & code style and translate it to § themselves, so &aMy Server is what they want there.

What size should the source image be if mine isn't 64×64?

Resize it down to exactly 64×64 in any image editor before you save it. The server does not auto-scale — hand it a 128×128 or 512×512 file and it just refuses the icon and logs the warning, same as a wrong format. A square source crops cleanest, so trim a rectangular logo to a square first, then scale.

Does the icon show up on Bedrock or in Geyser crossplay?

No. Bedrock's list protocol has no favicon field, so Bedrock players never see your server-icon.png, and that includes anyone connecting through Geyser, since they arrive over the Bedrock protocol. They only get the server-name text line, so make that line do the work your icon can't.