PepeFrog Bot

Your friendly neighborhood fight room AI

๐Ÿ”— Live Pages
๐Ÿ—บ๏ธ Turf Wars โ€” how to play The full guide to gangs, boroughs, the economy, invasions and upgrades.
๐Ÿ—บ๏ธ Turf control map Live London map โ€” who controls what, borough stats and gang standings.
๐Ÿ’ฐ Heist guide & leaderboard How the heist works, top hauls, and the "vault cracked byโ€ฆ" hall of fame.
๐Ÿด Gang leaderboard Every gang ranked by rep, with rosters, levels and treasuries.
๐Ÿ† PAT rankings Top PAT balances and the recent jackpot winners.
๐Ÿ’ฌ Commands (this page) The full command reference for everything the bot does.
๐Ÿ’ฌ Chat & AI
!ask [question] Ask the AI anything. Uses web search, room data, mic transcripts, and memory for context. Can also check balances, spin the wheel, and more via natural language. Cost: 1,000 PAT
!roast [user] Roast a user based on their chat history, mic transcripts, and what others say about them. Use !roast me for a self-roast. Cost: 5,000 PAT
!web [query] Search the web and get summarized results.
!epstein [search term] Search the DOJ/Epstein document archive. Use quotes for exact phrases.
๐Ÿ’ฐ PAT Economy
-p (privacy flag) Replies appear in public chat by default. Add -p (or -pm) to the end of any command to get the reply as a private message instead. Example: !balance -p
-mic (voice flag) Add -mic (or -voice) to the end of an !ask or !roast and Pepe speaks the answer aloud on the mic instead of typing it. Example: !roast bob -mic. (Needs Pepe's voice/TTS switched on; falls back to typing if it's off.)
!balance Check your PAT (Public Access Token) balance.
!beg Broke? Beg for a handout โ€” a random 0โ€“10,000 PAT. Only works when your balance is under 5,000 (the spin cost), you're at least level 2, with a 3-hour cooldown.
!history Show your 5 most recent transactions (tips, wins, wagers, bonuses) with amounts and timestamps.
!spin Spin the Wheel of Misfortune. Costs 5,000 PAT per spin.
!tip [user] [amount] Transfer PAT to another user. Tip pepe (or jackpot) to donate straight into the heist jackpot vault.
!xp Check your current level and XP. Earn XP from chatting (1/msg) and mic time (1/sec).
!top Show the top 5 PAT balances.
!redeem Learn how to redeem your PAT for real prizes. Sign up at publicaccess.tv, link your Camfrog username, and your balance syncs automatically.
!verify [code] Verify ownership of a Camfrog username when linking from publicaccess.tv. Initiate the link on your profile page, get a code, then type it here to prove the account is yours and merge your bot PAT.
!duel [user] [amount] Challenge someone to a dice duel for PAT. Min 100, max 50,000.
!accept / !decline Accept or decline a pending duel or brawl challenge (60s to respond).
!dueltop Dice duel leaderboard.
!arena [buy-in] Open The Arena โ€” a sheet-based PvP battle royale. Everyone who !joins pays the buy-in into one pot. Each round announces a combat style (a random stat), fighters are paired off, and each clash is an opposed roll of d20 + that stat's modifier + gear (advantage on your class stat) โ€” the loser is eliminated. The field halves every round until one gladiator remains and takes the pot (a small cut feeds the jackpot). Uses your !sheet stats and heist gear.
!brawl [user] [amount] Challenge one player to a 1v1 sheet-based brawl for PAT โ€” a best-of-5 of opposed stat clashes (rotating combat style each round). Winner takes the pot minus a small jackpot cut. They !accept or !decline.
!arenatop / !brawltop Leaderboards for The Arena and Brawls, ranked by total wins. Your record also shows on your !sheet.
!gang [subcommand] Form and run a gang. !gang create [TAG] <name> founds one (50,000 PAT) โ€” the [TAG] is optional (auto-generated if you skip it) and can be changed anytime with !gang tag <TAG>. Recruit with !gang invite @user (they !gang accept). Also: leave, kick @user, promote/demote @user, boss @user, deposit <amt> (fund the treasury), disband, info [name]. Every member win earns the gang rep โ†’ levels โ†’ more member slots. Keep 5+ gangmates alive together in a heist for a synergy roll bonus (it fades if the gang gets whittled down).
!gangtop Gang leaderboard by rep, with a link to the full /gangs page.
๐Ÿ‚  Texas Hold'em (in-chat)
A full No-Limit Texas Hold'em cash game played right here in chat โ€” no Discord needed. Chips are your PAT (1:1): buy in to sit, cash out any time. Your two hole cards are sent to you privately by PM so nobody sees them; the board, betting and pots all play out in the room. Anyone can open a table and deal.
!holdem start [sb]/[bb] Open a table at the given blinds, e.g. !holdem start 25/50 (up to 5000/10000). One table at a time; buy-ins range 20โ€“200 big blinds.
!sit [amount] Take a seat and buy in for that many chips (PAT is escrowed), e.g. !sit 5000. Sit during a hand to be dealt in on the next one. Up to 9 players.
!holdem deal Deal the next hand (needs 2+ seated players). Hands also auto-continue ~15s after the previous one ends.
!check / !call / !fold Your basic in-turn actions. !check when nothing's owed, !call to match the bet, !fold to muck. You have 60 seconds to act or you're auto-checked/folded.
!bet [n] / !raise [to] / !allin Put chips in: !bet 200 opens the betting; !raise 600 raises to a total of 600; !allin shoves your whole stack. Side pots are handled automatically when someone's all-in for less.
!cards Re-send your hole cards to yourself by PM (in case you missed them), along with the current board.
!stand Leave the table and cash your remaining chips back to PAT. In a live hand you're cashed out once it ends (or !fold to leave sooner).
!holdem status / end !holdem status shows seats, stacks, board and pot. !holdem end closes the table and cashes everyone out (starter or admin only).
๐Ÿ‚ก Blackjack (Pepe deals)
Vegas-style Blackjack with Pepe as the dealer, played in chat and shown on stream. 6-deck shoe (freshly shuffled and provably fair every round), a natural blackjack pays 3:2, and the dealer hits soft 17. You bet PAT each round (max 10,000); beat Pepe's hand without going over 21. Your cards are face up โ€” only Pepe's hole card stays hidden until he plays. Can't run at the same time as a poker table.
!blackjack start Open a blackjack table (aliases: !bj start). Anyone can start one; up to 6 players.
!bet [amount] Place your bet for the round while betting is open, e.g. !bet 500 (100โ€“10,000 PAT). The first window is ~30s; after that it's only ~10s between hands โ€” or a player can !bj deal to start immediately. If a hand is already in progress, !bet reserves you a seat and joins you into the next round (charged when betting reopens).
!autobet [amount] Auto-play so you don't retype each hand: !autobet re-bets your last amount every round, or !autobet 500 sets a fixed amount. A manual !bet overrides it for that hand; !autobet off stops. If you can't cover it, autobet switches off automatically.
!hit / !stand On your turn: !hit takes another card, !stand keeps your total. Go over 21 and you bust. You have ~30s to act or you auto-stand.
!double Double your bet on your first two cards and take exactly one more card. Allowed after a split too (DAS).
!split Split a matching pair into two hands (extra bet equal to your first), resplit up to 4 hands. Split aces get one card each.
!insurance When Pepe shows an Ace, take insurance (a side bet of half your bet) that pays 2:1 if he has blackjack. Aliases: !insure.
!bj status / leave / end !bj status shows the table; !bj leave (or !leave) leaves after the current round; !bj end closes the table (starter or admin only). Winners are paid by the house; half of every losing bet feeds the shared jackpot vault.
The table keeps itself tidy: if nobody bets for a couple of windows it closes; if you skip 3 rounds without betting you're dropped from your seat; and if you time out 3 times in a row (AFK), your autobet is turned off and you're removed. Just play a hand to reset.
๐ŸŽค Mic & Transcripts
!micstats [user] [period] Mic stats for a user. Periods: 1h, 3h, 12h, today, week, month, all.
!mictop [period] Top 10 mic users by time. Same period options as micstats.
!replay [user] [n] Show last n mic transcripts. Filter by user. Use !next to paginate.
!search [term] [n] Search mic transcripts. Supports "exact phrases" and multi-word AND. Use !next to paginate.
๐ŸŽ™๏ธ Pepe's Voice NEW
!say [text] Make Pepe speak your words aloud on the mic in his cloned voice โ€” 5,000 PAT (admins free). Add -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.)
!mic tts voices List the voices you can use with !say -v <voice>. Anyone can run this one.
!mic tts on|off ยท voice ยท model ยท engine ยท chatty ADMIN Configure Pepe's voice. on/off enables TTS; voice <name> sets the default voice (list them with !mic tts voices, which is public); model <1.7B|0.6B|1B|3B> and engine <name> switch the TTS model; chatty <0-100> sets how often Pepe mics up his chat lines instead of typing them; caption on/off also posts the text when he mics up (for accessibility); test [text] speaks a test line.
!mic grab ยท force ยท lock ยท drop ยท slots ADMIN Pepe's own mic control. grab/hold takes & holds a mic (re-grabs when a slot frees); force seizes a slot even when the mic's full; lock self,alice,โ€ฆ restricts the mic to named users (everyone else is blocked) and unlock lifts it; drop lets go; slots <n> sets the room's mic-slot limit.
!mic status ยท device ยท test ADMIN status shows everything at once โ€” hold mode, whether the audio pipeline is armed, whether Pepe holds a slot, who else is on the mic, any lock or force-block, and the output device. device <name> sets that output device by substring (e.g. !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.
!mic force audio on|off ADMIN Lets Pepe interrupt a full mic to play a clip โ€” a !say, an alert sting, or a chatty mic-up. When it's on and every slot is taken, he bumps whoever's on, plays the clip, then drops and unblocks them straight away. He does not keep the mic, which is what makes this different from plain !mic force (that seizes a slot and holds it). Off (the default) he just waits for a slot to free up, and a clip is only dropped if the mic stays full for the whole wait. Handy in a busy room where Pepe would otherwise never get a word in; rude if you leave it on during a serious conversation.
!mic click ยท pipeline ADMIN Resync tools for the rare case where Pepe's mic state drifts (he's really on the mic but thinks he's off, so drop does nothing). click (aliases resync/kick) fires a raw mic-button click without changing his tracked state โ€” it physically toggles the real mic so you can nudge hardware and belief back into agreement, then use grab/drop normally. pipeline also clicks but flips the tracked arm/disarm flag with it.
!mic alerts on|off ยท music on|off ADMIN alerts plays sound stings on the mic for big moments (heist, jackpot, invasion, big win). music makes Pepe hold the mic while the jukebox plays so the whole room hears it.
๐Ÿ‘๏ธ Pepe's Eyes (Cam Vision) NEW
!look [user] (also !see, !peek) Pepe opens the user's cam, waits for it to load, and describes what he sees in character โ€” 10,000 PAT (admins free; must be switched on). !look with no name lists the cams currently open. Add -mic to have him say it aloud, -p to get the reply as a PM.
!camroast [user] (also !roastcam) Pepe roasts the user using their cam as visual material (plus what he knows about them) โ€” 20,000 PAT (admins free; must be switched on).
!cams List who's currently broadcasting a cam.
!cam [user] ADMIN Open a user's cam inside Camfrog so Pepe / the operator can see it.
!userlist ADMIN List the participant list's real usernames (recovered from Camfrog's owner-drawn list).
!lookpublic on|off ADMIN Allow or deny regular users to use !look / !camroast (admins can always use them). Alias !lookmode.
!chattycam on|off ADMIN Let chatty mode glance at a user's cam for context when seeing it would improve a reply.
๐ŸŽฎ Games & Activities
!trivia [buy-in] [topic] Open a trivia lobby. Everyone pays the buy-in into a prize pot โ€” winner takes it all! Buy-in is optional (defaults to 1,000 PAT) and an optional topic can follow. Needs at least 2 players; the lobby stays open ~60s for others to !join.
!join Join whatever's forming โ€” the open trivia lobby or a heist crew โ€” by paying the buy-in.
!score Show the current trivia pot and the points leaderboard.
!trivia stop Cancel the session early (starter or admin only) โ€” all buy-ins are refunded.
!heist [job] Rob a target, D&D-style โ€” a multi-round survival gauntlet with your !sheet stats, gear, and gang. Each round everyone rolls 1d20 + a random stat's modifier vs a rising difficulty (plus crew/flawless/gang bonuses). Survive to accrue loot, !bail to cash out, get pinched and your loot is split among the survivors. Survivors crack the target: every one rolls a d20 and the top 5 sum to the % they blow open. Jobs (!heist <job>, or !heist list): ๐Ÿช store โ€” small, quick, always open (its own small till, no jackpot); ๐ŸŽฐ casino โ€” the classic vault job (needs a 100k+ vault); ๐Ÿšš convoy โ€” harder, bigger stakes (needs a casino job first, 250k+ vault); ๐Ÿ›๏ธ bank โ€” the legendary Federal Reserve (needs ๐Ÿ“ Blueprints found on casino/convoy jobs, 500k+ vault). Money jobs are paced by two gates: your own personal heat meter (each job you start heats you up and cools over time โ€” it's yours alone, so other people's heists never block you) plus a global cooldown per job type (store 30m, casino 1h, convoy 2h, bank 3h). Each job caps its vault take โ€” casino โ‰ค40%, convoy โ‰ค70%, bank 100% โ€” so a fat vault is worth far more to a bank crew than to casino grinders. Deep runs can drop rare scores: ๐Ÿ“ Blueprints (unlocks the bank), ๐ŸŽฒ Loaded Dice (!reroll a stat), ๐Ÿ’ Kingpin's Ring (!ring +1 a stat), ๐Ÿ“ˆ The Fence (+10% payouts), and ๐Ÿง  Mastermind (advantage on your two best stats). Gear up with !shop. See /heist for the guide.
!bail During a heist, cash out between rounds to lock in your accrued loot and quit while you're ahead โ€” only affects you. Press your luck or play it safe (if you get pinched, you lose your loot to the crew).
!heisttop Show the heist leaderboard โ€” top hauls and deepest runs โ€” plus a link to the full guide & "vault cracked byโ€ฆ" hall of fame.
!sheet View your heist character sheet โ€” your unique pixel avatar, 6 D&D stats and your class, which gives advantage on its stat. Use !sheet <user> to look someone up, or !sheet regen to re-roll your stats for 50,000 PAT (resets and hands back all your allocated points to spend again; your heist record and avatar are kept).
!avatar Show your one-of-a-kind pixel avatar. It appears on your !sheet, on the gang roster page, and on the live heist & arena stream overlays (your rolls, wins and losses play out on screen). !avatar regen mints a fresh random look for 20,000 PAT.
!allot [stat] Spend a stat point on str/dex/con/int/wis/cha. You earn 1 point every 10 levels.
!reroll [stat] Spend a ๐ŸŽฒ Loaded Dice (a rare heist drop) to re-roll one stat โ€” a gamble, it can go up or down (and may change your class).
!ring [stat] Spend a ๐Ÿ’ Kingpin's Ring (a rare heist relic) to permanently raise one stat by +1 (up to 20).
!shop Browse the heist gear shop โ€” permanent gear (Body Armor: +2 CON/โˆ’1 DEX, Sidearm: +2 STR/โˆ’1 CHA, Grip Gloves: +2 DEX/โˆ’1 STR), personal consumables (Lockpick re-rolls a failed check, Handcuff Keys ~50% to slip a pinch, A Good Lawyer 49% to keep your loot when pinched), and crew perks that help everyone (Getaway Driver pulls the first robber out of a pinch, Police Scanner gives the whole crew +2 on a tense round, Schematics โˆ’1 to every DC, Smoke Bomb gives the whole crew advantage on a brutal round). Plus arena/PvP gear (Brass Knuckles: +1 on physical / โˆ’1 on mental clashes; Adrenaline Shot: re-roll a losing clash; Second Wind: ~50% to survive an arena elimination). Big-ticket buys: ๐ŸŽญ Body Double (20k โ€” a decoy takes the fall, guaranteeing you survive one pinch), ๐Ÿงณ Burner Identity (40k โ€” knock 40 off your heat), ๐ŸŽฉ Alibi (50k โ€” your next money job gains no heat), and ๐Ÿ“œ Presidential Pardon (100k โ€” wipe your heat to 0 instantly). Half of each purchase feeds the jackpot vault. Full details on /heist.
!buy [item] [qty] Buy heist gear with PAT, e.g. !buy lockpick 3 or !buy armor. It's stored on your sheet and auto-triggers during your next heist โ€” no mid-heist commands needed.
!gear Show your owned gear and consumables (or !gear <user> to check someone else's loadout).
!showdown Start a Showdown โ€” a Price-is-Right guessing game. The bot picks a secret number from 1 to 10,000. Everyone who joins pays a 10,000 PAT buy-in into one pot, and the closest guess without going over wins the whole pot (ties split it). Nail the number exactly for a jackpot bonus. Guessing is open for 90 seconds. The pot is just the buy-ins โ€” no PAT is minted.
!guess [number] Join the running Showdown and lock your guess (1โ€“10,000), paying the 10,000 PAT buy-in. One guess each, and guesses are public as they come in.
!pictionary [rounds] [theme] Start a game of Pictionary โ€” the bot draws a picture (live on the stream) and the room guesses. Each round it picks a secret word and sketches it on screen; just type your guesses in chat (no command needed) and the first correct guess wins a PAT prize. Hints drop as the clock ticks, and a leaderboard shows at the end. Pick a theme when you start โ€” e.g. !pictionary movies, !pictionary 5 animals, !pictionary the 90s (round count optional, default 10). Free to play. Also !doodle / !draw.
!poll [question]? [opt1], [opt2], ... Start a poll. Users vote by typing the option number. Creates a live results page.
!results Show current poll results.
!endpoll End the current poll and announce the winner.
!votekick [user] Start a vote to kick a user from the room. Needs at least 5 voters with 80% voting yes to pass. Vote lasts 60 seconds. Can't votekick admins.
!vk yes / !vk no Cast your vote on an active votekick. Type !vk alone to see current tally.
!voteblock [user] Start a vote to mic-block a user (mutes their mic; they stay in the room). Needs at least 5 voters with 80% voting yes to pass (4 of 5). Vote lasts 60 seconds. Can't voteblock admins.
!vb yes / !vb no Cast your vote on an active voteblock. Type !vb alone to see the current tally.
!votemod [user] Start a vote to strip a user's moderator status. Needs at least 10 voters with 80% voting yes to pass. Vote lasts 60 seconds. Can't target bot admins.
!vm yes / !vm no Cast your vote on an active votemod. Type !vm alone to see the current tally.
!timeout [user] [hours] NEW Time a user out โ€” pulls them off the mic/red list, de-mods and mutes them, then auto-lifts when the timer's up (default 24h). Admins apply it instantly; anyone else starts a community vote (10 voters, 80% โ€” same bar as !votemod).
!strike appeal [user] NEW Appeal a user's most recent automod strike โ€” removes the strike, refunds its PAT fine, and lifts any timeout. Admins appeal instantly; anyone else starts a 5-person community vote (80%).
!vote yes / !vote no NEW Cast your vote on an active community timeout or appeal vote (aliases !votey / !voten). If no such vote is live, !vote <option> votes in the current poll instead.
!sponsor [message] Sponsor the bot for 10,000 PAT: your message is posted in chat once an hour for 24 hours. Only 4 sponsor slots at a time (messages are spaced out across each hour). !sponsor list shows active sponsors; !sponsor stop cancels yours (no refund).
๐Ÿ—บ๏ธ Turf Wars NEW
Gangs fight for control of 10 London boroughs, each running a business (autoshop, casino, nightclub, money launderingโ€ฆ) that feeds your gang treasury every day. The treasury pays daily wages and funds fortifications and upgrades. Claim empty turf, then raid rivals to expand โ€” but spreading too thin runs up heat, invites police raids, and puts a Most-Wanted bounty on the biggest gang. Full guide: /turfwars ยท live map: /turf.
!turf ยท !map Show the live control map โ€” who holds what. !turf <area> shows a single borough's business, owner, stake, income and defences. !turf help lists the sub-commands.
!claim [area] Claim an unowned borough for your gang, locking a stake from the treasury (outer 500k ยท midtown 2M ยท Mayfair 10M PAT). Higher tiers need rep earned since Turf Wars launched (midtown 5,000 ยท Mayfair 15,000) โ€” so no grabbing the casino on day one.
!invade [area] Raid a rival gang's borough that borders one of yours. Opens a muster window โ€” your gang !joins the crew while the defenders !defend. The crew rolls through the stash's defence DC ladder; crack it to seize the stake and flip the borough, or get repelled. Same tier-rep gates as claiming. (Pepe pulls on a balaclava for the raid. ๐Ÿด)
!join Join the raiding crew during an invasion's muster window (also joins a forming heist crew or trivia lobby).
!defend Rally to your gang's stash while it's under attack โ€” every online defender raises the defence DC the raiders must beat.
!fortify [area] [amount] Spend treasury PAT to permanently raise a borough's defence DC against future invasions.
!turf upgrade [area] [name] Buy a permanent stash upgrade for a borough you hold: guards (always-on defenders), panicroom (shields part of the stake when cracked), laundromat (boosts the business's income).
!turf name [area] [name] Rename your borough's business for flavour โ€” your name shows on the control map.
!turf sinks Show how much real player spending each business captured on the last daily tick (a calibration view of where the economy's PAT is flowing).
!gang deposit / withdraw [amt] Fund or draw from the gang treasury. Withdrawals are capped at 100,000 PAT/day (daily wages don't count) so nobody drains the war chest in one go. See also !gang upgrade and !gang defect (leave your gang).
๐ŸŽจ AI Generation
!imagine [prompt] Generate an AI image. Mention a user's name to include context about them. Add a URL to use as reference. Cost: 25,000 PAT
!video [prompt] Generate a short AI video. Add an image URL for image-to-video. Cost: 50,000 PAT
!chart [topic] Generate a data visualization. Can use room data (mic stats, spin history, etc.) or any topic. Cost: 10,000 PAT
๐ŸŽต Spotify
!np Show the currently playing track, artist, progress, and who requested it (aliases: !nowplaying, !song). Pepe also knows what's playing โ€” just ask him.
!upnext See what's playing and the upcoming queue (with who requested each track). Aliases: !nextup, !queued, !qlist โ€” or just !queue with no song.
!queue [song] Add a song to the queue for 1,000 PAT (search by song, artist, or both); if nothing's playing it starts immediately. When there's one clear match it's added right away; if the match is ambiguous (or several versions exist) you'll get a numbered list to !pick from. To keep it fair, you can have at most 2 tracks waiting at a time, and you can't add a track that's already in the queue โ€” so nobody floods it.
!find [song] ยท !pick [#] !find (alias !songsearch) always lists the top matches so you can choose the exact track, then !pick 2 queues that one. Use this when !queue keeps grabbing the wrong version. (Note: !search is the transcript search, not music.)
!remove Remove the last track you added to the queue (alias !unqueue). Spotify can't pull a song out of the queue directly, so it's automatically skipped the moment it comes up.
!skip Vote to skip the current track. Needs 3 votes to pass. Admins skip instantly.
!djban [user] ADMIN Suspend a user's DJ privileges โ€” they can't queue, skip, pause or control the music (they can still see !np). !djunban [user] restores it; !djbans lists who's banned. Persists across restarts.
!pause / !resume Vote to pause (or resume) the music โ€” 3 votes to pass, just like !skip. Admins pause/resume instantly.
!dj on|off NEW ADMIN Put Pepe on the decks โ€” he auto-DJs, generating an eclectic set on the fly: crowd-pleasers, deep cuts, every era and genre, no repeats. He reads the room โ€” the songs you !queue become cues for what he lines up next. He'll even drop a spoken DJ line over the intro of some tracks (ducking the music under his voice) โ€” toggle with !dj talk on/off. !dj next cues one now, !dj genre <g> nudges the vibe, !dj min <1-5> sets how many picks stay queued ahead, !dj status shows what's going on.
!play [song] Search and play a song, playlist (!play playlist name), or album (!play album name); without a query it starts/resumes playback. Admins play instantly; everyone else votes โ€” 3 people typing the same !play [song] makes it play (like !skip/!pause). Pepe auto-wakes the speaker device first, so playback starts even if Spotify was idle.
!vol [0-100] ADMIN Set Spotify volume.
!repeat [track/off] ADMIN Toggle or set repeat mode. Modes: track, context (playlist/album), off.
!shuffle [on/off] ADMIN Toggle or set shuffle mode.
๐Ÿง  Memory & Logs
!memory recall [user] See what the bot has learned about a user.
!log [search] Search the chat logs. Supports "exact phrases" and multi-word AND. Use !next to paginate.
!modlog [type] [user] [n] View mod actions. Types: kick, block, ban, unban, punish, unpunish, topic, friend, moderator, admin, removed. Filter by user (matches both actor and target). Use 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.
!next Show the next page of results (for replay, search, log, modlog).
๐Ÿ”ง Admin Only ADMIN
!chatty on/off/status Toggle chatty mode โ€” bot chimes in on conversations unprompted.
!autotopic on/off/now/status Toggle auto-topic โ€” bot sets a witty room topic via /topic as the conversation evolves (every ~20 min + 30 msgs). Use now to force an immediate topic change.
!transcript on/off/status Toggle mic transcription.
How multiple rooms work NEW Pepe can sit in several Camfrog rooms at once, and each one is its own place.
People carry over, rooms don't. What he knows about you follows you between rooms (and he'll say where he heard it โ€” "you mentioned that in the other room"); a room's own lore, chat log and transcripts stay in that room.
Chat & transcripts are per room. Anything that quotes history โ€” !ask, !roast, !chart, chatty replies, DJ patter โ€” only draws on the room you're in. So do !log, !replay, !search, !mictop, !micstats and !modlog. Add -all to any of those to search or total across every room instead.
Settings are per room. Games, chatty, cams and the rest can be switched on in one room and off in another from the admin panel's room selector โ€” only the AI model/API settings are shared.
Telegram has its own scope: /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.
Voice and cams live in one room at a time โ€” whichever !audioroom / !activeroom point at. Mic and cam commands are refused elsewhere with a note saying which room owns them.
!audioroom [room] ยท all NEW When Pepe is in more than one room, set which room's audio is live. Loopback captures a single audio stream, so only the chosen room's mic-ups get recorded/transcribed โ€” the others are skipped to avoid misattributing what was said. !audioroom alone shows the current room and the rooms seen; !audioroom all (or off) records every room. (Alias: !microom.)
!activeroom [room] ยท auto NEW When Pepe is in more than one room, set which room's window is targeted by window-driven actions โ€” his own mic button, the participant-list read, and cam opening. Matched as a substring of the room window's title bar. !activeroom alone shows the setting; !activeroom auto reverts to first-match (the single-room default). (Alias: !winroom.)
!roomwindows NEW Diagnostic: list Camfrog's open window titles so you can see what to match !activeroom against (the room name can differ from the title bar). Run this first when setting an active room. (Alias: !winlist.)
!memory correct [user] [old] -> [new] Correct a fact in the bot's memory.
!memory prune [user] [text] Remove a specific fact from memory.
!memory alias add [user] [alias] Manually add an alias for a user.
!memory alias remove [user] [alias] Remove an alias from a user.
!memory link [primary] [alt] Link two usernames as the same person. Facts from both accounts are combined in lookups. Primary is the main account.
!memory unlink [primary] [alt] Remove a linked alt account from a primary.
!memory links [user] Show all accounts linked to a user.
!memory ignore [user] Ignore a user in the memory system.
!ignore [user] Toggle command ignore for a user โ€” their commands will be silently dropped. Run again to unignore. Run without a user to see the ignore list.
!globalunblock on/off Automatically unblock ANY user when they get mic-blocked. Overrides all block actions room-wide. Persists between restarts.
!strike [user] ยท appeal [user] NEW Automod polices mic-hogging and mod-power abuse with an escalating strike ladder. Each strike levies a growing PAT fine (50k โ†’ 150k โ†’ 450kโ€ฆ); a user who can't afford it takes a double strike instead, and they're told their count, the fine, and why. !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.)
!casinoban [user] NEW Ban a user from every casino game across all sources โ€” the web gold wheel, the in-chat wheel, Hold'em, Blackjack and the Discord bot. Matches their Camfrog name or their linked publicaccess.tv account. !casinounban [user] lifts it. Persists between restarts. (Aliases: !banfromcasino / !unbanfromcasino.)
!automod [action] [user] Set automatic moderator counter-actions. When a mod event is detected, the bot automatically sends the counter-command. Actions:
!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
Rules persist between restarts.
!model Tiered AI model control with per-function overrides.

Tiers: primary (ask/roast/chatty) | secondary (charts/polls/prompts) | background (memory/trivia/summaries)
Functions: ask, roast, chatty, chart, imagine, poll, trivia, memory, summary

Presets:
!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)

Tier control:
!model all [model] โ€” set all tiers
!model primary opus โ€” set a specific tier

Per-function override:
!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

Info:
!model status โ€” show tiers + active overrides
!model list โ€” list models, presets, and functions

Intelligent Router:
!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
The router adapts over time โ€” if users react negatively to a cheaper model's responses, it auto-upgrades. If a model consistently gets positive feedback, it may downgrade to save cost.

Budget Control:
!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

Models: opus, sonnet, haiku, local, intelligent, off. Auto-falls back to local when API credits run out. Persists between restarts.
๐Ÿ”ฌ Diagnostics (RE tools) ADMIN
Low-level reverse-engineering tools used to build the cam & mic features. Most install Frida hooks โ€” turn them off when done (several are heavy and can destabilize Camfrog if left on).
!sniff on|off (also !pktsniff) Dump any Camfrog packet whose type isn't decoded yet (hex + field breakdown). Turn on, do the action in Camfrog, read the console. !sniff alone shows the tally of unknown types seen.
!wintrace on|off Log window creation (class/title + backtrace) โ€” used to find the video render window. High-frequency; open one cam then turn off.
!camwatch on|off Stream the participant list's click / select / right-click notifications โ€” how a real click is structured.
!menuwatch on|off Capture WM_COMMAND / WM_CONTEXTMENU across Camfrog's windows โ€” used to find the "View Webcam" menu command id. Hooks ~90 window procs; detaches them on off.
!unames Recover the owner-drawn participant list's names by intercepting its paint calls; prints per-row strings + capture stats.
!listdiag Report the participant-list control's window style / mechanism (owner-data vs owner-draw), parent, and text reads.
!dumprows [n] Dump each list row's underlying data struct โ€” for probing per-row data.
โ„น๏ธ Info
Earning PAT Earn PAT by chatting in the room (enters you in automatic raffles), spinning the wheel, and winning trivia. Link your Camfrog username on publicaccess.tv to redeem for prizes like Discord Nitro and Camfrog Pro.
Earning XP 1 XP per chat message, 1 XP per second on mic. Level up to unlock future perks.
Telegram The bot is also available on Telegram! Ask questions, search transcripts/logs, set keyword alerts, and monitor the room remotely.