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
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
- Right-click the channel → Edit Channel → Permissions.
- If you see Private Channel, leave it off. A read-only channel should be visible to everyone.
- Under Roles/Members, select @everyone.
- Find Send Messages and click the red ✗ (deny).
- Click + next to Roles/Members and add your staff role, like Admin or Moderator.
- For that role, click the green ✓ on Send Messages (allow).
- 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
- 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. - The person is an Administrator. Administrators ignore channel permissions.
- The channel isn't synced and has its own permissions that differ from the category.
- 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
How to Use Cordary's Checkup: Findings, Fix This and Scheduled Checkups
A walk through Cordary's Checkup tab. Read the findings, fix one with a change you review, dismiss what's fine, run the full checkup, and set up scheduled checkups with an optional Discord post.
Should You Give a Discord Bot Administrator? When It's Fine and When It Isn't
Many Discord bots ask for Administrator. Here's what it really allows, when it's reasonable, when to say no, and how to check what a bot can do in your server.