A sprite editor for Unity that brings PICO-8's charming workflow and constraints to game development in Unity.
This tool ports PICO-8 sprite editing functionality into Unity, allowing developers to enjoy the same efficient, creative workflow that makes PICO-8 game development so enjoyable. Work with PICO-8's characteristic aesthetic and palette directly within the Unity editor.
- PICO-8 Style Sprites — Create sprites with PICO-8 constraints in Unity
- 16-Color Palette — PICO-8's iconic fixed color palette
- Pixel-Perfect Grid — Clear visual grid for pixel-level control
- Efficient Workflow — Quick iteration and creative development
- Unity Integration — Seamless asset pipeline for game development
- Real-time Preview — See sprites in game context immediately
- Sprite sheet support — Organize multiple sprites efficiently
- Unity 2020.3 LTS or later
- C# scripting enabled
- Clone or download this repository
- Place the editor package in your Unity project's
Assets/directory - The editor window will appear in the Window menu
- Open Window → PICO-8 Sprite Editor
- Create new sprite or open existing
- Select colors from the 16-color palette
- Paint directly on the 8×8 or 16×16 canvas
- Save as Unity sprite asset
- New Sprite — Click "New Sprite" button
- Select size — Choose 8×8 or 16×16 pixels
- Paint — Click/drag to paint pixels
- Pick color — Left-click palette for paint color
- Erase — Right-click to erase or use eraser tool
- Save — Save as
.spriteor PNG asset
Organize multiple sprites efficiently:
- Grid layout — Automatically arrange sprites
- Batch operations — Apply transformations to multiple sprites
- Quick export — Export all as sprite sheet
PICO-8's signature 16-color palette:
- Colors 0-15 — Predefined PICO-8 palette
- Recolor — Remap colors for variations
- Custom palettes — Create alternate color schemes
// Load sprite from editor
Sprite mySprite = Resources.Load<Sprite>("Sprites/my_sprite");
// Apply to SpriteRenderer
GetComponent<SpriteRenderer>().sprite = mySprite;
// Use in UI
GetComponent<Image>().sprite = mySprite;Create animations using sprite sequences:
- Edit multiple sprites in sequence
- Use Unity Animator with sprite transitions
- Or programmatically change sprite each frame
- Pencil — Single pixel drawing
- Brush — Variable brush sizes
- Eraser — Remove pixels
- Fill — Flood fill with color
- Line — Draw straight lines
- Rectangle — Draw rectangles
- Circle — Draw circles
- Zoom — Adjust magnification (1x to 16x)
- Grid — Toggle pixel grid display
- Background — Change editor background
- Checkerboard — See transparency clearly
- Animation preview — Playback sprite animations
- Z — Zoom in
- X — Zoom out
- E — Eraser tool
- B — Brush tool
- P — Pencil tool
- F — Fill tool
- Ctrl+S — Save sprite
- Ctrl+Z — Undo
- Ctrl+Y — Redo
- Stay within 8×8 or 16×16 grids
- Use limited palette for cohesion
- Embrace pixel art constraints
- Use 1-2 px outlines for contrast
- Keep sprite counts reasonable
- Use sprite sheets for batch rendering
- Reuse sprites across scenes
- Group related sprites in folders
- Use consistent naming (e.g.,
player_idle_01) - Keep separate sprite sheets for different characters
- Language: C# (Unity)
- Pixel format: RGBA32
- Export formats: PNG, Sprite asset
- Save location:
Assets/Resources/Sprites/(default)
- Maximum sprite size: 32×32 pixels
- Fixed to 16-color palette (custom palettes upcoming)
- Sprite sheets limited to 512×512 texture
- Custom palette support
- Animation timeline editor
- Onion-skin preview for animation
- Sound effect editor
- Map/tileset editor
Copyright © Walter Gordy