• Hi, Guest!
    Some images might be missing as we move away from using embedded images, sorry for the mess!
    From now on, you'll be required to use a third party to host images. You can learn how to add images here, and if your thread is missing images you can request them here.
    Do not use Discord to host any images you post, these links expire quickly!
Updating a Script

Updating a Script N/A

v20 has been out for a little under a month, and a lot of resource creators are getting that beloved question - "Will you be updating this to the latest version of Essentials?" And now, here's this guide to ask that question back - Will you be updating that resource to the latest version of Essentials? (Well, maybe not with that kind of tone)

Updating a script isn't a one-size-fits-all situation, of course - a script could cover any aspect of the game, so there's not a simple list of "change x to y". This guide is just meant to outline how you can figure out what it is that you need to change.

1 - Do you need to update this script?
It seems like an obvious "Yes", but it's best to check beforehand so you don't waste your time and effort doing something unnecessary. Answer these questions -

Has this script been made part of the default kit?

This isn't especially common, but it does happen sometimes, usually with canon mechanics or tools specific to Pokemon Essentials. For example, Mr. Gela's Learn a move on evolution and Text input settings were both made native to Essentials in v17, and Maruno made his Invalid Tile Eraser part of the base kit in v19.

Is this script actually incompatible with the latest version of Essentials?

Most scripts usually aren't compatible with new versions, but it doesn't take long to check - just pop it in, playtest, and see if you get any errors.

Has someone updated this script elsewhere?

While people generally post updates to resources on the same thread as the resource itself, this isn't always the case. There's three main reasons for this:
  • The resource got a big overhaul or rebranding - usually just done for big projects, like ZUD, Gen 8, or EBDX (which used to be called EBS)
  • The original creator isn't active on a certain community - for example, Kleinstudio doesn't even have a Relic Castle account, so all of his scripts here have to be published by the person updating them
  • The updater wanted more control over displaying and hosting the resource - usually this is just to have more control over the download link, but some people just like prettying up a display.
Is the creator planning on updating the script themselves?

This is where you actually should ask "Do you plan on updating this to the latest version?" - but, you should make sure to include that you're planning on updating it yourself. That way, it's clear that you're asking to see if you need to do the work, not to just put pressure on the creator.

2 - What's changed in the newest version?
Or, more specifically, what changes in the newest version are related to this script?

Maruno outlines major changes on the announcement post, and details them more extensively on the wiki's Change Log. Scripts are generally still organized the same way across versions, so you can poke around and see what's different about PScreen_Party compared to UI_Party, for example, maybe even checking with text-compare. The debug console will also warn about depreciated methods that are slated to be removed in the next version if you use them, so you can stay ahead of the game.

Some changes are more universal than others - for example, when Kernel. was phased out, it could be removed from most any script that used it. (which was a lot of them) The change to symbols has affected scripts that affect Pokémon, Trainers, items, moves, and pretty much anything relating to the PBS, so now PBSpecies, PBTrainers, etc. can all be removed in favor of just putting the internal name.

If the script in question is more a series of instructions, this will be your main focus. If it's plug-and-play, you'll figure out all the relevant information when you answer...

3 - What bugs and errors do you get when trying this script now?
This is the thick of it - you need to playtest to encounter errors, and then figure out how to fix them. (I have a guide to figuring out what an error message is saying here) There's really nothing to it but to do it, but some tips you might find helpful when fixing them -
  • When you find a variable or method that needs to be updated, go ahead and update it everywhere it appears in the script. Ctrl+H will pull up the Find and Replace function, but make sure you don't mess up something where the text partially appears. (For example, if I did find and replace for sprites, I would also replace part of spritesheet. The Whole Word option would avoid this when toggled)
  • After making one change, look around and see if you can anticipate similar changes elsewhere. Changing from camelCase to snake_case, renamed classes or methods, etc. - these kinds of things tend to be applied over large sections.
  • Look for similar mechanics in the default kit - they'll have working code, and it'll usually easier to adapt the default code to a script than vice versa.

As an example, I'm going to write out the process I take when updating Vendily's Evolve During Battle.

1 - Do I need to update this script?
Has this script been made part of the default kit?

No. This is not a canon mechanic, so it probably won't ever be.

Is this script actually incompatible with the latest version of Essentials?

Well, it almost did work, but I got an error at the end -
1655029487059.png


So, no.

Has someone updated this script elsewhere?

Not as far as I can tell, no.

Is the creator planning on updating the script themselves?

I've generally taken over updating this since Vendily posted it, although she has helped catch errors since then.

2 - What's changed in the newest version?
Well, judging by my playtesting and error message, it looks like evolution checks and the evolution screen haven't really changed, but the class PokeBattle_Move has, so I'll need to figure out what that's called now.

3 - What errors do I get when trying this script now?
I got that error message earlier, so let's start with tackling that.

First, I'm going to see if anything else uses from_pokemon_move.
1655029717286.png

Looks like we've got some results, and they're using Battle::Move instead of PokeBattle_Move. Let's see if that works!

Ruby:
            pkmn.moves.each_with_index do |m,i|
              battler.moves[i] = Battle::Move.from_pokemon_move(self,m)
            end
Another debug battle, and it looks like it worked! The music is correct after battle, too, and items used for evolution are consumed!

This was a simple script to begin with, so there's no much to change. (That's why I chose it for this tutorial lol) More complicated scripts will likely have several more changes to make, but it's just a matter of chugging through it all!

If you don't plan on updating a resource...

If you don't plan on updating a script yourself, or asking a team member to do it, then there's really no need for you to ask the script creator if they plan on updating it. Either a) they're no longer active in the community and don't plan on updating, and it's not likely they're going to change their mind just because a stranger asked, or b) they plan on updating it but just haven't gotten the chance to do so, in which case, your asking them isn't really changing anything. (It's very unlikely that a resource creator would be unaware of a new Essentials version releasing)

Also, please stop asking "Is this compatible with the newest version of Essentials?" There's only one way to find out for sure, and that's by playtesting. You are just as capable of playtesting as the resource creator is.
Credits
None needed.
Author
TechSkylander1518
Views
3,136
First release
Last update
Rating
0.00 star(s) 0 ratings

More resources from TechSkylander1518

Back
Top