This is how to create a private channel on a Discord server.
You can use private channels for GM-to-player text conversations that nobody else can see. They are ideal for things like private announcements, telegrams, letters and contingencies.
First create roles
First you want to create roles. You need one role for the GMs, and a separate role for each character.
Above - a role for each character in The Highgate Club.
Next create channels
Then for each character you create a private channel. Give each a unique name, such as "gm-indiana".
Above - some of the roles created for The Highgate Club.
Then assign permissions to roles
For each channel you need to add the @GM role and that character's role.
Give both @GM and player roles text permissions (read & send messages - see the arrows below)
(If you've set this up properly, there will be a padlock on the the channel hashtag, and the @everyone role will not have permission to access.

View Server as a Role
One useful feature in Discord when you are defining a role in the server is the “View Server as a Role” button, which when you press it gives the roles-eye view of what they can see. That way you can check that you have set up the role correctly.
(Thanks to Kevin Jacklin for explaining this to me - and thanks to Martin Jones for explaining it to him.)

