Jump to content

Suggestion - PKHex Side Move Tracking


RagingMagikarp

Recommended Posts

With how TPCi is handling Pokemon Home, my Pokemon's moves get reset for each individual game, and I've got to reteach them moves. After that, the move data is stored for that game. This is all fine and dandy if you've only got a few Pokemon to worry about. I've got about 1,500 Pokemon that I'd like to keep good moves on. This is a nightmare to do with each game release. This leads to my suggestion.

 

It would be super nice if PKHex could create a database linking the moves a Pokemon knows with its Home Tracker. Then, there could be a feature where you can have PKHex check the Home Tracker and automatically assign the last moves it had back onto the Pokemon (leaving any moves that would be illegal for that game as blank moves or placeholder moves). This would make it a lot easier to keep my collection actually useful going forward with new games.

 

As an example, let's say I have a Charizard in Shield with the moves Flamethrower, Dragon Breath, Air Cutter, and Scorching Sands. PKHex would be able to create an association with that specific Pokemon (Using its Home Tracker/PID/EC) and it's move set. This could be in a database .txt or something. If that same Charizard is then sent through Home into Violet its moves are reset. However, if the Charizard is put in PKHex Violet save file, the program would have a function to detect that same Charizard from Shield is now in Violet and reapply all legal moves it previously knew - leaving empty move slots for currently illegal moves it knew prior (so that I can manually pick only necessary new moves) or just setting illegal move slots to random legal moves.

Link to comment
Share on other sites

Moving it into a game with PKHeX won't notify HOME that it was moved, so the tracker wouldn't match their expected state (thus it would still get flagged by them). {X} tracker on game {Y} is valid, but {X} tracker on game {Z} is not valid.

PKHeX aims to mimic the official behaviors, so it mimics the move reset logic. The program has a "LegalityRejuvenator" which detects the original relearn moves to try and keep things legal, but it does not attempt to migrate the prior moveset.

If the logic were changed to try copying moves, it would have to try and do it legally (including setting all moves and any relearn flags) from the original. Chances are, you're going to want to validate the moveset copied over, so just copy it over yourself? If you're wanting to bulk move thousands of files, I would recommend using PKHeX.Core with LINQPad to write your own c# script that converts each file, copies the moves and sets the relearn flags, and compares the movesets, and puts them in separate folders if they match or are illegal.

PKHeX has PKHeX.Core available as a code library, and others have written plugins to override/enhance behaviors. Anyone can provide a custom IEntityRejuvenator implementation that maintains a facade of HOME's database and custom migration behaviors, but it's not something that the regular PKHeX aims to do.

Link to comment
Share on other sites

On 1/3/2024 at 10:34 AM, Kaphotics said:

Moving it into a game with PKHeX won't notify HOME that it was moved, so the tracker wouldn't match their expected state (thus it would still get flagged by them). {X} tracker on game {Y} is valid, but {X} tracker on game {Z} is not valid.

I was meaning that I take the Pokemon from Shield -> Home -> Violet. Not directly from Shield to Violet via PKHex.

 

This way, when a new game or DLC comes out I could just transfer all the Pokemon that are in that game/DLC from Home to the game. Then, load up my save in PKHex, click a few options, and boom; they all have their prior movesets from whichever game PKHex has the data and home tracker for.

On 1/3/2024 at 10:34 AM, Kaphotics said:

The program has a "LegalityRejuvenator" which detects the original relearn moves to try and keep things legal, but it does not attempt to migrate the prior moveset.

I tried Googling this, but I didn't see any relevant results. Can you link to more information on the LegalityRejuvenator?

Link to comment
Share on other sites

The issue is that HOME continually changes the HOME tracker. If you have a dump of PK8 files, migrate them through HOME and into SV, you can't just do a lookup on the trackers and try applying their corresponding moves into their SV instance, because the HOME tracker is different for both. You'd have to use a heuristic (combining PID/EC and other details) to try and 1:1 correlate them, then run an operation to try setting those moves legitimately.

32 minutes ago, RagingMagikarp said:

Can you link to more information on the LegalityRejuvenator?

It's moreso for people looking to make a plugin. That's the name of the class you'd replace with whatever custom implementation. PKHeX's source code is available on GitHub.

If your goal is to retain legitimacy, then you have to transfer them legitimately via HOME, which won't use PKHeX's transferring logic. You'd need some other bulk operation that is triggered from a box / folder, completely separate code from what PKHeX currently does. Then you would likely want to audit to see which ones were able to have all moves migrated, which had none, and which had a few. Learnsets change between games, and meta movesets are not always the same. It's not something I'm interested in doing since it's incredibly niche (how many people would actually jump through the hoops to get bulk moveset copying?).

You (or someone else) is more than welcome to make a plugin that adds a button to do all that, but I don't see it as necessary to be in the main program that is distributed & maintained by me.

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...