I'm part of a small Discord server and thought it would be funny to make a Geoguessr-style game1 where you get presented with a random interesting2 message from the server and have to guess when, where and by who it was posted.

How It Works

The game works by running /start to start a round.

Discord bot message showing 'CHANNELGUESSR — Round 5' with sections for Context Before, Mystery Message marked with a target emoji, and Context After. Message content is redacted. At the bottom it prompts 'Which channel?' and 'When was this posted?' with a 60 second timer.
Example of a round, started with /start context:2. The bot selects a random interesting message in the last year and displays some context around it.

Then players all guess the correct channel, date and user with /guess, and then finally the round auto-ends after a timeout.

Discord bot message showing 'Round Complete!' with the answer revealed: Channel, Posted date of July 22, 2025 at 3:06 PM (6 months ago), Author, and a 'Jump to message' link. Results show one player earned 100 points, with an X for incorrect channel guess and +100 for time.
The end of a round, where the only player did very badly. The maximum score is 1500 points: 500 for correctly guessing the channel, user and date, with partial credit for nearby dates.

There's also a leaderboard and personal stats.

Installation

I deployed the bot to cheap cloud provider, and you can install it on any server with this link:

Add to Discord3

The messages are selected with paging shenanigans4 to avoid having to ever store or index your messages, and I avoid storing any information except user IDs, server IDs, and scores (although user names and server names do appear in logs). See the privacy policy5 for details.

Source Code

The source code is on GitHub at brendanlong/channelguessr1.

Details

The full help command output:

Discord bot help message showing game description, How to Play steps (use /start, see mystery message, use /guess, round ends after 60 seconds), Scoring (500 points each for channel, time within 1 day, and optional author), and Commands list (/start, /guess, /skip, /leaderboard, /stats, /cleardata)