This guide covers all available Discord slash commands for the Metagross Pokémon notification bot. Commands are organized by functionality and include detailed examples for both regular users and administrators.
- Prerequisites
- Pokémon Filter Management
- Alias System
- Location Management
- Filter Removal
- Area Management
- Admin Commands
- Rate Limit Protection
- Tips and Best Practices
- Premium Role: Required for most commands
- Admin Role: Required for administrative functions and managing other users
- Ensure you have the Premium or Admin role in your Discord server
- Set your location using
/location
(recommended for distance-based filtering) - Create Pokémon filters using
/pokemon add
or use aliases for convenience
Creates a new filter group for Pokémon notifications. You must specify at least one filter parameter.
/pokemon add pokemon:charizard,blastoise miniv:90 maxiv:100
Parameter | Type | Description | Example |
---|---|---|---|
pokemon |
String | Pokémon names, IDs, or aliases (comma-separated) | charizard,blastoise or rare-spawns |
form |
String | Form IDs (comma-separated) | 1,2,3 |
miniv |
Number | Minimum IV percentage | 90 |
maxiv |
Number | Maximum IV percentage | 100 |
minlevel |
Number | Minimum level | 30 |
maxlevel |
Number | Maximum level | 50 |
mincp |
Number | Minimum CP | 2000 |
maxcp |
Number | Maximum CP | 4000 |
attack |
String | Attack IV range | 10-15 |
defense |
String | Defense IV range | 10-15 |
stamina |
String | Stamina IV range | 10-15 |
maxrank |
Integer | Maximum PvP rank | 10 |
gender |
Integer | Gender filter | 1 (male), 2 (female), 3 (genderless) |
size |
Integer | Size filter | 1 (XXS), 2 (XS), 3 (M), 4 (XL), 5 (XXL) |
distance |
Number | Maximum distance in meters (requires location set) | 5000 |
High IV Rare Pokémon:
/pokemon add pokemon:rare-spawns miniv:95 maxiv:100 minlevel:20
Specific Pokémon with CP Range:
/pokemon add pokemon:charizard,blastoise mincp:2000 maxcp:3500 miniv:80
PvP-Ready Pokémon:
/pokemon add pokemon:azumarill,medicham maxrank:10 miniv:90
Perfect IV Pokémon:
/pokemon add pokemon:all miniv:100 maxiv:100
Specific IV Spreads:
/pokemon add pokemon:metagross attack:15 defense:15 stamina:15
Local Area Pokémon:
/pokemon add pokemon:all miniv:80 distance:2000
Displays all your current Pokémon filter groups with their settings.
/pokemon list
The command shows:
- Filter Group ID: Used for removal
- Pokémon: Original input (aliases in bold, individual Pokémon in Pokédex order)
- Filters: All active filter parameters
- Status: Whether the filter is active
**Filter Group #1**
Pokémon: **rare-spawns**, charizard, blastoise
Filters: IV: 90-100%, Level: 20-50, CP: 2000-4000, Distance: 5000m
Status: ✅ Active
**Filter Group #2**
Pokémon: azumarill, medicham
Filters: IV: 90-100%, PvP Rank: ≤10
Status: ✅ Active
Displays all available forms for a specific Pokémon with their form IDs and names. This is useful for setting up form-based filters.
/pokemon form pokemon:deoxys
or
/pokemon form pokemon:386
Parameter | Type | Description | Example |
---|---|---|---|
pokemon |
String | Single Pokémon name or ID | deoxys or 386 |
- Single Pokémon Only: Cannot use multiple Pokémon, aliases, or "all"
- No Commas/Spaces: Must be a single Pokémon identifier
- Name or ID: Can use either Pokémon name or Pokédex ID
The command returns a Discord embed containing:
- Title: "Forms for [Pokémon Name]"
- Form List: Each form with its ID and name (e.g., "
0
- Normal", "1
- Attack") - Pokémon Image: Thumbnail image of the Pokémon (if uicon_base_url is configured)
- Sorted Order: Forms listed in ascending order by form ID
**Forms for Deoxys**
`0` - Normal
`1` - Attack
`2` - Defense
`3` - Speed
- Filter Setup: Use form IDs when creating filters with
/pokemon add form:1,2
- Form Discovery: Learn what forms are available for specific Pokémon
- Filter Planning: Plan form-based notification strategies
View Forms by Name:
/pokemon form pokemon:castform
View Forms by ID:
/pokemon form pokemon:351
Common Multi-Form Pokémon:
/pokemon form pokemon:deoxys
/pokemon form pokemon:wormadam
/pokemon form pokemon:cherrim
/pokemon form pokemon:giratina
Aliases allow you to create named groups of Pokémon for easier filter management.
Creates a reusable alias for a group of Pokémon.
/alias add name:rare-spawns pokemon:dragonite,tyranitar,salamence,metagross
Parameter | Type | Description | Example |
---|---|---|---|
name |
String | Alias name (one word or hyphenated) | rare-spawns or pvp-meta |
pokemon |
String | Pokémon names or IDs (comma/space separated) | charizard,blastoise |
- Must be one word or hyphenated words
- Can contain letters, numbers, and hyphens
- Cannot start/end with hyphen
- Cannot have consecutive hyphens
- Cannot conflict with existing Pokémon names
Rare Spawns:
/alias add name:rare-spawns pokemon:dragonite,tyranitar,salamence,metagross,gyarados
Starter Pokémon:
/alias add name:starters pokemon:bulbasaur,ivysaur,venusaur,charmander,charmeleon,charizard,squirtle,wartortle,blastoise
PvP Meta Pokémon:
/alias add name:pvp-meta pokemon:azumarill,medicham,altaria,skarmory
Legendary Pokémon:
/alias add name:legendaries pokemon:mewtwo,mew,lugia,ho-oh
Displays all your current aliases with their Pokémon groups.
/alias list
The command shows:
- Alias ID: Used for removal
- Alias Name: The name you gave the alias
- Pokémon Count: Number of Pokémon in the group
- Pokémon List: All Pokémon in the alias (in Pokédex order)
**Alias #1: rare-spawns**
Pokémon (4): dragonite, salamence, tyranitar, metagross
**Alias #2: pvp-meta**
Pokémon (4): altaria, azumarill, medicham, skarmory
Sets your location for distance-based filtering. You can use coordinates or an address.
/location address:Paris, France
or
/location coordinates:48.8566,2.3522
Parameter | Type | Description | Example |
---|---|---|---|
address |
String | Human-readable address | Paris, France |
coordinates |
String | Latitude,longitude | 48.8566,2.3522 |
Set Location by Address:
/location address:New York, NY
Set Location by Coordinates:
/location coordinates:40.7128,-74.0060
Set Location for Another User (Admin Only):
/location address:London, UK user:123456789012345678
- Address Geocoding: Addresses are automatically converted to coordinates
- Distance Filtering: Once set, you can use
distance
parameter in filters - Admin Override: Admins can set location for other users
- Validation: Invalid addresses or coordinates will show an error
Removes filter groups or aliases by their ID.
/remove pokemon:1,3,5
or
/remove alias:2
Parameter | Type | Description | Example |
---|---|---|---|
pokemon |
String | Filter group IDs (comma-separated) | 1,3,5 |
alias |
Integer | Single alias ID | 2 |
- Filter Groups: Can remove multiple at once (comma-separated IDs)
- Aliases: Can only remove one at a time
- ID Ordering: Response shows IDs in numerical order regardless of input order
- Cascade Effect: Removing an alias updates all filters that use it
Remove Multiple Filters:
/remove pokemon:2,4,6
Response: "✅ Removed filter group(s): 2, 4, 6"
Remove Alias:
/remove alias:3
Response: "✅ Removed alias 'rare-spawns' (#3), updated 2 filters, deleted 1 empty filters"
Area management allows Discord servers to automatically create and manage threads for different geographic areas. Users can join area threads to receive Pokémon alerts for specific locations.
When area management is enabled for a guild:
- Automatic Thread Creation: The bot creates Discord threads for each geographic area
- Geofence Integration: Areas are defined by geofence data from your server
- Filter Application: Each area thread applies configurable filters to Pokémon alerts
- User Access: Premium and Admin users can join area threads via buttons
Area threads are displayed in parent channels with interactive buttons:
- Join Thread: Click to join a specific area thread
- Page Navigation: Navigate through multiple pages of area threads
- Thread Access: Only Premium and Admin users can join threads
📁 Central Paris (Parent Channel)
├── 🧵 Eiffel Tower Area (Thread)
├── 🧵 Louvre Area (Thread)
└── 🧵 Champs-Élysées Area (Thread)
📁 North Paris (Parent Channel)
├── 🧵 Sacré-Cœur Area (Thread)
└── 🧵 Montmartre Area (Thread)
- Private Threads: Only joined users can see and receive alerts
- Automatic Filtering: Pokémon alerts are filtered by area + config filters
- Location Visualization: Alerts include static maps showing spawn location
- Organized Structure: Areas are grouped by parent regions
Area management is configured by server administrators in the bot configuration:
[[guilds]]
guild_id = "your_guild_id"
area_management = true
area_filters = ["high_iv", "rare_pokemon"]
- @everyone: Cannot see area channels or threads
- Premium Role: Can view parent channels and join area threads
- Admin Role: Can view parent channels and join area threads
- Bot: Full control over thread creation and message sending
Cannot see area channels:
- Ensure you have the Premium or Admin role
- Check that area management is enabled for your guild
Cannot join area threads:
- Verify you have the required role (Premium or Admin)
- Check that the thread still exists (may have been deleted)
No alerts in area threads:
- Area threads only receive Pokémon that spawn within the area
- Alerts are also filtered by the guild's area filters
- Check that the area has recent Pokémon spawns
📖 For detailed area management documentation, see docs/AREA_MANAGEMENT.md
Manages notification destinations for the bot.
List Destinations:
/destination action:list
Enable Destination:
/destination action:enable user:123456789012345678
Disable Destination:
/destination action:disable user:123456789012345678
Clean User Thread:
/destination action:clean user:123456789012345678
Resets the specified user's private thread access to owner and admins only, removing any unauthorized users who were tagged.
Parameter | Type | Description | Example |
---|---|---|---|
action |
String | Action to perform | list , enable , disable , clean |
user |
String | User ID (for enable/disable/clean actions) | 123456789012345678 |
Most commands support admin override for managing other users:
/pokemon add pokemon:rare-spawns miniv:90 user:123456789012345678
/location address:Paris, France user:123456789012345678
/alias add name:rare-spawns pokemon:dragonite,tyranitar user:123456789012345678
Metagross includes automatic rate limit protection to prevent Discord from throttling your notifications.
- Automatic Detection: Monitors Discord API responses for rate limit headers
- Smart Thresholds: Tracks rate limits across multiple timeframes (1min, 1hr, 24hr)
- Auto-Disable: Automatically disables destinations that hit rate limits too frequently
- User Notifications: Sends detailed Discord embeds when destinations are disabled
- Recovery: Easy re-enabling with automatic rate limit reset
Destinations are automatically disabled when they hit:
- 5+ rate limits in 1 minute, OR
- 20+ rate limits in 1 hour, OR
- 50+ rate limits in 24 hours
When a destination is auto-disabled, users receive a rich Discord embed with:
- Reason: Why the destination was disabled
- Threshold: Which threshold was exceeded
- Recovery: How to re-enable the destination
- Timing: When the rate limit will reset
Disabled destinations can be re-enabled using:
/destination action:enable user:YOUR_USER_ID
- Use Specific Filters: More specific filters reduce notification volume
- Add Distance Limits: Distance filtering reduces notifications from far locations
- Monitor Queue Health: Watch for queue recovery alerts in logs
- Adjust Batch Settings: Increase batch sizes and intervals for high-volume scenarios
Start Specific:
# Good: Specific Pokémon with IV requirements
/pokemon add pokemon:dragonite,tyranitar miniv:90 mincp:2000
# Avoid: Too broad
/pokemon add pokemon:all miniv:20
Use Distance Filtering:
# Add distance to reduce notifications from far locations
/pokemon add pokemon:rare-spawns miniv:80 distance:5000
Combine Multiple Criteria:
# Multiple filters for better targeting
/pokemon add pokemon:azumarill miniv:90 maxrank:10 maxcp:1500
Create Logical Groups:
/alias add name:starters pokemon:bulbasaur,ivysaur,venusaur,charmander,charmeleon,charizard,squirtle,wartortle,blastoise
/alias add name:legendaries pokemon:mewtwo,mew,lugia,ho-oh
Use Aliases in Filters:
/pokemon add pokemon:legendaries miniv:95
/pokemon add pokemon:starters miniv:90 distance:3000
Set Your Location Early:
/location address:Your City, State
Use Precise Coordinates:
/location coordinates:40.7128,-74.0060
Monitor Your Filters:
- Use
/pokemon list
regularly to review active filters - Remove unused filters with
/remove pokemon:ID
- Update filters based on your needs
Use Distance Filtering:
- Always set your location for distance-based filtering
- Start with larger distances and reduce as needed
- Consider your travel range when setting distance limits
Optimize for Your Use Case:
- Collectors: Focus on IV and rarity filters
- PvP Players: Use PvP rank and league-specific filters
- Local Players: Emphasize distance and area-based filtering
Command | Description | Admin Only |
---|---|---|
/pokemon add |
Create Pokémon filters | No |
/pokemon list |
View your filters | No |
/pokemon form |
View Pokémon forms | No |
/alias add |
Create Pokémon aliases | No |
/alias list |
View your aliases | No |
/location |
Set your location | No |
/remove |
Remove filters or aliases | No |
/destination |
Manage bot destinations and clean threads | Yes |
All commands support the user
parameter for admin management of other users' settings.
For technical support or feature requests, contact your server administrator or the bot developers.