📰

Ministry of Truth

✓ AppLive

Every evening it reads your chat, files absurd charges against the day's loudest members, and lets the server vote on their fate.

how-it-works

The Ministry of Truth is a news digest and a friendly public trial in one.

Every day at report_time it reads the last day of chat in one channel. An AI judge with a corrupt streak picks out the day’s stories, twists them into absurdity and publishes the Server Crime Report. Then it charges the day’s most active members with crimes like “inciting third-degree stuffiness”.

The chat decides. If the vote says Punish, the bot hands down a sentence: a nickname made from the convict’s own messages, a red name, and an overseer who can make things worse (at their own risk). If the chat forgives, or not enough people vote, nothing happens.

Sentences are short, random and always undone automatically. The point is a shared laugh at the end of the day, not moderation.

See it in action
#general
📰
Ministry of Truth✓ AppToday
📰 Server Crime Report
Chat survives another day of pizza debates

The Ministry notes a 340% rise in unsolicited opinions about pineapple. Two citizens were seen sending memes after midnight. The investigation continues.
📰
Ministry of Truth✓ AppToday
⚖️ @Alex
Inciting third-degree stuffiness
Charged with attempting to sell depression to the chat at a discount.

Vote ends in 1 hour · 1 vote to punish
🕊️ Understand and forgive (2)🔨 Punish (7)
📰
Ministry of Truth✓ AppToday
🔨 Guilty (7 vs 2). @Alex is now known as Chief Pineapple Apologist for 25 minutes. @Sam is appointed overseer.
🚨 Report a violation
C
Chief Pineapple ApologistToday
this is a witch hunt
Ministry of Truth is typing…

your-members

What the bot actually does to people in your server.

The daily report

Once a day it reads the chat and posts the Server Crime Report, a mock-serious digest of the day, then charges 1–2 of the most active members with something absurd.

The server votes

Each charge gets two buttons, 🕊️ Understand and forgive and 🔨 Punish. Nobody is punished unless "Punish" wins and the vote reaches min_votes.

The sentence

A shameful nickname based on their own messages and a red ⛓️ Convict role, for a random 5 minutes to 2 hours (usually under half an hour).

The overseer

Another member is appointed overseer and gets a 🚨 Report a violation button. Each press makes the bot nitpick one of the convict's messages and doubles the sentence. Press it too often and the overseer is sentenced for abuse of office.

🛟 Safety nets

  • Every sentence ends by itself; the bot then restores the original nickname and removes the roles.
  • While sentenced, a member also wears a plain known as: <old name> role, so anyone (and any admin) can see their real name even if the bot disappears.
  • On start, the bot frees anyone still wearing its roles without a sentence on record.
  • Admins and operators can annul a report (@Ministry revoke) or release someone early (@Ministry release @user).
  • Messages from the judged channel are sent to an AI model to write the report. The bot stores only active sentences, not the chat.

permissions

The invite link asks for exactly these. Nothing else, and no Administrator.

Server permissions
  • View ChannelsSees the channel you pick for the tribunal.
  • Read Message HistoryReads the last day of messages (up to 400 by default) to write the report.
  • Send MessagesPosts the report, the charges, the votes and the verdicts.
  • Embed LinksThe Server Crime Report is a rich embed.
  • Manage NicknamesA convicted member gets a shameful nickname for the length of the sentence, then their own back.
  • Manage RolesCreates and hands out the red ⛓️ Convict role and a "known as <old name>" role during a sentence.
Privileged intents
  • Server MembersKnows who the members are, their nicknames and roles, to sentence and restore them.
  • Message ContentNeeds the text of the messages to find what to charge people with.

⚠️ Drag the bot's role above the members it should be able to sentence. Discord never lets a bot rename the server owner or anyone with a higher role; the verdict says so when that happens.

setup

  1. Invite the bot. It joins with safe defaults and does nothing yet.
  2. Run /ministry channel #general to pick the channel it judges and posts in.
  3. Optionally set the time and timezone, e.g. /ministry set report_time 21:00 and /ministry set timezone Europe/Berlin.

settings

SettingDefaultAllowedWhat it does
enabledonon / offPost the daily report
report_time21:00HH:MMDaily report time in the server timezone
timezoneUTCIANA name, e.g. Europe/MoscowTimezone for the schedule
languageautoauto or a language, e.g. EnglishLanguage of the report (auto = the chat's language)
lookback_hours241–168Judge messages from the last N hours
history_limit40010–1000…and at most this many of them
min_messages200–1000Fewer messages than this means no report today
max_defendants21–5People charged per report
vote_minutes600.5–1440How long the vote stays open
min_votes10–1000Total votes needed for a punishment to count
nitpick_lookback_messages30010–1000How far back the overseer's button looks
operatorsnone@users or noneWho may use the @Ministry debug commands (none = anyone with Manage Server)

Change one with /ministry set <setting> <value>. Each server has its own settings.

commands

For admins

Needs Manage Server (adjustable in Server Settings → Integrations).

/ministry channel #channel
The channel that is judged and where the report is posted. Nothing happens until this is set.
/ministry settings
Show all settings and when the next report is due.
/ministry set <setting> <value>
Change one setting.
/ministry reset <setting>
Back to the default.

Operator & debug

Mention the bot at the start of a message. Only the server's operators, or Manage Server if none are set.

@Ministry report
Run the tribunal in this channel now.
@Ministry report users 3 time 1 minimum 3
Charge 3 people, 1-minute vote, at least 3 votes (short form: @Ministry report 3 1 3).
@Ministry revoke
Annul the latest report: open votes close, its sentences are lifted.
@Ministry sentence @user
Skip the trial and sentence someone right away.
@Ministry release @user
End a sentence early and restore nickname and roles.
@Ministry status
List the active sentences.