Secret contracts by DM
Once a day 3β4 active members become agents. Each gets a private contract against another player, e.g. "get @Sam to start an argument about the weather". Members with closed DMs are skipped.
Secret contracts in your DMs. Get someone to say the thing without them noticing, and the bot sounds the siren.
Social Puppeteer turns everyday chatter into a game of hidden manipulation.
Every day at issue_time it picks a few active members as agents and DMs each a secret contract against another player. A contract is written from the recent chat and the targetβs own messages. Examples: bait someone into a 300-character rant, start an argument about food, or get the chat to repeat a made-up idiom.
Then it watches. When the target takes the bait in the main chat, the bot goes off with a siren, quotes the message and names the winner. If nobody pulls the strings in time, the contract is revealed when it expires: βThe curtain falls. These strings were never pulled.β
Nobody knows who holds a contract, so everyone suspects everyone. Thatβs the fun.
What the bot actually does to people in your server.
Once a day 3β4 active members become agents. Each gets a private contract against another player, e.g. "get @Sam to start an argument about the weather". Members with closed DMs are skipped.
Every few messages, an AI model checks the main chat for a victim who fell into a trap. Asking the victim outright, or revealing the contract, doesn't count.
When the trap snaps shut, the bot replies to the victim's message with a siren, the contract and the winner. Unfinished contracts are revealed when they expire.
The agent earns 1β3 points and an order (the right to commission a contract against someone). The victim wears the purple π Puppet role for 30 minutes, with a π on everything they say.
/contract optout: no contracts for them or against them, and running ones are cancelled.debuff_minutes to 0 to keep the game without any role at all.The invite link asks for exactly these. Nothing else, and no Administrator.
β οΈ Drag the bot's role above the members it should be able to debuff, so it can give them the π Puppet role.
/puppeteer channel #general to pick the main chat, where contracts are played out./puppeteer set theme a gaming clan that argues about patch notes.| Setting | Default | Allowed | What it does |
|---|---|---|---|
enabled | on | on / off | Hand out contracts every day |
issue_time | 12:00 | HH:MM | Time of the daily round in the server timezone |
timezone | UTC | IANA name, e.g. Europe/Moscow | Timezone for the schedule |
language | auto | auto or a language, e.g. English | Language of the contracts (auto = the chat's language) |
theme | a former language-exchange community | up to 300 characters | What the server is like |
min_contracts | 3 | 1β10 | Contracts per round |
max_contracts | 4 | 1β10 | β¦and at most (random in between) |
contract_hours | 24 | 0.5β168 | How long an agent has to complete a contract |
active_hours | 72 | 1β720 | Only members who wrote in the last N hours take partβ¦ |
active_min_messages | 3 | 1β500 | β¦with at least this many messages |
check_every | 12 | 3β100 | Check the chat for completed contracts every N messages |
check_window | 40 | 10β200 | How many recent messages each check reads |
debuff_minutes | 30 | 0β1440 | How long a fooled victim stays a π Puppet (0 = never) |
operators | none | @users or none | Who may use the @Puppeteer debug commands (none = anyone with Manage Server) |
Change one with /puppeteer set <setting> <value>. Each server has its own settings.
Needs Manage Server (adjustable in Server Settings β Integrations).
/puppeteer channel #channel/puppeteer settings/puppeteer set <setting> <value>/puppeteer reset <setting>Any member can use these.
/contract mine/contract order @victim [wish]/contract leaderboard/contract optout/contract optinMention the bot at the start of a message. Only the server's operators, or Manage Server if none are set.
@Puppeteer issue [n]@Puppeteer give @agent @victim@Puppeteer check@Puppeteer status@Puppeteer cancel 12 / cancel all@Puppeteer lift @user