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
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:
/geo mode streaks
streaktype
:CountryStreak
streaktype
s are CountryStreak
and UsStateStreak
moving
:Moving is allowed
moving
are Moving is allowed
and Moving is not allowed
panning
:Panning is allowed
panning
are Panning is allowed
and Panning is not allowed
zooming
:Zooming is allowed
zooming
are Zooming is allowed
and Zooming is not allowed
time
:0
(No time limit)0
and (2^31)-1
(the maximum value 2147483647
being roughly equivelant to 24855 days)/geo mode classic
map
: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.
moving
:/geo mode streaks
panning
:/geo mode streaks
zooming
:/geo mode streaks
time
:/geo mode streaks
/geo mode battle-royale
lobby
: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.
gametype
:Battle-Royale Countries
Battle-Royale Countries
and Battle-Royale Distance
.lobby
is specified.moving
:/geo mode streaks
lobby
is specifiedpanning
:/geo mode streaks
lobby
is specifiedzooming
:/geo mode streaks
lobby
is specifiedtime
:/geo mode streaks
lobby
is specifiedspy
:The Spy-powerup is available
The Spy-powerup is available
and The Spy-powerup is not available
lobby
is specified5050
:The 5050-powerup is available
The 5050-powerup is available
and The 5050-powerup is not available
lobby
is specified