Skip to main content

Overview

The Shading Ink is a specialized pixel art tool that automatically applies shading based on your palette. It intelligently selects lighter or darker colors from your palette as you draw, making it easy to add depth and dimension to your sprites.
Shading ink tool
Shading ink is specifically designed for pixel art workflows with indexed color palettes. It understands palette relationships to create natural-looking shading.

What is Shading Ink?

Shading ink modifies how your brush applies color:
Default drawing mode—uses exactly the color you select.
  • Draws with the selected foreground color
  • No automatic color modification
  • Full control over every pixel

Enabling Shading Ink

1

Select a Drawing Tool

Choose the Pencil or Brush tool (B or P).
2

Open Ink Options

In the top toolbar, click the Ink dropdown (defaults to “Simple Ink”).
3

Choose Shading Ink

Select Shading from the ink dropdown menu.
4

Configure Options

Adjust the shading parameters:
  • Shade Step: How many colors to jump (1 = one shade darker, 2 = two shades darker)
  • Light Direction: Which strokes create highlights vs shadows
You can also access ink options by right-clicking the drawing tool in the toolbar.

Shading Ink Modes

Default shading behavior based on stroke direction:
  • Horizontal left or Vertical up: Lighter colors
  • Horizontal right or Vertical down: Darker colors
  • Diagonal: Combines horizontal and vertical logic
-- Enable shading ink via script
app.tool = "pencil"
app.toolInk = "shading"
The tool analyzes your brush movement in real-time to determine which color to apply.
Override the default light direction:You can configure which direction represents highlights:
  • Top-Left lighting (default)
  • Top-Right lighting
  • Bottom-Left lighting
  • Bottom-Right lighting
This determines which stroke directions produce highlights vs shadows.
Control how dramatic the shading is:
  • Shade Step = 1: Subtle, one color step
  • Shade Step = 2: Moderate, two color steps
  • Shade Step = 3+: Dramatic, high contrast
Start with step size 1 for smooth gradients, increase for dramatic lighting.

Working with Palettes

Shading ink requires a properly organized palette:
Palette Organization for ShadingArrange your palette with colors in order from dark to light:
  1. Darkest shade (shadows)
  2. Mid-dark shade
  3. Base color (unlit surface)
  4. Mid-light shade
  5. Lightest shade (highlights)
The shading ink walks up and down this color ramp automatically.

Creating a Shading Ramp

1

Start with Base Color

Choose your base color for the object you’re shading.
2

Add Darker Shades

Create 2-3 progressively darker versions:
  • Reduce brightness (Value)
  • Optionally shift hue slightly toward blue/purple for cooler shadows
3

Add Lighter Shades

Create 2-3 progressively lighter versions:
  • Increase brightness
  • Optionally shift hue slightly toward yellow/orange for warmer highlights
4

Arrange in Order

Place colors sequentially in your palette from dark to light.
-- Script: Create a shading ramp from a base color
local sprite = app.activeSprite
local pal = sprite.palettes[1]

function createRamp(baseColor, steps)
  local colors = {}
  
  -- Create darker shades
  for i = steps, 1, -1 do
    local factor = 1 - (i / (steps + 1))
    table.insert(colors, Color {
      r = baseColor.red * factor,
      g = baseColor.green * factor,
      b = baseColor.blue * factor
    })
  end
  
  -- Base color
  table.insert(colors, baseColor)
  
  -- Create lighter shades
  for i = 1, steps do
    local factor = i / (steps + 1)
    table.insert(colors, Color {
      r = baseColor.red + (255 - baseColor.red) * factor,
      g = baseColor.green + (255 - baseColor.green) * factor,
      b = baseColor.blue + (255 - baseColor.blue) * factor
    })
  end
  
  return colors
end

-- Use it
local baseColor = Color { r=100, g=150, b=200 }
local ramp = createRamp(baseColor, 3)

for i, color in ipairs(ramp) do
  pal:setColor(i - 1, color)
end

Practical Techniques

Basic Shading Workflow

1

Draw the outline

Use normal ink to create your sprite’s outline and base shapes.
2

Fill base color

Fill with your mid-tone base color.
3

Enable shading ink

Switch to Shading ink mode.
4

Add shadows

Stroke downward/rightward on surfaces facing away from light.
5

Add highlights

Stroke upward/leftward on surfaces facing toward light.
6

Refine

Switch back to normal ink for detail work and adjustments.

Shading Round Objects

Create the classic sphere shading:
  1. Draw a circle with base color
  2. Enable shading ink with step size 1
  3. Draw curved strokes following the sphere’s contour:
    • Upward strokes on the lit side (highlights)
    • Downward strokes on the shadow side (shadows)
  4. The center gradually transitions from light to dark
Use circular brush motions to follow the sphere’s curvature naturally.

Advanced Lighting

Simulate complex lighting:
  1. Use shading ink for the primary light source
  2. Switch to normal ink and manually add secondary highlights
  3. Or use shading ink with different light directions on separate layers
  4. Merge layers when satisfied
Great for outdoor scenes (sun + sky light) or indoor scenes (multiple lamps).
Add atmosphere with colored light:
  1. Create separate color ramps for different light sources:
    • Warm ramp (yellow-orange) for fire/sunlight
    • Cool ramp (blue-purple) for moonlight/shadows
  2. Apply warm shading ink for lit areas
  3. Switch palettes and apply cool shading for shadow areas
Creates dramatic mood and atmosphere!
Add contact shadows for depth:
  1. Use shading ink with high step size (2-3)
  2. Apply dark strokes where surfaces meet:
    • Corners
    • Under overhangs
    • Where limbs connect to body
  3. Creates subtle but important depth cues

Ink Modifiers

Combine shading ink with other ink modifiers:

Opacity

Adjust brush opacity for softer shading transitions. Lower opacity creates gradual blends.

Dithering

Enable dithering with shading ink for vintage pixel art style with automatic pattern shading.

Alpha Compositing

Use shading ink on semi-transparent layers for non-destructive lighting adjustments.

Lock Alpha

Lock layer transparency to apply shading only to existing pixels, preserving outlines.

Tips and Tricks

Shading Ink Best Practices
  1. Organize your palette first - Proper color order is essential
  2. Start subtle - Use shade step 1, increase if needed
  3. Follow the form - Stroke direction should match surface curvature
  4. Mix with manual shading - Use shading ink for bulk work, normal ink for details
  5. Test on a separate layer - Try shading on a new layer before committing
  6. Consider light direction - Be consistent with your light source across the sprite

When to Use Shading Ink

Shading ink excels at:
  • Organic forms: Characters, creatures, rounded objects
  • Quick mockups: Rapid prototyping of shapes and forms
  • Base shading: First pass before manual refinement
  • Consistent lighting: Maintaining light direction across sprites
  • Learning: Understanding how light affects form

Keyboard Shortcuts

ActionShortcut
Pencil ToolP
Brush ToolB
Cycle Ink ModesShift + I
Open Ink OptionsRight-click tool icon
Increase Shade Step(No default, customizable)
Decrease Shade Step(No default, customizable)
Create custom shortcuts for switching between Normal and Shading ink in Edit → Keyboard Shortcuts.

Combining with Other Features

Shading + Symmetry

Apply symmetric shading to both sides of characters simultaneously.

Shading + Onion Skinning

Maintain consistent shading across animation frames.

Shading + Custom Brushes

Use textured brushes with shading ink for detailed surface effects.

Shading + Palettes

Master palette organization for better shading results.

Troubleshooting

Cause: Palette not organized in light-to-dark orderFix: Reorganize your palette with sequential shades from dark to light
Cause: Using RGB mode instead of Indexed colorFix: Shading ink works best with Indexed color mode and a defined palette
Cause: Light direction setting doesn’t match your expectationFix: Change light direction in the shading ink options
Cause: Inappropriate shade step size for your paletteFix: Adjust shade step value (1 for subtle, 2-3 for dramatic)

Example Workflow

Complete character shading example:
1

Create base sprite

Draw character outline and fill with base colors (normal ink).
2

Organize palette

Arrange each color family from dark to light in the palette.
3

Apply base shading

Enable shading ink (step 1), add broad shadows and highlights following form.
4

Increase contrast

Switch to shade step 2, add deeper shadows in crevices and bright highlights on peaks.
5

Manual refinement

Switch to normal ink, add special highlights (eyes, wet surfaces) and adjust edges.
6

Final polish

Add ambient occlusion manually in corners and contact points.

Color Modes

Understand Indexed vs RGB color modes

Palette Management

Learn advanced palette organization

Drawing Tools

Master the pencil and brush tools

Gradient Tool

Create smooth color transitions