Your friendly neighborhood fight room AI
!roast me for a self-roast. Cost: 5,000 PAT
!gang limits shows the current allowances; the boss sets them with !gang limits <owner|officer|member|recruit> <amount> (0 = unlimited). Withdrawals pay a 5% laundering cut to Canary Wharf on the way out.
!gangs reset confirm. Distinct from a season ending, which keeps rep and hands stakes back.
!turf season shows the table, the day, and the prize pot.!claim <borough> musters for 45s โ crewmates !join for 5,000 PAT each โ then the whole crew rolls against whoever's already there. 8 rounds outer, 9 mid, 10 centre, 2 strikes each, and numbers genuinely tell (a crew bonus applies from 3 up). Geared success runs about 24% solo ยท 68% at three ยท 89% at five on an outer borough, 39% at five for a mid one and 17% for Mayfair โ so the crown needs a real gang. The stake is only paid if you take it: a failed run costs the buy-ins, never the deposit.!turf end): the top score takes the pot โ everything the streets banked, matched by the Reserve. Business banks go to the Federal Reserve to seed next season's heists, and every stake is refunded โ holding turf is never a losing move. Ownership, banks and Turf Score reset; gang rep is permanent and carries over.
!heist convoy intercepts it. You can't rob your own gang's money. The prize is the whole cargo, split among survivors โ no vault, no crack roll โ and the owners never see a penny.!defend to ride shotgun. Each guard raises every DC on that run, so a well-escorted convoy is a genuinely bad idea to hit.!turf cargo shows what's on the road now, or what's building up if nothing has left yet. This is the valve that keeps PAT moving โ what the room spends becomes what the room can steal.
!reserve mint <amount> to print PAT into it on the spot (announced in every room โ silently minting money is exactly what shouldn't be invisible), plus !reserve auto on|off and !reserve floor <amount> to have the daily tick top it back up to a floor. Auto is off by default.
-v <voice> alongside -mic to pick which voice speaks it โ some voices cost PAT per use, or can be bought outright with !buyvoice; see !voices (!roast bob -mic -v narrator; quote names with spaces; !mic tts voices lists them). Needs Pepe's voice/TTS switched on; if it ends up typed instead of spoken, for any reason, the surcharge is refunded automatically. Only works in the room Pepe's mic is in.
!say <text> -v <voice> costs you nothing extra. Some voices pay a royalty to the person they were cloned from; the rest of what you pay goes into the nightclub's takings (or the jackpot vault if turf war is off). (Alias: !voicebuy.)
!spin), the ๐ฐ casino vault (cracked by the casino heist) and the ๐๏ธ Federal Reserve (cracked by the bank heist). Splitting them means a gang holding the whole map can't starve the heist targets โ and robbing one doesn't touch the others. All three are fed by sink overflow, so the more the room spends, the bigger the scores get. Also !jackpot or !pot. Free, answered in the room. You can also just ask him โ "pepe what's the vault at" works.
!next to paginate.
!next to paginate.
-v <voice> to pick a specific voice, e.g. !say welcome to the room -v woodie. See the available voices with !mic tts voices. (Requires voice/TTS to be switched on.)
!say -v <voice>. Anyone can run this one.
!mic drop lets go of the room you're in (and says where else he's still holding); !mic drop all lets go everywhere. !mic status lists the other rooms he's holding in.!mic music off, !mic tts voice X, !mic alerts, !mic slots, !mic tts on|off|chatty|caption all change the room you typed them in (like !redlist). Add -global to change the default that rooms without their own setting follow โ rooms that do override it are unaffected, and Pepe says so. Add -all to change the default and clear every room's override, so every room really gets it.random โ !mic tts voice random, !say โฆ -v random, or the room/alert voice in the panel โ and Pepe picks a different one every line. It only ever picks voices that are free for whoever asked, so it can never bill you for a premium voice you didn't choose (admins, who use every voice free, get the full range).!mic tts voice set the global default that rooms without an override follow. The VoiceBox engine, model size and audio device stay global, since there's only one of each.
!mic drop won't clear: dropping a mic that isn't really on would turn it on, so once his belief and the client disagree there's otherwise no way back. Afterwards check the client and use !mic grab / !mic drop to line them up. (Aliases: !mic resync, !mic forget.)
!mic device CABLE Input); with no name it just tells you the current one. test plays a tone to it, grabbing the mic if needed โ the quickest way to check the audio path end to end.
!alerts. music makes Pepe hold the mic while the jukebox plays so the whole room hears it.
!alerts sound on|off a sting through the mic ยท !alerts tts on|off Pepe says it out loud ยท !alerts text on|off a line in chat. !alerts on|off is the master switch โ off and this room gets nothing at all. Like every settings command these change the room you typed them in; add -global or -all to widen.!alerts heist room keeps a heist alert in the room it started in. !alerts heist global also tells every other room where it's kicking off, by tab name โ "a heist is forming in Pepe's Pad". A room with alerts switched off stays quiet either way, so one room can opt out of the noise entirely.!alerts voice <name> gives spoken alerts their own voice in this room, so an alert cuts through instead of sounding like everything else Pepe says. !alerts voice random re-rolls one each time, !alerts voice default goes back to the room's usual voice. Per room, like the channels.!alerts jackpot force on lets that alert bump whoever is on the mic so the sting or spoken line actually gets heard, rather than queueing and being dropped if no slot frees up. It cuts someone off mid-sentence, so it's set per event and off by default โ worth it for the jackpot, rarely for anything else. Text alerts never need a mic slot and are unaffected.!alerts test <type> fires one to check your setup, and !alerts on its own shows where everything stands. All of it is in the admin panel too.
!look with no name lists the cams currently open. Add -mic to have him say it aloud (voice surcharge applies), -p for a PM. Multiple people: !look moxier plantbaked reacts to both cams in one line (up to 4; each costs the !look price).
-e (!snap moxier -e 2 = two hours; 5 minutes minimum, 7 days maximum). A copy is also saved on the bot machine, which the expiry doesn't touch.!activeroom).
-t sets the length up to 60s (!clip moxier -t 30). Pepe posts "recording X for 15sโฆ" in the room before he starts. Same 24-hour expiry as a snap, same -e to shorten it, same local copy kept on the bot machine. Aliases !rec, !record.-a (or -audio) to record the room's audio into the clip. Two things have to be true or it records silently and tells you which one failed: the room must be the one Pepe is listening to (see !audioroom โ the loopback only carries one room at a time, so otherwise the clip would get a different room's conversation), and someone must be on the mic. Whoever holds the mic during the recording is what you get. The clip still records either way โ -a never cancels it.!snap list shows every live capture โ stills and video together, so there's one place to take anything down. It lists โ id, whose cam, who took it, which room, and how long it has left. !snap delete <id> takes that one down immediately; !snap delete all clears every live link at once. !unsnap <id> is the short form. Deleting removes the hosted image only โ the local copy on the bot machine stays. If the site can't be reached the bot says so explicitly rather than reporting a delete that didn't happen.
-cam <user> to make Pepe use that person's live webcam as part of the command.
!ask what's he drinking -cam tux โ answers from what he can actually see.
!imagine me as a knight -cam โ uses your cam as the reference image.
!roast tux -cam โ same as !camroast tux, kept as an alias.
-cam means your own cam. Several people at once: repeat the flag or comma-list them โ !ask who looks happier -cam moxier,plantbaked โ and Pepe sees every cam as a separate labelled image in one answer (up to 4). Every -cam command costs the command's normal price plus one vision surcharge per cam (each is an extra AI call) โ the same rule on !ask, !roast and !imagine. Any cam that can't be opened is refunded, and if none work you get everything back. Only works in the room Pepe's cam is pointed at.
!roast [user] -cam, and priced the same way: the !roast price plus the vision surcharge (admins free; must be switched on). Refunded in full if the cam won't open.
!chattycam switch on|off NEW controls whether a glance may move the window to this room at all (per room, on by default). Turn it off for a room that's happy for commands to pull the window over but not an idle glance nobody asked for โ Pepe then only looks there when it's already the active room. It also needs auto-switch on for that room, and never overrides a room pinned with !activeroom. Costs a vision call each time.
!pictionary movies, !pictionary 5 animals, !pictionary the 90s (round count optional, default 10). Free to play. Also !doodle / !draw.
!vk alone to see current tally.
!vb alone to see the current tally.
!vm alone to see the current tally.
!votey / !voten). If no such vote is live, !vote <option> votes in the current poll instead.
-mic and Pepe also reads it aloud. With auto-switching on he reads it in every room that allows it, one after another; rooms that don't still get the text, so nobody misses it. -v <voice> picks the voice (see !mic tts voices). !sponsor list shows active sponsors with their slot numbers; !sponsor stop cancels yours (no refund). Admins can pull a single advert with !sponsor remove <slot#|user>, clear them all with !sponsor clear, and are not held to one slot each.
-cam [user] to use a live webcam. The result is posted as a link and framed on Pepe's cam for about 25 seconds, so the whole room sees it without opening anything (a game already on the overlay keeps the screen). Cost: 25,000 PAT
!play playlist name), or album (!play album name); without a query it starts/resumes playback. Admins play instantly; everyone else votes โ 4 people typing the same !play [song] makes it play. Starting music takes more agreement than stopping it (!skip/!pause need only 2), so one person can't put the room on their soundtrack. If something's already playing, non-admins must !queue instead of cutting it off. Pepe auto-wakes the speaker device first, so playback starts even if Spotify was idle.
!next to paginate.
by:user to filter by who performed the action, or to:user to filter by who received it. Example: !modlog kicks by:plantbaked 10 or !modlog bans to:madbooth.
now to force an immediate topic change.
-all to any of those to search or total across every room instead.
/room <name> focuses a chat on one room, /room all widens it. Keyword alerts always cover every room and say which one they came from.
!audioroom alone shows the current room and the rooms seen; !audioroom all (or off) records every room. (Alias: !microom.)!audiobtn, this actually moves the audio in the client โ mutes the room that currently has it, switches to the target's tab, then unmutes that one, all in the background with no focus stolen. If any step fails the previous room is unmuted again and the setting is left alone, so you never end up with two rooms feeding one stream, or none. Add -noswitch to record the setting without touching the client โ for when the audio is already where you want it and only the bot's idea of it was wrong. (Also -nomove / -setonly.)
!activeroom alone shows the setting; !activeroom auto reverts to first-match (the single-room default). !activeroom <tab label>=<room> tells Pepe which tab belongs to which room when the two are named differently. (Alias: !winroom.)
-mic replies, sponsor reads) queues: the tab is switched immediately before each clip takes the mic, so several people speaking from different rooms play one after another in the right rooms rather than fighting over the tab. Pinning a room with !activeroom disables auto-switching.
!audioroom move visits them all and fills the picture in. (Alias: !mutestatus.)
!audioroom setting โ the repair tool for when the two drift apart. Switches to the room first (a speaker button only exists while its room is on screen), then clicks. If the button reports its state on your build these are idempotent (a second !mute does nothing); if it doesn't, they act as a plain toggle and say so rather than claiming a state they can't see. (Alias: !roomaudio.)
!audiobtn recal re-learns it if it ever gets it wrong; it needs at least two rooms open with exactly one unmuted.
!activeroom <tab label>=<room>. (Alias: !switchroom.)
!activeroom Pepe's Pad=PepeFrog.Room. He learns most of these on his own once he's seen a room's window, but a room he's never had open won't be switchable until it's mapped. If !roomswitch reports it only had the room id to try, this is the fix. !roomtabs shows the exact labels to use.
!strike user shows their strikes/role/timeout status; !strike appeal user removes the last strike, refunds its fine and lifts any timeout. (Non-admins can appeal via a community vote โ see !strike appeal in Games & Activities.)
!automod unblock user โ auto-unblock when blocked
!automod block user โ auto-block when unblocked
!automod unpunish user โ auto-unpunish when punished
!automod punish user โ auto-punish when unpunished
!automod unban user โ auto-unban when banned
!automod ban user โ auto-ban when unbanned
!automod friend user โ auto-give friend when role removed
!automod moderator user โ auto-give moderator when role removed
!automod remove user โ auto-remove role when given
!automod defend user โ demote kicker to friend when this user is kicked
!automod protect user โ auto-kick whoever kicks this user
!automod โ list current rules
!automod remove [action] [user] โ remove a specific rule
!automod clear โ clear all rules
!model preset quality โ Opus / Sonnet / Haiku
!model preset max โ Opus / Opus / Opus
!model preset balanced โ Sonnet / Haiku / Haiku
!model preset budget โ Sonnet / Haiku / Local
!model preset local โ everything local Ollama
!model preset off โ disable all AI (tools still work)
!model all [model] โ set all tiers
!model primary opus โ set a specific tier
!model ask opus โ override just !ask to use Opus
!model chatty local โ override chatty to use local
!model roast sonnet โ override roasts to use Sonnet
!model ask reset โ remove override, fall back to tier
!model reset overrides โ clear all overrides
!model status โ show tiers + active overrides
!model list โ list models, presets, and functions
!model preset intelligent โ dynamic model selection based on complexity, budget, and user feedback
!model mode smart โ LLM-classified routing (uses local gemma3:4b to classify complexity, ~2s). Routes: simpleโHaiku, moderateโSonnet, complexโOpus
!model mode fast โ rule-based routing (instant, no LLM). Routes: simpleโHaiku, moderateโHaiku, complexโSonnet
!model budget [amount] โ set daily budget (e.g. !model budget 5 for $5/day)
!model budget โ show current spend + remaining
!model costs โ detailed cost breakdown by model and function
!model feedback โ show quality scores per model based on user reactions
!sniff alone shows the tally of unknown types seen.
!turf season (anyone) shows the standings, the day and the pot without ending anything.
!gangs reset โ this clears the board, not the players.
!gangs reset confirm to go through with it. Distinct from a season ending, which keeps rep and hands stakes back.
!vault mint jackpot|casino|reserve <amount> โ the wheel jackpot goes through the backend (it's the same pot the site and Discord see), the casino vault and Reserve are the bot's own. Aliases work: wheel/spin for the jackpot, fed/bank for the Reserve. Amounts take k and m suffixes, so !vault mint casino 500k is fine.!reserve mint <amount> still works as the Reserve shortcut.!reserve auto on|off has the daily tick top the Reserve back up to a floor automatically (off by default), and !reserve floor <amount> sets that floor. Plain !reserve is public and just shows the balance.
!turf sinks shows last tick's captured volume per business and โ importantly โ how much went over the sink cap and spilled to the heist vaults. If one business is swallowing everything, that's where you'll see it. !turf cargo shows what's on the road right now or what's queueing for the next convoy.
0 = unlimited. Anyone can run !gang limits to see the current values. This replaced the old flat daily wage: income now stays in the treasury and members draw what they need, so the active get paid and the inactive don't.
!alerts sound|tts|text on|off, plus !alerts on|off as this room's master switch. Scope is per event and global: !alerts heist room|global. !alerts <type> force on|off lets an alert bump someone off the mic to be heard, and !alerts voice <name> gives spoken alerts their own voice. !alerts test <type> fires one to check the setup.
!say rake, the tip tap, the treasury-withdrawal laundering cut, the heist-shop vault share, the sink cap (the single biggest lever on how much PAT reaches the heist vaults), bank payout and cap multipliers, the mint rate, the season-pot share, and how incoming vault PAT splits between the casino vault and the Reserve. Shop Items prices everything buyable plus the bonuses items carry (Bottle Service XP, burner heat reduction), and Voice Store handles per-voice pricing and royalties.