PokeAPI / PokeAPI/pokeapi

"Order" field not populated for Pokémon whose level-up moves are not in numerical order

Open
#1,534 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
5.4k
Forks
1.2k
Avg merge
2d 5h
Merged PRs (30d)
21

Description

There are a handful of cases in the Pokémon games where their level-up movesets are not ordered numerically. This can actually impact gameplay, mostly just in terms of what moves wild Pokémon know (and in what order), but in Sword and Shield it really matters.

  • In Pokémon Yellow, Primeape's learnset lists Thrash at Level 46 then Screech at Level 45. Primeape still learns the moves as normal at the appropriate levels. If you catch the Level 46 Primeape on Kanto Route 23 I'm not sure what order the moves are in (I didn't find anything in my research notes about this case), but they could theoretically be impacted.
  • In Generation II, Muk's learnset lists it's moves completely out of order. As Bulbapedia notes, this means that wild Muk (which can only appear up to Level 33 in Gen 2) will only know Poison Gas, Pound, and Harden (and not Minimize and Screech, which they would know if their learnset was ordered correctly).
  • In Pokémon Sword and Shield and Pokémon Brilliant Diamond and Shining Pearl, Dragonite's learnset lists Outrage at Level 41, but sorts it between the Level 62 and Level 80 moves. In Sword and Shield at least (apparently I never actually tested BDSP), this prevents Dragonite from learning the move by level-up at all. (I made a Twitter thread detailing my research on this topic in 2023, but I have since privated my Twitter and don't plan to undo that. I can repost the details in this thread if desired.) However, it can still learn Outrage via the Move Reminder starting at Level 41; additionally, the wild Level 71 Dragonite at Ballimere Lake knows Outrage (since it's above Level 62).

Those are the only cases I'm aware of in the core series games, but it's possible there are some in other games that I'm not aware of. They're certainly the only cases in Gen 1, 2, and SwSh/BDSP.

I think it would be worth including "order" values for the entire learnset in cases like these, since it does actually make a functional difference.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by comparing the linked source learnsets in data/pokemon/evos_moves.asm and data/pokemon/evos_attacks.asm with the API's current learnset representation, then trace how Pokémon Sword and Shield and Brilliant Diamond and Shining Pearl data are imported. Identify every affected out-of-order learnset and define the expected order values; done means the API preserves the intended move order for the documented cases.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, data
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.