Media of the Day
A channel for images and videos — at the end the post with the most votes wins.
A channel into which people throw their images, videos and clips. At the end of the day, the week or the month the bot gives the post with the most votes another big showing — with image, name and a link to the original.
People are counted, not reactions
That is the most important decision in the whole module, and it is the reason why competitions like this otherwise tip over.
Discord counts reactions per emoji. Anyone who reacts under their own image with ten different emojis produces ten reactions — and beats an image that ten people genuinely liked. That is not a theoretical case but the first one someone tries.
Fishbot therefore counts the people: anyone who has reacted under a post counts exactly once, no matter with how many emojis. Clicking away and clicking back changes nothing — in the end someone is either on the list or not. Bots never count.
Whether the submitter's own vote counts is up to you: Eigene Stimme zählt mit (own vote counts), off by default.
Setting it up
/media setup. The only thing required is the Kanal mit den Einsendungen (channel with the
submissions).
| Setting | What for |
|---|---|
| Kanal mit den Einsendungen | This is where counting happens. Only posts with an image, video or file count. |
| Kanal für den Sieger (channel for the winner) | Empty means: into the same channel. |
| Erste Reaktion selbst setzen (set the first reaction itself) | The bot puts an emoji under every submission. |
| Womit der Bot reagiert (what the bot reacts with) | One emoji, a server emoji as well. |
| Zeitraum (period) | Daily, weekly or monthly. |
| Uhrzeit (time of day) | On the hour, German time. |
| Mindestens so viele Stimmen (at least this many votes) | Below that nobody is crowned. Default 2. |
| Überschrift / Text (heading / text) | Your own wording, with placeholders. |
| Rolle anpingen (ping a role) | Is mentioned with the award. |
What is counted when
| Period | What is evaluated |
|---|---|
| Daily | the previous day, from midnight |
| Weekly | the past week, Monday to Monday |
| Monthly | the past month, from the first |
What is evaluated is always the completed period, never the running one. Anyone who crowns the week on Monday morning means the past one — anything else would be an interim standing and would put Sunday evening's post at a disadvantage.
If the bot misses the hour that has been set — restart, outage — it catches the evaluation up as soon as it is running again. A schedule that skips a round on restart fails exactly when something is going wrong anyway.
The placeholders
🏆 Media {zeitraum}
Glückwunsch {user} — {stimmen} Stimmen bei {beitraege} Einsendungen.
| Placeholder | Becomes |
|---|---|
{zeitraum} |
„des Tages“, „der Woche“ or „des Monats“ |
{user} |
the mention of the winner |
{username} |
just the name, without a ping |
{stimmen} |
the winner's number of votes |
{beitraege} |
how many submissions there were in total |
Interim standing and emergency brake
/media stand → who is currently in the lead
/media auswerten → evaluate the past period right away
A competition whose interim standing nobody can see is a black box for the participants.
/media auswerten, by contrast, is the emergency brake: for the case where the award did not
happen or you want it earlier.
Limits
At most 300 posts per period. A channel with a thousand images a day is no longer a competition but an archive.
The best 15 are recounted exactly. The bot has to ask Discord individually for the people behind a reaction — one request per emoji per post. That is why sorting is first done roughly by Discord's own count and only the top is recounted exactly. The winner is always in there; a post in 40th place by the raw numbers does not win on people either.
A tie is decided by the earlier post. Whoever was there first did not have the advantage of having already seen the others' votes.
The image is linked, not copied. If someone deletes their post, there is no image to be seen in the award either.
Last updated: 13 October 2026
