Cordary TeamOfficial Cordary account2 min read

How to Make a Read-Only Channel in Discord (Step by Step)

How to make a Discord channel that everyone can read but only staff can post in, for rules, announcements and info, plus the thread, reaction and category settings people miss.

Updated

In this post

An announcements channel with a locked message box and Send Messages switched off for @everyone

Some channels are for reading, not chatting: #rules, #announcements, #faq, #welcome. If anyone can post there, important messages get buried under "first!" and questions.

The fix is a read-only channel: everyone can see it, only staff can post. Here's how to set one up properly.

The short version

In the channel's Edit Channel → Permissions:

  • @everyone: deny Send Messages
  • Your staff role: allow Send Messages

That's the core. The rest of this guide covers the details that trip people up.

Step by step

  1. Right-click the channel → Edit Channel → Permissions.
  2. If you see Private Channel, leave it off. A read-only channel should be visible to everyone.
  3. Under Roles/Members, select @everyone.
  4. Find Send Messages and click the red ✗ (deny).
  5. Click + next to Roles/Members and add your staff role, like Admin or Moderator.
  6. For that role, click the green ✓ on Send Messages (allow).
  7. Save Changes.

Don't forget threads and reactions

Denying Send Messages stops new messages, but members might still be able to:

Permission What to do
Create Public Threads Deny for @everyone, or people can start threads under your announcements
Create Private Threads Deny for @everyone
Send Messages in Threads Deny for @everyone if you don't want replies in threads
Add Reactions Your choice. Reactions on announcements are often nice. Deny them in #rules if you want it clean

Doing it for a whole category

Got several read-only channels, like a "Start Here" category with #welcome, #rules and #announcements? Set the permissions on the category instead, then make sure each channel is synced (Edit Channel → Permissions shows "Synced with category").

Any channel you later add to the category inherits the same setup. Our private channel guide explains how syncing works, and how it breaks.

Use an announcement channel for news

On a Community server, consider making #announcements an announcement channel instead. It's read-only for members by default, and other servers can follow it. See announcement channels explained.

Check that it worked

Use View Server As Role: open Server Settings → Roles, pick @everyone (or your member role), and choose View Server As Role. Go to the channel. The message box should say you don't have permission to send messages.

Why it might not work

  1. A member role allows Send Messages in this channel. An explicit allow on any of a member's roles beats the deny on @everyone. Check every role listed in the channel's permissions.
  2. The person is an Administrator. Administrators ignore channel permissions.
  3. The channel isn't synced and has its own permissions that differ from the category.
  4. You denied the wrong permission. "Send Messages in Threads" alone doesn't stop normal messages.

Let Cordary do it

Tell Cordary "make #rules, #faq and #announcements read-only, staff can post", and it drafts the permission changes, including threads, for you to review before anything happens. It also checks who can actually post afterwards, so a stray role allow doesn't slip through.

More in #guides