Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Expressions and layers

Expression values in a character pack: a layer array, or an inherit object.

"default": [
  { "path": "base.png" },
  { "path": "mouth.png", "drive": "!typing" },
  { "frames": ["m1.png", "m2.png"], "fps": 10, "loop": true, "drive": "typing" }
],
"happy": {
  "extends": "default",
  "override": [{ "layer": 1, "path": "mouth_happy.png" }]
}

Usually you need

FormWhen
Array of layersA full expression
{ "extends", "override" }Variant of another expression

Layer array entries

KeyTypeEffect
pathstringImage (__blank = empty)
x / y / w / hnumberOffset / size
modulate / scale / opacity—Look
drivestringVisibility: typing, !typing, focus, !focus, choice_open, …
framesstring[]Animated layer
fps / loop / loop_count / hide_when_done / shuffle / idle_frame—Animation
interval_min / interval_max—Frame intervals

Inherit object

KeyEffect
extendsBase expression id
override[{ "layer": N, …fields }] patches
addExtra layers appended
driveOptional variant guard (mismatch → fall back via extends)

Pack root · Drive rules · Characters.