• Do not use Discord to host any images you post, these links expire quickly! You can learn how to add images to your posts here.
  • Eevee Expo's webhost has been having technical issues since Nov. 20th and you might be unable to connect to our site. Staff are also facing issues connecting, so please send a DM to Cat on-site or through Discord directly for faster service!
Resource icon

Dev Kit Essentials v21.1

Pokémon Essentials, version 21.1
30th July 2023

Change log
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!
Author
Maruno
Downloads
2,986
Views
8,265
First release
Last update

Ratings

5.00 star(s) 1 ratings

More resources from Maruno

Latest updates

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

    Pokémon Essentials, version 21.1 30th July 2023 Change log v21.1 Hotfixes plugin Essentials...
  2. Pokémon Essentials, version 20.1 - 20th June 2022

    Pokémon Essentials, version 20.1 20th June 2022 Change log v20.1 Hotfixes plugin Essentials...
  3. Pokémon Essentials, version 19.1 - 22nd May 2021

    Pokémon Essentials, version 19.1 22nd May 2021 Change log Essentials v19.1 has now been...
Back
Top