Essentials Docs Wiki
Advertisement

Essentials v20 was released on 19th May 2022.

Essentials v20.1 was released on 20th June 2022.

Essentials v20

Feature changes and additions

Gen 8
  • Added code for Gen 8 moves/items/abilities/Pokémon/evolution methods.
  • Added data for Gen 8 content to PBS files. This is based on BDSP.
  • Added super shininess.
  • Added affection mechanics.
  • Added Rare Candy being usable on a Pokémon at the maximum level if it can trigger a level-up evolution.
  • Added setting that determines if Pokémon put into storage are healed.
  • Added some settings which can make the Day Care work like the Pokémon Nursery instead.
  • Added the Pokémon Nursery mechanic of deposited Pokémon being able to learn egg moves from each other.
  • Added use for Game Switch 35, which disables the Pokémon Box Link while on.
  • Added map metadata flag "DisableBoxLink", which disables the Pokémon Box Link while you're in a map with that flag (used for Gyms/Elite Four/etc.).
  • Added $player.has_box_link that has the same effect as the Box Link item.
  • Added a new type of evolution that triggers after any battle. For Galarian Farfetch'd.
  • Added a new type of evolution that triggers manually (e.g. in an event). For Kubfu and Galarian Yamask (see the north-east bridge in the Route 2 example map).
  • Added LocationFlag evolution method, for species that evolve on maps which have a particular flag defined in map_metadata.txt.
Map renderer
  • Added a new map renderer, which should fix lag spikes for AMD graphics card users. Removed support for map flash_data, which you didn't know existed and which was unusable in RMXP anyway.
  • Added extended autotile format, which is the same as the large format but with four whole tile concave corners on the bottom.
  • Added support for animated autotiles to have their own animation speeds - just add "[5]" to the end of the autotile's filename to set how long each of its frames lingers for (the number is in 1/20ths of a second; default is 5).
  • Added support for the top tiles in a tileset being rendered using animated autotiles instead of the tileset tiles. Any number of extra autotiles can be added this way, both large and single-tile ones. This is hardcoded in EXTRA_AUTOTILES.
Followers
  • Rewrote and refactored dependent event code. Dependent events are now called followers.
  • Added def follower_move_route which makes the next "Move Route" event command apply to the follower instead.
  • Added def follower_animation which makes the next "Show Animation" event command apply to the follower instead.
  • Events are no longer automatically erased if they become followers.
  • Added example events to Route 3 of how to make a follower stop following, including how to make the follower move around by itself.
  • Improved how followers go through and come out of doors.
  • Follower checks when using some items/moves in the field are now more specific, which should help following Pokémon scripts.
Overworld
  • Added potential for surfing/diving/cycling movement types having their own running/jumping/stationary speeds and/or charsets.
  • Tweaked fishing animation.
  • The player's charset now only changes itself at the start of a step or the start of not moving.
  • The player no longer makes a bump sound when walking into something because of a move route.
  • A purchase SE now plays when buying entry to the Safari Zone, withdrawing a Pokémon from Day Care, and when buying coins or Game Corner prizes.
  • Replaced the overworld exclaim and question animations with better-looking ones.
  • Refactored and improved transition animations.
  • Added the HGSS "Vs Trainer" battle transition animation.
  • Added a battle transition animation for the Elite Four/Champion.
  • Added a battle transition animation for Team Rocket Grunts.
  • Added a battle transition animation for Team Rocket Admins.
  • Made it easier to register multiple special battle animations, like the old Vs animation one.
  • Refactored random dungeon generator code.
  • Refactored berry plant code.
  • Made Player Transfer event command not cancel surfing/diving, so pbTransferSurfing and pbTransferUnderwater are deprecated.
  • Re-added a way to erase (or change) a map's tiles on the fly. Used by soot grass.
  • The current map's encounter tables are now updated immediately if $PokemonGlobal.encounter_version is changed.
  • Brought controls more in line with official controls by swapping the alternate movement speed key (was Z) with pause menu key (was X).
  • Updated/improved messages when using a field move.
  • Added "Sight(x)" event name snippet, which lets the event spot the player at a distance. "Trainer(x)" is now just shorthand for "Trainer Sight(x)".
  • Added Game_Character#x_offset and Game_Character#y_offset, which adjust an event's display position by a given number of pixels.
PBS files
  • Renamed various PBS files.
  • Removed support for the PBS file tm.txt.
  • Added "Flags" properties to abilities, map metadata, ribbons, species, trainer types and types.
  • Abilities that hasten egg hatching now have a flag in abilities.txt for this effect.
  • Added new section-based format for berry_plants.txt.
  • Removed support for old encounters.txt format.
  • items.txt:
    • Added new section-based format for items.txt. The old format is still supported for now.
    • Added separate "SellPrice" property for items.
    • Added "Consumable" property to items.txt.
    • An item can now have any number of flags, rather than just one.
    • Repels now have a flag in items.txt which determines if they can be reused when one runs out.
    • Added flags for Fling power and Natural Gift type/power.
  • metadata.txt:
    • Split metadata.txt into metadata.txt and map_metadata.txt. Player character data is now in separate sections in metadata.txt, one per character, and you can now have as many characters as you like. NOTE: If you're using old PBS files, you will need to make these changes manually (move map metadata sections into map_metadata.txt without changing them, and move player character metadata into their own sections). Also, calls to pbChangePlayer will need to have their numbers increased by 1.
    • Added "Name" property to map_metadata.txt, which is the display name in-game.
    • When rewriting map_metadata.txt via the Debug function, map names will be added if possible and if the map doesn't already have a name in map_metadata.txt.
    • Added map metadata flag "HideEncountersInPokedex" which will make the Pokédex ignore that map’s wild encounters when displaying a Pokémon’s area.
  • moves.txt:
    • Added new section-based format for moves.txt.
    • Deprecated three move flags (can Magic Coat, can Snatch, affected by King's Rock) as they should depend on move effects instead.
    • Turned move flags into separate words rather than letters in a string.
    • Added move flag "TramplesMinimize" instead of having that effect be related to function codes.
    • Added move flag "CannotMetronome" instead of hardcoding the signature moves Metronome is forbidden to use.
  • pokemon.txt/pokemon_forms.txt:
    • Changed the names of some properties in pokemon.txt and pokemon_forms.txt.
    • Merged species "Type1"/"Type2" into "Types".
    • The "EVs" property's preferred format is now "ATTACK,2,SPEED,1" instead of "0,2,0,1,0,0".
    • The "Shape" property in pokemon.txt must now be a name and not a number.
    • Allowed the "WildItem" properties for species to contain multiple items each.
    • Added species flags that govern form inheritance while breeding, and a flag that sets a particular form by default.
    • Added pokemon.txt/pokemon_forms.txt property "Offspring" for species that can be produced by breeding instead of itself (although this property can include itself anyway).
    • Renumbered Spiky-Eared Pichu to form 2, so it doesn't clash with Alolan Raichu's form 1.
  • Added PBS file pokemon_metrics.txt, for all Pokémon sprite positionings. Can be distributed with sprite pack resources.
  • Added new section-based format for ribbons.txt.
  • Added new section-based format for shadow_pokemon.txt, which can now also define heart gauge sizes and flags.
  • Added new section-based format for trainer_types.txt.
  • trainers.txt:
    • Removed support for the old trainers.txt format.
    • The "Ability" property in trainers.txt can now only be an ability ID.
    • The "Ball" property in trainers.txt can now only be an item ID (specifically an item that is a Poké Ball).
  • Added Gen 6 PBS files for completeness.
Battle
  • Renamed all battle-related classes and modules.
  • Added battle debug menu (access with F9).
  • Refactoring of code relating to switching, effect damage, effects that trigger after a move is used, and end of round.
  • Added a Setting that lets some overworld weather set the default terrain effect in battle.
  • Added battle rule "disablePokeBalls" which prevents the player throwing Poké Balls at all.
  • Refactored battle-starting methods into WildBattle.start and TrainerBattle.start. They're now more convenient to use because they no longer have parameters for battle properties that can be set by battle rules.
  • Added Aura Wheel's visible type change in battle.
  • Added "display" methods for several move properties (which is how those properties are shown to the player) and quoted-out examples of their use (e.g. Hidden Power, Judgment).
  • Made it a little easier to disable move text getting its colour from its button in battle.
  • Added settings that enable disobedience check for all foreign Pokémon/all player's Pokémon.
  • Berries now trigger immediately when a Pokémon with Unnerve leaves the field or has its ability negated.
  • Added $player.has_exp_all that has the same effect as the (turned on) Exp. All item.
  • NPC trainers now require a Mega Ring item in their inventory (defined in trainers.txt) to Mega Evolve, rather than assuming they always can.
  • Added Poké Ball burst animations for sending out a Pokémon (for each kind of Poké Ball).
  • Added Poké Ball burst animation for recalling a Pokémon.
  • Added Poké Ball burst animations for attempting to capture a Pokémon (for each kind of Poké Ball).
  • Added animation for when a capture is successful.
  • Added a prompt for what to do with a caught Pokémon if the party is full, and an Options screen option that toggles whether it appears.
  • Added a battle rule that forces a captured Pokémon into the party.
  • Added support for separate cries that play when a Pokémon faints (put "_faint" on the end of the filename).
  • AI will now not use their last defined Pokémon until the end.
  • Improved message when an opposing trainer is sending in a new Pokémon.
  • Improved message when Exp All awards Exp.
  • NPC trainers' end of battle text is now read directly from the trainer object rather than extracted to an array.
UI and screens
  • Added the Town Map to the pause menu if you don't have the Pokégear but do have the Town Map item.
  • Added the option to use Fly while looking at the Town Map (if possible).
  • Changed when the title screen BGM starts playing.
  • Tweaked the timings of evolution messages and audio.
  • Added option to Options screen that can disable all nicknaming prompts.
  • Tweaked appearance of Options screen, including adding descriptions for all options.
  • Changed the available special characters in the naming screen.
  • When entering something's name, after entering the first letter and it is upper case, the letter tray automatically shifts to lower case.
  • Changed messages when learning a move.
  • Updated message when sending a Pokémon to storage.
  • Pokémon in storage no longer recalculate their form.
  • Updated Poké Mart messages to reflect the latest games.
  • Minor improvements to the Purify Chamber screen.
  • Added a Setting that makes a new Pokémon's Pokédex entry show after evolution, trading, hatching, gaining from Mystery Gift and general adding.
  • Added a Setting that determines whether the Move Reminder can teach previously known egg moves/moves taught by TRs.
  • Multiple "Show Choices" event commands next to each other will now be merged together, allowing more than four choices to be shown at once.
  • Added hide_choice and rename_choice which alter the next set of choices shown by an event.
Pokémon
  • Pokémon and battlers now have a single "types" variable, rather than separate variables for types 1 and 2.
  • Added Pokémon properties cannot_store (applies to Day Care as well), cannot_release and cannot_trade.
  • Changed how Pokémon markings are recorded, and allowed variants of each mark (e.g. alternate colours).
  • Added blue and pink marking colours.
  • Pokemon#foreign? now defaults to comparing the Pokémon's owner to the player if no trainer is given in its parameter.
  • Made Giratina's form use a map_metadata flag "DistortionWorld" instead of a hardcoded array of map numbers.
  • Tweaked code around inheriting forms from breeding with a Ditto.
  • Removed form-randomising code for Basculin, Flabébé and Oricorio.
  • Made Shadow moves optional for a Shadow Pokémon (if the default Shadow Rush isn't defined).
Code and data
  • Removed all uses and support for ID numbers.
  • Removed support for trainer type graphics using ID numbers in their names.
  • Removed all deprecated code slated for removal.
  • Removed support for pre-v19 save files.
  • Removed sprite renamer code.
  • Removed $BallTypes (which translated Poké Ball item IDs into special ID numbers) and all related code.
  • Cleaned up evolution method definitions by removing old probability arrays (no longer needed as the old encounters.txt format is now gone).
  • Added conversion of berry plant data in old save files to convert ID numbers of berry and mulch items to symbols.
  • Updated to mkxp-z v2.3.1. Ruby version updated to 3.1. The green lines bug should be fixed.
  • Changed mkxp.json to fix some uncommon rendering problems.
  • Rewrote random dungeon generator code to improve it and add comments.
  • Refactored Day Care code, including allowing any number of slots to be in it (default is 2).
  • Replaced get_character(0) with get_self.
  • Made def _I able to replace text like _INTL.
  • Rewrote and generalised def pbPickup, and moved its item arrays and chances into separate constants.
  • Many style and formatting improvements to the scripts thanks to Rubocop.
  • Forced encoding of text to UTF-8.
  • Renamed $PokemonBag to $bag. $PokemonBag will still work for now, but not if you try replacing it (e.g. when switching characters).
  • Renamed variables and methods relating to the Bag. $bag.has? can now check for a minimum quantity. Rewrote Bag's def rearrange.
  • Renamed $Trainer to $player. $Trainer will still work for now, but not if you try replacing it (e.g. when switching characters).
  • Renamed some other global variables.
  • Merged class PokemonTemp into class Game_Temp.
  • Merged Events and EncounterModifier into module EventHandlers for consistency.
  • Each proc registered to an event in EventHandlers now has a name so it can be individually referenced/replaced by other code, e.g. plugins.
  • Created module MenuHandlers for the contents of various menus.
  • Added def count to all GameData variants, and one that returns the number of species for Species.
  • Made more use of GameData::XYZ.keys.
  • A Pokémon's ability no longer needs manually setting to nil when changing its ability_index.
  • Moved code for using a HM/TM/TR into its own handler to better match how other items work.
  • Added some more utility code.
  • Made checks of map connections go through a single method (def self.eachConnectionForMap), which makes it slightly easier to modify connections on the fly.
Debug and compiling
  • Rewrote the "Fill Bag" Debug feature to make it much faster.
  • Terrain Tag Editor can now only set terrain tags that are defined, rather than any number.
  • Added terrain tag 17: NoEffect, to be used when covering up another tile's terrain tag (e.g. floor over water).
  • Added Debug function to reload system cache.
  • Added Debug function to toggle whether the next play of the credits can be ended early.
  • The Pokémon debug menu now shows the Pokémon's status problem.
  • Improved default console messages and colouring.
  • Added text indicating the GPU cache size to the console messages.
  • Changed the content of error messages raised by code in a Script event command.
  • Wrote a generalised data property editor that deals with a list of things from a GameData module.
  • Added a simple way to replace code in events with other code when compiling (should help with replacing outdated code).
  • The game will now automatically compile if it is missing any necessary .dat files.
  • You can now hold Shift while starting the game to compile just the plugins.
Files
  • Converted all mp3 and wav files to ogg files.
  • Replaced and renamed many BGMs, and made some of them ogg files to demonstrate looping.
  • Turned trainer intro MEs into BGMs.
  • Turned battle victory MEs into BGMs. The "Change Battle End ME" event command no longer does anything.
  • Added an SE for picking berries.
  • Added underscore to berry plant charsets to be more consistent with other file-naming conventions. Added a Debug menu function that checks for and renames berry plant charset files (both the files themselves and map events that use them).
  • Added missing water shore corner tiles to Cave tileset.
  • Added plugin meta.txt property "Essentials", which lists versions of Essentials the plugin is compatible with. Warns if this isn't defined or doesn't include the version of Essentials being used, but loads the plugin anyway.
  • Added an intro splash screen for mkxp-z.
  • Updated the Power Green fonts with more accurate glyphs and additional characters. Repositioned lots of text to accommodate the changes.
  • Ensured animation spritesheet/audio file extensions are removed from animation data.
Other
  • Added class GameStats, accessible via $stats, which records a lot of stats.
  • Added Pokédex records for eggs seen per species, and expanded seen_forms to include shinies.
  • Made an example map event for the Gen 8 fossil combiner.
  • Added Hidden Power checker NPC to the Day Care example map.
  • Turned fusion items into two separate items for the sake of them having different descriptions.
  • Added a Setting that allows the use of multiple stat-related items on a Pokémon at once (Rare Candy, Exp Candies, vitamins, Feathers/Wings, EV-lowering berries).
  • Added a method that checks whether the player has enough Triple Triad cards to play.
  • Removed all instances of changing the game window's title.

Bug fixes

Example maps bug fixes
  • Fixed example Apricorn converter/fossil reviver events not working properly.
  • Fixed incorrect event in Ingido League map that triggers upon reloading the game when it shouldn't.
Overworld bug fixes
  • Fixed player's legs staying invisible when in tall grass and performing a map transfer (e.g. using Fly, blacking out).
  • The player's charset now changes accordingly when moved fast/slow by a move route.
  • Fixed crash when moving directly into really tall grass on a connected map.
  • Fixed follower glitchiness across connected maps.
  • Fixed follower glitchiness around bridges.
  • Followers can now have reflections (i.e. their event name now applies to the follower object as well).
  • Fixed problems when you have multiple followers and you remove one of them.
  • Other improvements to follower behaviour.
  • Light effects now properly centre themselves on the event regardless of graphic size.
  • Fixed overworld weather moving relative to the screen rather than the map.
  • Fixed the default field weather being 0 instead of :None.
  • Fixed crash when setting a fog's or panorama's graphic to "(None)" in the "Change Map Settings..." event command.
  • Fixed berry plant sparkles always showing on the current map even if the plant is on a connected map.
  • Fixed field animations relating to events and followers not showing if they're on a connected map.
  • Fixed grass not rustling if the player walks onto it directly from a connected map.
  • Random dungeon generator now works properly with cells that aren't square (because corridor patterns are no longer rotated).
  • Fixed some rooms in a random dungeon sometimes not being connected to any other room.
  • Fixed mulch not being consumed when spread onto a berry patch.
  • Fixed Poké Radar rustling grass not always causing a wild encounter when stepping in it.
  • Fixed abilities that force wild encounters with a particular type using the wrong value as the preferred type and usually crashing.
  • Fixed fishing/Rock Smash/Headbutt being able to cause double wild battles.
  • Fixed the default transition animation not being FPS-agnostic.
  • Fixed RMXP-style transition animations not working.
  • Fixed Vs animation not triggering.
  • Fixed pbOnStepTaken being called every frame if you open a menu immediately at the end of a step.
  • Fixed "Set Event Location" (moveto) sending an event off-screen not making it disappear.
Battle bug fixes
  • Fixed slightly inaccurate chances for each number of hits for moves that hit 2-5 times.
  • Fixed Pledge combination moves using the incorrect type.
  • Fixed Acrobatics not doubling in power if it consumes a Flying Gem.
  • Fixed typo in Conversion's code that treated a type as an item.
  • Fixed Incinerate's message not knowing the name of the item it destroyed.
  • Misty Terrain now prevents affected Pokémon from becoming confused in Gen 7+ mechanics.
  • Fixed typo in Relic Song's code that changes Meloetta's form.
  • Fixed Roost not removing the Flying type.
  • Fixed Knock Off being able to remove usable Mega Stones.
  • Fixed bug in code for Shadow Half.
  • Fixed damage from Toxic only going up to 15/16 of total HP.
  • Stopped U-turn switching if the battle is over.
  • Fixed Analytic's effect not considering whether Pokémon other than the target have already moved.
  • Corrosion now allows a Steel/Poison Pokémon to poison itself with Toxic Orb.
  • Imposter now only triggers when the Pokémon enters battle, and not at any other time.
  • Fixed Mummy treating a Pokémon's ability as a number.
  • Fixed Normalize not boosting damage in Gen 7+.
  • Fixed error in code used by Pickup.
  • Fixed Sweet Veil not protecting allies from falling asleep.
  • Fixed Symbiosis not working.
  • Fixed some items not working in battle.
  • Fixed error when trying to return an unused item to the Bag in battle.
  • Fixed code relating to items initially held by Pokémon in battle.
  • Fixed berries that reduce damage from super-effective moves also working on moves that were normally effective.
  • Fixed type-boosting Gems being consumed when they shouldn't and causing bugs.
  • Made Leppa Berry's effect more accurate.
  • Instruct and Dancer now won't make a Pokémon use a move if it has been locked into a different move by a Choice item.
  • Fixed Magic Coat/Magic Bounce not checking failure conditions of the moves they bounce back.
  • Fixed recalculating turn order after Mega Evolution not taking into account the Mega Evolved Pokémon's change of ability.
  • Fixed Shadow Pokémon not owned by the player going into Hyper Mode.
  • Fixed Shadow Pokémon saying how much Exp they gain from battle.
  • Fixed incorrect layering of some sprites in battle.
  • Fixed status icon in battle showing the wrong status.
  • Fixed command windows in battle being too tall if possible.
  • Only one battler can now be switched out due to using a move and related effects, as per official mechanics.
  • Fixed incorrect animation when a critical capture Poké Ball fails to catch the Pokémon.
  • Hardcoded battle animations no longer forget a sprite's colour if it's involved in that animation.
  • Fixed visual glitch where a Pokémon's HP would raise then lower if its substitute took damage.
  • Fixed issue with animating Exp bar upon hitting the maximum level in battle.
  • Fixed typo in Shell Trap's AI.
  • Fix for AI bug with Natural Gift when a Pokémon has no item.
  • Fixed AI scores calculated for some moves not being added up properly.
  • The AI now doesn't use Full Restores just to heal small amounts of HP.
  • The AI now checks for immunities to status moves.
UI and screens bug fixes
  • Fixed Pokédex search not considering the properties of alternate forms of species if they were the ones last looked at.
  • Fixed the Pokédex ignoring certain maps when drawing a species' area (maps that occupy multiple Town Map points but not the top left one in its rectangle, i.e. its second MapSize value starts with a 0).
  • Fixed the nature of a Shadow Pokémon being shown when it shouldn't/not shown when it should, depending on its heart gauge.
  • Improved Pokégear screen to work for all screen sizes.
  • Fixed duplicated and missorted track listings in Jukebox.
  • Fixed error when showing the Move Relearner a Pokémon that has no level-up moves it can relearn.
  • Fixed crash when trading Pokémon.
  • Fixed crash when choosing Pokémon for NPC Bug Catching Contest participants.
  • Fixed cursor SE playing when choosing a quantity in the Bag/Poké Mart but the quantity doesn't change.
  • Minor fixes to Voltorb Flip.
  • Fixed slight text cropping in credits screen.
  • The title screen now shows properly if there are no splash screens.
  • Fixed SpriteWindow#back_opacity not applying to all parts of the window graphic.
  • Fixed panoramas/fogs/other graphics used as an AnimatedPlane not animating properly.
  • Fixed text involving tall characters (e.g. Á) being mispositioned.
Debug and compiling bug fixes
  • Fix for Pokémon editor deleting a moveset move when "changing" which move it is to the same move.
  • Fixed changing a Pokémon's species to a single gendered/non-gendered one not updating its gender.
  • Fixed Trainer Type Editor spamming the console when selecting the "new" option because it can't find a trainer sprite for it.
  • Fixed Terrain Tag Editor's background disappearing when saving changes.
  • Fixed visual bug in Day Care debug screen.
  • Fixed some game data not being cleared when compiling.
  • Fix for messages not being reloaded after the game is compiled.
  • Fixed crash when compiling a moves.txt that uses the old format.
  • Fixed incorrect data type for compiling LoseText in trainers.txt, so quote marks are no longer necessary even if there is a comma in the message.
  • Fixed crash when generating Battle Frontier data.
  • Fixed inconsistencies in error messages produced when loading a plugin.
Other bug fixes
  • Fixed Battle Factory Pokémon being chosen incorrectly.
  • Fixed Battle Factory double mode being single battles.
  • Fixed typo in Plugin Manager.
  • Messages in plugin scripts are now extracted for translating.
  • Fixed optional dependencies for plugins being treated as mandatory dependencies.
  • Fixed bad code when checking if a trainer has a Pokémon of a given type.
  • Fixed Nectar items being usable on fainted Oricorio despite showing a message saying that they can't.
  • Fixed Pomeg Berry glitch.
  • Fixed bad code in the definition of the evolution method HappinessMoveType.
  • Minor improvements of some breeding inheritance code.
  • Fixed Shiny Charm and Masuda method not working.
  • Fixed regional form-exclusive species producing eggs of the wrong species.
  • Fixed eggs not being the appropriate form based on the region they were made in.
  • Destiny Knot no longer affects breeding in Gen 5 mechanics.
  • Fixed form changing being able to leave a Pokémon knowing the same move twice.
  • Pokémon cries no longer change pitch depending on their HP, except when fainting.
  • Fixed Shadow Pokémon gaining Exp/EVs/happiness even at a high heart stage.
  • Fixed changes to a Shadow Pokémon's heart gauge not depending on its nature.
  • Fixed crash when using upgradeRibbon.
  • Minor fixes to Pokérus code.
  • Fixed the event command "Return to Title Screen"/resting in a Battle Facility run causing issues when trying to continue the game again immediately.
  • Event choices shown without an accompanying message are now translated.
  • Fixed pbEventCommentInput not working.
  • Added missing berry_plant.txt data and charsets for the Gen 6 berries.
  • Fixed some incorrect apostrophes in PBS files.
  • Fixed map names not being translated in some cases.
  • Fixed crash when trying to play Triple Triad.
  • Fixed typo in def addBackgroundOrColoredPlane.
  • The default functionality for rand when no number is given is now as expected.
  • Bitmap#draw_text now accepts a rect as originally intended.
  • Added checks that prevent aliasing a method if the alias method already exists (and if re-aliasing it would cause infinite loop bugs).

Essentials v20.1

Feature changes and additions

Changes and additions
  • Added Compiler code to make simple text replacements in PBS files before they are compiled.
  • Renamed "moves.txt" property BaseDamage to Power.
  • Added def GameData::Species#base_stat_total.
  • Added support for the Bug Catching Contest taking place over multiple maps.
  • Some improvements to map/event rendering when changing display tile width/height in map renderer.
  • Refactored code that draws party screen panels.
  • Refactored code that draws the Pokémon info box in battle.
  • Removed all uses of the redundant class SpriteWrapper.
  • Split up the AI code that modifies a move's score based on the move's effect.

Bug fixes

Overworld
  • Fixed memory leak caused by lots of map transfers.
  • Fixed SystemStackError when loading a connected map with an event at its edge facing away from that edge.
  • Fixed some maps being loaded when they shouldn't.
  • Fixed the player animating super-fast for a while after surfing.
  • Fixed player being able to be stuck in running position when opening the pause/ready menu.
  • Fixed some Battle Challenge code not recognising a valid team if a team size limit is imposed.
  • Fixed trainer intro BGM persisting after battles against multiple trainers.
  • Fixed trainer intro BGM not stopping after skipping their battle.
  • Fixed the passability of the blank tile not being ignored if its priority is 0.
Pokémon, items and abilities
  • Fixed event evolutions not working.
  • Shadow Pokémon now regain 80% of the Exp they missed out on instead of 100%.
  • Fixed error when using Rotom Catalog.
  • Fixed error when using a Shadow Pokémon Scent or Time Flute item.
  • Non-Scent items now can't be used on Shadow Pokémon in Hyper Mode.
  • Scents now end a Shadow Pokémon's Hyper Mode.
  • The Time Flute now purifies a Shadow Pokémon instead of just lowering its Heart Gauge.
  • Fixed Pickup's out-of-battle effect causing an error.
PBS files, Debug mode, Compiler and plugins
  • Fixed being unable to walk across a map connection into an event even while holding Ctrl in Debug mode.
  • Fixed "trainer_types.txt" containing the property VictoryME instead of VictoryBGM.
  • Fixed some warning messages relating to compiling "moves.txt".
  • Updated "moves.txt" to fix a few mistakes.
  • Fixed PBS files not being recovered properly if playing in Debug mode without a PBS folder.
  • Fixed mistake in "Edit Individual Trainers" Debug editor.
  • Fixed text positioning in "Roaming Pokémon" Debug function.
  • Fixed empty wild encounter type tables not being editable in "Edit Wild Encounters" debug function.
  • Fixed duplicate files listed in BGM/ME pickers in PBS file editors.
  • Fixed error when the Compiler tries to convert some pbTrainerBattle code in events to TrainerBattle.start.
  • Fixed console message colouring breaking when loading a plugin whose name contains an apostrophe.
  • Essentials no longer requires the "Plugins" folder to exist.
UI
  • Fixed incorrect status condition icon used for fainted Pokémon and Pokémon with Pokérus.
  • Fixed not registering a gifted Pokémon as seen/owned before looking at its Pokédex entry.
  • The Pokédex entry for a gifted Pokémon now won't appear if its form isn't supposed to be recorded in the Pokédex.
  • Fixed the Bag lists having incorrect starting positions when choosing an item from a subset of your Bag.
  • Fixed the Back input not being able to close a displayed message in the Poké Mart.
Battle
  • Fixed incorrect capitalisation in message when Aurora Veil wears off.
  • Fixed Dauntless Shield raising the wrong stat.
  • Fixed error when using Future Sight.
  • Fixed incorrect damage multiplier for Grav Apple in gravity.
  • Fixed Grudge and Lunar Dance not properly changing PP amounts.
  • Fixed Howl always failing.
  • Fixed a Pokémon using Pursuit against a switcher being unable to use the next move it tries to use.
  • Fixed error when applying Sea of Fire's damage.
  • Fixed Gorilla Tactics also boosting Special Attack.
  • Fixed error when calculating type effectiveness against a Pokémon with no types.
  • Fixed Xerneas/Zacian/Zamazenta not being their alternate form throughout battle.
  • Fixed party order not being altered at the start of battle if there are unable Pokémon before the one(s) sent in initially.
Other bug fixes
  • Fixed def pbChooseItemFromList not storing the correct result in a Game Variable.
  • Fixed GameData::Species.icon_bitmap_from_pokemon causing a crash.
  • Fixed some outdated code used in example map events.
  • Fixed incorrect message when choosing a Pokémon to withdraw from Day Care.
  • Fixed the "Sea deep" autotile not blending into the "Sea" autotile.
  • Fixed broken hallfamebg.png file.
  • Stopped various filenames being translatable when they don't need to be.
Advertisement