Lethal League

Lethal League

68 ratings
Lethal League Sprite and Palette Editing
By BadShot
This guide is designed to help anyone looking to create their own palettes or custom characters for use in Lethal League.
   
Award
Favorite
Favorited
Unfavorite
Intro
(GUIDE MOSTLY DONE)

Making sprites can be tricky; it takes a lot of time and patience to change the character sprites in Lethal League into something else. Using existing material such as sprites from other fighting games is easier than creating your own but it’s still a time consuming process. This guide is going to cover 2 main parts, the first is creating custom palettes for the existing Lethal League characters, and the second part is going to be importing your own custom sprites to replace an existing Lethal League character.

I’m sure it is possible to use all sorts of different image editing software to do this but GrahpicsGale is the only one I know how to use to do this and it’s the program I will be teaching you how to use in this tutorial. You can find GraphicsGale here http://www.humanbalance.net/gale/us/ there is a paid version but the free version does everything we need it to do.

First off I’m going to explain a little bit about how it all works and the relevant files that you should be aware of.

How Sprites Work in LL:
The Sprite Sheet is a large image that contains most of the animations for a single character, if you open this you'll realize that it’s hard to make out what the actual image is as it is all dark reds and blacks. This is basically the uncoloured version of the sprites, if you want to think about it in a simple way its a paint by numbers image where each different red and black represents a different number, this is where palettes come in, a palette tell the game which colours match up to which numbers.

A palette is an image that is 64 pixels wide and 1 pixel high. Each one of those pixels represents a different colour of the palette. When you load a palette on-top of a sprite image it puts the colour in pixel 0 into the colour 0 spot, pixel 1 goes into colour 1 and so on until all the colours are done and once you do that the image should look like what it is supposed to.

Finding Files:
All the files can be found in your lethalleague folder and each character has a unique name and # assigned to them. Substitute # for their # and name for their name to get that specific characters files.

# = Character Name = Name in Files

0 = Raptor = Kid
1 = Switch = Robot
2 = Candyman = Candy
3 = Sonata = Boom
4 = Latch = Croc
5 = Dice = Pong

The Main Files:
These are the files that have to be changed if you want to create your own character

resources\graphics\game\player#.png - The sprite sheet for the character
resources\graphics\game\deadName.png - The death sprite sheet for the character

The Palettes:
The palettes are files that have to be changed if you want to change a certain colour (then you only need to change that colour), but if you create your own character then they all have to be changed to make your character look decent no matter what colour is used on them.

resources\graphics\palettes\characters\name\#\#.png
  • The first number are folders named 0-4, 0-3 are all TEAM colours (0 = Red, 1 = Blue, 2 = Yellow, 3 = Green) and contain 0-2.png, where 0.png is the first team colour 1.png is the second if 2 people on the same team have the same character and so on
  • The 4 folder is for non-team colours (Free for All) and ranges from 0-8.png where 0.png is the first colour and so on

Other Relevant Files:
These are files that you can change if you want to finish up your modded character to fit perfectly in game. Most of these don’t show up during gameplay except one.

resources\graphics\lobby\player#Fullshot.png - The sprite that shows up when the character is selected in the lobby
resources\graphics\lobby\Lobby_portraits.png - The image used to show all of the character's selection portraits in the lobby
resources\graphics\versus\portraits\versus_portrait_name.png - The sprite that shows up during the loading screen
resources\graphics\ui\characterFaces.png - An image of all the character faces that show up next to the players name to show which character they are playing, this is the only file listed here that actually shows up during gameplay.

IMPORTANT IMAGE
This image is a guide to mod sprites in Lethal League created by @TR_Dion that'll save me some time instead of creating my own images to explain some of the basic things, make sure to look it over http://lethalleague.tumblr.com/image/97724186628

Step 3 is loading palettes and it's one of the more important things you need to know for this guide.
Creating Your Own Custom Palette (Colour)
  1. Open up GraphicsGale
  2. Load the sprite sheet of the character that you want to create a custom palette for (I’m doing one for Switch)
  3. Load up a palette (look at the image posted above in IMPORTANT IMAGE to see a visual guide of this, step 3 is loading a palette). Click the arrow > Load Palette > File > Import from File > Locate a palette for the character you are editing (for me it's under resources\graphics\palettes\characters\robot\4\0.png) it's best to load up one of the palettes from the 4 folder (FFA colours) and one that isn't 6-8 (6 is the dark palette and is difficult to work with, only open it if you want to change the dark palette manually by adding some colour to it, and 7+8 often don't work properly) > Uncheck "Match Pixels with Colors" > Hit the button labeled "All" > Ok. You should now be able to see the sprite sheet properly.

    Side Note: Almost all of the team colour palettes (everything in the 0-3 folders) don't work as palettes in GraphicsGale, if you try to load them you will get an error message that says "Palette data is empty.". You will also get this message if you try and load 4\7.png or 4\8.png, if you want to replace those palettes the easiest way is to open up another palette like 4\0.png and edit that then save it as 4\7.png or 0\0.png. You could also open up the palette image itself and change the pixels on there (each pixel represents a different colour), though with that method it's nearly impossible to tell what exactly you are changing.
  4. It's time to mess around with some colours to try and create a palette that you want. First we need to figure out which colours correspond to which places on the character. The easiest way I've found to do this is to go by each and every colour in the palette box and change the colours one by one to a vibrant colour (0,255,0 full green) viewing what changed on the actual image after each colour change and reverting it back to the original colour with Ctrl+Z if it wasn't something I wanted to change otherwise changing it to what I want it to be. Repeat this until you have the palette that you were looking for. There's other ways to do this process but this is the one I've found works best to me. Another really good way to find out what colours are what is to select the "Color Replacer" tool and right clicking on the image, doing so will highlight the colour in the palette box.

  5. Now that you've finished your palette it's time to save it. Click the same little arrow you used to Load the Palette > Save Palette > Save it as whatever and where ever you want as long as you know where you saved it so you can easily find it, save it as a .pal (I called mine newrobot.pal). After you have saved your palette you can close the sprite sheet but don't save.
  6. Finally it's time to actually apply the palette to one of the palettes the game uses so it can actually be used in game, open up the palette that you want to change for your character in GraphicsGale (for me it's robot\4\0.png), notice that this doesn't have to be the same palette that you originally loaded up on the image previously it can be anyone including 6 (if you want to change colour 7 or 8 you have to copy another one of the .png colour images and rename it to 7 or 8 first), I would suggest copying the .png palette you are changing first and renaming it to something so you have it as a backup just in-case (like 0-original.png).
  7. Apply your previously saved Palette (for me it was newrobot.pal) to the .png palette image you just opened (Small Arrow > Load Palette > File > Import from File > Located your created palette > Uncheck "Match Pixels with Colors" > Hit the button labeled "All" > Ok.
  8. Save the .png image
  9. Now you can go load up Lethal League and check out how your palette look in game.
Hitboxes & Hurtboxes
Your custom character doesn't have to exactly match the Lethal League character you are replacing, but you should try and make it so the hitboxes and hurtboxes of the character make sense. He's a link to images showing each characters hitboxes and hurtboxes http://imgur.com/a/FkLXk#0 thanks to SmellyHobo101 for creating these.
Creating A Custom Sprite Sheet Part 1
  1. Open GraphicsGale
  2. Load the Sprite Sheet of your custom sprite (I'm planning to replace Dice with Megaman X, so I load up my Megaman X sprite sheet). If you don't have a full sprite sheet of your replacement character then make one. If you can't load the image in GraphicsGale because it's a .gif or something else that GraphicsGale can't open (at least the free version) then open it in some other program like Paint and save it as a .png then open it up in GraphicsGale.
    Should look something like that.
  3. Now we need to change the colours so we can get a palette that we can use. Go to All Frames > Color Depth > For Algorithm choose Type A > Choose 8bpp > For Colors change it to 64 (64 is the maximum number of colours Lethal League palettes can handle) > And hit Ok.

    Your palette box should look different now, and should only have 64 colours, if your image had more than 64 colours then the Sprites will have changed and wont look as good as they used to. Below is an image of what my palette box looked like after the change.

  4. Time to save our new palette. Save it as whatever and where ever, as long as you remember where and what you saved it as (make sure to save it as .pal).

  5. Open up the Sprite Sheet of the Lethal League character you plan to change (I'm replacing Dice so I opened up resources\graphics\game\player5.png).
  6. Load the palette you just saved on to the Lethal League character Sprite Sheet (it will probably look off and strange once you do this). If you forget the steps to load a Palette it's Arrow Below Palette Box > Load Palette > File > Import From File > Select Palette you just saved > Uncheck "Match Pixels with Colors" > Hit the "All" button > Hit OK.

    I changed the background colour to pink so it would be easy to view (it was white originally), the picture also has the Grid turned on which is the next step.
  7. Turn on a custom Grid. Lethal League character sprites are all 200x200 (except Latch, Latch is 250x250 so replace 200 with 250 if you're making a replacement for Latch) so lets make a grid to show the separation. Hit the Custom-Grid icon (it's the white paneled square next to the 100%, there's an image below to help out) > Input > Put 200 for the X and Y values and make sure both check-boxes are checked > Ok. That created the 200x200 Custom-Grid. Now we have to turn it on so we can see it, click the Custom-Grid icon again and then click "Show Custom-Grid", you can also find it under View > Show Custom-Grid. Hitting it again will turn off the Grid.


  8. Now Turn the 200x200 Grid on for your other Sprite Sheet (for me this would be the Megaman X sprite sheet).

    You'll notice the grid is WAY off in size compared to the Megaman sprites, next we have to resize it.
  9. Resizing. Your sprites are going to either be too big or too small compared to the Lethal League character, we have to change it up so our sprites fit over the Lethal League character as best as possible. This is going to require a lot of messing around with numbers to try and get as close to perfect as possible. So first lets increase (or decrease if your sprites are too big) our whole image to better fit the 200x200 space. The easiest way to do that is to go to All Frames > Resample > by Percent > Enter in a Number you think will work (I'm trying 400% first), go under 100% if you need to shrink your image > Make Sure Keep Aspect Ratio is checked (you may actually need to uncheck this to get a decent sprite size, maybe not) > MAKE SURE "Smooth" is unchecked, this will do horrible things to pixel art > OK. It'll probably take a few tries so after every time go through and look at the size of your sprites and how they fit into the 200x200 boxes, compare them to how the Lethal League character you choose looks in their 200x200 boxes and take your time to get it to a sizing you feel works, undoing after each resample that doesn't work, keep at it until you get something that basically matches the sizing of the LL character you picked.


    For me 400% worked decently, I had to adjust it a little more, I unchecked "Keep aspect ratio" and made the image 80% width and 105% height, since Dice is skinny and tall, which seemed to work out, there's an image below of what it turned out to look like, I also selected one of the Megaman sprites and copied it on-top of Dice to see how well it fit.

  10. Step of Death, it is now time to put one by one replace each and every sprite of the Lethal League character with your own character. Select the sprite from your characters Sprite sheet copy it then paste it onto the Lethal League character sprite sheet and position it so fits over the LL character as perfectly as possible, after pasting make sure to clean up any remains of the LL character (pasting over the character you might miss a few pixels at the bottom or top, you could also delete the LL character sprites and place your character into the empty space). Make sure you position the character so that everything is lined up so when the animation plays if you have the character started at pixel 32 in one animation and pixel 34 in another it look off since the character will be moving 2 pixels over for no reason. You may also have to resize specific sprites to fit better, just do whatever you can to make the sprites look as if they belong there. This part should take a large amount of time and even after you finish and look at it in game it might not look right and you'll have to go back to move things around and fix it. Also some sprites might get used in weird places, like Dice's first Taunt sprite is also used as the last few frames of his neutral attack animation. Keep these things in mind when you go into testing your sprite. Once you've finished what you can and made all the sprites or when you want to test it to see what it looks like in game and if you need to make any more changes move on to the next step.
    Here's my sprite sheet.

  11. Saving your new Sprite Sheet for use in Lethal League. Remember how all the sprite sheets in Lethal League are all dark before you apply a palette to them? Well now we have to apply that dark palette to our new sprite sheet. Little Arrow Under the Palette Box > Load Palette > File > Import From File > resources\graphics\palettes\index_colors.pal > Uncheck "Match Pixels with Colors" > Click All > Click OK. Now you can save your sprite sheet, make sure to save it somewhere you will remember and name it something meaningful.

  12. Backups. This is a good time to start making backups of all the original Lethal League character stuff that you plan on replacing. So make a backup somewhere of the player#.png, all the palettes of the character (pong for me) and anything else you are planning to replace.
Creating a Custom Sprite Sheet Part 2
Hit the character limit on Part 1, so welcome to part 2!
  1. Dead Sprite, time to load up resources\graphics\game\deadName.png where Name = the name of your character into GraphicsGale.
  2. Apply a Grid to the deadName.png sprite sheet (Switch doesn't need one since he only has 1 dead Sprite, Sonata has 5 animations and the rest have 4). To figure out how big to make the grid since each characters deadName.png is a different size divide the width of the image by the number of sprites (for Dice it was 552/4 = 138, so the Grid ended up being 138 X by 128 Y). If you want you can leave the Y value blank and uncheck "Visible" under Y, since the dead sprite sheets all have the sprites on the same Y axis.
  3. The Dead animation sprites are different than the regular ones, just try and position your sprites so they match up with the LL characters Dead sprites making sure to stick inside the bounds of each sprite in the sprite sheet. Making your image grayscale before pasting them into the deadName.png image might help out with the colours, to do that go to Image > Grayscale.
  4. Once you've got the deadName.png to your liking save it.

  5. To test your sprites in game all you have to do is replace the player#.png with your new sprite sheet, so copy it into resources\graphics\game and rename it to player#.png where # is the # of the LL character you are replacing. You could go and test it out right after this but we still haven't made our own palette for our character so if we start up the game and test it out right after replacing the player#.png then we will see our character with the original LL characters palettes.
  6. Creating your characters first palette. This is the easy part since we already have a palette ready to go. Open up resources\graphics\palettes\characters\name\4\0.png where name is the name of the LL character you are replacing. Load up the palette you created way back in Part 1 Step 4 onto 0.png. Now save it as 0.png.


    If your palette has more colours than the characters palette uses then you may need to manually go and added them one by one to the 0.png palette image, each pixel represents a different colour up to a max of 64 colours, but when you load your palette onto the image since Lethal League characters don't use all 64 colours the last 20 or so pixels are basically left as the transparent colour. The 0.png image is just all the palette colours in a row, pixel 0 = the colour in index 000 of the palette box, pixel 1 = colour 001, and so on all the way up to pixel 63 = colour 063, hopefully that makes some sense.
  7. Now that you've made your sprite and a palette go test it out in game. You'll probably notice a few things off and something you don't like and want to change, so after a little bit of testing go back to the sprite sheet and start fixing things up to make them better. Once your happy with how everything looks move on to the next step.
  8. Step of Death Part 2. You should have a finished Sprite Sheet of your custom LL character, now it's time for palettes. We have 1 out of the way that just leaves 20 more! Folders 0-3 are team colours 3 for each one (You really only need to do the first 2 the 3rd one is almost never seen), Folder 0 is Red, 1 is Blue, 2 is Yellow, and 3 is Green. Then there's the 9 FFA colours in Folder 4, 1 of which you should have done. The easiest way to quickly change the colours is just to Adjust Them, go to Image > Adjust Color > Mess Around with some settings to get a colour that looks decent but doesn't look too close to the original. Of course that way isn't all that great, you can also load the image up in another program and try messing with the colours there, or whatever find what works for you, but make sure to try and keep the outlines the same colour and the background the same colour after you mess around with everything.

    The BEST way to edit the palettes is to actually create 20 different palettes manually so you control all the little things and make it look like how you want it to look like for each and every colour, but this way will take a lot of time and effort.

    Make sure to work off the first palette you made editing it and saving it as a new palette. The way I did it is I had my sprite sheet opened up with my 0.png palette I made applied to it, I changed a few colour values here in there in the palette box and then when I was happy with how it looked I saved it as a .pal file. After I finished all 20 different .pal files I then opened up my 0.png image applied each palette I made one by one saving it where it belonged after applying each one, so I applied palette1.pal to 0.png then saved it as 1.png and red1.pal to 0.png then saved it in the folder 0\0.png and so on until I had done it for all the palettes I made and had created all the .png palette images.
  9. The palettes are all done so you can stop here or keep moving on and doing some extra work to fully add the character to Lethal League, the extras are covered in Part 3 so go read that if you want to finish the character completely.
Creating a Custom Sprite Sheet Part 3 - Extras
  1. resources\graphics\lobboy\player#Fullshot.png - This image is a rather large portrait of the character that shows up when you select the character in the lobby. Notice Dice is player7Fullshot.png the rest are the same as usual. You'll need a really big image for this that works with the colours of your palettes, so load up the player#Fullshot.png then load your palette onto it. I just supersized my Sprite Sheet and pasted a sprite from there.


    Once you've got something you like go ahead and load up the resources\graphics\palettes\index_palette.pal palette onto the image to finish it off. Once that's done go ahead and save it.
  2. resources\graphics\versus\portraits\versus_portrait_name.png - This is the image that shows up during the loading screen, it's basically the Fullshot image just cropped off a little. The easiest way to make this is just to crop the Fullshot image you just made into a 614x266 image (a really easy way to help you out is once you've got to Fullshot image opened with a palette applied so you can actually see it, apply a Custom-Grid that's 614X by 266Y [Custom-Grid Icon > Input > Make sure both X and Y Visible are checked > X = 614 > Y = 266] once you've got the grid set up position the image inside of the top most grid and move it around until your happy with how it looks, after that simply Rectangular Selection from pixel 0,0 up to pixel 614,266, finding pixel 614,266 is easy since the grid will turn yellow once you have the selection tool directly overlapping it, after that go to All Frames > Crop) you can even leave off the diagonal little side crops unless you want to do those as well. After you've cropped or made the image make sure to save it, make sure when you save it that the index_palette.pal is applied.

  3. resources\graphics\ui\characterFaces.png - This file is a little different, it contains the faces of all the characters, it shows up next to a players name during gameplay so it actually kind of matters, but not too much. Load it up, each face is 64x64 so you can set up at 64x64 grid if you want, you have to realize you can't go out of the bounds of your character's face since you'll start screwing over the other character's faces if you do that. Now load one of your characters palettes and then find a good sprite to use as a face, copy it in place it over the LL character your replacing's face. Once you've done that tidy it all up then apply the index_palette.pal then save it.
  4. resources\graphics\lobboy\Lobby_portraits.png - This is the last file to change, it can be a pain in the ass to replace your character on this, most people ignore this for good reason. Since it shows which character you are picking it helps out to not change it, if it showed Megaman X instead of Dice people might get a little confused if they used your character mod. But if you want to change it go ahead and do so, this is just a regular image and doesn't require any palettes or anything like that.
  5. Sounds! - If you do want to customize your characters sounds then you can also do that. You can find the files under resources\audio\voiceover\name where name is the character name, there's a whole lot of files there for you to crazy over if you so wish, or you can just leave them alone like I did.
Finished MMX Sprite
Here's a link to the Megaman X Sprite for use in Lethal League that I created during this guide.

https://www.dropbox.com/s/yim6fv3c2xm3of0/MMX_Dice.rar?dl=0

It includes Dice's original files as well incase you want to easily go back to regular Dice.
Shout Outs
Thanks to Shffl for helping me out on some of the sprite stuff, SmellyHobo101 for creating the Hurtbox and Hitbox images, and @TR_Dion for the little Sprite editing image guide.
37 Comments
Mayp-O' Valentine 18 Jun, 2017 @ 7:45am 
@Mighty brothers XX learn coding then maybe you'll be able to "ADD characters"
baronrider 19 Jan, 2017 @ 2:32pm 
That's great, but how do you ADD characters?
Jorgie Porg 28 Aug, 2016 @ 8:46pm 
The colors are screwed up even after I fix the 0.png
Rasuzal 26 Aug, 2016 @ 7:56pm 
Oh. ...Thanks.
Val 26 Aug, 2016 @ 4:29pm 
Crea, that's not how it works.

In your steam library right click Lethal Leauge
Then click Properties
Go to the tab Local Files
And click Browse Local Files
Rasuzal 16 Jan, 2016 @ 10:37pm 
I bought lethal league directly from Steam, and as such, I only have a shortcut not a folder. Anyway I can fix this?
SauloTheMan 16 Jan, 2016 @ 3:55pm 
SauloTheMan 16 Jan, 2016 @ 3:38pm 
Nice tutorial and nice mod, I made this because the character selection was being a bit annoying without X there, so maybe you could use it in your mod http://i.imgur.com/0ORluZT.png
BadShot  [author] 7 Jan, 2016 @ 8:59pm 
@FaZE Bowie, I'm always happy to help out, just hit me up with a friend request and message me when you see me online. There is a couple really weird things with the way certain sprites are handled that I've helped people fix but I don't think I added them all to the guide so you problem might be somewhere in there. A video would be cool, but I'm not a video guy at all.
Pink 7 Jan, 2016 @ 6:47pm 
i could easily see this as a video