Permissions & Privacy
Which permissions the bot needs, why — and which data is stored at all.
Which permissions does the bot need?
As few as possible. Which permissions are required depends on which modules you switch on:
| Permission | What for | Who needs it |
|---|---|---|
| Nachrichten senden (send messages) | post replies and embeds | all modules |
| Links einbetten (embed links) | without this permission Discord does not display embeds at all | all modules |
| Anwendungsbefehle (application commands) | so that /embed and the rest appear in the first place |
all modules |
| Nachrichten verwalten (manage messages) | edit posted embeds, clean up | Embeds, Moderation |
| Reaktionen hinzufügen (add reactions) | put the emojis under a role panel | Reaktionsrollen (reaction roles) |
| Rollen verwalten (manage roles) | grant roles and take them away | Reaktionsrollen, Eigene Befehle (custom commands), Automatisierungen (automations), Einladungen (invites), Geburtstage (birthdays) |
| Mitglieder moderieren (moderate members) | mute | Moderation |
| Mitglieder kicken / bannen (kick / ban members) | kick, ban, unban | Moderation |
| Server verwalten (manage server) | read the invite list | Einladungen |
| Alle erwähnen (mention everyone) | @everyone on a live notification |
Stream-Benachrichtigungen (stream notifications) |
You can take permissions away from the bot at any time. It then tells you in its reply what it is
missing instead of failing silently — and /check lists all missing permissions at once.
Administrator is convenient, but not necessary. Better give the bot a role of its own with exactly the permissions above and drag it above the roles it is meant to manage in the role list. Discord never allows a bot to grant a role that sits above its own — that is by far the most common cause when something does not work.
What the bot listens in on
Discord calls these "intents". A bot only receives the events it is registered for:
| Intent | What for | Particularity |
|---|---|---|
| Server | the basis for everything | — |
| Reactions | Reaktionsrollen, reaction triggers | — |
| Server members | joins, leaves, role changes | must be switched on in the Discord portal |
| Invites | counting invites | — |
Message contents — where they are read and where they are not
Fishbot has access to message contents (the "Message Content Intent") switched on. That was not always the case, and it is a decision with a reason: a ticket transcript without the messages does not answer the one question it exists for.
Reading therefore happens where a module needs the text:
| What for | What happens |
|---|---|
| Ticket transcript | On closing, the history of the ticket channel is stored — 90 days by default, adjustable down to 0 |
| Starboard | The text of the highlighted message is part of the entry |
| Stichwort-Reaktionen (keyword reactions) | The bot recognises configured keywords and reacts to them |
| Abmeldekanal (sign-off channel, GTA RP) | A short excerpt of the sign-off is part of the report |
And equally important, where it does not:
- The Logbuch (the server log) never stores message contents. It records that something happened, not what was written — not even when the bot would be allowed to see the text. Deleted messages are therefore not reported at all: a line saying "message deleted" without the content is worthless, and with the content it would be a recording.
- Nothing is collected permanently. Outside ticket channels, no message text ends up in the database. What the bot reads in order to react, it reads and forgets.
Which data is stored?
Always:
- Server: ID, name, icon, owner ID — so that the dashboard knows what it is dealing with.
- Settings: which modules are on, plus their configuration.
- Account: your Discord ID, username, profile picture and email address from the login.
- Record: who changed which module when, or who sent which embed.
Depending on the module switched on:
| Module | What is stored |
|---|---|
| Embeds | the embeds you have created yourself |
| Reaktionsrollen | panels: message, emoji-to-role mapping, channel and message ID |
| Eigene Befehle | name, reply text, assigned roles, usage count |
| Automatisierungen | rules with trigger and actions |
| Moderation | cases: person affected, moderator, reason, time |
| Einladungen | who recruited whom, time of joining and leaving |
| Gewinnspiele (giveaways) | prize, duration, participant and winner IDs |
| Geburtstage | day and month per member — the year only if someone states it voluntarily |
| Angeln (fishing) | game progress: catches, coins, equipment, fish book |
| Streams | watched channel names and the ID of the most recently reported broadcast |
Of members, the bot only ever stores the Discord ID, never names or profile pictures — Discord fetches those itself when displaying them.
Protection against abuse
So that nobody uses Fishbot for mass advertising, the service keeps count of a few events: how many direct messages an automation has sent, how many bans have happened in a short time, how often a server has hit the rate limit. What is stored is exclusively the type of event, the number and the time — never a message text and never who was affected. After fourteen days these counts no longer feed into the assessment.
In addition, a server's member count is stored. Only the number, no member list.
What is expressly not stored
No message contents, no voice data, no IP addresses of server members, no payment data. Payment processing runs entirely through Stripe — card details never reach our servers.
Deletion
If you remove the bot from the server, the settings are kept at first, so that nothing is lost when you invite it again. On request in the support Discord we delete all data on a server or on your account completely — likewise, on request, we hand over everything that is stored about you.
There is one exception: moderation cases are not deleted. They belong to the server that created them and document that server's own decisions — a warning cannot be removed from the world by a deletion request.
Individual entries can be removed by each member themselves: /geburtstag entfernen deletes your
own birthday. For the server: /befehl loeschen removes a custom command, /rollen loeschen a
role panel.
Last updated: 13 October 2026
