# Setting Up Channels Permissions

## <mark style="color:$primary;">The Common Problem with the Permissions.</mark>

Most <mark style="color:purple;">**Bocto**</mark> plugins operate in public channels with the default rights granted to the bot during the [Setup process](https://guide.bocto.octopeeps.com/getting-started/setup-on-server). Although even if a channel seems to be public, from a technical point of view, it may still be private. If it's really the case, <mark style="color:purple;">**Bocto**</mark> will not be able to post any messages in such a channel and probably will not be able to warn you about it at the time! You will see the alert only in the <mark style="color:yellow;">**#alerts**</mark> channel and on the <mark style="color:purple;">**Bocto**</mark> Dashboard **Settings** page when the first unsuccessful posting attempt to the channel takes place.

To prevent this, ensure that the channel you want <mark style="color:purple;">**Bocto**</mark> to post something in is really public by looking at its name in the sidebar - if there is no 🔒 icon on a <mark style="color:yellow;">**#**</mark> sign, then everything is set up correctly, but if you see one, that means you've probably used an incorrect settings combination for the <mark style="color:yellow;">**@everyone**</mark> role.

<figure><img src="https://3820815315-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnX757myueIMa0YXG4HJl%2Fuploads%2FutiNI55tl7SVQjGplWL7%2Fimage.png?alt=media&#x26;token=adcd610c-ff96-4464-bd21-9c00d2768af0" alt=""><figcaption></figcaption></figure>

### <mark style="color:purple;">But why did it even happen?</mark>&#x20;

The <mark style="color:yellow;">**@everyone**</mark> role is a system role, and its permissions must be configured specially so that all bots on your server can operate in public channels normally. And here, we need to dive deeper into the **Discord** role permissions concept, which recognizes two types or levels of permissions for every role, especially for the <mark style="color:yellow;">**@everyone**</mark> role:&#x20;

* <mark style="color:orange;">**Global level**</mark> (when the role permissions are applied to all channels across the server by default in the server settings).
* <mark style="color:orange;">**Local level**</mark> (when the same role permissions are set manually for every channel, thus overriding these are set on a Global level).

Actually, this concept is quite simple and works as follows: You can assign global permissions to every role in the global **Discord** settings and change some of the same role permissions in every channel locally, depending on your needs.

And sometimes it happened the way that you've granted the <mark style="color:$success;">View Channels</mark> permission for <mark style="color:yellow;">**@everyone**</mark> on the global level and forgot about it. And lately, to hide public channels from the users with this role (unverified users), you directly restrict this permission locally in these channels' settings, thus turning them into technically private ones. This failure combination of the permission settings looks like this:

<div><figure><img src="https://3820815315-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnX757myueIMa0YXG4HJl%2Fuploads%2FOBoamQWLxaMgvYwQ6Efu%2Fimage.png?alt=media&#x26;token=df269ec1-4f68-4d52-bc04-fd01441e0253" alt=""><figcaption><p> The <mark style="color:$success;">View Channels</mark> permission granted for <mark style="color:yellow;"><strong>@everyone</strong></mark> on the global level - never do this!</p></figcaption></figure> <figure><img src="https://3820815315-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnX757myueIMa0YXG4HJl%2Fuploads%2FuXHVIspA61oJC5bBPVBa%2FScreen%20Shot%202025-10-27%20at%2015.58.50.png?alt=media&#x26;token=5215242e-f5d2-4249-b92d-aead8aa2e27b" alt=""><figcaption><p> The <mark style="color:$success;">View Channels</mark> permission revoked from <mark style="color:yellow;"><strong>@everyone</strong></mark> on the local level at the same time.</p></figcaption></figure></div>

{% hint style="danger" %}
Just remember - every time you activate the red cross button in front of <mark style="color:$success;">View Channel</mark> permission for the <mark style="color:yellow;">**@everyone**</mark> role in the **Channel Permissions**, it makes the channel private, and, in most cases, inaccessible for <mark style="color:purple;">**Bocto**</mark> even if some roles besides <mark style="color:yellow;">**@everyone**</mark> have permission to post in this channel! So we need to avoid this!
{% endhint %}

<figure><img src="https://3820815315-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnX757myueIMa0YXG4HJl%2Fuploads%2FL2uzkLPicO5qt4vMNJ10%2Fimage.png?alt=media&#x26;token=7c67d2fd-efcb-48f2-90c5-ffa2f5086878" alt=""><figcaption></figcaption></figure>

### <mark style="color:purple;">What can you do with it?</mark>&#x20;

Just make the channel public again and reconfigure your server settings the way it works without the necessity of revoking the <mark style="color:$success;">View Channels</mark> permission for the <mark style="color:yellow;">**@everyone**</mark> role in public channels, or, if not applicable, keep them private and continue reading to learn how to set up custom permissions for <mark style="color:purple;">**Bocto**</mark> in private channels.

## <mark style="color:$primary;">Separate Permissions for Bocto in Private Channels.</mark>

Earlier, we studied how to provide <mark style="color:purple;">**Bocto**</mark> access to your public channels by default, not to mess with its permissions manually. But what if you want to allow <mark style="color:purple;">**Bocto**</mark> to operate in some private channels? In this case, you need to grant <mark style="color:purple;">**Bocto**</mark> the <mark style="color:$success;">View Channel</mark> permissions for these channels manually. To be more precise, you need to grant this permission to the <mark style="color:yellow;">**@Bocto**</mark> role.

Let's, for example, imagine you want to run the <mark style="color:$primary;">**Word Streak Game**</mark> from the <mark style="color:blue;">**Mini Games**</mark> plugin in your <mark style="color:yellow;">**#holders-chat**</mark>, which is, of course, a private one. That means that, unlike <mark style="color:yellow;">**#public-chat**</mark>, <mark style="color:purple;">**Bocto**</mark> does not have access to it by default. And when creating a game and choosing this channel, after a short check, you will see the alert like this:

<figure><img src="https://3820815315-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnX757myueIMa0YXG4HJl%2Fuploads%2FsKw8UCPMZIe6ERFXqEQ8%2Fimage.png?alt=media&#x26;token=4af30606-7f50-4091-9e35-7f1545635f38" alt=""><figcaption></figcaption></figure>

So you need to grant <mark style="color:purple;">**Bocto**</mark> the <mark style="color:$success;">View Channel</mark> permissions for this channel manually. To be more precise, you need to grant this type of permission to the <mark style="color:yellow;">**@Bocto**</mark> role.

To do this, go to **Discord**, open the <mark style="color:yellow;">**#holders-chat**</mark> (or corresponding) channel settings, move to the **Channel Permissions** section, and press the <mark style="color:purple;">**Add members or roles**</mark> button.

<figure><img src="https://3820815315-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnX757myueIMa0YXG4HJl%2Fuploads%2FxwzajoSPPnyESl4dEsoo%2Fimage.png?alt=media&#x26;token=617b6277-e7d1-4371-b6a3-c11651a67afb" alt=""><figcaption></figcaption></figure>

Now find <mark style="color:purple;">**Bocto**</mark> in the **Roles** list and set the check mark against it. Press the <mark style="color:purple;">**Done**</mark> button.

<figure><img src="https://3820815315-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnX757myueIMa0YXG4HJl%2Fuploads%2Fk7algzmHnWwHw5KQfpM9%2FScreen%20Shot%202025-10-07%20at%2018.34.09.png?alt=media&#x26;token=d119ea2c-5383-4473-b595-eb8e694e0fb5" alt=""><figcaption></figcaption></figure>

You will now see <mark style="color:purple;">**Bocto**</mark> in the **ROLES/MEMBERS** list in the **Advanced permissions** section. Select it, and forcibly allow the <mark style="color:$success;">View Channel</mark> permission by clicking on a green check mark.

<figure><img src="https://3820815315-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnX757myueIMa0YXG4HJl%2Fuploads%2FVFGucbE15qY8PoxFAbDL%2Fimage.png?alt=media&#x26;token=f1c728d5-6a89-421e-aed3-b782d7c5bc53" alt=""><figcaption></figcaption></figure>

After this, go back to the <mark style="color:purple;">**Bocto**</mark>**&#x20;Dashboard**, close the game creation form, and open it again. This time, when you choose the <mark style="color:yellow;">**#holders-chat**</mark> channel, the alert won't appear.

{% hint style="success" %}
Use this trick every time you receive a message in the **Dashboard** or in the <mark style="color:yellow;">**#alerts**</mark> channel indicating that <mark style="color:purple;">**Bocto**</mark> does not have access to post messages or perform other actions in certain channels.
{% endhint %}
