Thanks for the quick and detailed reply Lucidi. I'll take a look at what's done with Alcremie and post results if I figure out a good way to get the edits working.
Another thing I started wondering about is if the rb scripts in plugins need any editing, if I want to change a few types in the type-chart? The scripts seem to dynamically look at your Essentials script definitions and handle things for you. Couldn't find type references in the files I looked at. My case would be on the easier end since I'm basically just making all Rock types -> Ground types and then replacing Rock with a new type, mostly just making sure the right names are changed in a few locations and making the new graphics match. Basically just swapping and renaming old definitions. As long as I get Continental Crush e.g. to use the new type I think I know how to do the rest from there.
EDIT: Since I got on a text editor. In Battle Mechanics.rb I found the lines that force forms for G-max. Pretty self-explanatory, if you're using Gen 8 project, Alcremie and Cramorant are in your PBS/pokemon.txt.
Code:
# Alcremie reverts to form 0 only for the duration of Gigantamax.
battler.pokemon.form = 0 if battler.isSpecies?(:ALCREMIE) && battler.gmaxFactor?
battler.pokemon.form = 0 if battler.isSpecies?(:CRAMORANT)
Now in our PBS/pokemonforms.txt we already have a Mega with altered info I want to treat as a G-Max instead. We add a new line under the Cramorant logic.
Code:
battler.pokemon.form = 0 if battler.isSpecies?(:CRAMORANT)
battler.pokemon.form = 1 if battler.isSpecies?(:ALTARIA) && battler.gmaxFactor?
Since that's the logic I found relating to species, the other scripts should just handle the rest. Although it seems irrelevant, might want to remove the MegaStone requirement in the PBS. And of course make the stats, especially the HP the same as form 0 unless you want your G-Max forms even more busted. Please correct me if I missed/misunderstood something in the scripts.
Tweaking types and moves would take more work. A hacky solution I thought of would be using the old internal type word, while only changing the types.txt and renaming the altered type anywhere the game displays text or graphics.