Hello! This pastebin contains data on all the trainers in Pokemon Platinum, excluding those in the battle facilities. By and large, this is data you can find on Serebii or Bulbapedia, but here's it's more localized instead of having to sift through multiple webpages. There's also some more hidden data that you won't find elsewhere, though. First are IVs. These are lightly obscured under a property I've seen referred to as "difficulty", a value that ranges from 0 to 255, that's converted to an IV value by multiplying it by 31, then dividing by 255 and taking the quotient. All stats then get that IV value (with one exception I'll talk about later). Difficulty is pretty plainly apparent in the narc files the game uses for data, but for whatever reason most websites don't bother showing them.
What is far more obscured, however, are the natures. I've heard speedrunners refer to natures for years, but even looking at the raw data files, they're nowhere to be seen. I looked into it a bit, and it turns out nature (along with gender and ability), are generated from the Personality Value, the arbitrary value that determines shininess and Wurmple's evolution. But, this also isn't in the game's files. So how is it generated? It doesn't seem to be random, since again based off what speedrunners say the trainers' Pokemon have set natures. I won't go into detail on how I found it out (I posted a topic on ProjectPokemon about it if you're interested), but I ended up determining the algorithm used to calculate it:
- The sum of a Pokemon's National Dex ID, Level, Difficulty, and the trainer's position in the data file (these are the numbers you see before each trainer title in the pastebin) is used as input (or "seeding") for the RNG function. Without getting too much into how pseudorandom number generation works, the result you get from the RNG function isn't actually random, rather, the game makes the input to the function change in imperceptible, seemingly random, ways. So since the input is constant every time you fight a particular trainer's pokemon, the same result is achieved every time.
- Rather than just being used once, the RNG function is ran a number of times equal to the trainer class, which is represented internally as a number (as is basically anything). The input for the subsequent calls to the RNG function are a truncated version of the previous result.
- Once it's done with the RNG function, it multiplies the result by 256, then adds a value depending on the trainer's gender - 120 for female, or 136 for male.
- Ability is determined by whether the Personality Value is even (ability 1) or odd (ability 2). But if you're observant, you'll note that it's a value multiplied by 256 (an even value), then added to by either 120 or 136, both even values. Thus, the result is invariably even, so all trainer Pokemon have their first ability.
- You may have noted while playing Pokemon over the years that all Pokemon seem to share their trainer's gender. This is indeed how it works, though there are exceptions. Gender is determined by taking the personality value mod 256 (which in this case means the result is equivalent to the 120 or 136 added at the end), and comparing that to the Pokemon's species gender value which is a number that when compared against 256 is the percentage chance they can be female. For a standard 50/50 ratio, if this result is under 128, then the Pokemon is female (128/256 = 50% chance to be female), otherwise it's male. So a female trainer's Pokemon has a gender value of 120 which is less than 128, thus their 50/50 gender ratio Pokemon are also female. However, because the assigned trainer gender values are extremely close to the default 50/50 species gender value of 128, any Pokemon with a skewed gender ratio will instead be whatever gender they're skewed towards. A 75M/25F Pokemon for example, will have a species gender value of 64, so since 120 is higher than this even a female trainer will still end up with a male version of that Pokemon.
Anyways, that's the meat of the information you'll find in this pastebin you won't find elsewhere. The only other thing is AI, but this is basically meaningless until we understand how it works. I represent these as decimal values (basically, normal numbers), but it'd likely be more accurate to represent them as binary values (0s and 1s), since they're most likely a collection of flags that assign behaviors based off of what's set. But without knowing what flag does what it's basically meaningless regardless except to compare which trainers have the same AI. All I can really tell is that "1" is the "bad" AI, and "7" is the most standard "good" AI. Also note that a higher number is not necessarily better. 33, for example, is 100001, which is only 2 flags set compared to 7 which is 000111, which has 3 flags set. And even then it's possible that setting some flags may actually trigger negative behavior. Again, it's mostly meaningless without detailed knowledge of how the AI works.
All I have left to share are some oddities in the data:
- Due to a typo, Volkner's Electivire has a difficulty of 2500 as opposed to the 250 the rest of his team has. If you put this through the difficulty formula I mentioned earlier, this gives it an IV value of 303. Obviously this is illegal, but the game has a failsafe where illegal IV values cause the IVs to get randomly regenerated. However, this is done after the Personality Value is generated, and thus uses the RNG function. And the game doesn't reset the seed/RNG input by the time this failsafe is reached, so it ends up with the same RNG input and thus result every time. Unfortunately for Volkner, the 4/3/29/18/15/19 spread it ends up with is pretty poor.
- Trainer genders are mostly what you'd expect, but Saturn is notably female instead of male, which according to Bulbapedia is his canon gender. I tried looking up clips of Saturn on youtube from the anime, but I just got a deluge of Team Galactic AMVs??? I guess this was a thing... Anyways, there are some other examples of this in HGSS, where both Bugsy and Will are internally female. Given the examples, it's possible that GameFreak is using this to denote gender nonconformity, or it could just be a typo. Who knows.
- There are double battle classes that have both a female and a male. In all cases, these are just treated as male.
- There is an unused double battle class called Sis and Bro, which is a male swimmer and a female tuber. You may have seen this on TCRF.
- There are two leftover trainer teams from DP, at slots 266 and 330. These were both trainers from Hearthome Gym. I left their names blank to denote that they don't exist in Platinum, though. On this note, I'll point out that names are not actually stored with the trainer data. I suspect it's located in the event data for the maps, but I was lazy and didn't want to learn how to find and interpret that data and assigned names to the teams manually. Given that this took 5 hours, it almost assuredly took longer than just learning something new. Oops.
- There are a number of teams I can't seem to locate. 330 is a Beauty with a Level 19 Roselia, who as far as I can tell does not exist in DP or Platinum (there was a Beauty with a Level 17 Roselia in DP, and a Socialite with a Level 19 Roselia but neither quite match). There's also a stretch from 817 to 825 of Youngsters and Lasses with fairly mundane teams in the low 20s, but they don't seem to be used anywhere. Maybe a cut area?