Skip to content

Indexed mode

A project-wide setting that locks all pixels to entries of the active palette. Editing a palette slot in indexed mode automatically re-paints every pixel that previously matched it — across all frames and layers — so palette swaps become a single click.

Indexed mode is the natural choice for retro-style projects, palette-cycling games, and any sprite where you want guaranteed colour discipline.


Where to find it

Top bar → RGB / IDX badge — click to open the Colour Mode dialog.

RGB/IDX badge in the top bar

The badge shows the current mode at a glance. Each palette swatch also gets a small IDX marker when indexed mode is active.


Toggle the mode

Two ways the dialog can take you:

RGB → Indexed

  1. Click the RGB badge.
  2. Pick a palette source:
    • Current palette — keep the existing palette as-is. Pixels not exactly matching a palette colour stay unchanged unless you enable Force quantize.
    • From preset — load a built-in palette (DB16, PICO-8, Endesga 32, Sweetie 16, …) before converting.
  3. (Optional) Enable Force quantize to re-map every pixel to the nearest palette colour. Useful when converting a project that has off-palette pixels from previous RGB work or imported images.
  4. Click Convert. One undo entry.

Starting from concept art? Use Import image as new frame (Frames timeline → Image icon, or Command palette) to bring in an external PNG/JPG and choose Palette → Replace with extracted during import. Then switch to indexed mode with the resulting palette. This is the fastest art-to-pixel-art workflow — see palette.md for the palette-extraction options.

Indexed → RGB

Just clicks the toggle — pixels are unchanged, the lock is removed.


What changes when indexed mode is on

Editing a palette slot propagates

Double-click any swatch and edit the colour. The dialog title hints:

Edit Palette Slot N (replaces matching pixels)

Confirming the change re-paints every pixel of the old colour with the new one across the whole project.

This is the headline feature — you can prototype a colour scheme, build a sprite, then iterate on the palette and watch the sprite update live.

Picker is locked to palette

The Colour Picker dialog disables the "Other / custom" option in indexed mode. The eyedropper still samples freely from the canvas, but if the sampled colour isn't in the palette your primary auto-snaps to the nearest palette entry.

Pencil / fill / replace can't introduce new shades

Every drawing tool's output is forced to the active palette. There's no way to leak a new shade into the canvas without first adding it to the palette.

Custom brushes & cycles work the same

Custom brushes and Color cycles work with both modes — but cycling is more reliable in indexed mode because pixel-colour matching is guaranteed.


Use cases

  • Game-ready sprites — guarantee that your sprite never uses more than the agreed palette
  • Palette swaps — paint the sprite once, swap palettes for variants (red goblin → green orc → blue wraith)
  • Animation palettes — a single palette change animates every frame at once
  • Pixel-perfect colour discipline — no accidental near-duplicates after eyedroppering for an hour

Common pitfalls

"My old project has off-palette pixels"

Use Force quantize when converting RGB → Indexed. Every pixel snaps to the nearest palette entry. This is destructive — keep a .mstack backup if you might want the pre-quantize colours back.

"I changed a swatch and weird things happened"

Indexed mode propagates across all frames and layers. If you weren't expecting that, undo (Ctrl+Z).

"I want to add a new colour"

Use the + in the palette to append the current primary. New colours expand the palette; they don't replace anything.


Tips

  • Pair indexed mode with Sort by luminosity to keep ramps grouped visually, especially when they participate in color cycles.
  • Remove unused colours is safe in indexed mode — it preserves visual identity (the slot mapping updates).
  • Drag-swap two swatches to recolour an entire region without painting.

Motestack is a personal hobby project. The editor and these docs ship under no warranty — back up your `.mstack` files.