- Pokémon Essentials Version
- v21.1 ✅
- Also compatible with
- v21
- v20.1
- v20
[Frame 2 Project]
Gen 4 Battle Entry Animations
by


Last year we brought you Tower of Ashes with a snippet of this feature.
Today we bring you the full thing as a standalone plugin for Essentials v21+!
(I'd say this is still in beta really as we want to squash some bugs and improve user experience in the future)
What does this Plugin do?
Adds animations like those seen in NDS gen 4 games to your essentials game.
(the animation data has been recreated by hand and may not be 100% accurate to the source material)




Which animations do what?
The plugin contains most animations found in HGSS such as:
![]() | StretchVertical Stretches and vibrates the sprite vertically |
![]() | StretchHorizontal Stretches and vibrates the sprite horizontally |
![]() | FlyVertical Moves up and down while rotating the sprite slightly |
![]() | FlyHorizontal Moves left and right while rotating the sprite slightly |
![]() | SlideVertical Slides the sprite up and down |
![]() | SlideHorizontal Slides the sprite left and right |
![]() | StompSmall Does one vertical stomp with a small vertical shake |
![]() | StompBig Does one vertical stomp with a strong vertical shake |
![]() | StompDouble Does two vertical stomps with a small vertical shake |
![]() | ShakeSmall Moves horizontally with a small shake |
![]() | ShakeBig Moves horizontally with a strong shake |
![]() | HopSmall The sprite hops in place |
![]() | HopAround The sprite hops left and right |
![]() | HopBig The sprite hops left and right while squashing and stretching a lot |
![]() | RotateBottom Rotates the sprite left and right using the bottom center edge point as a pivot |
![]() | RotateTop Rotates the sprite left and right using the top center edge point as a pivot |
![]() | RotateJump The sprite jumps left and right while slightly rotating |
![]() | Explosion The sprite zooms in and out very fast |
![]() | Bounce The sprite squashes and stretches, simulating a small hop in place |
![]() | Boing The sprite squashes and stretches very slowly, like Bounce but smoother |
![]() | Fluid The sprite squashes and stretches in all directions |
![]() | ZoomDouble The sprite zooms in and out twice at a moderate speed |
![]() | BlinkYellow ShakeSmall but also blinks yellow |
And more custom ones!
Download where??
You can find the latest version of the plugin (v1.0.1) here:
STAND-ALONE VERSION
or
BUNDLED WITH HGSS PACK
And the optional sprites packs here:
(pick one, more to come)
DIAMOND/PEARL SPRITE PACK
PLATINUM SPRITE PACK
HEARTGOLD/SOULSILVER SPRITE PACK
What about Pokémon from generations 5 onwards?
The plugin does contain animation data for gen 5+ Pokémon as well (made up) but of course there is no sprite pack for them because it doesn't exist in official games.
This just means it will come at a later date, check the forum or the discord for updates!
Other questions and FAQs
Do I need a second frame for all my Pokémon/Fakemon?
Not necessarily, the plugin just uses Frame A all the time if Frame B does not exist.
How do I define an animation for my Fakemon / change one for an existing Pokémon?
In the AnimationData.rb file, define or change a line that looks like
for the species you are looking for.
(when defining a new one put your new lines under the existing ones)
Can I define a different behavior for front-sprite and back-sprite?
Sure, following the previous example you can do something like
ABABABAB?
BABABBB
How do I define a new animation type?
Inside the main script there's a big case statement, you know what to do :^)
Not necessarily, the plugin just uses Frame A all the time if Frame B does not exist.
How do I define an animation for my Fakemon / change one for an existing Pokémon?
In the AnimationData.rb file, define or change a line that looks like
ANIMATION_DATA[:PIKACHU] = ["Bounce, "BA"]
for the species you are looking for.
(when defining a new one put your new lines under the existing ones)
Can I define a different behavior for front-sprite and back-sprite?
Sure, following the previous example you can do something like
ANIMATION_DATA[:PIKACHU] = ["Bounce, "BA", "BlinkYellow", "ABBA"]
ABABABAB?
BABABBB
How do I define a new animation type?
Inside the main script there's a big case statement, you know what to do :^)
Installation Guide
The plugin itself features in-battle animations from the get-go and we included example files for the other UIs where these animations play in the official games: Summary, Evolution and Egg Hatching.
If you have not modified these UIs, you can just drag and drop the corresponding file for your essentials version into the plugin folder.
Otherwise if you have made your own of one of these UIs, you will need to add the animation call yourself.
Always check the provided files as reference, but the bottom line is you'll need to call the
.pbPlayIntroAnimation
method on the target sprite (which can be either a BattlerSprite
or a PokemonSprite
).If you're having trouble with the animation not playing, check if the .update method is being called during the scene update call, or if the sprite has been overridden.
If you're still having trouble, feel free to reach out on the discord.
Planned Features
- Add animation playing before evolution on the evolving Pokémon
- Move AnimationData in a PBS format maybe (pokemon_metrics or its own thing)
- Add a color-corrected version of the HGSS Sprite Pack (the superior option clearly
)
- Make sprites packs for all gen 5+ Pokémon
- Have someone join the project because I am NOT animating all those missing sprites alone
- Add support for different forms of the same species having different animation patterns
- Credits
- PikachuMazzinga
Brawligator