The Discord bot
Pyre already knows when you go live, who subscribed, what you clipped and when you stream next. The Discord bot takes that and shows it in your server, so you keep managing one thing and it stays true in both places.
It is not a chat bot. It does not moderate your Discord, it does not run commands in it, and it cannot read your members’ messages. It projects what Pyre already holds.
Everything starts off
Section titled “Everything starts off”This is the part worth reading twice. When you add Pyre to a server, it posts nothing. Every projection is a separate switch and every switch starts off, so a freshly connected server is silent until you decide otherwise. The card says so where the switches are:
Nothing is switched on yet. Pick what Pyre should tell your server about.This is the normal starting point. Pyre posts nothing you have not switched on.You will see a counter beside the card reading 0 of 8 on. Eight is the number of
things Pyre can be asked to tell your server about.
Where the settings live
Section titled “Where the settings live”On Schedule & Social, on the same page as your webhook announcements. See Schedule and Social. The bot and the webhook are two different ways to reach Discord and both are still offered:
- A webhook needs no invite, no permissions and no roles. It posts a line into one channel. If that is all you want, it is the right answer.
- The bot is a member of your server. That is what lets it hold a role, rename a channel, read your channel and role lists so the pickers here can show them, and answer slash commands.
You can connect more than one server, for example your main server and one you help run.
Add Pyre to your server
Section titled “Add Pyre to your server”Before the button, the page states plainly what you are about to allow:
What Pyre will be able to doPost messages in the channels you pick.Add and remove only the roles you map.Rename the one channel you choose, while you are live.Read your channel and role names, so the pickers here can show them.It cannot read your members' messages, and it cannot ping everyone.Nothing is posted until you switch something on.-
Press Add Pyre to Discord. It opens Discord. You need Manage Server on the server you pick, which is Discord’s rule and not Pyre’s.
-
Pick the server and approve. Discord shows you the same permission list in its own words.
-
Drag the Pyre role up. In Discord: Server Settings, Roles, and drag Pyre above every role you want it to hand out. This is the step everybody skips and it is the one that quietly breaks everything. Discord only lets a bot manage roles that sit below its own, so a Pyre role at the bottom of the list will fail on every single assignment, silently, forever, while your switch still says on.
-
Come back to Pyre and switch something on. The card now shows the server name, when it was added and by whom, and how many members, text channels and roles it can see.
Connect your own Discord account
Section titled “Connect your own Discord account”Separate from adding the bot, and only needed for one thing:
Connect your own Discord account to use the Live role. The channel rename works without it.Pyre needs to know which Discord account is yours before it can put a role on it. Nothing else depends on this.
What Pyre can tell your server
Section titled “What Pyre can tell your server”Eight switches, all off to begin with.
| Switch | What it does |
|---|---|
| Go live announcement | One post when you go live. It keeps itself up to date and links to the VOD when you stop. |
| Live role | Gives you a role while you are live, and takes it back when you stop. |
| Channel rename | Renames one channel while you are live. |
| Supporter roles | Roles for subs, tiers and mods, counted across Twitch, Kick and YouTube. |
| Levels | Viewers earn levels from your stream chat and can check them in Discord. |
| Clips | Posts clips, from whoever you choose. |
| Schedule | Keeps one pinned message showing when you stream. |
| Stream events | Mirrors the events you pick, one type at a time. |
Go live announcement
Section titled “Go live announcement”One post per broadcast, not one per platform. If you multistream to Twitch, Kick and YouTube, your server sees a single message carrying the title, the game and every link.
Then it stays alive. Change your title and the same message updates itself within about half a minute. Change it five times in a row and there is still one message, carrying the last title. When you stop, that message says so immediately, and a few minutes later it relinks itself to the VOD.
If your channel has VODs turned off, or you delete it, the message simply keeps its ended state and says nothing about a VOD. That is correct behaviour, not a failure.
Live role and channel rename
Section titled “Live role and channel rename”The Live role goes on while you are live and comes off when you stop. The channel rename renames one channel you choose.
Channel names stop at 100 characters. Pyre shows you the name it will actually use, with a Trimmed chip, rather than the one you typed.
Supporter roles
Section titled “Supporter roles”Map a role to a rung and Pyre keeps it in step with who actually supports you. Support stacks across platforms: a viewer subscribed on two platforms reaches a higher rung than either alone.
Each platform contributes a score, and the scores add up:
| Platform | Contributes |
|---|---|
| Twitch Prime or Tier 1 | 1 |
| Twitch Tier 2 | 2 |
| Twitch Tier 3 | 3 |
| Kick subscriber | 1 |
| YouTube member | 1 to 3, by the level’s position in your list |
| Total | Rung |
|---|---|
| 1 | Supporter |
| 2 | Supporter II |
| 3 | Supporter III |
| 5 | Champion |
| 7 | Legend |
Those names are only a starting point, and the page says so:
These are starting names. Rename the roles in Discord and Pyre follows.By default a viewer holds only their highest rung, because a rung says what somebody is paying right now.
Which platforms Pyre can actually check, and which expire. This is the honest part and the card carries it too:
- Twitch is checked live. Pyre reads your own subscriber list, so a sub that ends genuinely loses the role at the next reconcile.
- Kick and YouTube expire instead. Kick never tells anyone when a sub ends, so Pyre counts a Kick sub for 35 days after it last saw it. That is a month plus a grace week. YouTube currently takes the same road.
The pane’s own line:
Kick never tells Pyre when a sub ends, so a Kick sub is counted for 35 days after it was last seen. Twitch and YouTube lapses are exact.Moderator roles work on Twitch only, for the same reason: Kick and YouTube publish no moderator list, and unlike subs there is no event stream to infer one from. On those platforms Pyre leaves a mod role exactly as it found it.
And when Pyre cannot check at all, it does nothing. A failed read is never treated as “nobody is subscribed”, because that would strip every supporter in your server over a five minute outage.
Levels
Section titled “Levels”Viewers earn levels for chatting in your stream chat, not in Discord:
Levels come from your stream chat on Twitch, Kick and YouTube. Messages sent in Discord do not count yet.Pyre opens no gateway into your Discord and holds no privileged intent, so it genuinely cannot see Discord messages. That is what makes the “it cannot read your members’ messages” line above literally true rather than a promise.
The rules, as the page states them:
Level 1 costs 100 XP, and each level after costs 100 XP more than the last. Level 10 is 5,500 XP in total.A chat message earns 10 XP, once a minute, up to 600 XP a day.Commands, one character messages and a message repeated word for word earn nothing.The once a minute limit is across all your platforms, not per platform, so a viewer in two of your chats at once earns once.
Two things you can turn on beside it:
- Level up announcements, off by default, at most once every five minutes per viewer, in a channel you pick.
- Level roles at levels 5, 10, 20, 30 and 50. By default a viewer keeps every level role they reached, which is the opposite of the supporter rungs and deliberately so: a level is something you reached, so taking the level 10 role away on the day somebody hits 20 reads as a demotion for something that cannot be lost.
See Loyalty and giveaways for points, which are a different thing from levels and are spent rather than accumulated.
Pick who Pyre posts clips from. Five choices, and the page words them as sentences rather than settings:
Post every clip.Post only clips someone featured.Post only clips I make.Post only clips my mods make.Do not post clips.Switching Clips on picks Post only clips I make, which is the narrowest choice that posts anything at all.
There is a rule underneath all five, and the card states it:
If Pyre cannot tell who made a clip, it is only posted under Post every clip.Four of the five options are statements about who made a clip, so a clip whose author Pyre cannot name satisfies none of them and is not posted. Refusing to post can be undone. Posting cannot.
Clips post as plain text with the link last, on its own line, so Discord unfurls it into a playable preview. See Clips.
Schedule
Section titled “Schedule”Pyre pins one message showing when you stream, and edits it when your schedule changes:
Pyre pins one message and edits it when your schedule changes. It never re-posts to bump the channel.Two ways to describe your schedule, and both work here:
- Set times. The weekly schedule you already keep, the same one your public page and Twitch and YouTube use.
- In my own words. Free text, for people who do not stream to a clock.
Placeholder:
Most evenings around 8, always Friday and Saturday.
If you choose your own words, Pyre says what that costs:
A described schedule has no set times, so there is nothing to send to Twitch or YouTube.It is the same schedule everywhere, so changing it here changes it on your public page too.
Stream events
Section titled “Stream events”Seventeen kinds of event can be mirrored into a channel, and you pick them one at a time. All seventeen start off.
New follower, New sub, Resub, Gifted sub, Gift bomb, Bits cheered, Tip, Recurring tip, Super Chat, New YouTube member, Member milestone, Membership started, Membership renewed, Membership ended, Raid landed, Host, Channel point redeemed.
Tip amounts are hidden by default. Off means the post says somebody tipped, without the number. That switch covers money and bits. It never hides a count that is the event: a gift bomb still says how many, a raid still says how many viewers, a resub still says how many months.
The slash commands
Section titled “The slash commands”Twelve, and they work in any server Pyre is in. Five of them answer only to you (Discord calls this ephemeral): nobody else in the channel sees the reply, and it disappears when you dismiss it.
| Command | What it says | Who sees the reply |
|---|---|---|
/uptime | See whether this channel is live, and for how long. | Everyone |
/schedule | See when this channel goes live. | Everyone |
/clips | See the latest clips from this channel. | Everyone |
/commands | See the chat commands this channel has. | Everyone |
/socials | See where else this channel posts. | Everyone |
/leaderboard | See who has chatted the most. | Everyone |
/ping | Check that Pyre is connected to this server. | Everyone |
/level | See your level in this server. | Only you |
/points | See your points and watch time in this channel. | Only you |
/verify | Link your Twitch or YouTube account, so your support counts here. | Only you |
/link kick | Link your Kick account, which Discord cannot see. | Only you |
/forget | Remove the accounts you linked to Pyre. | Only you |
/level and /points are private because the answer to somebody who has not
verified yet carries their own one time verification link. /leaderboard is public
because it ranks stream names and reveals nobody’s Discord identity.
In a server that is no longer connected to a Pyre channel, every command answers:
This server is not connected to a Pyre channel any more./points adds up every account a viewer has linked
Section titled “/points adds up every account a viewer has linked”This is the one that is hard to get anywhere else. If a viewer has linked their
Twitch and their YouTube to the same Discord account, /points returns one
number, summed across both, in your own currency name. If you renamed your points
to Bones, it says Bones.
You have 21,000 Bones.Watch time: 4 days, 6 hours.Counted from Nightjar (Twitch), Nightjar (YouTube).Watch time only appears when there is some. The last line only appears when there is more than one account to count from.
Somebody who has not verified does not get a zero, which would be a lie. They get:
Pyre needs to know which accounts are yours before it can show your points.and their own verification link underneath it.
How a viewer proves who they are
Section titled “How a viewer proves who they are”Nothing above needs your viewers to have a Pyre account, and they never will.
-
They run
/verify. The reply is private and carries a one time link. -
They approve on Discord. Pyre asks Discord for two things: who they are, and which accounts they have already connected under Discord’s own User Settings, Connections.
-
Pyre reads those connections once and does not keep the login. The access token is revoked on the way out. There is no stored password and no stored token.
-
Their roles land in the same minute. Verifying and being rewarded for it are the same moment.
The link is single use, expires after ten minutes, and only completes for the Discord account that asked for it. A viewer may ask for three links an hour.
If Discord had nothing to share, the page says so and tells them where to fix it:
Nothing to link yetDiscord had no verified Twitch or YouTube account to share. Add one in Discord under User Settings, Connections, then run /verify again.Kick supporters need one extra step
Section titled “Kick supporters need one extra step”Discord has no Kick connection. Not a missing feature in Pyre, a thing that does not
exist on Discord’s side, so /verify can never find a Kick account. Pyre says this
to you plainly rather than leaving a Kick supporter looking unsupported:
Discord can see Twitch and YouTube accounts, but it has no Kick connection. A Kick supporter runs /link kick instead, and their Kick sub counts too.-
They run
/link kickwith their Kick username. Pyre gives them a short code that starts withPYRE-. -
They type that code in your Kick chat, within ten minutes.
-
Pyre sees it in your chat and links them. The code only counts if it comes from the username they claimed, so guessing somebody else’s code achieves nothing.
A member in this state shows a Kick only chip on your side, with the reason.
Deleting the link again
Section titled “Deleting the link again”/forget removes what a viewer linked. It is a real deletion and it is theirs to
ask for at any time:
Pyre will forget which Twitch and YouTube accounts are yours, and take back the roles it gave you for them. Your points, watch time and chat history in a streamer's channel are their records and are not affected.So: the account links go, their XP goes, and the roles Pyre gave them for those links are taken back. Their points and watch time in your channel stay, because those are your channel’s records, not their Discord identity.
Two things worth knowing:
/forgeterases their levels in every channel, not only in servers where they met Pyre through Discord.- Disconnecting a server does not erase anybody’s identity. It belongs to them,
across every server. Only
/forgetclears it.
Disconnecting a server tells you exactly what it costs:
Pyre stops posting and stops managing roles. Roles people already have stay with them.What Pyre will not do
Section titled “What Pyre will not do”- It never sends direct messages. Not for going live, not for anything. Every post goes to a channel you chose.
- It never pings everyone.
- It cannot read your members’ messages, and it holds no permission that would let it.
- It never re-posts to bump a channel. The go live message and the schedule pin are edited in place. That is why a long stream leaves one line in your channel instead of twenty.
- Nothing here is behind a paid plan. There is no Discord only upgrade and there will not be one.
When something is not working
Section titled “When something is not working”Almost every failure here is configuration, and almost all of it is invisible unless Pyre tells you. So it tells you.
Roles are not being handed out
Section titled “Roles are not being handed out”“Role too high.” The mapped role sits above Pyre’s own role in Discord’s list, and Discord will not let any bot manage a role above itself:
Discord will not let Pyre manage a role that sits above its own. Drag the Pyre role above {role} in Server Settings, Roles.Fix it in Discord: Server Settings, Roles, drag Pyre above the role named.
“Managed elsewhere.” The role belongs to another integration, for example a Twitch sub role Discord created, or another bot’s role:
{role} is managed by another integration, so no bot can assign it. Make a separate role and map that one.Dragging will not help here. No bot can assign a role another integration owns. Make a plain role and map that one instead.
“Missing.” The role was deleted in Discord. Pick another, or make it again.
The channel name is still wrong
Section titled “The channel name is still wrong”Pyre is almost certainly waiting on Discord’s two renames per ten minutes, and the card will say so with a real number of minutes. Wait it out. The last name you asked for always lands.
Posts stopped after somebody tidied the server
Section titled “Posts stopped after somebody tidied the server”If the channel was deleted, Pyre has nowhere to post. Pick a new channel on the card and it resumes. The same is true of a pinned schedule message somebody deleted: Pyre notices it is genuinely gone and posts one replacement, but it will not post a second copy just because Discord was slow or returned an error.
A Kick supporter has no role
Section titled “A Kick supporter has no role”Check whether they ran /link kick. Discord cannot see Kick accounts, so /verify
alone will never find them.
If they linked and still have no role, check the 35 day window: Pyre counts a Kick sub from the last time it saw one, and if you have only just connected Pyre, it has not seen theirs yet. It fills in going forward, not backwards.
Pyre says it is not answering
Section titled “Pyre says it is not answering”Discord is not answering right now. Pyre will pick this back up on its own.This is Discord being unavailable, not your settings. Pyre stops calling, waits, and resumes on its own. Nothing needs pressing and nothing is lost.
Related
Section titled “Related”- Schedule and Social, where these settings live, and the webhook road for a simpler setup
- Clips, for the library the clip posts come from
- Loyalty and giveaways, for the points
/pointsreports - Connections, because levels and Kick linking both ride your chat connection