10 Color Palette Tools and Resources for Game Artists (2026)
Most palette tools help you pick colors and almost none help you enforce them. The list is split by which of the three jobs each entry actually does.
Every color tool on the internet helps you pick a palette. Almost none hold an asset to the palette you picked. Picking takes an afternoon. Holding takes the rest of the project, and holding decides whether month six of your art sits beside month one.
So this list is sorted by three jobs, and every entry says which one it does. Generating a palette means producing the colors. Storing one means keeping it where your editors and your engine both read it, not in a screenshot on your desktop. Enforcing one means art made after the palette exists lands on it, including art you did not draw.
The reader is a solo developer or a small team's programmer sourcing art from several places over a long project. Disclosure: this is the blog of Makko, an AI-powered 2D game art studio, and Makko is one of the ten entries, placed in the enforcement column, not the picking column. Prices are as of September 2026, from each vendor's own pricing page.
The short version. Lospec is free and closes the generating job in an afternoon. Storing belongs in two places at once: a palette file in whichever editor you use, and the same values committed into your engine project as constants or a resource. Enforcement is the job nobody sells you: source assets as sets, and write a conformance check that fails the build. Makko covers the first half of that sentence, a twenty-line script the second.
How these were picked, and the three jobs
A palette is not a list of swatches. It is a set of ramps, where a ramp runs dark to light across one material under one light, and one ramp serves several materials. Ramp count matters more than raw color count: thirty-two colors as eight ramps of four is a working palette, and thirty-two unrelated swatches is a mess with the same total. That argument, with a sizing procedure and a spec block, is in the companion piece on limited color palettes.
Five criteria, in priority order.
- Which job it does. Generate, store, enforce, or more than one.
- Cost and its shape. Free, one-time, or recurring. A palette outlives several subscriptions.
- Commercial license. Two entries have free tiers whose output you may not ship.
- Ramp handling. Ordered structure, or a flat bag of colors.
- Pipeline fit. Manual steps between the palette and the running game.
One warning before the entries: nothing here is a conformance checker. That script is yours to write, and the procedure is in the decision block below. Tools make conformance likely. Only a script makes it certain.
1. Lospec, for generating
Job: generate. Lospec is a free web resource, best known for its palette list and its pixel art tools. Most small projects get their starting palette here, and there is no reason to pay for this step.
Treat a published palette as a starting point. It was sized for somebody else's materials, states and interface levels, so adopting one whole means inheriting a ramp depth you never chose. Read a candidate as ramps: how many hue families, how many steps each, and whether that depth survives an interface needing a neutral run of its own.
Pick this if you have no palette and want one today. Do not treat it as storage or enforcement: a browser tab is neither.
2. Krita, for generating and storing
Job: generate and store. Krita is a free, open source raster painting application with no commercial-use clause to read. It is the entry for building ramps by hand, and hue rotation across a ramp is a judgment a generator will not make for you.
It is also the route for sampling a palette out of reference. Pull three images with the light you want, sample the dark, mid and light of each major material, and you have four or five ramps that already agree about a light source. Saved as a palette file, that is what you hand downstream.
Pick this if you paint, or want ramps derived from reference. Do not pick this if your art is pixel-gridded and you want an editor built around the grid.
3. Aseprite, for storing the palette where you paint
Job: store, with bounded enforcement inside its own documents. Aseprite is a paid one-time purchase, sold on Steam and itch.io. The price is not published in a form I can quote here, so check either store. One-time is a different risk from a subscription on a project measured in years.
A pixel editor earns the storing column because the palette loaded into a document is the palette you paint from, removing that decision from every stroke. That is real enforcement, and bounded: it covers pixels you place in that editor and nothing else. Art from a pack or a generator has never seen your palette file.
Pick this if you author pixel art and want the standard commercial tool. Do not pick this if your budget is zero, since entries four through six cover the same job for nothing.
4. Pixelorama, the free desktop route
Job: store. Pixelorama is a free, open source pixel art editor. No purchase, no commercial-use clause, no seat count.
Structurally it does what entry three does: holds a palette for a document and constrains what you paint in it. The decision is not color handling. It is a paid tool with a commercial support story against a free one you can install everywhere.
Pick this if you want the pixel workflow at zero cost. Do not expect it to say anything about assets that were not made in it.
5. LibreSprite, the other free editor
Job: store. LibreSprite is free and open source. Same column as entries three and four, the same document-scoped enforcement, the same zero cost.
Two free editors is not padding. Editors here differ in keyboard flow and in which formats they open, and both decide how fast you can take somebody else's asset, load your palette and remap a region. Install both, open the same sprite in each, keep whichever you stopped fighting sooner.
Pick this if entry four did not fit your hands. Do not pick either as your only palette infrastructure: a document-scoped palette does not travel to your engine.
6. Piskel, for storing with nothing installed
Job: store. Piskel is a free browser and desktop pixel editor. The browser half is why it sits apart from four and five.
The use is unglamorous and frequent: somebody sends an asset, you are on a machine that is not yours, and you need to see whether its colors match. A browser editor opens it and lets you fix an obvious offender with no install.
Pick this if you want a zero-install editor for quick checks and small fixes. Do not pick this if it would be the only place your palette lives.
7. The engine-native palette, for storing and enforcing at the point of use
Job: store and enforce, for everything the engine draws. Cost: nothing, since it is a file in your project. This is the entry most often missing from a project that already has a palette.
Commit the palette into the project as code or as a resource: a constants file, a resource asset, a theme, whatever your engine calls it. Every interface hex value, every tint, every particle color then reads from one place. Colors stop being typed by hand at the call site, where drift starts, and a palette revision becomes one commit. Pair it with the color block in your art bible so spec and committed values cannot disagree.
Pick this if you have a palette and an engine, meaning always. Do not expect it to constrain image files: it governs what the engine draws, not what a PNG holds.
8. Scenario, for generating art that has to land on the palette
Job: generates assets, not palettes. Scenario is an AI image generation platform, here because generated art is a large source of off-palette color. Pricing at the time of writing:
- Free: 50 daily credits, no credit card required, outputs for personal and evaluation use only
- Starter $15 per month: 1,500 monthly credits, single user, 65 or more core models, private generations, 50 GB storage
- Pro $45 per month: 5,000 credits, priority queue, unlimited relaxed generations, custom model training, 500 GB
- Max $75 per month: 10,000 credits, workspace up to 25 users, custom editing model training, 1 TB
All paid plans include a full commercial license, and annual billing is stated as 33% cheaper than monthly. The free tier restriction is the load-bearing fact: fifty daily credits is a generous evaluation budget, none of it may ship, and $15 per month is the honest commercial floor.
Pick this if you cannot draw and have priced the alternative. Do not assume output is palette-conformant. Treat it like a bought asset pack: check it, then remap by luminance rank onto the ramp you assign.
9. Leonardo.Ai, the other generation entry
Job: generates assets, not palettes. Leonardo.Ai is a general image generation platform on a token structure.
- Free $0: 150 fast tokens per day, token bank 150, creations are public, 1 personal collection
- Essential $12 per month: 8,500 fast tokens, bank 25,500, private creations, 10 personal models, 2 simultaneous generations
- Premium $30 per month: 25,000 fast tokens, bank 75,000, 20 personal models, 3 simultaneous
- Ultimate $60 per month: 60,000 fast tokens, bank 180,000, 50 personal models, 6 simultaneous
Paid subscribers get full ownership of outputs; the free tier is a non-exclusive royalty-free license with creations made public. For a commercial game the practical floor is Essential at $12 per month, where private creations also arrive.
Pick this if you want a general-purpose generator and will run your own color pass after. Do not pick the free tier if public concept art is a problem.
10. Makko, for holding a set to one look
Job: enforce, at the point of authoring. Makko generates 2D game art around collections, where a collection binds the look, feel and style across a whole asset set, and it bakes sprite sheets from generated animations.
The collection is the relevant part, not the generation. Palette drift is a sourcing problem before it is a color problem: assets acquired one at a time, months apart, from different places cannot agree by construction, and remapping afterward is the tax for that. A set authored together starts in agreement, and the source is the cheapest place to enforce anything.
The boundary, stated plainly: it does not read your palette file, scan your project folder, or fail your build. It addresses the assets it produces, as a set. Pick this if your risk is a set of assets that disagree with each other. Do not pick this if you need a verifier for art you already have, where the conformance script below is the answer.
Comparison table
| Entry | Job | Cost (September 2026) | Commercial catch | Ramp handling |
|---|---|---|---|---|
| Lospec | Generate | Free | None stated here | Read the palette as ramps yourself |
| Krita | Generate, store | Free, open source | None | Build or sample ramps by hand |
| Aseprite | Store | Paid one-time, Steam and itch.io | None | Document-scoped |
| Pixelorama | Store | Free, open source | None | Document-scoped |
| LibreSprite | Store | Free, open source | None | Document-scoped |
| Piskel | Store | Free, browser and desktop | None | Document-scoped |
| Engine-native | Store, enforce | Free, in-project | None | Whatever you commit |
| Scenario | Generate assets | Free; $15; $45; $75 per month | Free tier personal and evaluation only; all paid plans carry a full commercial license | Not a palette tool |
| Leonardo.Ai | Generate assets | Free $0; $12; $30; $60 per month | Paid gets full ownership; free creations are public | Not a palette tool |
| Makko | Enforce at authoring | Not stated here | See Makko's terms | Collection binds the set |
How to choose
You are picking one entry per job, not one entry. Run this top to bottom.
GENERATE (one afternoon, then never again)
1. No palette yet? Lospec, free.
2. Want it from reference? Krita, free.
Count RAMPS, not colors. Lock depth:
hues can be remapped later, depth cannot.
STORE (two places, not one)
3. Palette file -> your editor:
paid one-time -> Aseprite
free desktop -> Pixelorama / LibreSprite
zero install -> Piskel
painted art -> Krita
4. Same values -> your engine project, as
constants or a resource. UI, tints and
particles read from it. Skipping 4 is
the common failure.
ENFORCE (the job you do not have yet)
5. Source as SETS, not one asset at a time.
Makko binds a collection to one look.
6. Write the check. On import and in CI:
export at native resolution
unique colors over an alpha floor
nearest entry, perceptual space
rank by PIXEL SHARE, not count
fail: >0.5% of opaque pixels off-ramp
7. Bought or generated art: check it too.
Frequently asked questions
What is the cheapest setup that covers all three jobs?
Zero. Lospec or Krita to generate, a free editor plus committed constants in your engine project to store, and a conformance script you write once to enforce. Nothing in that stack carries a purchase or a license clause. The cost is the hour spent writing the check, and that hour is the part of the workflow that pays back.
Can I keep the palette in my pixel editor and skip the engine copy?
You can, and the interface is where it breaks. Panel backgrounds, text colors, damage flashes and particle tints get typed as hex at the call site, never pass through your editor, and six months later the interface occupies a color space your world does not. Committing the palette into the project removes that drift. What color has to do at runtime is covered in game color for developers.
Can I ship a game with art made on a free AI tier?
Check each separately. Scenario's free plan outputs are for personal and evaluation use only, so no. Leonardo.Ai's free tier is a non-exclusive royalty-free license and creations are public, with paid subscribers getting full ownership from $12 per month. The free editors here carry no such restriction.
Which of these enforces a palette?
Three, partially. A pixel editor enforces inside its own documents. An engine-native palette enforces everything the engine draws. Sourcing a set as a collection enforces agreement at the moment of authoring. None of the three covers art arriving from outside, and that gap closes with a script rather than a purchase.