---
title: "Discord server for a D&D campaign: layout and roles"
description: "A Discord layout for a D&D campaign, with channels for play, dice and the session schedule, a private DM area, who sees what, and the one prompt that builds it."
canonical_url: "https://www.bondbot.gg/guides/discord-server-for-dnd-campaign"
last_updated: "2026-10-02"
---

# Discord server for a D&D campaign: layout and roles

A D&D campaign server needs read-only channels for the rules and the session schedule, a place for play, table talk and dice, and a private area only the DM can see. Build it by hand in Server Settings, or give Bond one message and approve the plan it shows.

A DM running one campaign for a handful of players.

3 categories · 9 channels · 2 roles

## Channels and roles for a D&D campaign server

The channel list as members see it, and who can see and post in each channel.

The channel list:

- Info: #rules, #session-schedule
- Campaign: #in-character, #out-of-character, #dice-rolls, #character-sheets, Session (voice)
- DM Screen: #dm-notes, #encounter-prep

Who sees and posts where:

| Category | Channel | Everyone | DM | Player |
| --- | --- | --- | --- | --- |
| Info | #rules | Reads only | Sees and posts | Reads only |
| Info | #session-schedule | Reads only | Sees and posts | Reads only |
| Campaign | #in-character | Sees and posts | Sees and posts | Sees and posts |
| Campaign | #out-of-character | Sees and posts | Sees and posts | Sees and posts |
| Campaign | #dice-rolls | Sees and posts | Sees and posts | Sees and posts |
| Campaign | #character-sheets | Sees and posts | Sees and posts | Sees and posts |
| Campaign | Session (voice) | Sees and joins | Sees and joins | Sees and joins |
| DM Screen | #dm-notes | Hidden | Sees and posts | Hidden |
| DM Screen | #encounter-prep | Hidden | Sees and posts | Hidden |

Roles: DM, Player.

## Who this is for

You run one tabletop campaign, D&D or any other system, for three to eight players, and you want the server to stay out of the way of the game. Players need to know when the next session is, where to talk in character and where to joke around. You need one place they cannot read.

If your server hosts several campaigns or a whole gaming group, start with the [gaming community layout](https://www.bondbot.gg/guides/discord-gaming-community-server) and add one category per campaign.

## The one prompt to give Bond

An example, not a recording: the plan Bond shows before it builds anything, and what it does once you approve it.

In #general:

> **You:** @Bond Set up a D&D campaign server: an info category with rules and session-schedule channels only the DM can post in, a campaign category with in-character, out-of-character, dice-rolls and character-sheets channels and a Session voice channel, and a private DM area. Make a DM role and a Player role I can mention.

> **D&D campaign layout**
> plan for @You
> 3 categories, 9 channels and 2 roles. Your current channels stay as they are.
> ▼ INFO · 🔒 Everyone can read; DM can post
>     rules *House rules*
>     session-schedule *When the next session is*
> ▼ CAMPAIGN · Open to everyone (default)
>     in-character *In-character play*
>     out-of-character *Table talk*
>     dice-rolls *Rolls*
>     character-sheets *One sheet per character*
>     🔊 Session *Voice for live sessions*
> ▼ DM SCREEN · 🔒 DM only
>     dm-notes *Campaign notes*
>     encounter-prep *Encounters and stat blocks*
> **Roles** · DM, Player
> Everyone can view #rules and #session-schedule but cannot send messages; DM can send there.
> Only DM can view DM Screen and its channels.
> Keeps Existing categories, channels and roles stay unchanged.
> `#` grey planned · Expires in 10 minutes
>
> Buttons: Build it, Change something, Cancel. The example presses Build it.

After the plan, Bond asks before each change: 10 times in this example. Always allow on a card stops it asking about that kind of change.

What Bond does:

- List channels
- List roles
- Ask questions
- Create category
- Bulk create channels
- Create role
- Set channel permissions
- Check channel access

> **Bond:** The campaign server is built and access was checked.
>
> - Created **Info** with `#rules` and `#session-schedule`. Everyone can read them, and only **DM** can post.
> - Created **Campaign** with `#in-character`, `#out-of-character`, `#dice-rolls`, `#character-sheets` and the `Session` voice channel, open to everyone.
> - Created **DM Screen** with `#dm-notes` and `#encounter-prep`, visible only to **DM**.
> - Created the **DM** and **Player** roles. Anyone can mention **Player**. Neither role has members yet, so give DM to yourself and Player to your players.
>
> The access check passed: everyone can see Info and Campaign, and only DM can see DM Screen. Your existing channels were left unchanged.

This is an example, not a recording of a real run. Bond's own code draws the cards. The request, the plan, Bond's steps and its reply are written from how Bond handles a request like this one. The server, channel and member names are made up.

## In Discord, without a bot

1. Create the two roles first. Open **Server Settings**, **Roles**, **Create Role**, name it DM, and save. Do the same for Player and switch on **Allow anyone to @mention this role**.
2. Create the Info category. Right-click the channel list, **Create Category**, name it Info. Add two text channels inside it, rules and session-schedule.
3. Make Info read-only. Right-click the category, **Edit Category**, **Permissions**. For @everyone, set **Send Messages** to the red cross. Add the DM role and set **Send Messages** to the green tick.
4. Create the Campaign category with four text channels (in-character, out-of-character, dice-rolls, character-sheets) and one voice channel, Session. Leave its permissions alone so everyone can use it.
5. Create the DM Screen category and switch on **Private Category** when Discord asks. Pick the DM role as the one that can see it. Add two text channels inside, dm-notes and encounter-prep.
6. Give yourself the DM role and each player the Player role. Right-click a member, **Roles**, and tick it.

Channels created inside a category take the category's permissions, so you set each rule once. A channel you later give its own permissions stops following the category.

## What to watch for

- The roles are empty after the build. Until you give yourself DM, you see DM Screen only because you own the server or hold Administrator.
- The server owner and anyone with Administrator can read every channel, DM Screen included. If a player is an admin, the private area is not private from them.
- Anyone can ping a mentionable role. If Player pings get noisy, switch **Allow anyone to @mention this role** off. You can still mention it yourself if one of your roles has **Mention @everyone, @here, and All Roles**.
- Bond is not a dice bot. It does not read ordinary messages, so a typed !roll does nothing. Add a dice bot for rolls and keep it to #dice-rolls.
- Bond leaves your existing channels alone. A new server still has Discord's own #general and General voice channel after the build. Delete them yourself, or ask Bond to and approve each one.
- Building this uses tokens from your weekly allowance. A free account gets 600K tokens a week.

## After the build

- Post the next session in #session-schedule ahead of time: [how to schedule a message on Discord](https://www.bondbot.gg/use-cases/schedule-a-message).
- Let players pick up the Player role themselves: [how to make reaction roles](https://www.bondbot.gg/use-cases/reaction-roles).
- Add a second private channel, for example one per player for secrets: [how to make a private channel](https://www.bondbot.gg/use-cases/private-channels).

## Questions people ask

### What channels does a D&D Discord server need?

A rules channel and a session schedule that only the DM posts in, an in-character channel, an out-of-character channel, a dice channel, a place for character sheets, one voice channel for sessions, and a private area for the DM's notes. That is nine channels in three categories.

### How do I make a channel only the DM can see?

Put it in a private category. In Discord, create the category with Private Category switched on and pick the DM role. With Bond, say which role the private area is for. Bond creates the category already hidden from everyone, then asks you to confirm before it lets the DM role in.

### Can one server run more than one campaign?

Yes. Give each campaign its own category and its own player role, and make each category private to that role. Ask Bond for a second campaign category private to a new role and it adds it beside the first without touching what is there.

### Does Bond need Administrator to build this?

No. Bond's invite leaves Administrator out. It uses Manage Channels and Manage Roles, and it checks your own permissions before each step, so you need those two as well, or you own the server.

## Read next

- [How to set up a Discord server](https://www.bondbot.gg/use-cases/set-up-a-server): Describe the server you want and Bond builds the categories, channels, roles and permissions to match, in one pass.
- [AI Discord server builder that also runs your server](https://www.bondbot.gg/ai-discord-server-builder): Describe your Discord server in one message. Bond shows a plan, builds the channels, roles and permissions you approve, then stays to run it. Free to start.
- [How to give a role to everyone in Discord](https://www.bondbot.gg/use-cases/mass-assign-roles): Give a role to a whole group, or strip one back out, instead of opening the member list and doing it one person at a time.
- [Discord permissions: role hierarchy and overwrites](https://www.bondbot.gg/blog/discord-permissions-explained-role-hierarchy-and-overwrites): Why your bot can't assign that role, how channel overwrites beat server permissions, and how to debug it in five minutes.
