Last revision: October 9, 2019

Detective Pikachu is a Telegram bot aimed to create listing of participants for Pokémon GO raids.

You can ask for help in the group @detectivepikachuhelp and be informed of the development in the channel @detectivepikachunews.

This bot is not affiliated with Niantic or The Pokémon Company, it’s an independent resource to help raid organization in player communities.

  1. Guide for trainers
    1. Find your Community
    2. Trainer bot registration
    3. Create raid-announces (Announce) and raid-polls (Raid)
    4. Edit, cancel, delete and refloat a raid
    5. Join a raid
    6. Raid Alerts
    7. User Stats
    8. Text notes
    9. Settings
    10. More information
  2. Guide for admins
    1. Groups and channels
    2. Add the bot to a group or channel
    3. Bot configuration
    4. Gym locations
      1. Keywords
      2. Labels
      3. Zones
      4. Limits in the number of zones and locations
    5. Nanny mode
    6. Time zone and region
    7. Language
    8. Rankings
    9. Other commands for admins
    10. Admin tools
    11. Templates
    12. Communities Map
  3. Usage policy
  4. Privacy policy
  5. Frequent problems
  6. List of commands
  7. Credits

Guide for trainers

Find your Community

This bot is meant to be used inside a group, supergroup or channel. Usually, every city (or neighborhoods on big cities) have one or more communities.

To find a community in your area you can use the Communities Map.

If you can’t find a community in your area, you can create a new one. You’ll need to read the Guide for Admins where you can find instructions to add the bot to your group and configure it.

Trainer bot registration

The registration allows you to show your Trainer name, team and level in raid polls and to be counted in rankings. It’s necessary to be registered in order to use the +1 colored buttons. Some groups may require registration in order to join raids or even as a condition to be part of the group (at discretion of the group admins).

In a private chat with @detectivepikachubot, type the command /register to start the registration process. The process is automated and will ask you to make a screenshot of the game using specific conditions.

Telegram username

To be able to use the basic functions of the bot (create raids, sign up for raids …) it’s necessary to set the Telegram username. It can be done from Telegram settings.

Update level and team

If you are already registered, and want to update the trainer level or team just send a screenshot of your in-game profile to the bot.

Change of Trainer name

In case of Trainer name change, it’s necessary to go back to the Trainer bot registration. There is no restriction, even if you were previously validated with a different account.

Change of Telegram account

In case of changed of the phone number, it’s possible to keep your previous Telegram account after changing the associated phone number. If you keep your previous Telegram account, you do not have to do anything else.

After not using Telegram for a long time (accounts are typically deleted after six months of no use) or you have lost your phone number, there is no choice but to make an account change.

The username that you used in the past may still be registered in the bot, but upon detecting a new account with that username, it should be released. If this is not possible, you will receive an error when using the command /profile. In case of success, the username associated with your new account will appear.

If you try to register with a Trainer name previously associated with a different Telegram account, the bot shows the steps to follow before proceeding with the registration. Please note this is a manual process and may take some time.

Create raid-announces (Announce) and raid-polls (Raid)

The announces are raids in which the hangout time is not yet defined. Creating an announce in advance is the recommended way to create raid-polls.

As long as the group has configured the gyms location, you can send to the group a screenshot with the raid boss or the unhatched egg to automatically generate an announce. It’s also possible to create announces using the command /announce, or /raid and then clicking on the Create announce.

Announces and raids can also be created specifying other parameters in the command, even if the group has not configured the locations of the gyms, using the following command respecting the below order:

/raid pokemon time gym

You can also add the time when the boss will disappear, adding it at the end:

/raid pokemon time gym end-time

Some examples:

/raid Raikou 14:30 South Park
/raid Entei 3:30 Train Station
/raid Metapod 12 South Park 12:15
/announce Metapod 12 South Park

Instead of specifying a Raid Boss, it’s possible to set the egg level, for example, for a level 4 egg is T4:

/raid T4 13:00 Train Station

To create EX raids, use the word EX and specify the day of the raid in the following format:

/raid EX day/time gym

For example, for an EX raid on the 12th at 15:30 at the Music Fountain gym:

/raid EX 12/15:30 Musical Fountain

If a Raid Boss has more than one active form, you can specify it using the following format:

/raid pokemon/form time gym end-time

For example, for a Burmy raid in its Trash Cloak form:

/raid Burmy/trash 13:30 rainbow bridge

Notice that if the bot is being used in a channel, only administrators with permissions to write and send pictures will be able to create new announces and raids. In this case, you can only convert announces into raids or join existing raids, but not create new ones. Ask an administrator in your community for more information.

Edit, cancel, delete and refloat a raid

It’s posssible to edit and add all the details to a raid even after creation: change the hangout time, the gym, the Boss (or the egg) and the hatching and ending time.

To edit or add any of these details, reply to the message that contains the raid with one of following commands:

/time 12:00
/pokemon Wartortle
/form speed
/gym Magical Fountain
/endtime 12:30
/endtime -
/opentime 11:50
/opentime -

In the case of using “-“ as argument to /endtime or /opentime, the end or hatching time will be erased.

A raid can also be canceled by replying with the command /cancel, deleted using /delete and reposted with /refloat.

Usually, the raid creator and the admins are the only ones entitled to launch these commands, unless the group has enabled the option of permissive editing. By default, commands /delete and /refloat are enabled only for group admins, but can also be activated for the raid creator.

Raids are automatically considered completed after 30 minutes from the hangout time, but it’s possible to force the end using /close at any time after the start time.

Participants will receive private notifications in case the raid is edited, canceled or deleted.

When editing a time with /time is necessary to specify the day only if different from today. Instead it’s not necessary with /endtime and /opentime since by default it is always considered on the same day of the raid.

Join a raid

Once the raid is created, you can sign up by selecting Join. If you sign up few minutes before the hangout time, or even after, you could appear with a snail icon 🐌 in the list, depending on the group settings.

If you go with friends, you can use the +1 button for each additional account. If selected too many participants by mistake, use Join to reset the additional accounts and do it again. Please note that admins can limit the number of “+1” allowed or disable this option.

When you are on site, you can press the button There to register your presence.

If you signed up but then you are not able to participate, select Quit. If you delete the participation after more five minutes from signin up, you will remain on the list with a ❌ to let people know that you have unsubscribed. In groups with the option explicit quit enabled, select directly Quit to be included in the list.

From the time of the raid and up to six hours later, you can inform if you have captured the raid Pokémon by clicking on Gotcha!, It fled! or Shiny!. These buttons are not enabled by default and could be enabled by group admins.

For the participation to be counted for the rankings, it is necessary to join before the agreed start time and click There so that it is confirmed that you have attended the raid (this can be done after the start time). The configuration of the snail 🐌 has no effect. It’s also necessary to have completed the bot registration when the ranking is generated.

Raid Alerts

Users can configure private alert messages when creating raids or announces in certain gyms or for certain Boss. To configure them, send privately to che bot the command /alerts and follow the instructions.

For Bosses with different forms, you can setup alerts for all forms by choosing the option without form specified, or only to specific forms by choosing only the forms you want.

There is a limit of 30 gyms and 12 Pokémon alerts for each group. Using /clearalerts it’s possible to delete all the alerts at once.

Note that to activate the alerts you must have joined at least one raid in a group with the locations of the gyms configured and the option to allow alerts enabled, otherwise the group and the gyms will not appear.

User Stats

Users can request their personal participation statistics with the command /stats. The statistics have the same rules for counting of the rankings.

Text notes

If enabled for a group, the raid organizator can add text notes to a raid message. Note will be shown after the raid footer and will be sent by PM to all previously joined trainers.

To add a note you must use the command /note, similar to edit commands. Simplest way is to answer the raid message with the command /note followed by the text note you want to add. For example:

/note This is the start of a route!

To delete a text note, just use this:

/note -

If you add a second note, it will replace the first one, but users that received it by PM will still be able to see it.

Settings

With the command /settings users can tune the bot behavior. Currently, these are the available options:

  1. Don’t send message at creation, edit or refloat. If this option is enabled, the bot will omit all confirmation messages when creating new raids or announces, editing its details or refloating them. Error messages and warnings will still be shown. Option disabled by default.

More information

For information not available in this guide or further assistance, you can ask at @detectivepikachuhelp. If you are an admin of a group or a channel, see below the help for administrators.

Guide for admins

Groups and channels

The bot can be added both to groups and channels, but it works in a slightly different way, partly because of Telegram’s own functionalities.

In groups the bot is active as soon as it joins the group and sends a greeting. However, it has to be configured. A supergroup is the best option for most cases. It’s recommended to upgrade a group to a supergroup before getting started. It’s also recommended to promote the bot to admin with Delete messages and Pin messages permissions (bot won’t pin messages, but this is needed to be able to edit old messages).

In channels the bot does not greet when entering and needs to be configured with /settings to be used. It’s slower and there are some more differences. In a channel, it will not show the creator of the raid because the raid is always created by the channel, not by a user. Also, some of the options are not accepted in channels. Using a channel is an easy way if you need to interact with other bots, since, in groups, a bot can not read the messages of a different bot.

Add the bot to a group or channel

To Add the bot to a group there are three alternative options:

  1. From the profile of @detectivepikachubot. From the menu, select the option add to a group and select the group from the list.

  2. Click here from a device with Telegram installed.

  3. Add it as contact from the group searching the username @detectivepikachubot, but with some versions of Telegram it could not work.

To add the bot to a channel, there are less options. Open administrator management and add it directly as an administrator, searching it the username @detectivepikachubot.

Bot configuration

For the basic configuration of the bot use the command /settings. The configuration is divided into several sub-menus:

Channel/group behaviour

  1. Locations. Enable or disable the integration of the locations. To enable this option, it’s necessary to configure the locations. If you’re not going to do it, it’s better to disable the Locations. Option enabled by default.

  2. Allow set alerts. Requires the Locations (automatically marked if required). It allows or not the users to find the gyms configured in the group / channel when setting personal alerts. Option enabled by default.

  3. Nanny mode. All messages, except the raid creation messages and the allowed commands, are deleted. See the Nanny mode section for more information. Option disabled by default.

  4. Delete messages at night. If enabled, all ended raid messages of the day will be deleted starting 11:59PM. The deletion can take a while. Option disabled by default.

  5. Registration required. If enabled, it forces all users to registrate themselves to the bot before being able to join raids or create them. Option disabled by default.

  6. Automatic refloat. If enabled, the bot refloats all active raids every 5, 10, 15 or 30 minutes. Raids are considered active from less than an hour and a half from start or if just started (after starting, only re-float once). Option disabled by default.

  7. Also refloats announces. If enabled, the bot refloats the announces with massive or automatic refloats. Option disabled by default.

Available commands for users

  1. Find gyms (command /search). If enabled, it allows users to check gym locations. Option disabled by default.

  2. Create raids and announces. If enabled, it allows users to create raids in the ways allowed following the section Creating raids and announces. Option enabled by default.

  3. Refloat raids (command /refloat). If enabled, allows the creator of the raid to refloat them using the command /refloat. Option disabled by default.

  4. Delete raids (command /delete). If enabled, allows the raid creators to delete them using the command /delete. With this option disabled, it’s still possible to cancel the raid with the command /cancel. Option enabled by default.

  5. Add notes to raids (command /note). If enabled, allows the raid creators to add notes to raids using the command /message. With this option disabled, only admins will be able to do so. Option disabled by default.

Creating raids and announces

  1. Interactive mode to create raids and announces. If enabled, it allows to create raids using the interactive menu-based raid creation. Option enabled by default.

  2. Parse raid egg images to create announces. If enabled, the bot will try to parse egg raid images to create raid announces. Option enabled by default.

  3. Parse raid bosses images to create announces. If enabled, the bot will try to parse raid bosses images to create raid announces. Option enabled by default.

  4. Parse EX invitations to create announces. If enabled, the bot will try to parse EX invitation images to create raid announces. Option enabled by default.

  5. Raid organizer joins automatically. If enabled, the raid organizer will join automatically when a raid is created or converted from an announce. This option does not work on channels, since raids on channels have no organizer. Option enabled by default.

  6. Use times multiples of 5 minutes. If enabled, times are shown in multiples of 5 when converting an announce into a raid. If disabled, reference time is the egg hatch, even if displayed times are not multiples of 5 minutes. Option disabled by default.

Raid visual options

  1. Show total trainers by team. If enabled, instead of showing only a total of trainers registered, it breaks it down by teams. Option disabled by default.

  2. Show inline «+1» trainers by team. Requires to enable the option «+1» button by team from Raids behaviour (automatically marked if necessary). If enabled, shows the +1 with the corresponding team color in each line. Option disabled by default.

  3. Display time in format a.m./p.m.. If enabled, the hours are displayed with the 12 hours format followed by AM or PM. It only affects the display of the raids. Option disabled by default.

  4. Icon theme. Allows to change the theme of icons selecting from the available ones. Each time you press it, the theme changes to a different one.

  5. Group joined by level/team. If enabled, instead of displaying the listed in cronological order, the users are grouped by team and level. Option disabled by default.

  6. Reorder zones/gyms by activity. When creating raids interactively, the zones and gyms order goes from highest to lowest activity, instead of using only the alphabetical order. Option enabled by default.

  7. Show late listed. Highlight in the list the trainers that have signed up late with a 🐌. It can be set for 1, 3, 5 or 10 minutes before the hangout time of the raid. Option enabled by default with 1 minute.

Raid behaviour

  1. «Late» button. If enabled, a new button will appear in the raids so that the trainers can warn of delays. Option disabled by default.

  2. «Gotcha!» button. If enabled, two new buttons will appear to show if you have caught the Boss or not. The buttons only appear from the start time of the raid and up to the next six hours. Option disabled by default.

  3. Shiny!» button. If enabled, a button will appear next to the “Gotcha!” one to record if the Boss has been caught in its shiny form. As well as “Gotcha!”, only appears from the start time of the raid and up to the following six hours and exclusively for the bosses potentially shiny. Option disabled by default.

  4. «+1» button. If enabled, a button will appear to indicate that you are going with friends to the raid. A maximum of 1, 2, 3, 5 and 10 companions can be configured. Option enabled by default and configured with 5 companions at most.

  5. «+1» button by team. Requires «+1» button enabled (automatically marked if required). If enabled, instead of one, there will be 3 «+1» buttons, one for each team. This option is useful only in case the options Show total trainers by team or Show inline «+1» trainers by team are enabled. Option disabled by default.

  6. Permissive edits. If enabled, allows any trainer to edit the time, end time, Boss or gym for a raid or announce. This option is only recommended for small groups and not for all the groups. Option disabled by default.

  7. Permissive refloats. If enabled, allows any trainer to refloat any raid or announce. This option is only recommended for small groups and not for all the groups. Option disabled by default.

  8. Refloat when converting announce into raid. If enabled, a raid will be refloated when organized from an announce. For the announce to be refloated, it must be at least five minutes old at the organization time. The intention is get better visibility for organization attempts. Option disabled by default.

  9. Refloat when specifying Pokémon from egg. Similar to the option above, if enabled, a raid or announce will be refloated when a hatched Pokémon is specified using the command /pokemon or by using the buttons sent by pm at hatching time. Option disabled by default.

  10. Explicit «Quit». If enabled, shows in the list a ❌ when selecting the “Quit” button. This option is useful for small communities, where it’s important to know when a player is not joining a raid. Option disabled by default.

  11. Auto cancel empty raids. If enabled, the bot will automatically cancel the raids left empty. A raid is considered empty if there is only one (or less) trainer registered and no trainer has clicked on the button There. The cancellation occurs after the closure of the raid, normally 30 minutes after the agreed time, or after the raid end time if specified. Option disabled by default.

  12. Only group members. If enabled, Telegram users not being members of the group or channel are not allowed to join raids or receive alerts. Option enabled by default.

  13. Only allow tier ≥ n raids. If enabled, the creation of raids is allowed only from a certain level of raid boss, configurable from 2 to 5, and always including the EX. If disabled, it’s possible to create raids for any boss level. Option disabled by default.

  14. Only allow tier ≥ n announces. If enabled, the creation of announces is allowed only from a certain level of raid boss, configurable from 2 to 5, and always including the EX. If disabled, it’s possible to create announces for any boss level. Option disabled by default.

Rankings behaviour

  1. Weekly raids ranking. If enabled, allows the admins of a group to show the TOP 5, 10, 15, 20 or 25 weekly raid participants (depending on the selected option, 10 by default) using the command /ranking week (or simply /ranking).

  2. Monthly raids ranking. If enabled, allows the admins of a group to show the TOP 15, 25, 35 or 50 monthly raid participants (depending on the selected option, 15 by default) using the command /ranking month.

  3. Asses tier ≥ n raids only. If enabled, the raids that are considered for the ranking are according to the level of the raid Boss, configurable from 2 to 5, and always including the EX. If disabled, all the raids of any level are considered. Option disabled by default.

  4. Automatic raids ranking. If enabled, it will publish the raids ranking of the ones not automatically deactivated as soon as available (two hours before the time of the ranking period).

  5. Weekly announces ranking. If enabled, allows the admins of a group to show the TOP 5, 10, 15, 20 or 25 weekly announce creators (depending on the selected option, 10 by default) using the command /ranking announces week (or simply /ranking announces).

  6. Monthly announces ranking. If enabled, allows the group admins to show TOP 15, 25, 35 or 50 announce creators (according to the selected option, 15 by default ) using the command /ranking announces month.

  7. Asses tier ≥ n announces only. If enabled, the announces that are considered for the ranking are according to the level of the raid Boss, configurable from 2 to 5, and always including the EX. If disabled, uses all the raids of any level. Option disabled by default.

  8. Automatic announces ranking. If enabled, it will publish the announces ranking of the ones not automatically deactivated as soon as available (two hours before the time of the ranking period).

Gym locations

The locations of the gyms need to be configured in each group independently. One group does not know the locations of other groups.

To start, generate a Google spreadsheet with 4 columns (and some more optional that can be added later):

  1. Gym name
  2. Latitude in numeric format (for example 51.206983)
  3. Longitude in numeric format (for example 6.7739205)
  4. Keywords separated by commas (please please please read the keywords section)
  5. Labels (optional)
  6. Zones (opcional)

By default, Google tries to format the numbers and may spoil them. If you are filling the data manually, before you start writing the coordinates, you have to select columns B and C and delete the format as shown in the following gif.

This happens because we are using spreadsheets as data tables

It’s essential to understand how the fourth column works, since it’s the main method to find gyms and bad keywords will lead to problems. Review the section on keywords very carefully.

The fifth column is optional and you can always fill it in later. Check the section labels for more details.

The sixth column is also optional. Check the section zones for a detailed explanation.

Please, check out this spreadsheet as an example.

Once you have the spreadsheet ready, click on Share to obtain a public link to the spreadsheet and set it in the group with the command /spreadsheet. For example:

/spreadsheet https://docs.google.com/spreadsheets/d/1pfseEFyJ7DZB-6f6G3fYY0kobm8U94QEOdFO3wSzzw8/edit?usp=sharing

Then use the command /refresh to upload it. After any change to the file, it’s necessary to launch again /refresh to reload the list. It’s not necessary to redo /spreadsheet unless you change the spreadsheet for a different one.

You can test the locations by searching with the command /search. For example:

/search south park sign

To list all known gyms you can use the command /list. This command could display a shortened list if there are too many gyms, over 500 gyms or more.

Important! If you change the name of a gym in the first column, the next time you launch /refresh it will be erased and added again with different ID. All alerts that users have created will be lost. It could also affect ongoing raids that are using that gym, which will lose the location.

Keywords

The keywords are written in the fourth column, separated by commas (the spaces between words and commas are not considered when searching).

Think of keywords as key phrase pieces that may even have spaces in the middle. The bot goes matching the text string between what the user writes and these key phrase pieces, stopping at the first corrispondence, so it’s necessary to define them very carefully avoiding the use of too short or too generic words, which may result in conflicts.

The three-letter keywords are ignored by purpose. Note also that accents and capital letters are ignored, also characters such as «ç» and «ñ» are converted in «c» and «n». For example, the keyword Peñíscola for search purposes is the same as peniscola.

Possible problem: The wrong gym is recognized as the names is short

This can happen entering too short or too generic keywords.

For example, the gyms South Park Sign and Fountain at South Park will be confused if you use only the keyword South Park. Please respect the general recommendations of not using loose words that are too generic.

In this case, the appropriate keywords could be:

Gym name Keywords
South Park Sign south park sign, park sign
Fountain at South Park fountain at south, fountain south, fountain at park, fountain park
Possible problem: The wrong gym is recognized because one name is contained in a different one

This can happen when two or more gyms have names that are included in each other. For example, in South Park, South Park Gym and South Park Sign.

In this case, the gym South Park can only be defined using the word south park and applying the recommendations of the previous section is not enough. It’s possible to proceed as follows:

  1. Delete the gym with the shortest name from the spreadsheet (in this case South Park).
  2. Use the bot command /refresh .
  3. Add again the gym at the bottom of the spreadsheet.
  4. Launch again the command /refresh.

In this way, the gym with the shortest name will be loaded with a new identifier at the bottom of the file. Be careful, since doing this can affect ongoing raids in that gym and users will lose the alerts configured on it.

Possible problem: There are two gyms with the same name and the bot cannot distinguish them

This is typical with sponsored gyms, for example, Sprint Stores in USA or Mc Donalds in Japan. Please check the Labels section below. Special choose labels can be used to tag gyms with the exact same name in-game, so the bot presents a keyboard to manually choose the correct one.

Labels

The labels are useful to mark the gyms that have the sponsored or EX tag in-game. The labels can be put in the fifth column and, as the keywords, more than one separated by commas. The supported ones are the following:

Some other keywords also produce emojis for historical reasons, such as park or field, but they might be removed in the future. If you want to add custom emojis, you may add them as keywords too. For example:

sponsored,ex,📱
🌳,🛴

This column can also be used to tell apart two or more gyms with the exact same name, by grouping them using special labels starting by choose:. Bot will detect gyms with the same choose label as having the same name in-game, and will present a keyboard to manually choose the correct one when needed.

For example, if you have three gyms named Mc Donalds in-game, just add this same label to each one (here, allmcdonalds is used as en example, but you can use any other name):

choose:allmcdonalds

Then modify the Gym Name (first column) adding something descriptive that helps humans to tell them apart. For example:

Mc Donalds (South)
Mc Donalds (North)
Mc Donalds (Mall)

Zones

The zones are only used during the interactive creation of raids, in order to easily find gyms. They can be associated, for example, to neighborhoods or part of a city (North Zone, South Zone …).

The areas are established in the sixth column. For the same gym can be set multiple zones, separated by commas. For example:

Industrial Area, North Zone

Note that, if you add this detail to a gym, the gyms not defined will not appear as an option when creating a raid in an interactive way, but could be selected by other methods.

Limits in the number of zones and locations

The maximum number of gyms that will be loaded from the spreadsheet is 3000. More than that will be ignored.

In the creation of raids with the command /raid a maximum of 56 gyms will be displayed, ordered by decreasing frequency of usage in the last 60 days. If you want to show more gyms, it is recommended to create zones. Also a maximum of 14 zones will be displayed, if the number of zones is larger, the ones less frequently used will not appear.

Combining the maximum number of zones with the maximum number of gyms per zone, up to a total of 56 * 14 = 784 gyms.

This does not mean that it’s mandatory to create zones if you want to show more than 56 gyms. What happens is only that the 56 frequently used are selectable using the command /raid without arguments, then the less used can always be selected using other methods.

Nanny mode

The nanny mode prevents people from chatting in the group, deleting all messages that users (excluding admins) post. It must be activated from settings.

It requires the bot to have admin permissions in Telegram to delete messages, otherwise it will not be able to delete messages from users.

The command /talkgroup allows to define a group to talk to. If the nanny mode is activated, the bot will post the link of the group to talk every time someone writes. For example:

/talkgroup @PGSDC
/talkgroup https://t.me/joinchat/XXs3XkzYsXXxnvbtxxe11x

To delete the group to talk to, launch the same command with a horizontal bar as argument, like:

/talkgroup -

Time zone and region

To set the correct time zone and region, use the command /timezone with the corresponding time zone as a parameter using the format of the IANA time zone list. For example:

/timezone America/Los_Angeles
/timezone Europe/London

To check the time and current zone and region, use the command /timezone with no any additional parameter.

/timezone

Region is chosen automatically based on timezone. If the chosen region is not the correct one, you can change it using the command /region (no parameters) and choosing between one of the available options.

Language

To list the available languages, use the command /language.

When entering a group for the first time or when privately speaking with a user for the first time, the bot firstly will ask to select the language. It can be change at any time with the command /language language. For example:

/language Portuguese

If the first user interaction with the bot is through a group, the group’s language will automatically be assigned to him and not be asked privately. In this case, the user can change the language privately with the above command.

Rankings

There are two kind of rankings that can be configured: raid attendance and announce creation.

The bot can show the rankings of the last week (from Monday to Sunday) and last month, using respectively the commands /ranking raids week or /ranking announces week and /ranking raids month or /ranking announces month.

In the ranking of raids attendance the number of users configured in the group or channel are listed by participation. By default, a TOP 10 weekly and a TOP 15 monthly. In case of a tie in number of raids, they are shown in the same position.

To be counted for the rankings, the trainers have to sign up before the agreed start time and select There at any time, to confirm that the raid has been attended. The snail tag 🐌 has no effect. The users need to be registered at the time of the ranking generation.

In the announce creation ranking the number of users configured in the group or channel are listed by number of announces created. By default, a TOP 10 weekly and a TOP 15 monthly. In case of a tie in number of announces, they are shown in the same position. The announces are considered only if converted in raids not canceled nor deleted.

The rankings are available from 10:00 pm (22:00) on the last day of the corresponding period. As well, the monthly ranking will be available at same time on the last day of the month.

It’s possible to filter which raids/announces are taken into account for each type of ranking based on the level of the raid, according to group or channel configuration.

Other commands for admins

To revert the cancellation of a raid, use the command /uncancel. It is used exactly like /cancel, but only for canceled raids.

An admin can always cancel raids with the command /cancel, even if already ended. Usually, a creator can only cancel raids that are not older than three hours.

To selectively eliminate trainers from a raid, it can be used /unlist followed by the trainer’s name. This command works as all other editing commands: either replying the raid, or privately specifying, namely, the raid ID and the name of the desired trainer.

You can get a full raid log with /raidlog to debug technical issues or monitor trainers behavior.

To re-float all active raids at once (occurring in the space of the next one and half hours), the command is /refloatactive. You can also refloat all the raids, including the EX that will come in hours or days, with /refloatall, only the raids that will come only during that day, with /refloattoday, or only the EX raids that will come in hours or days, with /refloatex.

Group users can be eliminated with the command /kickachu followed by one or more Telegram numerical identifiers. This command can be generated from lists of inactive or unregistered users from the administration website.

Admin tools

In the web page admin.detectivepik.ac is available a web tool that allows the admins to view some interesting information:

The tool needs to be connected through your own Telegram account, since the bot cannot obtain the list of users of a group or a channel by itself.

The information about available groups, users list of each group and result of each query are cached for 21 hours on the server to avoid overloading Telegram API and server, in order to be able to reuse them. In each screen, it will appear specified when each data has been obtained for the last time.

When finished, for security reasons, it’s advisable to return to the main screen and log out from Telegram with the Logout button. In any case, after 30 days the sessions automatically closed on the server and the session information of the tool are deleted.

Templates

Raid and announce messages can be personalized by tuning the templates with the commands /raidtemplate and /announcetemplate respectively.

When invoked without any parameter, theses commands show the current template. To change it, the new template must be specified. For example:

/raidtemplate <b>{Pokemon}</b> Raid {{on <b>{weekday_day_month}</b> }}at {timewarn_icon_}<b>{raidtime}</b> in {gym_icon}{gym}<br>{{<em>Available from {opentime} to {endtime}</em><br>}}<em>Organized by </em>{organizer}{_edited_icon}{_refloated_icon}

Templates Presets

Some presets can be chosen too putting their names instead. For example:

/raidtemplate maxcp
/announcetemplate maxcp

Available presets are listed below:

Name Description
maxcp Similar to the default template, but also showing the max CP of the Pokémon.
pokebattler Similar to the default template, but also showing a link to Pokébattler in the Pokémon name.
pokebattler_maxcp Combines the previous two templates: shows the max CP of the Pokémon, and also a link to Pokébattler in the Pokémon name.

To go back to the default template, just use a dash - like this:

/raidtemplate -
/announcetemplate -

Variable Fields

Text chunks as {gym} are variable fields, and are changed to the corresponding information. You can see the available fields below. For simplicity, fields are written without the surrounding brackets.

Field Description HTML
pokemon The Pokémon or Egg name. -
pokemon_gamepress The Pokémon (linking to Gamepress) or Egg name. Link
pokemon_gameinfo The Pokémon (linking to Gameinfo) or Egg name. Link
pokemon_pokebattler The Pokémon (linking to Pokebattler) or Egg name. Link
expokemon_icon EX icon only is raid boss is EX. -
shinypokemon_icon Shiny icon only if raid boss can be shiny. -
maxcp Max CP at level 20. -
maxcp_boosted Max CP at level 25. -
types Pokémon types (using icons). -
types_text Pokémon types (using text). -
weatherboosts Weathers boosting the Pokémon CP (using icons). -
weatherboosts_text Weathers boosting the Pokémon CP (using text). -
gym Gym name and location. Link
gym_icon Gym location icon. -
exgym_icon EX icon only if it’s an EX gym. -
zone Zone or zones of the gym. -
announcer User that created an announce. Link
organizer User that organized a raid. Link
weekday_day_month Weekday, day and month if raid is not today. -
weekday_day Weekday and day if raid is not today. -
day_month Day and month if raid is not today. -
opentime Egg open time. -
endtime Egg end time. -
raidtime Raiding time. -
timewarn Literal text ends soon if the raiding time is near the end time. -
timewarn_icon Icon ⚠️ if the raiding time is near the end time. -
edited_icon Icon 📝 if raid has been edited. -
edited Literal text edited if raid has been edited. -
refloated_icon Icon 🎈 if raid has been refloated. -
refloated Literal text refloated if raid has been refloated. -
note Text note added tipically by and admin or the raid organizer. -

Conditional Fields

Conditional fields are meant to be used just as conditionals, but won’t shown any information by themselves. Please take a look at the Conditional blocks subsection for more information about conditionals.

Field Description HTML
timenearopen True is the raiding time is near the hatching time. timenearend, timefaropen and timefarend also available. -
isegg True if this is an egg. -
ispokemon True if this is a raid boss. -
istier5 True if tier 5 raid boss or egg. Available too for the other tiers. -
hasforms True if the raid boss has forms defined globally (at least one). -
ismissingform True if the raid boss has forms defined globally (at least one) but the raid is missing that information. -

HTML Formatting

Template can be formatted using simple HTML, with the usual Telegram restrictions:

New lines must be specified with <br>. Any regular new line will be converted into a white space.

Fields containing HTML

Fields marked having HTML usually are links, so they contain HTML. For example, {pokemon_gamepress} is translated to:

<a href="https://pokemongo.gamepress.gg/raid-boss-counter/palkia-raid-counter-guide">Palkia</a>

Since the field already contains HTML, it can’t be used inside another HTML tags, like <b> to make them bold. For example, this template chunk will be rejected with the nesting HTML error, even if it doesn’t look like nested HTML:

<b>{pokemon_gamepress}</b>

Fields containint links have alternative forms to access the text inside the link, with the name ending in _text, and the link itself, with the name ending in _link. For example:

Fields variants

To help build better templates, there are different versions of the same field with spaces at both sides, in uppercase… These are the available variants:

Conditional blocks

Conditional blocks are used to hide or show chunks of text depending on some conditions.

{{Curly braces}} Conditional block

This is the simplest conditional block, written as {{text}}. Text inside will be shown only if all variables used inside the block are defined.

For example, this line will only show the 📅 and the date, if the date is defined. The date is only defined whenever the raid is not programmed for today. This way, you can show the date for future EX raids, but not for everyday raids.

{{📅 <b>{weekday_day_month}</b> }}🕔 <b>{raidtime}</b>

This other example will print the text “Available from xx:xx to xx:xx” only if the hatch and end time are defined. If you don’t use conditional blocks, you would end up with an incomplete sentence, such as “Available from to “.

{{<em>Available from {opentime} to {endtime}</em><br>}}
[Square Brackets]{{}} Conditional Block

This is a more complex conditional block, written as [condition]{{text}}. Text inside the curly brackets {{}} will be shown only if the condition inside the square brackets [] is met.

There are three ways to specify conditions:

[True Condition]{{Square Brackets}} Conditional Block

This is the simplest square bracket conditional block. The text inside the curly brackets will be shown if the variable specified inside the square brackets is defined (it prints anything) or is True.

For example, this line will print “You need an EX Pass to do this raid!” only if this is an EX raid.

[expokemon_icon]{{You need an EX Pass to do this raid!}}
[!False Condition]{{Square Brackets}} Conditional Block

This is very similar to the previous conditional block, but it will do just the opposite: The text inside the curly brackets will be shown if the variable specified inside the square brackets is no defined (it prints nothing) or is False.

For example, this line will print “The gym was not recognized! Please tell an admin!” only if the gym hasn’t been recognized (doesn’t have a link to a location).

[!gym_link]{{The gym was not recognized! Please tell an admin!}}
[Comparative==”Condition”]{{Square Brackets}} Conditional Block

This is the most complex square brackets conditional block. You can use the comparatives == and != to compare variables against some predefined values. The text inside the curly brackets will be shown if the comparison is true.

For example, this line will print “Beware the japanese crows! They call you stupid and that can hurt your feelings!” if the gym is called “Japanese Crows Nest”.

[gym_text=="_Japanese Crows Nest"]{{Beware the japanese crows! They call you stupid and that can hurt your feelings!}}

Raid Footers

Raids can also have text below the player list. To setup this text you can use /raidfootertemplate in the same way as the other two commands. In this case, the default is no text, so /raidfootertemplate - will delete the footer.

Communities Map

Your group can be in the Communities Map by just adding a location using the command /location followed by the coordinates in numeric format. For example:

/location 42.878730,-8.546366

To get out of the map, just delete the coordinates:

/location -

Map will show the group name, the group image, the members count and the bot language. Group activity (from 0 to 3 stars) and a heatmap will be also shown on the map. This is aimed to help players find the correct group.

If the group is public, the public link will automatically be shown too. If you want to change it, or if the group is not public, you can setup a different link using the command /mapgroup. It’s recommended always to setup a link, even if restrictions to enter the group appply; for example, you can link a channel with instructions on how to enter.

/mapgroup @PGSDC
/mapgroup https://t.me/joinchat/XXs3XkzYsXXxnvbtxxe11x

If any user identifies in the map, he or she can send markers reports (such as broken links, abandoned groups…). The bot administrators will look into these reports and will get in touch with group admins if needed.

If a group user identifies in the map, he or she will also be able to see the active raids in the map. The user needs to be actually inside the group to be able to access the active raids markers.

Usage policy

This bot has been designed to ease the organization of Pokémon GO players following the Niantic Terms of Service. Special attention is pointed to point 3.1, dedicated to Cheating.

Players Behaviour

It’s explicitly forbidden the usage of any kind of Pokémon GO modified app, or any other app that enables cheating, specifically location spoofing.

It’s assumed that every player is using one account and that it’s not being shared with another players, so in effect the prohibition mentioned above is extensible to any activity carried out by the player and its accounts, not limiting to the registered account in case of having several accounts, nor to the activity performed by the player in case of sharing accounts with other players.

Apps solely based on screenshoting to read game information, such as most IV calculator apps, are an exception and can still be used safely.

Groups Behaviour

This bot can’t be used in groups or channels allowing and/or promoting the usage of cheats in the game, specifically location spoofing.

Banning Methods

The bot implements some anti-cheating features detecting certain behaviors and unauthorized apps that can lead you and/or your group to an automatic ban. These automatic bans are manually checked by staff to make sure that they are correct.

Bans can also be applied manually in case of enough evidence is presented, but not every evidence can be considered. Things such as gym defending behavior, suspicious long distances traveled, or unreachable locations won’t be evaluated. Things such as contextualized conversations on which the cheating is stated, or screenshots exposing not authorized apps are accepted. False accusations might be punished too.

Ban Reviews and Appeals

In case of ban to a user, the bot will not answer any command or allow you to register for raids. To check if your account is banned, you can privately send to the bot the command /profile. The status of your account will be Banned. If that is the case, you will get a link to ask for a ban view. In this review, you can ask for information regarding the ban period, motivation and try to appeal in case that you consider that the ban is unfair.

In case of a ban to a group, the bot will not answer any command or allow anyone to register for existing raids. Affected group admins can ask in the general help group the required steps to review the ban.

Minimum Ban Period and Extensions

Minimum ban period can’t be avoided, unless it’s accepted as a fact that the ban was unfair, using the methods described in the above section. This period can vary depending on the situation. Counting from the moment the infringement was detected, and supposing this is the first ifraction:

Ban duration is virtually permanent, but in some cases might be lifted after six months if asked using the appelations link.

Some actions such as trying to bypass the ban period in any way, continue cheating, or showing bad behaviour in any assistance group can lead to an actual permanent ban.

Ban can be extended if some undesired actions are performed during the ban period. Some examples:

In case of being a repeat offender, a ban can be extended to double the time or even become permanent, depending on the seriousness of the situation.

Compliance with the ban

Once the estimated period of banning is over and, assuming that nothing else has been notified in a previous review, a new ban review must be requested where the available evidences will be evaluated and it will be determined if the punishment has been fulfilled, before removing the ban.

Privacy policy

Collection and treatment of the personal information

This bot collects the following information about its users when interacting with him privately or through Telegram group or channel:

The bot also stores some unordered files with the interactions in groups and privately (logs), including files and images which the bot classify as relevant to the game, with the aim of being able to trace technical problems and reply to the ban appeals.

The admin web tool uses cookies stored in the browser and variables stored on the server in order to keep the Telegram session opened required for the operation of the website. These variables are destroyed after 30 days or when the user logout.

How the information are used

The stored information are used for the following purposes:

The legal basis for data treatment mentioned in this section is providing a service that is voluntarily requested (Article 6, paragraph 1 (b) of the RGPD).

As explained in the anti-cheating policy, the activity logs will be automatically scanned for suspected actions. The legal basis for this data processing is Article 6, paragraph 1 (f) of the RGPD.

Who has access to information

The public username of Telegram and the data related to the Pokémon GO account may be shared in groups or channels in which the user is active. The sharing can be public, depending on the configuration of each group or channel.

The numerical ID and public username of Telegram and the trainer name of Pokémon GO can be shared with the administrators of the groups or channels in which an activity is carried out.

The legal basis for sharing the data provided is the provision of the service that is voluntarily requested (Article 6, paragraph 1 (b) of the RGPD).

Storage duration

The information are stored for the time necessary to fulfill the purposes for which they are collected:

Rights contemplated in the RGPD

A request has to be sent to the Telegram group authorized for this purpose stating the wish to exercise any of the rights contemplated: access, variation, deletion and limitation of the treatment, data portability.

In case of exercising the right of suppression, the bot will keep the numerical identifier of Telegram along with a mark that indicates this desire. In this case, it will not be possible to use the bot and the status of the account will appear as banned.

Frequent problems

Error: No information about the group

The bot has to send a greeting when entering a group. Until it does, it misses the necessary information to work.

If you have just converted a group into a supergroup, it’s like a new group, but all configurations and raids should migrate to the new group automatically. You will get a confirmation message if and when this happens. However, existing raids created before the migration must be refloated to keep working, for example with the command /refloatall.

Error: No information about the channel

In channels, the bot must be configured at least once using /settings so that the necessary information are created, since it does not welcome entering a channel.

The bot does not delete the commands and screenshots that users send

In order to let the bot erase commands or images of other users in groups, it needs the administration permission in Telegram to delete messages, otherwise it will not do.

List of commands

Command Description Users Admins Scope Parameters
/alerts List the configured alerts - Private
/announce Create an announce 5 Group boss/egg hour gym or boss/egg gym endtime (optional1)
/announcetemplate Shows current announce template or changes it to the specified One Group template (optional)
/cancel Cancel a raid Private / Group2 id_raid (private)
/clearalerts Clears all alerts configured for gyms and raid bosses - Private
/close Close a raid before expiration Private / Group2 id_raid (private)
/endtime Change the end time of a raid or announce Private / Group3 id_raid endtime (private) or endtime (group)
/delete Delete a raid or announce 5 Private / Group3 id_raid or id_announce (private)
/form Change the Pokémon form of a raid or announce Private / Group3 id_raid form (private), form (group)
/gym Change the gym of a raid or announce Private / Group3 id_raid gym (private) or gym (group)
/help Show help Private / Group
/kickachu Kick the listed user or users Group id_user (multiple separated by space)
/language Show and change the current language Group / Private language (optional)
/list List of registered gyms Group
/linkedbots Allows to change the registration and permissions with other bots - Private
/location Setup a location for a marker to appear in the Communities Map Group coordinates in the form 40.701683,-73.875636
/mapgroup Setup a group link to appear in the map, that will replace the current link in the map if the group is public Group Public @groupalias or private link https://t.me/joinchat/xxx
/note Add a text note to a raid 6 Private / Group3 id_incursion text note (private) or text note (group)
/opentime Change the start (hatch) time of a raid or announce Private / Group3 id_raid starttime (private) or starttime (group)
/pokemon Change the egg level or boss name in a raid or announce Private / Group3 id_raid boss or id_raid egg (private), boss or egg (group)
/profile Show the stored information of the trainer and relevant account status - Private
/raid Create a raid interactively 5 Group boss hour gym or pokemon hour gym endtime (optional1)
/raidlog Show a raid log Private / Group2 id_raid (private)
/raids List of pending raids in groups where the user is active - Private
/raidsall List of pending and finished raids in the last 6 hours in groups where the user is active. For admins, you will also get deleted and cancelled raids for the last 16 hours. - Private
/raidfootertemplate Shows current raid footer template or changes it to the specified One Group template (optional)
/raidtemplate Shows current raid template or changes it to the specified One Group template (optional)
/ranking Shows ranking of raids participation Group week for weekly rankings, month for monthly rankings
/refloat Refloat a raid or announce 6 Private / Group3 id_raid (private)
/refloatactive Refloat raids or announces4 of the following hour and a half Group
/refloatall Refloat all active raids or announces 4 Group
/refloatex Refloat all EX raids or announces 4 Group
/refloattoday Refloat all active raids or announces4 of the current day Group
/refresh Upload or udate the gym locations Group
/region Setup the group region - Group
/register Start the bot registration procedure - Private
/search Search a gym 5 Group gym
/settings Shows the group configuration menu or the user settings Private / Group
/spreadsheet Select the Google spreadsheet with the gyms Group url
/stats Show trainer stats of the last week - Private
/talkgroup Setup a talking group, that will be linked when nanny mode is active Group Public @groupalias or private link https://t.me/joinchat/xxx
/time Chance the hang out time of a raid or starting time of an announce Private / Group3 id_raid hour (private) or hour (group)
/timezone Shows current timezone or changes it to the specified One Group timezone (optional)
/uncancel Retreive to active a canceled raid Private / Group2 id_raid (private)
/unlist Deletes user from a raid list Private / Group2 id_raid @username or id_raid trainername (private), @username or trainername (group)
  1. Optional only if, in the group, the locations are configured and enabled.

  2. Replying a message of a raid.

  3. Replying a message of a raid or announce.

  4. Announces are only included if the corresponding option in settings is enabled.

  5. The command is enabled by default, but can be bisabled in group options.

  6. The command is disabled by default, but can be enabled in the group options.

Credits

Bot is programmed and maintained by Gentakojima, with help of lots of volunteers. Programming the bot is not a simple task, but maintaining without all these volunteers would be just impossible.

Moderators

Moderators are the people in charge of helping with registration procedures, levelups and team changes when the bot is not able to do it automatically, and more. They can attend dozens of users every day, depending on the day.

Current moderators: Eleita, BreezyChum, Diammy, SampeSamu and NatalisStark.

Former moderators: Pikaping, Tabernita, Nelulita and more.

Translators

Translating a software whose main interface with users is written is a very tedious and time-consuming task. Translations need to be maintained and updated over time, too. Translators for currently completed translations are:

German: StefanZune, Stephi (main translators)

Catalonian: bicNaranjita (main translator)

Chinese (traditional): Shin (main translator)

French: Carmenhat (main translator)

Galician: Ely (main translator)

Indonesian: Rio Gunadi (main translator)

English: Marina Dreamerina (main translator); Nick1778 (documentation); Carmenhat, Pilfer, Fauri, Gentakojima, Okami (occasional translators)

Italian: Soulrack (main translator); nanoteck (main translator, documentation)

Portuguese: Tina Arroyo (main translator); João Cardoso (documentation)

Russian: Nick (main translator)

Helpers

In both English and Spanish help groups there are other users willing to help, and they also do a great job. They know who they are.

Patrons

The patrons help making economic contributions to help maintain the servers running. Without these people, the economic burden that the servers imply today would be unaffordable. Those who accepted recognition are listed on this website header, but there are other anonymous contributors, too.