Some of the simplest things to do often turn out to be the hardest ones – only because we have no idea how to do them properly. One of those tasks is setting up a simple read-only channel on Discord.
What I mean by that is a channel that you and perhaps an admin can post in (like a welcome or rules channel), readable by everybody, nut you don’t want anyone to be able to leave reactions or post messages in it. I’m fairly new to Discord, and while many features appear very intuitive, this one neither of us could work out for the longest time. Looks like I’ve finally found out how to do this, so let me share it with you before I forget.
As with many things, there are various approaches you can take to achieving your goal. You could setup a new role for people who may post in that channel, but if it’s just one or two channels you want to make read-only, I think that’s a little overkill. Discord offers the option to override permissions on a per-channel basis, which is an easier way to achieve our read-only goal. That’s the approach I’m taking here.
To do this, click on the little gear icon next to the channel in question. Select Edit.
Now choose Permissions on the left hand side.
This will show you the overridden permissions for this channel, based on any role defined beside it. It’s slightly difficult to understand at first, and I admit I had a bit of trouble getting my head around it. Let me try to clarify this with an example.
We have the @everyone role by default. It’s a group of permissions that applies to every user on the server. It should already appear under the Roles/Members section. Select it to see what permissions that role has on this channel.
If this is a new channel, you should see a grey slash in between lots of little tick boxes in that long list of options on the right. The grey slash (in between the red x and the green tick) means that the permissions are the same as they are defined for this role on a server level. It’s like a pass-through permission setting if you will. Or in other words, “nothing has changed yet”.
If we stick with the default @everyone role, whatever is set under Server Settings – Roles will apply to this channel. You can now change that to allow (green) or disallow (red) an option for this particular channel.
To make our channel read-only, disallow all option except for Read Messages and Read Message History. Those need to be allowed. We may not even need the latter, but I thought I’d include it. If you like you can also enable the Add Reactions option, if you would like people to do so. Here’s what the whole list on my welcome channel looks like (click to enlarge).
After you change the permissions to your liking, a little green save button will pop up at the bottom of the screen Click it to save your changes and you’re done. That’s it. You can click the little ESC icon at the top right and leave this window. That’s enough to lock those permissions in.
DO NO click the Sync option at the top left! That’s vitally important. I know it’s sitting there, waiting for you to press it, but we don’t want that in our case. It would reset all permissions of this whole user group in this channel to the permissions of the category that this channel belongs to. Yes indeed: you can specify permissions on so many levels in Discord (per user, per role, per category, per channel or server wide).
That’s all you need to do to set a single channel to read-only.
If you want to add other single users or other roles to be able to post messages in your otherwise read-only channel, you can add them on the left (under Roles/Members). Make sure to apply the same permissions as for @everybody, enabling the Send Messages option.