Skip to content

ability_changelog_prose.csv inconsist compared to handling of other past_x variables. #1423

Description

@notblisy

For most things, like past learnsets, past_stats, or past_abilities, the api lists what those things were, and then what generation they changed.

Example would be Clefable, whose Special Attack went from 85 to 95 in Gen 6.

In the API, it looks like this:

  • pokemon_id, generation_id, stat_id, base_stat, effort
  • 36,5,4,85,0,

This means if I want to pull Clefables stats from Gen 5 or earlier, I have them.

Rather than doing that for abilities, the ability_changelog_prose.csv is presenting something closer to patch notes but backwards.

For example, sturdy changed in Gen 5 to be its current effect:

  • When this Pokémon is at full HP, any hit that would knock it out will instead leave it with 1 HP. Regardless of its current HP, it is also immune to the one-hit KO moves: fissure, guillotine, horn drill, and sheer cold. If this Pokémon is holding a focus sash, this ability takes precedence and the item will not be consumed.

I would expect this, if I pulled gen 4 data, to say:

  • The Pokemon is immune to the one-hit KO moves: fissure, guillotine, horn drill, and sheer cold.

What the changelog actually says is:

  • Does not prevent regular KOs from full HP.

Would we be open to the idea that the changelog_prose contains what the ability actually does in its past gens to be consistent with data is organized?

I would be willing to do the work for English.

Activity

  1. notblisy commented on Aug 20, 2026

    @notblisy
    ContributorAuthor

    I want to bump this and add that the way move_changelog and move_changelog_prose works is also inconsistent with the way past stats works.

    Right now they're formatted for Veekun, which is set up expecting the player to only look for modern gens, and it has the history in a separate section.

    Obviously if we removed the way it's currently setup, it could break some apps who use it the way Veekun is.

    Perhaps we just add new, different categories called abilities_past, move_effects_past, and move_effect_prose_past. My project and many others prefer to present info as it is for that game, IE, if I select the move Surf in Gen 1, it shouldn't say "it hits dive users".

    @jemarq04 I'll ping you since you're the one who made past stats for Pokemon. This kinda thing is beyond my technical capabilities other than data entry.

  2. Naramsim commented on Aug 25, 2026

    @Naramsim
    Member

    Hi @notblisy, currently reading the top issue. Yes definitely. By your Sturdy example I can understand what are you referring to. Just by seeing the example I can say that we are in favor of your idea and a general rewrite of the past abilities texts. Those text exctracts were all part of the legacy Veekun. We can definetly rewrite those and then derive a translation for the German and French entries.

    About the most recent second comment: I think I'm ok by replacing the text. We won't break apps since we would add the full past description. So the end user of the app will still understand what changed. Isn't it?

  3. jemarq04 commented on Aug 25, 2026

    @jemarq04
    Member

    Yes I think updating the current values in the API is fine - apps can update to match current setup. We’d just update the docs too. Since it won’t need all new endpoints, this should be a bit more straightforward

  4. notblisy commented on Aug 25, 2026

    @notblisy
    ContributorAuthor

    Okay, I agree actually it won't break anything. Sounds good to me in both cases!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions