Pokémon Essentials, version 21.1 - 30th July 2023

This is NOT a help thread! If you want help with something, ask elsewhere.

Pokémon Essentials, version 21.1
30th July 2023

Change log
Download v21.1
v21.1 Hotfixes plugin

Essentials v21.1 has now been released. This version contains improvements to messages, more sound effects and a new battle rule, plus a few other tweaks and a number of bug fixes. Download it today!

There is a v21.1 Hotfixes plugin which adds some bug fixes.

Pokémon Essentials, version 21
28th June 2023

Change log

The trend these days is for Essentials to get a new release each year. This is mostly unintentional, and a year just seems to be how long it takes to make a version's worth of changes. Still, here's the next one. This post is a summary of the bigger changes, and you can check out the change log linked above to see a more exhaustive list of what's new.

AI XL

A year ago, I asked people what they most wanted to be done to Essentials, and the biggest response was "improve the AI". So I did. I broke it into more manageable chunks and rewrote pretty much all of it. I also added a lot of new code and calculations to give the AI a better idea of how things work and what situations are good and bad.

There's a bit less randomness now, as trainers will completely avoid using a move they know will fail. They'll also avoid using a move which scores significantly worse than another move they could use - previously it would just have a smaller chance to use such bad moves. And if the AI breaks while deciding what to do, it will no longer give the player a free shot by doing nothing at all for that round.

Skill flags were supported in previous versions of Essentials, but were unused. Now, though, some skill flags have been invented, which dictate how a trainer's AI behaves. There's a flag for whether the trainer should keep their final Pokémon until last, for example. Many of these skill flags are given to a trainer automatically based on their trainer type's skill level. Certain wild Pokémon, namely Legendary/Mythical/Ultra Beast Pokémon, can have a higher skill level and will not use moves entirely at random - this also depends on a flag, but one in pokemon.txt rather than trainer_types.txt.

Oh yes, and the AI can now use Revives. I can't promise it will be that clever about it, but at least the AI now knows what a Revive does.

Gotta Go Faster

mkxp-z is the replacement to RGSS that Essentials uses, and is the basic game framework on which Essentials is built. It has been updated to v2.4.2.ee8dc7e, which is a mouthful, but it brings various performance and functionality improvements, including the possibility of multi-track BGMs. You'll most notice the performance improvements, though, which coupled with some rewriting of the Compiler code means that the Compiler is about 10 times faster than it used to be. That's quite a big deal.

The rest of the game will also run better because of mkxp-z's update. It'll also run more smoothly because Essentials is now fully FPS agnostic, which means it runs at the same rate no matter what the FPS number is. Its FPS is now whatever your monitor's refresh rate is, rather than a fixed 40, and v-sync is enabled to reduce screen tearing.

If you want some extra speed in your gameplay, though, an "instant" text display speed has been added to the Options. However, this just makes it easier for players to rush through dialogue and then complain that they don't know what to do, so maybe you'll want to remove that option.

I also fixed the camera lag that happened when sliding on ice, and the camera overshoot when jumping over some ledges.

Oops! All PBS Files

The big new thing with PBS files is that you can now have lots of them for each data type (e.g. items, moves, map metadata). They need to be named "items_XYZ.txt", where "XYZ" can be whatever you want, but that's the only limitation. This lets you organise your data much more conveniently now. A separate moves.txt file for moves of each elemental type? Split trainers into files depending on their location? Put your new items/abilities/etc. into their own files, separate from the "vanilla" content? Sure, you can do all of this now.

One example is Shadow Pokémon. There is now a folder in the PBS folder containing files for Shadow Pokémon-related content. To add them to your game, simply move those files into the main PBS folder and compile. You don't need to edit anything. Oh, and shadow_pokemon.txt now supports sections for individual forms of a species.

Other changes to PBS files include: pokemon.txt having fixes to movesets and additional compatible tutor moves, being able to give a species more than two types, items having portion names for some messages (e.g. "bag of Soft Sand"), and Poké Radar-exclusive encounters now belong in encounters.txt rather than the Settings. There are other changes too, mentioned elsewhere in this post and in the change log.

Lingua Pokémonica

Game translations are now a bit easier to do. All game text is now split into two data files: core (for text common to most games, such as messages in scripts and item names) and game (for text unique to your game, such as trainer names and event dialogue). The core messages stay as they are across all games, which means translated versions of them can be provided as resources and they won't get in the way of game-specific text that also needs translating.

When you extract text for translation, it goes into multiple files now instead of just one, in a dedicated folder for better organisation. You can split the text up into more files if you want, e.g. "translated" and "untranslated", because importing translated text simply imports everything in the folder regardless of filename. It's also a bit more user-friendly to extract and import text.

Some messages have been tweaked to make them better for translating. The game's credits and the nicknames of trainers' Pokémon can now be translated.

Call You Call Me

The mechanics of how the phone and rematchable trainers work have been changed. For starters, there's now a map metadata flag "NoPhoneSignal" which does what you'd expect it to do. The randomly generated dialogue spouted by trainers during phone calls has also been improved, with additional message options and the ability to define a set of messages for individual trainers (phone.txt now looks quite different because of this). If you want more control over what trainers say, you can easily make them run a Common Event for their phone calls instead.

The phone's UI and functionality has been improved a little. You can now delete contacts, and you can rearrange the list of contacts. You can also see whether you have a signal.

As far as rematches go, you can toggle whether rematches are possible (for example, in HGSS, rematches are only possible after Gym 7/beating Team Rocket in the Radio Tower). You can also limit which version of their party a trainer can attain, and change that limit during your game to ensure that rematchable trainers can end up with powerful teams of Pokémon but not too soon.

Because of the changes to the phone, the event commands required to register a new contact in the phone have changed, and you will need to update these yourself. The old registering commands should still work for now, but you'll need to change them eventually.

And Some Other Things

The Debug menu has additional functionality, such as being able to modify the lingering overworld effects (e.g. Repel steps, whether Flash is used), being able to modify the time/steps remaining and number of Poké Balls you have in the Safari Zone/Bug-Catching Contest, and many more properties of the phone and the contacts therein. When you end a battle in Debug mode when holding Ctrl, you can choose the outcome of the battle, and you can now end the battle even if the "Run" command has been replaced by "Call".

The random dungeon generator code has been overhauled. It now produces nicer-looking caves and uses more than three tiles to draw them. It also supports snapping the generation to a 2x2 tile grid, which is useful for forest dungeons because trees are 2x2 tiles in size. There's some random decoration too. There are two new PBS files to support all this, one defining which tiles exist in a random dungeon's tileset that can be used to draw it, and one defining locations which each have parameters such as the shape of the floor and size/number of rooms.

The Battle Frontier facilities now hand out BP instead of Rare Candies (different amounts depending on how well you did), and there's a BP shop in the local Poké Mart. Many items have been given BP prices (the default is 1).

All the graphics for various UI screens have been moved out of the Graphics/Pictures folder and into the new Graphics/UI folder. Some have been renamed and/or put into subfolders for added organisation. And speaking of UI, the Pokédex will no longer show male/female form options for species which don't have gender differences (i.e. if a female sprite doesn't exist).

I also added something to the game stats which counts how many times the player walks into something. They'll now also animate when they do so.

There are plenty of bug fixes too, and other things I haven't mentioned here. Have a look at the change log to find out more.

Enjoy!
 
Last edited:

Sonicover

Novice
Member
Joined
Jan 14, 2022
Posts
28
Age
26
I absolutely love the PBS changes. Not having to worry about merging pbs with other plugins that can delete/overwrite your previous work is a blessing, specially for back ups.
Amazing work as usual!
 

Flannery

I am not the Lavaridge Gym Leader, stop asking.
Member
Joined
Jun 29, 2023
Posts
1
Oh... OH... You know, there are worst things than downloading a program for the first time within 12 hours of the latest version being released. Are there any known concerns or bugs that we should be aware of? Or have you not had a chance to find them yet? Either way, thank you so much. <3
 

SuperSpyroDragon64

Cooltrainer
Member
Joined
Apr 20, 2022
Posts
150
Age
27
Can this compile large Pokemon Essentials projects?

Also, does this update let text describing the battle play AS the sprites onscreen perform actions and health bars adjust? Or is everything still segregated and broken up by countless one-second gaps as it was in the Gen 3 games?

EDIT: Also, any problem with players accidentally skipping past important text can be resolved by writing text players don't want to mash through(and not making the signal to noise ratio 99.9% bloated filler text and 0.1% information relevant to the story, gameplay, or important characters as Pokemon tends to do). Or by adding a repeatable method to get what's important about that text, like the option to talk to an important NPC again for a reminder. Or there can be a Quest Log to check, a UI Element that reminds you where to go and what to do as in Persona 5, a Journal item that writes itself in-universe from the protagonist's perspective as you go through the game, a Mission Control-type NPC you can phone, any other NPC in the area you can talk to, a companion you can talk to who always accompanies you, games solved this question decades ago in a variety of ways. Players who want to mash without reading will still do so even if the text moved at a snail's pace.
 
Last edited:

SARGØN

Rookie
Member
Joined
May 29, 2023
Posts
6
Age
23
Are there any plans to implement the 9th generation in future versions of the 21, as it was done until the 8th gen? Maybe after the next official DLC?

I know there is a separate Gen 9 Pack plugin, but I really like having it as the default, to have better control, especially of the scripts.

Also, thanks for the work done!
 

Lucidious89

Champion
Member
Joined
Nov 12, 2020
Posts
742
Age
34
Are there any plans to implement the 9th generation in future versions of the 21, as it was done until the 8th gen? Maybe after the next official DLC?

I know there is a separate Gen 9 Pack plugin, but I really like having it as the default, to have better control, especially of the scripts.

Also, thanks for the work done!
That'll most likely be a v22 thing. That would require way too many new additions for a simple v21.1 update. These smaller updates are mostly for bug fixes that can't be handled by hotfixes.
 

LinKazamine

Elite Trainer
Member
Joined
May 24, 2023
Posts
441
A petition to maybe add in future versions of Pokemon Essentials: have the paths to images with text use _INTL so they can also be translated.
I added them myself in the 20.1 version but it seems that despite adding more things to make it easier to translate the game in v21, this part hasn't been implemented yet.
 

Professor Frankly Gaming

Developer of ???
Member
Joined
Aug 11, 2017
Posts
9
if only some of luka plugins actually be a feature, it be a really big update
ebdx
modern title screen
fancy badges(would like the badge case to show BW,BW2)

PWT is minor tbh
these things be nice to have, but still, love the new dungeons and cant wait for v22 for next year, or alittle more depends
 

Inferadon

Trainer
Member
Joined
Jul 2, 2021
Posts
74
What wonderful news! ^^
Can't wait to use v21 in action!

Maruno, I can't thank you enough for all your work - you are really doing an awesome job!
 

Professor Frankly Gaming

Developer of ???
Member
Joined
Aug 11, 2017
Posts
9
there a battle rule i can think of that will make battles more fun if set,

a no Switch battle rule,(been watching the anima) you can't switch any pokemon unless they fainted. be a very nice addition like in the battle frontier.
of Corse it default to "canSwitch" and be "cannotSwitch" when you don't want a battle where you and the ai to switch pokemon. This is a example what i can come up with.
 

EzBound

PMD epic ringtone
Member
Joined
Sep 18, 2021
Posts
6
This new update is epic! The better performance, and easy translation methods are things i've been waiting for a while, and now that they are here i am so happy.
 

CarlosPR

Novice
Member
Joined
Mar 6, 2022
Posts
49
Age
29
Still with this new version and hotfixes when selecting Full screen the video get disturbed and its not playable.
can we get a new update fixing this issues on the new v21 version.
 
I can't extract the text for translation
IMG_8452.jpeg
 
Top