
A downloadable tool for Windows and Linux
A character generator for Windows and Linux, using LPC assets.
This tool creates character spritesheets that you can use to create your own games.
You can find more info about the LPC project in:
| WSAD / Arrows | Walk |
| 1 | Test slash animation |
| 2 | Test reverse slash animation |
| 3 | Test thrust animation |
| 4 | Test shoot animation |
| 5 | Cast / Ressurect |
| Backspace | Die |
| Space | Attack |
| TAB | Switch weapon set (*) |
| Mouse wheel | Zoom |
| HOME | Reset zoom |
| CTRL + P | Export portrait |
| CTRL + Z | Show / Hide UI |
| F1 | Help |
| ESC | Exit |
| (*) only used in GamerMaker export format. | |
The Liberated Pixel Effort is a collaborative effort from a number of different great artists who helped produce sprites for the project.
If you wish to use LPC sprites in your project, you will need to credit everyone who helped contribute to the LPC sprites you are using.
All art distributed with this project is licensed under theGNU GPL 3.0 and/orCreative Commons Attribution-ShareAlike 3.0 (CC-BY-SA 3.0) license(s). Some art may be available under other licenses too.
Sprites contributed as part of the Liberated Pixel Cup project from OpenGameArt.org:http://opengameart.org/content/lpc-collection
Sprites by: AntumDeluge, Barbara Riviera, Benjamin K. Smith (BenCreating), bluecarrot16, caeles, Carlo Enrico Victoria (Nemisys), Charles Sanchez (CharlesGabriel), Cobra Hubbard (BlueVortexGames), dalonedrau, Daniel Eddeland (daneeklu), DarkwallLKE, David Conway Jr. (JaidynReiman), DCSS artists (see https://github.com/crawl/tiles/blob/master/ARTISTS.md), Dr. Jamgo, Durrani, Eliza Wyatt (ElizaWy), Emilio J. Sanchez-Sierra, Evert, Fabzy, gr3yh47, Inboxninja, Joe White, Johannes Sjölund (wulax), kcilds/Rocetti/Eredah, kheftel, kirts, laetissima, Lanea Zimmerman (Sharm), LordNeo, Lori Angela Nagel (jastiv), Luke Mehl, Mandi Paugh, Manuel Riecke (MrBeast), Marcel van de Steeg (MadMarcel), Mark Weyer, Matthew Krohn (makrohn), Michael Whitlock (bigbeargames), MuffinElZangano, Nila122, pflat, Pierre Vigier (pvigier), PlatForge project, Radomir Dopieralski, Rhimlock, Sander Frenken (castelonia), Sharon Rowe, Shaun Williams, Skorpio, Stafford McIntyre, Stephen Challener (Redshrike), Thane Brimhall (pennomi), thecilekli, TheForeman, TheraHedwig, Tracy, tskaufma, Tuomo Untinen (reemax), William.Thompsonj, XOR, Yamilian, Zi Ye
A detailed credits file can be viewed in the application.
Music:
Sleepy Little Mouse by Tsorthan Grove - CC BY 4.0 -https://opengameart.org/content/sleepy-little-mouse
UI Textures:
Pennomi's UI Elements by pennomi - CC-BY-SA 3.0, GPL 3.0 -https://opengameart.org/content/lpc-pennomis-ui-elements
Golden UI by Buch - CC-BY-SA 3.0 -https://opengameart.org/content/golden-ui-bigger-than-ever-edition
| Updated | 14 hours ago |
| Status | In development |
| Category | Tool |
| Platforms | Windows,Linux |
| Rating | Rated 4.9 out of 5 stars (29 total ratings) |
| Author | pflat |
| Made with | SFML,GIMP |
| Tags | chargen,lpc,SFML,tool |
| Code license | zlib License |
Log in with itch.io to leave a comment.
This is phenomenal! I just found out about the OG LPC but noticed some clothing/items weren't exported properly on certain animations (leaving my NPC's a bit... unclothed).
Tried this out and everything has been going very well! Do you think we'll be able to export a zip folder with animations broken out sometime in the future?
Hello,
I'm seeing a scaling bug where almost all weapons (e.g., Boomerang) are exporting at atiny size in the RPG Maker layout, while the Dagger and Axe scale correctly.
It seems most weapons are missing the necessary internal flag to be classified as 'large'.
Could you please review the weapon definitions to ensure all assets intended for the large size are correctly flagged as 'large'?
Thank you!


Things are actually a little different.
The large flag means that the sprites of the character+weapon doesn't fit in the 64x64 size. In those cases the application fits the images in a 192x192 sprite.
This way the boomerang is a large weapon and the axe isn't.
This was me trying to not waste so much video memory. In the chargen I accomodate both sprites sizes by changing it's center position.
If this is not an option for you, you can try to change the parameter "export_large_sheets" to "always".
This will always export images sized like the boomerang ones, but at least it will be in a consistent size.
Hope this helped.
Please check my answer to the post
However, if you want to completly replace the LPC assets by your own, some care must be taken (and because I have never tested it, it might just not work).
From the top of my head, the exporter code still has some 64 and 192 constants in it (so your assets should ideally 64x64 px).
Also the app assumes the LPC animations (idle, walk, slash, thrust, shoot, cast, hurt), so I fear that can be a big restriction to you.
im not sure if i'm extremely dumb or something, but where is the link to access the thing shown in the images? I know the last link brings you to a white website but eery character i make on the website is always naked in half of the animations no matter what clothes i put on them, so i asked chat gpt and they said to go to this on itch.io but i dont know if there is a seperate website like the one shown in the pictures or if this leads back to the white one? sorry i feel like im missing something, thanks!
this is going to sound VERY weird... I have a tileset that's 10000x10000 with each 'frame' being 200x200, DOES this software have the ability to...
Allow for custom character sets.
Not choke on files that size.
allow me into the backend to set categories and perhaps hues...
That's not a dig on your software, most other sprite collations can't do it either.
Hmmm....
It allows for custom spritesheets, BUT...
it expects each frame to be 64x64 or 192x192.
This means that you can only arrange each frame wherever you need it to be in the spritesheet (since the frame size is fized, this is kinda of semi-custamizable. That could be done, but it would no longer be a LPC Character Generator)
You can place several animations in the same spritesheet, and that's the closest thing you get regarding categories.
Regarding color, if you are trying to have, for instance, several walking animations with different hues in the same spritesheet,that's not supported.
If you need a character to colorize in game, maybe using the grayscale palette option will work for you.
Regarding the size you the spritesheets, I don't know yet. I've been trying to reduce it has much as I can, because I have a potatoe PC, but your question got me really curious. I guess I'll try to create a spritesheet that large, with many repeated frames and a very fast animation speed, to see how it goes (I don't hold much hope though).
I haven't made the repository public yet. This app has started has a by product of a game I was working on, and as such it's code is overcomplicated. I've wanted to clean it, for some time now.
In the meantime, if you open the pak file (it's just a zip) you can see how things are organized.
Look at the race files. They define what parts are used for each body.
Then look at the gear files. One of the fields of each gear definition is what body/head they can work with.
Hope this helps for now.
Excellent tool. This will really help me. I am having trouble getting the export to do what I want. My character has a shield in one hand and a sword in the other. I want to configure my layout to export the character holding nothing. The instructions in the release notes for version 0.7 indicate:
I am using the following:
[ "WLK_DN_0_0", "WLK_DN_0_1", "WLK_DN_0_2", "WLK_DN_0_3", "WLK_DN_0_4", "WLK_DN_0_5", "WLK_DN_0_6", "WLK_DN_0_7"]
Indeed, it exports without the sword, but with the shield. Am I missing something?
Thanks
Thanks for trying the app and extra thanks for reading the comments and trying to troubleshoot things yourself.
I've just check and you've done everything right. I on the other hand, have not (I'm not clearing the offhand slot).
Tomorrow I'll fix this this and push a new version. Sorry for the inconvenience.
Thank you for the really fast response (good to see). I love the fact that I can control the export. I do need to figure out a way to merge the exports because in my game I want to have the players acquire the weapons and that means they will have multiple weapons, and I will need to control when they use them. So, I would like to have one sprite sheet with multiple weapons in it, but I will use something like Aesprite to merge the sheets. Excellent work on your app. You did a wonderful job and a great service to the gaming community.
Greetings.
That is possible and one of the easing things to mod in the editor.
First I suggest you read Devlog v0.2. It explains how the application loads it's resources.
With that knowledge, you can extract everything from "chargen.pak", and edit the file "data/character/race/human.race" to add the pieces you want. For instance, if you add the line
"tail": [ "none", "cattail" ],
to the "m1" configuration, then regular human males can have a cat tail.
After that there's no need to repack the assets in a new .pak file. Just place the "human.race" file in the folder "<base>/data/data/character/race" and the application will use the human race definition instead of the one inside the .pak file.
Note 1: To discover the id's of the pieces you want you need the open the json files in the "data/character/..." folders.
Note 2: Some pieces aren't configured to work on some bodies (because they don't fit well). If you still want to use them, you will also need to edit those pieces json files.
Have fun.
While this is doable (I've been adding races from time to time), I acknowledge that it is not a straightforward process.
You should first refer to the version 0.2 devlog to see how the resources are loaded, and extract the existing ones.
Then you could try changing something first, like add some clothing or hair to a race that cannot wear that item.
Then you could try to create your own race.
It's a tedious and error prone process, and the generator will crash on startup several times, but it works.
Hmm... I should probably take same days to write a tutorial.
Absolutely phenomenal app!
Unlike some other similar online versions of this program, this one does NOT include "trash" animations like run or jump with very few clothing options that will end up only cluttering your output.
Cozy UI with cozy music and sounds let's you test out animations.
I can freely change palettes, add more items, and change the layout of the spritesheet. I feel like I have freedom to do and change anything to my taste.
The ability to have all spritesheets in uniform sizing, regardless if you have big weapon on/off is a godsend. As is also the ability to output only certain item, without rest of the character.
The source files on OGA tend to be messy and unorganized, with different layouts. It's a hustle to navigate through them, but this app makes it so easy to get the items you want in format you want.
I have only one suggestion/request:
Since all individual spritesheets have the ability to have universally the same size per frame of animation, would it be possible to add the option to output one large sheet? Even better if I could alter the layout of said file.
Currently I use Aseprite to glue all those individual sheets into one large file, and, well, my lazy self is being lazy.
10/10
Inside a downloaded CharGen folder is a "data" folder with single chargen zipped file. Open it and there you will find "export" folder. There should be 3 .layout files inside. Edit the "type" (in the screenshot, I edited a default universal lpc layout from "universal" to "single") in the layout you are using (as per chargen.ini). You should change the value to "universal" for spritesheets you don't want to be generated. In chargen.ini file edit"export_individual_sheets" and "export_large_sheets" key to have value of "always". You can open and edit those files with Notepad.
Hope this helps.
Edit: so I've just been playing around and it appears it will work with just "export_large_sheets" set to "always".
Thanks for the details, they've been helpful.
What I really am trying to do is make it so that every export is exported as a single spritesheet, with the animations in a consistent order, and the frames being a consistent size. This happens by default for everything, except when I add an oversized weapon, and it ends up exporting individual sheets.
What I will probably end up doing is turning that "export_large_sheets" option to "always", so that it always exports individual sheets, and then create a script to combine the individual sheets into a single sheet with a consistent frame size.
Please let me know if you are aware of some settings configuration that will allow for what I am attempting.
Yes, turn "export_large_sheets" to "always" - this is responsible for outputtingONLY spritesheets with "type": "single". These are those oversized spritesheets with frame size 192x192 that will export individually when you have weapon on, one sheet for slash, walk, etc....
Open lpc.layout file and in the very first spritesheet with "name": "universal" change the value of "type" from "universal" to "single", just as is shown in my previous screenshot (highlighted part in the notepad on the right). This will export that default big spritesheet, but in oversized format,
Turn all the other animations to "type": "universal".
Now your export should be only one big spritesheet with oversized frames, regardless if you have equipped oversized weapon or none at all, or if you export the full equipped character or only a piece of armor, or only a weapon with hidden body.
However, that default spritesheet does not have "smash", "whip" and "fish" animations. You will have to add them to the "frames" yourself if you want them in that same single sheet. This is where you can change the layout of your spritesheet, if you want to make your own. Just be careful about commas and typos, or the app will crash. Doesn't hurt to backup the whole data folder.
Hi! I'm a total noob.. can this program use external souces like this https://opengameart.org/content/lpc-female-orcogregoblintroll-base-walkcycle for example or is it working with only that's inside it?
It can work with external resources, but textures would have to use the colors used in the packed textures, and you would need to create data files for the new items (it's not a straightforward process). Check v0.7 readme for more info.
If you only need the female orc pirate, i just made the eyepatch work with that head, so, in next version all assets needed will be present.
I went looking for LPC mermaids and didn't find any (doing it myself is beyond my pixel art skills).
As for exporting in a layout compatible with Bakin, maybe that's possible. I checked the bakin documentation, but did not find a reference spritesheet to use. It looked to me that each user is free to define their own layout. If that's the case you can try to define your export layout as explained in the v0.7 readme
Hope that helps
This is amazing! I used to use a web-based creator when I needed an LPC sprite, but it's gone squirrely lately (not including characters' hair, etc. so my dark angel avenger girl ended up bald. lol).
This is so straightforward and easy to use 💖
Edit: Because it's been *changes sign* 0 Minutes since my last typo
Sorry for the very late reply.
I've taken a look at this bug and I'm not able to reproduce it.
I've tested in linux, win7 and win10 (I don't have access to win11)
I know it exists but I haven't been able to fix it yet because of that.
In the meantime, when you export to character, can you try to write the filename + extension, instead of just filename (ie, 'char1.png', instead of 'char1'), as MadMedicSoft as sugested ?
Hello ! Excellent and great work and great work!
however, there are several suggestions:
1. Add buttons to select animation (or hints in the form of text)
2. When exporting, the image is not saved unless you add an extension, for example - 'Image' - does not work, 'image.png' - works
3. Also, when exporting, sometimes one file is created with all animations of the type 'skeleton_universal.png', and sometimes several separate ones of the type 'skeleton_cast.png', 'skeleton_hurt.png', 'skeleton_idle.png'. I can't catch the dependence
4. Running animation (on available resources) would be an excellent addition
Hello. Thanks for trying out the app.
Regarding your suggestions:
Thank you for taking the time to help me.
Take care.
I'm not plannig on adding more animations to the app.
As I said before, there are running, climbing, jumping and sitting animations already made, but they have considerably very few clothes for those animations, and that made me take that decision.
Sure, running animations would be cooler, but to me, more clothing options was way more important.
Hello,
there are already a couple posts with the same problem.
Unfortunately, I don't know the reason for the issue (I also don't have many info on the issue).
What's your OS?
Does a "Save file" dialog appears when you click the export button?
If so, can you save/load characters ?
Do you have anything on the log file (in windows it's in %AppData%) ?
Hi, thanks for the interest.
It is possible to create new races or modify the existing ones.
If you open the chargen.pak file (it is a zip file) you can see how everything is defined in json files, and all the used textures.
Also, if you create a "data" folder in the app folder, and unzip the contents of the pak file to this folder, the app uses the lose files instead of the single archive.
This way anyone can try to add/modify things in the app.
I never wrote a guide detailing the process of creating a new race, but, for now, by checking the existing ones, and some patience, you can modify almost everything in the characters.
I haven't published the code to github yet. In the past the code was a bit messy and I wanted to clean it first. After I did clean it, I started building on it, trying to build a working game prototype. I think it now needs to be simplified a lot. Otherwise it would be a game engine (a simple game engine) and a demo application.
Time will tell.
Since v0.7 you can define the layout of the exported spritesheets.
It requires some configuration but it is working.
The base for that feature was RPGMaker (although I don't know if it was RPGMaker MZ), so maybe you're already covered.
Please see the v0.7 notes carefully, and check if this is what you need.
Sorry for tooking so long to reply.
Glad you liked the app so far.
Does the arrow keys or WSAD doesn't work for you? Or am I misunderstanding you ?
The animations implemented are walk, slash, thrust, shoot, cast, die. (you can test the animations with the keys 1-5, and backspace (use 5 to came back to life). You can check the keys in the initial app page in itch.io, or by pressing F1 in the app.
If you are asking if it is possible to integrate some kind of AI image generation in this app, I don't even know where to start. It was never in the goals of the app.
If you are asking if you can use the images obtained with this app as a base to create new images with a AI algorithm, I truly don't know.... I got all these assets from opengameart.org, and they are very mindfull regarding how their assets are credited.
Best check the rules in opengameart.org, and when in doubt credit everyone.
Hope I answered you question.
I guess it is possible, but it would be a convoluted proccess.
First you would need to create the image, with the some colors already used on the body images (that's where current heads take their color from).
Then you would need to create a new race to use that head.
It doesn'd seem difficult, and is certainly doable, but there's so much details that anyone would get many, many errors until it would be done.
Depending on avaliable time, I'll try to think on something for future versions.
Thank you very much. Appreciated.
Regarding the running animations. short answer is: sadly no.
There is a project byDeath's Darling, calledLPC Revised that has running, climbing and sitting animations. Unfortunately, even thought there's plenty clothing options in LPC Revised, there's not as many as I gathered here. Most important, the clothing is not 100% compatible with my version of LPC, and I'm not planning to mass convert so many assets as I have done already.
Regarding the export problem, I'm at a loss here. If you run the app from a command prompt, does the program writes any error messages ?
Hmmm, I staticaly link all the libraries (except the one included in the zip) to avoid these kind of problems....
Maybe you don't have the C++ runtime I used to build the app.
I builded it with Visual Studio 2015. Do you have this runtime version installed ?
https://www.microsoft.com/en-gb/download/details.aspx?id=48145
hello, wow, you program is awesome, thank you! I want to maybe use the bits randomly is there a table of compatibility? so, like having a different head on a human? anyway, i really am looking for an owl to use in my game, but can't find one, any chance of that being included? also, i saw something super similarthat was going to be an addon in godot....
Hello, glad you liked the app.
Every race defined in the generator doesn't use all possible combinations of body and heads because I thought that it looked weird (for example, a skinny minotaur). However, by editing the race files (*.race) that can be done (Hope I understood your question).
Regarding the owl head, I haven't found any yet. If I do, I'll gladly add new race for it.
Also, the Godot Addon sure is a sweet piece of work. Playing With Godot might took some inspiration from this app, but it stands on it's own now and you can only praise his work.
I used this tool to participate in the Game Jam
https://itch.io/jam/godot-wild-jam-71/rate/2836959#post-10376906
Hello Pflat,
Your work is amazing. Just created an account to tell you that and to ask a question.
It seems some animations cannot be exported. E.g. there's a whip animation, and I can see that it works in the UI by pressing space. The whip anim is special, and it's not exported. In fact, we cannot build any character with special animations (read as: I might be wrong, but i haven't found a way).
In an attempt to find a way, when looking at the *.export files, the animations are referenced by some string-ID that appears to be hard-coded in the source. I.e. "ISL_UP_0" likely stands for the islash animation. As such it is hard for me to figure out whether there is a corresponding string-ID for the character_large_whip.anim that I can use to set up my .export file, without decompiling the whole app.
For what it's worth, I tried my luck and included the following part in my export:
{ "name": "whip", "suffix": "whip", "type": "single", "frames": [ [ "LWP_UP_0", "LWP_UP_1", "LWP_UP_2", "LWP_UP_3", "LWP_UP_4", "LWP_UP_5", "LWP_UP_6", "LWP_UP_7" ], [ "LWP_LF_0", "LWP_LF_1", "LWP_LF_2", "LWP_LF_3", "LWP_LF_4", "LWP_LF_5", "LWP_LF_6", "LWP_LF_7" ], [ "LWP_DN_0", "LWP_DN_1", "LWP_DN_2", "LWP_DN_3", "LWP_DN_4", "LWP_DN_5", "LWP_DN_6", "LWP_DN_7" ], [ "LWP_RI_0", "LWP_RI_1", "LWP_RI_2", "LWP_RI_3", "LWP_RI_4", "LWP_RI_5", "LWP_RI_6", "LWP_RI_7" ] ] },But that just crashes the application on startup, because I totally made up that "LWP_..." part and it probably doesn't exist.
So my question is: If such a string-ID exists, as a temporary workaround, I would greatly appreciate it if you tell me so.
As a long-term fix, maybe you have any ideas on how we could solve the export of special animations generally?
Kind Regards,TS
Hello TS,
I checked the issue, and the bug is really on me. I didn't include the special animations when I rewrote the export process in v0.7
Sorry for the trouble.
That way, there's no quick fix for the problem, except to implement it. I'm already doing it and expect to release it this week.
On another note, it's amazing that you explored the app data files and experimented with it. That was really cool. Thanks a lot.