Jump to content

Is there a process for moving plugins into PKHeX?


foohyfooh

Recommended Posts

There a set of plugins and tools that are external to the PKHeX that fill in some very much needed flag editing.

Notable ones are

I know that I am not the owner of these so I can't moves these specific examples into the the PKHeX code base. But, assuming you don't have external dependencies like the raid plugin, is there any process for someone to move an existing plugin into the PKHeX code base, if it provides core functionality such as flag editing?

  • Like 1
Link to comment
Share on other sites

28 minutes ago, foohyfooh said:

Not a plugin. Also I programmd it in a different language from PKHeX, so I doubt it'll happen. :(

If you want something to be added to PKHeX, fork it in Github, write the code into your forked copy of PKHeX, then make a pull request.
Someone has to write the code. The devs would probably be too busy to include it themselves, especially when existing programs/plugins can already handle them.

(Also, don't ask me to rewrite it into whatever language PKHeX uses; I don't know the language.)

Link to comment
Share on other sites

I figured making a pull request would be the way to get it in, but I was just wondering if there is anything regarding the requirements of documentation and maintenance since the PKHeX Team would have to take over for any issues down the line.

 

I knew it wasn't a plugin. I had said plugins and tools in the above message, sorry that you missed that part of my question.

1 hour ago, theSLAYER said:

(Also, don't ask me to rewrite it into whatever language PKHeX uses; I don't know the language.)

As an aside, where is the source code for this tool so that someone can try to integrate it?

Edited by foohyfooh
  • Like 1
Link to comment
Share on other sites

1 hour ago, foohyfooh said:

I was just wondering if there is anything regarding the requirements of documentation and maintenance since the PKHeX Team would have to take over for any issues down the line.

Not that I know of. Typically one can make suggestions on the github issues page, which is probably the best place to do it.

(tho I imagine they get plagued by all kinds of inane requests ><)

1 hour ago, foohyfooh said:

I knew it wasn't a plugin. I had said plugins and tools in the above message, sorry that you missed that part of my question.

true, my bad

1 hour ago, foohyfooh said:

As an aside, where is the source code for this tool so that someone can try to integrate it?

It's not open source, but if anyone with proven capabilities wanna do it, I'll send them my code.

Link to comment
Share on other sites

Regarding integrating plugins into the main branch, there's upsides and downsides.

* Plugins can be updated independently of the main executable, and can be developed independently and with different coding styles the author is more comfortable with.

* Plugins can use external dependencies or string resources, which may bloat the overall size of the executable. Most plugins are niche use, and majority of the users never use them.

* More features added to PKHeX is more for me to maintain and clean. Not all implementations are reusable/extendable... If users ask about functionality of an editor that I didn't make or report a bug, it might not reach the original author for triage.

* Most plugins don't document their code thoroughly, making maintenance / other-reader comprehension more difficult.

* Plugins can act as a self-contained environment to play around & have others test, without needing the full executable.

* Not everything has to be a plugin or integrated with the main program; they can be standalone editors as well that reuse the core-project for exposing the save file operations and game strings.

* Different licensing being possible for plugins. Some people don't like GPLv3, or MIT.

===

* Dynamax Adventures plugin: makes flipping the dynamax adventure flags easier. Stock PKHeX can still toggle flags via the Block Editor, and you can automatically import a list of block names via the "SCBlocks.txt" feature. Most users don't need to reset event flags, when genning exists.

* Clothing: allows individual clothing piece toggles; tons of names. Stock PKHeX can import and export the final block; most users don't need to customize individual flags.

* Feebas: Most users don't need to calculate position, when genning exists.

* Auto Legality: Relatively big project with its own dependencies; separate development that ties into Stock PKHeX.

* Raid Plugin: Relatively big project with its own feature set. Separate development that ties into Stock PKHeX.

PKHeX is a hobby project; there's always more PKHeX can do, but there's only a finite amount of development attention. There is no auto-updater; infrastructure for that would take time + money (bandwidth). Not really worth when PKHeX isn't monetized.

There are plans for migrating away from WinForms to MAUI later this year; yielding native mobile/non-windows platform support. Less editors for me to port = less work for me to be stressed about. There are many other large(r) projects (like Notepad++) which have their own plugin system.

  • Like 2
Link to comment
Share on other sites

While I mostly agree with you, I do have some concerns

 

18 hours ago, Kaphotics said:

Dynamax Adventures plugin: makes flipping the dynamax adventure flags easier. Stock PKHeX can still toggle flags via the Block Editor, and you can automatically import a list of block names via the "SCBlocks.txt" feature. Most users don't need to reset event flags, when genning exists.

While I agree that genning would be easier, modifying the blocks via a GUI builtin to PKHeX to recatch Legendary Pokémon for competitive would be preferable so as to not violate the constraint of not using hacked significantly hacked Pokémon against others who wouldn't be aware.

 

18 hours ago, Kaphotics said:

Clothing: allows individual clothing piece toggles; tons of names. Stock PKHeX can import and export the final block; most users don't need to customize individual flags.

I would say that overwriting your clothes block just to get some of the gift clothes isn't an ideal solution for someone who just wants to toggle a flag.

(Note that I am not aware of if the way that gift clothes are distributed requires updating the whole block or just toggling a flag, but I am willing to assume that it just a flag since the game wouldn't want to have to send that extra data when you battle someone who didn't unlock those clothes.)

 

Link to comment
Share on other sites

1 hour ago, foohyfooh said:

While I mostly agree with you, I do have some concerns

While I agree that genning would be easier, modifying the blocks via a GUI builtin to PKHeX to recatch Legendary Pokémon for competitive would be preferable so as to not violate the constraint of not using hacked significantly hacked Pokémon against others who wouldn't be aware.

I would say that overwriting your clothes block just to get some of the gift clothes isn't an ideal solution for someone who just wants to toggle a flag.

Modifying individual block flags is possible with the Block Data editor; there are thousands of possible flags to change, and localizing all of them for each supported language would be tedious. We have a guide on manually editing flags (which includes the Dynamax Adventures values):

 

Clothing is again an issue with localization; having to detail what each piece of clothing is for each language is a large amount of bloat when 99% of users just want to "unlock all" clothing options. Unlocking all can be done by importing a block obtained from the forums. With each DLC / patch, the game may use more of the clothing bits, hence different possible bits. There's also the issue of legally-obtainable (gender-specific) clothes; having an editor with that metadata is a lot to manually document & maintain.

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