Jump to content

PKHeX sets "shiny male" as default form in dex causing glitches + incorrect labels in dex editor


Siobonbon

Recommended Posts

After editing my save numerous times with no apparent issues I recently started noticing some Pokémon I edited displaying as shiny in the Pokédex even though I didn't edit them to be shiny. When I opened up the forms page I found that the first entry for each affected Pokémon had been replaced by a "phantom" entry for the shiny male form (even for female-only Pokémon; genderless Pokémon appeared shiny but were properly labeled) which didn't affect the counter for "shiny forms seen" and reverted to non-shiny if another form was viewed. But since female-only and genderless Pokémon don't have other forms I had to turn to PKHeX to solve my problem. I opened up the Pokédex Editor and sure enough, every affected Pokémon had the checkbox marked "Shiny Male" under the "Encountered" label checked. So I figured I'd just uncheck the box and everything would be fine. But then I hit another snag: female-only Pokémon have the box grayed out so you can't check or uncheck it. Luckily I found that clicking the "Check All" box checks every legal box but unchecks the illegal ones, so problem solved, right?

Well unfortunately I only knew what flag was causing the problem, but not why that flag was being set in the first place, so I would have to keep fixing the problem every time it occurred. I also couldn't understand why checking the box for encountering a shiny male somehow replaced the non-shiny male entry and why it disappeared when I viewed another form. After looking over several other Pokémon I began to notice something strange. For every single Pokémon, only one form was marked as encountered, even when I'd seen both forms. And some Pokémon were marked as having both genders owned, even though I only owned one. It was then that I realized what was causing the Pokédex entries' odd behavior: the labels in PKHeX's Pokédex editor are incorrect!

The first four checkboxes under "Owned" (male, female, shiny male, and shiny female) are actually the flags for ENCOUNTERED forms. There are no flags for OWNED forms, since the Pokédex doesn't register whether you've owned an individual form or not, only if you own at least one of the species and whether it's Kalos native or not (and apparently whether you own it by trading, but that doesn't seem to affect anything in-game). But what about the checkboxes under "Encountered" then? Those are actually for the default form displayed in the Pokédex. When the game is told to default to a form you haven't encountered yet, it overwrites the first form you have encountered until another form is viewed.

Now I'm no programmer, so I don't know exactly why setting a Pokémon also sets the flag for displaying the shiny male form in the Pokédex (and why it only happens for some Pokémon and not others), but I think I do know how to stop it from causing problems in-game if it can't be fixed outright while also addressing the issue of incorrect labeling. First, the checkboxes should be reorganized as follows (everything's in the same order, just regrouped, relabeled, and renamed for the sake of clarity):

Encountered
☐ Male
☐ Female
☐ Shiny Male
☐ Shiny Female

Owned
☐ Via Trade
☐ Gen VI Native
☐ Previous Gen Native

Displayed Form
☐ Male
☐ Female
☐ Shiny Male
☐ Shiny Female

Next, make it so that only one displayed form can be checked at a time, and when a displayed form is checked, the corresponding encountered form is also checked automatically. This way even if the displayed form is changed by mistake (like PKHeX seems to be doing now for some reason) it will display normally in-game instead of replacing the default form and creating the aforementioned glitch.

Lastly, and this part is optional as I imagine it will take quite some time to implement, the Pokédex editor should also have checkboxes for all possible forms of Pokémon with alternate forms like Vivillon, as well as correctly labeling genderless Pokémon's forms as "Non-Shiny" and "Shiny" instead of "Male" and "Shiny Male" while hiding the corresponding female forms. The box for Spinda's pattern should also only appear when Spinda is selected instead of appearing for every Pokémon. I realize there's not a lot of space there to work with so maybe you could add scrollbars for Pokémon with more than four forms? I'm assuming that PKHeX already correctly sets the flags for alternate forms when the Pokémon is set, but having them all actually display with correct labels and be directly selectable in the editor would be nice.

EDIT:

It seems PKHeX is also randomly setting the "Via Trade" flag for certain Pokémon, and these are ones I haven't edited at all. At first I thought this was another case of the checkbox being incorrectly labeled and assumed it was for Pokémon you saw in a trainer battle rather than in the wild, but it's set for Zapdos and I have Articuno in my game, so I don't know what the flag is actually for or why it's selected. >_>

Link to comment
Share on other sites

Thanks for reporting :) I appreciate the thoroughness in your report (my only gripe is it wasn't immediately obvious which game you were using! :P)

Fixed and implemented suggestions in latest commit.

* Spinda Box is only visible when Spinda is selected.

* Only one "Displayed" (shiny)gender is allowed to be selected at a given time.

There currently is no list/table associating which form-flags are for which form, so for now that remains un-editable. I have plans to redo the Fill Dex method, and I'll probably do something with the form flags at that time.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...