-
Notifications
You must be signed in to change notification settings - Fork 0
Trainer Directory
The Trainers page at /trainers is an opt-in public listing of the community's trainers. The Raid Finder has its own dedicated page at /raidfinder (see Raid-Finder).
Every listed trainer gets a card in the directory grid. Depending on what the trainer has filled in and made public, a card can include:
- Trainer name: the public profile name (the site username is shown instead when no public profile is set, marked with an asterisk)
- Trainer code: the friend code, formatted for readability and copyable; codes are only visible to logged in viewers
- Avatar: a trainer class sprite chosen in Settings, from the full Pokemon Showdown trainer library (every generation group, Let's Go, Masters EX, and Pokemon GO) plus GBA style sprites from the open source Dreamstone Mysteries and pokeemerald-expansion projects. The picker has a keyword search that understands type, role, gender, generation, region, and Pokemon GO faction
- Pronouns and location (region and country, shown only at the precision the trainer chose)
- Favorite Pokemon sprite, including a shadow styling for shadow forms
- Raid rank badge: earned through Raid Finder XP
- Staff badges: a crown for the Owner, a gem for Admins, a medal for Moderators, and a test tube for Testers, plus special ranks: a check mark for Trusted users and a clapperboard for Content Creators (see Trust-and-Awards)
- Tags: colored labels assigned by staff
- Awards: badges awarded by staff for achievements or contributions (see Trust-and-Awards)
- Supporter indicators: a DONATOR badge and a rainbow name for supporters
- Online dot: shown when the trainer has been active in the last five minutes; online trainers sort first
- Shiny count: the number of shinies in the trainer's collection is shown on the card when their profile is public and they have not hidden their collection; clicking it opens their shiny collection (see Privacy below)
A search box filters the grid live. Clicking a card opens the trainer's dedicated profile page at /trainer/{username} (see Trainer Profile Pages below).
- Create an account and log in (Accounts-and-Roles).
- Open Settings and set your trainer name and trainer code; pick an avatar, pronouns, location, and favorite Pokemon if you like.
- Make your profile public. Until you do, only your username appears, marked with an asterisk, and no profile details are shown.
Privacy is granular: location display precision is your choice, and trainer codes are hidden from logged out visitors. Some fields are always visible on trainer cards and profiles regardless of the privacy toggle: rank badge, donator badge, staff badges, user tags, awards, avatar, and favourite Pokemon sprite. The Show my full profile toggle controls a narrower set of fields, when the profile is private, trainer name, pronouns, location, trainer code, and shiny collection are all hidden. A separate Hide shiny collection toggle (also in Settings) prevents your caught shinies from appearing on your trainer card without affecting the rest of your public profile. Staff can hide an account from the directory entirely (a moderation control, see Admin-Guide); disabled accounts never appear.
Every trainer in the directory (and anyone with a public profile) has a dedicated page at /trainer/{username}. The page is public and does not require login to view.
The profile page shows a hero layout with the trainer's avatar and favorite Pokemon layered together, their name, pronouns, badges, tags, location, join date, and trainer code (when the viewer is logged in).
Logged-in viewers also get a Report action on another trainer's profile to flag bad behavior (spoofing, harassment, and so on); it goes to the moderator queue and the reported user never sees it. See Player Reports.
The profile page also shows follower and following counts. Both counts are clickable and link to /social/{username}, the Connections page, which lists the trainer's Friends, Followers, and Following in separate tabs.
When logged in, the page also shows social action buttons below the profile card (see Social Features):
- Follow / Unfollow: follow or unfollow this trainer
- Block / Unblock: block or unblock this trainer
When viewing your own profile, the action buttons are hidden and replaced by a Connections preview section with a link to your full Connections page at /social/{username}.
The bottom of every profile page shows the Community Feedback section: a form to leave feedback (when you are logged in and not on your own profile) and all feedback entries that other trainers have left for that person. See Social Features for details.
The page is the templates/trainers.html template, rendered server side by TrainersPage in internal/handlers/trainers.go. The handler queries all users with directory_hidden = 0 AND disabled = 0, resolves each avatar slug to its sprite URL through the trainer class catalog, computes the raid rank from raid XP, and derives online status from last_seen_at within the last five minutes. Cards are emitted as HTML; a small inline script drives the search filter, and clicking a card navigates to that trainer's full profile page at /trainer/{username} (the former in-page profile popup was removed in v0.1.5b).
The shiny collection is loaded lazily by the profile page via GET /api/shinies/of/{username}. The endpoint returns an empty array for private profiles or when shinies_hidden = 1; it includes pre-resolved shiny sprite URLs so the display does not need a separate data lookup. Each shiny cell is tappable and opens a detail modal (ts/trainer.ts) showing only the fields the trainer recorded (costume, event, method, catch date, Shadow or Purified badge, evolved indicator); on your own profile the modal adds an owner-only Edit link to /shinies?entry=<id> that jumps to and highlights that entry in your collection. See Shiny Tracking for the collection itself.
Trainer profile pages are rendered server-side by TrainerProfilePage in internal/handlers/trainers.go as the templates/trainer.html template. Social state (friend/block relationships) is fetched client-side via GET /api/social/{username} after page load so the profile renders immediately for all visitors regardless of login state.
Favorite Pokemon sprites come from the PokeAPI sprite repository, and avatar sprites are cached and served through a local sprite proxy rather than hotlinking the upstream CDNs.
Repository | Live site | hailsDotGO is a fan-made project, not affiliated with, endorsed by, or connected to Niantic or The Pokémon Company. Game data comes from community sources credited on the Data Sources page.
Start Here
Features
- Raids and Counters
- DPS Calculator
- IV Calculator
- PvP IV Ranker
- Events
- Shiny Tracking
- Trainer Directory
- Raid Finder
- Social Features
- Trust and Awards
- Bug Reports
- Player Reports
- Store
- Accounts and Roles
- Admin Guide
Self-Hosting
Development
Translations