Jump to content

[MOD] Battle Sprites Reloded

Recommended Posts

Battle Sprites Reloded is a battle sprite mod.

It was designed by me with influences and suggestions from four very dedicated testers.
Many thanks to EdRaket, GoKickRocks, NimbleHydra, and PrincessLolita


The purpose of this mod was to make a more vibrant mod that utilizes real-time lighting and shadows.
Each Pokémon is set to a scaled height multiplied by their actual Pokedex height. 
More information and math can be read under "How I Made This Mod".

I do not play PokeMMO, but I think the concept is great and I hope you all enjoy my mod with it.

Downloading this mod is not obligatory. If you don´t like any part of it then change it, make your own or use another one. I endorse Verdep´s HD Battle Sprites.


There are three versions listed at the bottom of this post. SD, HD and Shiny Hunter (HD is as is. There will be bugs.)
You only need to download one. Read the "Version Differences".

Version Differences


This version has the least bugs (Read "Bugs").
The file size is smaller (by almost a GB)
Most of the Pokémon are lined up in the summary screen boxes.
Battle Summary has manageable image sizes.
Front Sprites have reduced quality.

Shiny Hunter
This version includes Shiny front sprites only.
The larger non-shiny Pokémon will float. (It was that or 84% sink) This is to maintain the same design as SD.

HD (With bugs)
This version has the most bugs (Read "Bugs").
It has the highest quality front sprites.
It also has the highest file size.
Pokeball during catching will go underground.
Summary screen will not line up by feet. (Not as much of an issue on mobile)
Summary screen has Pokémon randomly too far to the right. (There is nothing I have done to cause this)
Battle Summary images are large.

Screenshots of SD (Thanks to GoKickRocks)




Please read the F.A.Q. and Facts before posting questions.

F.A.Q. and Facts


1. I am a digital artist/front-end developer. I taught myself C#, the Unity engine and its tools to make this mod.

2. It took two painful months and hundreds of hours. I am not interested in making more 3D sprites at the moment.

3. I do not play PokeMMO or any other video game.

4. I don´t know much about Pokémon. I also don´t care if I got a small detail wrong because I wasn´t intimately familiar with Pokémon anatomy/lore.

5. This was done in a style that I wanted. It is not supposed to mirror your favorite Pokémon game.

6. The heights are relative to the Pokedex height and a math curve (More detail in "How I Made This Mod").

7. There were many bugs. I wanted this mod to cater to as many players as possible. Sacrifices had to be made.

8. PokeMMO uses GIF. Transparency in GIF is Binary: on or off. Transparent is invisible. There is no option for translucent/semi-transparent.

9. I will not be updating much past the first week or two of release. I have other jobs and projects. I may return for important reasons or if PokeMMO changes the way they handle mods.

Why did you make a mod for a game you don´t play?
It was requested. This is normal. Most developers don´t have time for games.
Why did you spell it reloded instead of reloaded?
It is a reference to my internet handle, the key word is lode: A rich source of something.
Can I join your Clan/Friends?
No (Reason 3)
Can I duel you?
No (Reason 3)
Can you teach me how to program/code/develop/photobash/etc.?
No I already have an apprentice and spend my free time teaching myself new things (Reason 1)
Can you make a special sprite for my favorite Pokémon, X?
No (Reason 2)
Why did/didn´t you make Bulbasaur or other Pokémon's height include his strange appendage sticking out of his back/head?
I felt like it (Reason 4)
Why don´t you include ears in the height?
Same reason as above.
Why aren´t there females?
Don´t give up hope, girls like Pokémon too. (Reason 2)
I can´t see the background through Solosis´s bubble or Pokémon X, why is it not transparent?
You mean translucent. (Reason 8
Umbreon is supposed to glow. Why did you just make it bright?
Post processing glow creates semitransparent pixels of light outside of the 3D model. This would cause a solid background. (Reason 8
Why don´t the VFX loop perfectly?
They were made in a living 3D world, not designed to loop in a GIF.
Why do Quilava and Typhlosion have burst spikes and Cyndaquil is more consistent?
Looping issues. Read question above.
I don´t like Cyndaquil/Quilava/Typhlosion, can I have their original naked forms back?
Yes, read "Instructions to replace Cyndaquil line" at the bottom.
Why don´t the colors look like Pokémon SWSH?
I think the world has seen enough white-washing (Reason 5)
Why does the Shiny Hunter version have floating normal Pokémon?
This was done to keep the shiny the same height in both versions. It was either float or sink (Reason 7)
Why are the front sprites lower quality than the back in SD?
This was done to accommodate Shiny Hunters and PvPers by normalizing smaller threshold GIF size (Reason 7)
If Pokémon X is half the height of Pokémon Y, why isn´t he half the size in your mod?
Small Pokémon would be too hard to see in game with real heights. We tested it. A curve was better. (Reason 6)
If Ekans is supposed to be as tall as Venusaur, why did you make him so small?
Based on animal shape, some heights correlate to length.
There is a bug, can you fix it?
Probably not, but while you are playing video games, think about how you would solve the issue and go for it. Or read "Bugs".



Pokeball goes through the floor in HD.
This has to do with the Y-axis alterations. I didn´t design PokeMMO or TWL. Otherwise, I would change the anchor point for GIFs to bottom center.

Pokémon in Pokedex and Evolution screens are huge.
The developers didn´t add the same scaling to these screens as they did Summary. Only they can fix it.

Some Pokémon in the battle summary are huge.
This is because some Pokémon GIFs are huge. The battle summary uses GIF size instead of Summary scaling. Ask the developers to fix it.

There is a random line that appears on the edge/corner of the GIFs.
It happens randomly. The testers weren´t able to test it because it was intermittent.

Some Pokémon float in Shiny Hunters.
This is because some of my GIFs have their Y-Axis increased to keep them above ground as Shiny. There is no separate Y-Axis for Normal and Shiny. Only 16% of the Pokémon are floating.

In the HD version, some of the Pokémon are randomly too far to the right in the summary.
I don´t know what causes this. It is random and different every time I compile the Zip.

How I Made This Mod


All models and textures were ripped from legally owned copies of Pokémon games and from websites that post 3D resources OR made by hand in Blender and photoshop by me.

Pokémon height data was taken from the pokemondb and bulbapedia.

I used the Unity 3D engine to render all of the models/shaders. The sharers and VFX were written by me after watching various YouTube videos (I can recommend Freya Holmér).
Blender was used to fix/adjust/create the Pokémon models and the VFX meshes.

PokeMMO uses GIFs. GIFs are antiquated versions of apng and video formats. 
For this, I couldn´t use cool semi-transparent effects. I also couldn´t use Post-Processing like Bloom. Instead I made HDR Intensity lighting on Emissive properties and split 3D models with translucent bubbles into 2 parts. The back would become solid and the front would be semi-transparent.

Unity has a wonderful Shader Graph tool that assisted me in the beginning until I found I needed more custom options only available in C#. (Most of those ideas became scraped. All things can be done with graph) I designed a base, metallic, gem, bubble, pearl and fire shader to deal with the many needs of the textures and models.
Using Unity Recorder, every frame was saved as a png.

All Pokémon animations were recorded in 4K and then trimmed and resized in Photoshop.
To normalize height into a mathematical formula, all of the GIF heights were set to 500px.
The height scale for the Pokémon is linear but not starting at zero. 

In order to keep the minimum size group of 0.2 meters (Diglett) and the maximum size group of 2.5 meters (Lapras) within a visible spectrum, the testers chose a pixel amount of 63 and 230 respectively. Then I created a formula to plug in Pokémon heights and get a desired pixel count.
pixelHeight =(0.145652*pokeHeight+0.0958696)*500

Because of dead space between the Pokémon head and the top of the GIF, I used a variable (oversized%) to multiply each Pokémon by if such space existed.
pixelHeight =(0.145652*pokeHeight+0.0958696)*500*oversized%
This had adverse effects on snake/fish/length based Pokémon. Onix when stretched from bottom to top of GIF only represents 45% of his total height. In this case I set an IF/THEN and multiplied the height by the Oversized%.
pixelHeight =(0.145652*(pokeHeight*oversized%)+0.0958696)*500
(I do realize that these formulas are not 100% accurate for the results I wanted. But this isn´t a paying job and I have real clients to put that effort into.)

This gave me the base value for all of the text documents that handle scaling in Summary, Battle (Front/Back), and Y-Axis coordinates in battle.

Originally all Pokémon were scaled down to their pixel count in summary and battle, but I kept the GIF size of 500. This gave crazy good quality (better than the HD version). 
However, the summary screen had Pokémon floating and sinking all over the box.
The battle summary screen in PvP was unreadable.
I had to make crazy Y-Axis formulas to push the Pokémon up/down based on how I had scaled them.
It also affected the original GIFs in game for shiny hunters, since shiny Pokémon in the mod needed Y-Axis adjustment. Some were sinking in the ground.
This is why the SD was designed.

The game scales combat sprites 2X. I wanted to scale all front sprites to 50%. This way, stretching them 2X is 100% quality.
First I manually changed every Pokémon front sprite to their pixelHeight. The ideal pixel height for the Pokémon to stand on the battle circle is 195px without Y-Axis adjustments. For every Pokémon under 195px, I added deadspace above them (for standing) or (above and below) them (for flyers). 
This solved Pokémon that were too small and needed to be pushed down. Good for Shiny Hunters.
It also made the majority of GIFs small enough to resolve the PvP battle summary issue.

100% was a little too big for the boxes, so I reduced all Pokémon less than 359px to 90%. Then anyone bigger than 359% was manually changed to 70% or 60%.
This fit a majority of Pokémon into the Summary boxes, while still fitting their height roles.

The back sprites are only used in combat. They are also the closest to the player on the screen. 
I decided to keep the sprites at 500px for the best quality I could and scale them down in the text document so that they would remain the correct pixelHeight.

For front sprites: anything at 195px or lower didn´t need adjusting. Anything above this would be bigger and need to be brought up. I tested several heights and created a formula to raise large Pokémon.
Y-Axis = IF(pixelHeight<195,0,TRUNC(0.00267388*pixelHeight-0.506423,2))
For back sprites: Pokémon are all over the place and the formula is more complex.
Y-Axis = TRUNC((0.00253592*pixelHeight-0.508922),3)

Some Pokémon over a certain pixel count (Steelix, Legendaries, etc.) had to be capped in order to remain visible for the player.


HD Version
The HD version followed the same process, except all Pokémon at 300 pixelHeight or lower had their GIF set to 300px.
All I had to do was multiply the back scale by 5/3 (500px/300px), since the back sprites are all 500px and the new fronts are 300px.
And divide the pixel height by 300 before multiplying it to the existing Summary formula.



Instructions to replace Cyndaquil line


Inside all 3 mods are the fire-less versions of the Cyndaquil line. They are named by the Pokémon.
If you rename and replace them with 
pokedexNumber-front/back-normal/shiny like so:
Then overwrite the current version that you don´t like, you can continue the game freely without them.

Downloads (You only need one)


SD Version - MediaFire| SD Version - Mega
Shiny Hunter Version - MediaFire| Shiny Hunter Version - Mega
HD Version - MediaFire| HD Version - Mega

Patch Notes (Latest: 16/01)


16/01/22 - Version 1.1 - Fixed shiny Steelix's sprite size. All three versions had a different size sprite because of a scripting error.

I hope you all enjoy the mod. If you don´t, feel free to use Verdep´s. I think his is great.


Edited by JDChaos
'In Memory of' removed for better language translation.
Link to comment
1 minute ago, Quinn010 said:

i really like the mod. but you might wanna make the mons smaller stuff like waillord is to big. 

Wailord was made smaller. He is supposed to be 470px tall, I reduced him to 359px
If you want him even smaller, you are more than welcome to lower the sprite size.

Link to comment
11 minutes ago, itsthebighaha said:

This looks incredible! Thanks for designing it and good luck with future updates.


Btw, are the posted screenshots using the SD or HD version of the sprites?

Those are using the SD version.
The HD version is only really noticeable when the camera zooms in on the enemy Pokémon.
I only created the HD version for those who wanted the maximum pixels for their free download.

Link to comment

Image courtesy of GoKickRocks

1 hour ago, Neuzzz said:

@JDChaosWould you please share screenshot to show how big wailord is?


Wailord is 14.5 meters long (47' 6").

I reduced him down to 11 meters. Hopefully the purists won't hate too much.

I only have a few photos left from the testers. For more screenshots, you'll have to ask someone who has the mod.
I don't have the game installed.

Link to comment
5 hours ago, JDChaos said:

Image courtesy of GoKickRocks

Wailord is 14.5 meters long (47' 6").

I reduced him down to 11 meters. Hopefully the purists won't hate too much.

I only have a few photos left from the testers. For more screenshots, you'll have to ask someone who has the mod.
I don't have the game installed.

This is so majestic!

Link to comment
49 minutes ago, Kyunimo said:

does it work on android? 

Only Themes have xml code specific to Android or PC. These are just GIFs.

Though because of the file size, it will take a couple minutes to import.

I also recommend the HD version for mobile, since there is no summary screen box and the battle summary isn't visible with any battle sprite mod.

Link to comment
35 minutes ago, SamQuincy said:

This is so freaking good.

Just one thing, the sprites dont fit in the dex anymore. Is there any Theme maybe that would make them fit again or something?

This is addressed in the "bugs" section.

Link to comment
On 1/11/2022 at 8:26 PM, JDChaos said:

Only Themes have xml code specific to Android or PC. These are just GIFs.

Though because of the file size, it will take a couple minutes to import.

I also recommend the HD version for mobile, since there is no summary screen box and the battle summary isn't visible with any battle sprite mod.

I FRIKKIN' LOVE IT!! Tho, it took time to install, it took me 5 attempts before finally making it work on android cuz it keeps crashing when I import the mod... But it's worth it! And I don't mind the pokedex sprite bugs at all, having 3D battle sprites is enough for me xD, thx for the mod JD, keep it up!:D

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.