This is a simple implementation of a discord bot that send GeoGuessr-challenge links on demand.
IF YOU ARE PLANNING TO HOST THIS BOT, PLEASE DO KEEP IN MIND THAT IT AGAINST GEOGUESSR'S TERMS OF SERVICE TO HOST A PUBLIC INSTANCE OF THIS BOT AND HOSTING ONE WILL MOST LIKELY GET YOUR GEOGUESSR ACCOUNT DISABLED
- Slash-commands
- Lightning-fast response times
- Minimal resources used
- 1 GeoGuessr pro account
DISCORD_TOKEN=YourBotsToken
APPLICATION_ID=YourBotsAppId
GEOGUESSR_AUTH_TOKEN=YourLoginCookies
RUST_LOG=info
Run the compiled binary (Remember to setup your .env)
./target/release/geoguessr-bot-rs
The bot works by calling the (undocumented) GeoGuessr-API with reverse-engineered http-request-calls.
This allows the bot to be lightning-fast and reliable even in multi-user applications.
As a side product, the bot is able to generate challenges that are not possible to be created with
the GeoGuessr-UI but that are still allowed by the API (such as challenges with massive/tiny per-round time limits).
The bot authenticates with cookies specified in the .env
-file.
In discord, just start typing /geo
on a channel on which the bot has access to and follow the suggested entries.
There are 3 main subcommands (modes) of the /geo
slash-command.
Those are used to specify the gamemode. Available gamemodes at this point are streaks
, classic
and battle-royale
.
These subcommands have their own suboptions that are specified as follows:
- Optional, defaults to
CountryStreak
- Available
streaktype
s areCountryStreak
andUsStateStreak
- Optional, defaults to
Moving is allowed
- Specifies whether moving will be allowed in the generated challenge.
- Available options for
moving
areMoving is allowed
andMoving is not allowed
- Optional, defaults to
Panning is allowed
- Specifies whether panning will be allowed in the generated challenge
- Available options for
panning
arePanning is allowed
andPanning is not allowed
- Optional, defaults to
Zooming is allowed
- Specifies whether zooming will be allowed in the generated challenge
- Available options for
zooming
areZooming is allowed
andZooming is not allowed
- Optional, defaults to
0
(No time limit) - Specifies the per-round time limit for the generated challenge in seconds
- Has to be an integer between
0
and(2^31)-1
(the maximum value2147483647
being roughly equivelant to 24855 days)
- Required
- Specifies the name of the map for the generated challenge.
Internally the bot queries the GeoGuessr-API and chooses the 1st result. The results are the same that show up while using the search function on the GeoGuessr website.
- Optional, same as in
/geo mode streaks
- Optional, same as in
/geo mode streaks
- Optional, same as in
/geo mode streaks
- Optional, same as in
/geo mode streaks
- Optional
- Specifies the url to the the
lobby
that's game should be started.
If no lobby
is specified all the other options will be ignored and a lobby will be created.
The url for the created lobby will then be returned as an answer to the slash-command.
- Optional, defaults to
Battle-Royale Countries
- Specifies the type of the game that should be started.
- Available options are
Battle-Royale Countries
andBattle-Royale Distance
. - Will be ignored if no
lobby
is specified.
- Optional, same as in
/geo mode streaks
- Will be ignored if no
lobby
is specified
- Optional, same as in
/geo mode streaks
- Will be ignored if no
lobby
is specified
- Optional, same as in
/geo mode streaks
- Will be ignored if no
lobby
is specified
- Optional, same as in
/geo mode streaks
- Will be ignored if no
lobby
is specified
- Optional, defaults to
The Spy-powerup is available
- Specifies whether the Spy-powerup will be available in the started match
- Available options are
The Spy-powerup is available
andThe Spy-powerup is not available
- Will be ignored if no
lobby
is specified
- Optional, defaults to
The 5050-powerup is available
- Specifies whether the 5050-powerup will be available in the started match
- Available options are
The 5050-powerup is available
andThe 5050-powerup is not available
- Will be ignored if no
lobby
is specified