Face reactions
All 119 face reactions with what triggers each one and its priority, how clip faces and reactions combine, glances, how a pack changes a reaction, and the settings.
-
Punchy! Studio
This page has not been translated into Hungarian yet, so it is shown in English. Read in English
On this page
Punchy! Moves changes the face for 119 moments: a squint in the rain, a wince after a rough landing, a smile while eating, a wide-eyed stare at a warden. This page lists every one with what turns it on and how strong it is. It then shows how a clip’s face goes over a reaction, how glances work, and how a pack or a player changes a reaction. It is for players who want to switch a reaction off, and for pack makers who want a moment to look different.
Before you start
- Install Punchy! Moves (Getting started) and look at your character in third person. First person draws no face.
- The settings sit in the Face tab of Punchy’s new menu: press F8 and click Face in the Punchy Moves group. The Faces overview shows the tab.
- Without Punchy’s new menu there is no Face tab. The reactions all play with their defaults, and the settings are the keys of
config/punchy_moves/face.json(see Settings). - Reactions are worked out on your own screen for every player you see, from what your game knows about them. Nothing is sent to a server.
- To change a reaction in a pack you need a resource pack for Punchy! Moves, or Punchy! Studio, which writes the pack for you (Punchy! Studio).
Video coming soon
How the face picks a reaction
Every reaction has a priority, a number. The higher the number, the stronger the reaction.
- The face checks the reactions that are switched on, from the strongest down. The first one that applies and has a look sets the whole look: eyes, brows and marks.
- The blink pace comes from the strongest applying reaction that sets one. Walking and Standing still set only a pace: they keep blinks at their usual speed. Other reactions set a pace together with their look, such as Under water (fewer blinks) and Rain (quicker blinks).
- Gaze runs under every look. The pupils and brows follow the head, up, down and to the sides, emote clips and head aim included.
- Most reactions that depend on a state hold while the state is true. A reaction for a single moment holds for a set time after it, as the Holds column says. Twenty ticks make a second.
- A new look eases in over 3 ticks, and a change of eye shape passes through a quick blink. A stronger look also stays up to 4 ticks after its reaction stops, so two reactions never swap tick by tick.
A reaction that has no look of its own (Gaze, Walking and Standing still) never wins the look. It only sets the blink pace, or in Gaze’s case, moves the eyes. Give one a look in a pack and it plays like any other.
Five lasting moods show only now and then, so they do not stay on your face all the time: Long run, Hungry, Cold places, Hot places and Night. Each one shows for 4 seconds in every 30 second cycle, at a moment of each avatar’s own, while its cause lasts. Their Holds column reads 4 s in every 30 s. The Test tab shows them all the time.
The From column tells you where the reaction reads its moment:
| From | Where the moment comes from |
|---|---|
| Moves | The body’s moments, as Moves decides them for its clips: runs, jumps, landings, falls, climbing, swim depth, idle moments, item moments. They work with or without a pack. A pack changes only their limits (see Limits a pack can change). |
| Game | What the game shows of the avatar: its pose, effects, health, vehicle and hand. |
| World | What is around the avatar, read every tick: biome, time, mobs, players and blocks. |
The game never sends your client other players’ food or level. Those reactions say Your avatar only in the table and play on you alone. Moves also sees firework boosts, block use, throws, shears, fire lighting and shots only on you. Other players’ effects, such as Nausea, show as they were when the player came into view.
Priority at a glance
| Priority | What lives there |
|---|---|
| 1140 to 1190 | Danger to the body: Dying, Asleep, In lava, Hit from behind, Hurt, Warden and Creeper. A clip’s face never covers these. |
| 1000 to 1130 | Hard falls and landings, dives, big hits and the lightning flash: Long fall, Hard landing, Falling into lava, Riptide, Splash, Rough landing, Critical hit, Mace smash, Out of air, Trident throw, Lightning, Spear attack, Falling and Diving. |
| 750 to 990 | What the hands and the moment are doing: Knocked back, Firework boost, Monster nearby, A bite, Spyglass, Level up, Horn, Emotes, charging and aiming, Shield up, fishing, eating and drinking, Pets and babies, Map view, reading, tools, throwing, putting on armor and swapping items. |
| 650 to 700 | How the body is: Frozen, Burning, Freezing, Blinded, Nausea, Poisoned, Low health, Hungry and Powered up. |
| 490 to 600 | Water, flight, jumps and climbing. |
| 360 to 470 | Riding, edges and balancing, runs, crouching and walking. |
| 165 to 300 | Calm moments: music, a campfire, being watched, invisible or glowing, light at night, idle moments, daydreaming, standing still and the places (flowers, cold, heat, eerie places, night, the Nether, the End, deep underground). Glances happen here. |
| 10 | Gaze. |
Try a reaction
The face editor’s Test tab plays any reaction on every face you can see, yours included, the way its moment would show it.
- In third person, press F8 and click Face under Punchy Moves.
- Next to Face editor, press Open, then click the Test tab.
- Use the arrows beside the box at the top until it reads the reaction you want, for example Reaction: Hurt. Its group and its number in the list show under the name, and a short description of the moment shows below.
- Look at your player in the editor. The reaction plays for as long as it stays picked.
- Use the arrows beside the Plays: box to give the reaction another look. It reads Plays: its own until you pick one.
- Press Done.
Video coming soon
The preview plays only the reaction you picked, together with the gaze. It ignores your switches, and no clip face or look hold is part of it. The Look: box below shows any look as it is, and Blink, Look left, Look right and Raise brows try single moves.
The reactions
Each table gives the reaction’s name as it appears in the Face tab and in Punchy! Studio, then its id in code. The id is what you write in faces/triggers.json and in face.json. Reactions are listed in the order of the Face tab’s sections.
Always
Runs under everything else.
| Reaction | Priority | When it fires | Look | Holds | From |
|---|---|---|---|---|---|
Gaze (gaze) | 10 | Always. The pupils follow the head as Moves draws it, up, down and to the sides, emote clips and head aim included. Looking up lifts the brows and opens the whites; looking down lowers the lids and the brows. | No look of its own; it moves the eyes under every look | always | Moves |
Standing about
Standing still and walking. These sit low, so almost anything else takes over.
| Reaction | Priority | When it fires | Look | Holds | From |
|---|---|---|---|---|---|
Walking backwards (backpedal) | 370 | While walking backwards, with more than half of Moves’ walk blend going back. | Worried | while it holds | Moves |
Strafing (sidestep) | 365 | While walking mostly sideways: at least half of Moves’ walk blend goes to one side, and less than half goes forward or back. | Neutral, pupils toward the step | while it holds | Moves |
Walking (stride) | 360 | While walking without running, by Moves’ walk blend. The look stays with the place you are in. | No look of its own; it keeps blinks at their usual pace | while it holds | Moves |
Idle moments (fidget) | 270 | When Moves plays one of its idle moments while standing still: every 20 to 45 seconds with the default timing. | Sly, Curious, Bored, Wink, Smug or Happy, picked for each moment | 60 ticks | Moves |
Daydreaming (daydream) | 265 | After standing still for the Time before daydreaming set in the Face tab, 30 seconds by default. | Sleepy | while it holds | Moves |
Standing still (still) | 260 | After 2 seconds of standing still, by Moves’ still timer. The drowsy, glancing spells that start at the same time come from the Glances setting. | No look of its own; it keeps blinks at their usual pace | while it holds | Moves |
Running and crouching
Runs, crouches, crawling and balancing, from Moves’ own run and crouch.
| Reaction | Priority | When it fires | Look | Holds | From |
|---|---|---|---|---|---|
At the edge (vertigo) | 420 | While on the ground looking 35 degrees or more down at an edge, with 6 blocks or more of air under the block ahead. | Nervous, eyes down | while it holds | World |
Balancing (tightrope) | 415 | While standing on top of a fence, as Moves’ balance clips see it. Wooden fences and the Nether brick fence count. Walls and fence gates do not. | Worried, eyes down | while it holds | Moves |
Starting a run (kickoff) | 410 | When Moves starts a run. | Excited | 10 ticks | Moves |
Stopping a run (skid) | 405 | When Moves ends a run. | Surprised | 12 ticks | Moves |
Long run (marathon) | 400 | After 6 seconds of running, but only now and then: it shows for 4 seconds in each 30 second cycle. | Strain | 4 s in every 30 s | Moves |
Running (dash) | 395 | While Moves holds a run: sprinting on the ground with a movement key held, and not flying, climbing, crawling, falling or swimming. | Determined | while it holds | Moves |
Crouching down (duck) | 390 | When crouching down. | Wary | 8 ticks | Moves |
Sneaking (sneak) | 385 | While moving crouched. | Sneaky | while it holds | Moves |
Crouching (crouch) | 380 | While crouching. The first moment is Crouching down, and moving while crouched is Sneaking. | Focused | while it holds | Game |
Crawling (prone) | 375 | While crawling: the swimming pose out of water, as under a trapdoor or through a one block gap. | Focused | while it holds | Game |
A run counts as held once the sprint has started with a horizontal speed at or above the run stop speed, or a sprint blend of half or more. Running, Starting a run, Stopping a run and Long run all read that.
Jumps and falls
Jumps, falls by their weight, landings, dives and a few rides through the air.
| Reaction | Priority | When it fires | Look | Holds | From |
|---|---|---|---|---|---|
Long fall (freefall) | 1130 | While a fall is long: 7 blocks or more expected below, or dropping at 0.72 blocks a tick or faster. Moves’ hard fall, from 13 blocks or at 1.05 blocks a tick, keeps the same face. | Shocked | while it holds | Moves |
Hard landing (thud) | 1120 | When landing from 8 blocks or more, or at 0.95 blocks a tick or faster: Moves’ heavy landing. | Pain | 14 ticks | Moves |
Falling into lava (scald) | 1110 | While dropping toward lava from 3 blocks or more above it, by Moves’ dive probe. | Scared | while it holds | Moves |
Riptide (spin) | 1100 | While spinning with a Riptide trident. | Dizzy | while it holds | Game |
Splash (splash) | 1090 | When hitting water while moving down faster than 0.4 blocks a tick. | Pain | 8 ticks | Moves |
Rough landing (stumble) | 1080 | When landing from 4 blocks or more, or at 0.58 blocks a tick or faster: Moves’ medium landing. | Wince | 8 ticks | Moves |
Falling (plunge) | 1010 | While Moves sees a fall: dropping with more than 5 blocks expected below. | Surprised | while it holds | Moves |
Diving (cannonball) | 1000 | While dropping toward water from 3 blocks or more above it, by Moves’ dive probe. | Joyful | while it holds | Moves |
Levitating (float) | 525 | While under Levitation. On other players, only the effects they had when they came into view. | Nervous | while it holds | Game |
Running jump (leap) | 520 | When a jump starts while moving. | Excited | 10 ticks | Moves |
Jumping (liftoff) | 515 | When a jump starts. | Happy | 4 ticks | Moves |
Rising (ascent) | 510 | While going up faster than 0.1 blocks a tick, off the ground and not climbing, swimming, gliding or flying: the rest of a jump’s rise, a slime block bounce, a wind charge. | Happy | while it holds | Game |
Landing (touchdown) | 505 | When landing. Medium and heavy landings switch to Rough landing and Hard landing, so this one shows on light ones. | Squint | 5 ticks | Moves |
Moves rates a fall in three steps. A fall past the trigger distance shows Falling. A long fall, from 7 blocks or at 0.72 blocks a tick, and Moves’ hard fall, from 13 blocks or at 1.05 blocks a tick, both show Long fall.
Flying
Elytra and creative flight.
| Reaction | Priority | When it fires | Look | Holds | From |
|---|---|---|---|---|---|
Firework boost (boost) | 980 | When a firework boosts you while gliding. Your avatar only. | Excited | 20 ticks | Moves |
Banking (bank) | 550 | While gliding and banking 8 degrees or more, by Moves’ elytra bank. | Happy, pupils lead into the turn | while it holds | Moves |
Flying fast (jet) | 545 | While gliding fast: past the middle of Moves’ high speed blend, which starts near 0.72 blocks a tick and is full by 1.08. | Squint | while it holds | Moves |
Gliding (glide) | 540 | While flying with elytra. | Happy | while it holds | Game |
Flying fast in creative (zoom) | 535 | While flying fast in creative: sprinting in the air, or holding sneak. | Determined | while it holds | Moves |
Flying (hover) | 530 | While flying in creative. | Relaxed | while it holds | Moves |
Climbing
Ladders, vines and scaffolding.
| Reaction | Priority | When it fires | Look | Holds | From |
|---|---|---|---|---|---|
Climbing up (scramble) | 500 | While climbing up. | Strain | while it holds | Moves |
Climbing down (descend) | 495 | While climbing down. | Focused, eyes down | while it holds | Moves |
Holding on (shimmy) | 490 | While on a ladder, vines or scaffolding, off the ground and not moving up or down. | Worried | while it holds | Game |
Water and weather
Swimming, lava, rain and lightning.
| Reaction | Priority | When it fires | Look | Holds | From |
|---|---|---|---|---|---|
In lava (lava) | 1170 | While in lava, at each burn: the hurt startle plays again with every damage tick. | Hurt startle | per hit, 12 ticks | Game |
Out of air (breathless) | 1050 | While under water with less than a quarter of the air left. | Scared | while it holds | Game |
Lightning (flash) | 1030 | When lightning strikes within 32 blocks. | Shocked | 30 ticks | World |
Swimming fast (dolphin) | 600 | While sprint swimming under water. | Determined | while it holds | Moves |
Under water (submerged) | 595 | While the eyes are under water. | Squint, fewer blinks | while it holds | Game |
Swimming (paddle) | 590 | While in the swimming pose in water. Swimming fast under water is stronger. At the surface is weaker, so Swimming wins when both apply. | Focused | while it holds | Game |
At the surface (surface) | 585 | While swimming at the surface of deep water. | Happy | while it holds | Moves |
Wading (wade) | 580 | While walking through shallow water, as Moves’ wading clips see it. | Worried | while it holds | Moves |
Rain (drizzle) | 575 | While rain falls where the head is. | Squint, quicker blinks | while it holds | World |
Riding
Mounts and vehicles, and being ridden.
| Reaction | Priority | When it fires | Look | Holds | From |
|---|---|---|---|---|---|
Happy ghast (skyride) | 470 | While riding a happy ghast. | Sparkly | while it holds | Game |
Galloping (gallop) | 465 | While riding a horse, donkey, mule, camel or llama moving faster than 0.25 blocks a tick. | Excited | while it holds | Game |
Minecart (rail) | 460 | While in a minecart moving faster than 0.1 blocks a tick. | Surprised | while it holds | Game |
Pig or strider (saddle) | 455 | While riding a pig or a strider. | Joyful | while it holds | Game |
Nautilus (voyage) | 450 | While riding a nautilus. | Curious | while it holds | Game |
Boat (sail) | 445 | While in a boat or a raft. | Relaxed | while it holds | Game |
Riding (mounted) | 440 | While riding anything. The rides above take over on their own mounts. | Happy, slower blinks | while it holds | Game |
Carrying a rider (carrying) | 435 | While someone rides on you. | Strain | while it holds | Game |
Combat
Swings, hits taken, shields, bows, crossbows, spears and tridents.
| Reaction | Priority | When it fires | Look | Holds | From |
|---|---|---|---|---|---|
Dying (fading) | 1190 | While dying. The strongest trigger of all. | Knocked out | while it holds | Game |
Hit from behind (blindside) | 1165 | When hurt by something behind the avatar. The startle opens with blank, shocked eyes. A hit with no source, such as a fall, counts as from the front. | Hurt startle, starts with blank eyes | per hit, 12 ticks | Moves |
Hurt (struck) | 1160 | When hurt. Wide eyes and jumping brows, then squeezed shut, over about half a second after the hit. | Hurt startle | per hit, 12 ticks | Game |
Critical hit (smash) | 1070 | While swinging and dropping, the way a critical hit lands: off the ground, moving down, and not climbing, in water, blind or riding. | Furious | while it holds | Game |
Mace smash (slam) | 1060 | While dropping faster than 0.3 blocks a tick with a mace in the main hand, not gliding. | Furious | while it holds | Game |
Trident throw (hurl) | 1040 | When a trident charged for half a second or more leaves the hand. | Furious | 14 ticks | Moves |
Spear attack (lunge) | 1020 | When an attack with a spear that has the Lunge enchantment plays the pack’s spear attack clip. | Determined | 12 ticks | Moves |
Knocked back (recoil) | 990 | While pushed backwards faster than 0.3 blocks a tick, as by a strong knockback. | Surprised | while it holds | Game |
Charging a throw (windup) | 910 | While charging a trident or a spear. | Determined | while it holds | Game |
Loading a crossbow (load) | 900 | While pulling back a crossbow. | Strain | while it holds | Moves |
Aiming (aim) | 890 | While drawing a bow or holding a loaded crossbow. | The eye away from the main arm shuts under a lowered brow; the other narrows | while it holds | Game |
Shot (release) | 880 | When a bow or a crossbow fires. Your avatar only. | Smug | 12 ticks | Moves |
Shield up (guard) | 870 | While holding a shield up. | Determined | while it holds | Game |
Attacking (strike) | 790 | While the arm swings, about 0.3 seconds a swing: attacks, and the other swings the game shows, like placing a block. | Determined | while it holds | Game |
Low health (wounded) | 670 | While health is 6 or less (three hearts). | Sad, quicker blinks | while it holds | Game |
The hurt startle is an animated look of 12 ticks. In play it follows the game’s own hurt countdown, which is 10 ticks after a normal hit, so its last two ticks, when the brows settle, do not show. In lava and in fire it starts again with every burn.
Items and tools
What the hands are doing with items and blocks.
| Reaction | Priority | When it fires | Look | Holds | From |
|---|---|---|---|---|---|
Spyglass (scope) | 950 | While looking through a spyglass. | Wide whites, and the eye away from the spyglass shuts under a lowered brow | while it holds | Game |
Horn (toot) | 930 | While blowing a goat horn. | Joyful | while it holds | Game |
Eating (munch) | 850 | While eating. | Joyful | while it holds | Game |
Drinking (sip) | 840 | While drinking: potions, milk, honey. | Zen | while it holds | Game |
Map view (chart) | 815 | While Moves shows its map view: a filled map in the main hand, the Map third-person camera switch on, and the head tipped down 42 degrees or more, until it comes back up past 32. It is off while you glide, swim, climb or ride. | Curious, eyes down | while it holds | Moves |
Reading (study) | 810 | While holding a map or a book and looking down more than 10 degrees. | Focused, eyes down, fewer blinks | while it holds | Game |
Brushing (brush) | 805 | While brushing. | Focused, eyes down, brows tilted | while it holds | Game |
Lighting fire (ignite) | 800 | When using flint and steel or a fire charge. Your avatar only. | Menacing | 16 ticks | Moves |
Mining (mine) | 795 | While breaking a block. On other players it plays while they swing anything but a sword. | Focused | while it holds | Moves |
Shearing (shear) | 785 | When using shears. Your avatar only. | Happy | 12 ticks | Moves |
Throwing (toss) | 780 | When throwing a snowball, an egg or a wind charge. Your avatar only. | Wink | 14 ticks | Moves |
Ender pearl (pearl) | 775 | When throwing an ender pearl. Your avatar only. | Excited | 14 ticks | Moves |
Throwing potions (brew) | 770 | When throwing a splash or lingering potion, or a bottle o’ enchanting. Your avatar only. | Sly | 14 ticks | Moves |
Using blocks (tinker) | 765 | When using a block: opening a door or a chest, pressing a button, pulling a lever. Your avatar only. | Curious | 10 ticks | Moves |
Putting on armor (equip) | 760 | When a piece of armor goes on, except while gliding, flying, climbing, crawling or falling. | Proud | 24 ticks | Moves |
Switching items (swap) | 755 | When the held item changes or the hands swap, except while gliding, flying, climbing, crawling or falling. | A quick look down at the hands | 8 ticks | Moves |
Light at night (glow) | 275 | While holding a block that gives light of 10 or more, like a torch or a lantern, at night or deep underground. | Curious, wider, steady blinks | while it holds | Game |
Fishing
The line going out, a bite, the line coming in.
| Reaction | Priority | When it fires | Look | Holds | From |
|---|---|---|---|---|---|
A bite (nibble) | 960 | While a fish bites the line. | Surprised | while it holds | Moves |
Reeling in (reel) | 860 | When the line comes back in. | Joyful | 14 ticks | Moves |
Casting (cast) | 830 | When the fishing line flies out. | Sparkly | 16 ticks | Moves |
Body and effects
Fire, cold, sleep, effects, food and levels.
| Reaction | Priority | When it fires | Look | Holds | From |
|---|---|---|---|---|---|
Asleep (doze) | 1180 | While asleep in a bed. | Shut | while it holds | Game |
Level up (levelup) | 940 | When you gain a level. Your avatar only. | Sparkly | 40 ticks | Game |
Frozen (chill) | 700 | While frozen through in powder snow. | Cold, shaking harder, dark rings | while it holds | Game |
Burning (scorch) | 695 | While on fire, at each burn. Hurt plays the same startle and outranks it, so this one shows when Hurt is switched off. | Hurt startle | per hit, 12 ticks | Game |
Freezing (shiver) | 690 | While starting to freeze: 5 percent frozen or more, Moves’ cold trigger. | Cold | while it holds | Moves |
Blinded (dim) | 685 | While under Blindness or Darkness. On other players, only the effects they had when they came into view. | Blinded | while it holds | Game |
Nausea (woozy) | 680 | While under Nausea. On other players, only the effects they had when they came into view. | Dizzy | while it holds | Game |
Poisoned (queasy) | 675 | While under Poison or Wither. On other players, only the effects they had when they came into view. | Sick | while it holds | Game |
Hungry (hungry) | 665 | When the food bar is at 6 or less (three drumsticks), now and then: 4 seconds in each 30 second cycle. Your avatar only. | Tired | 4 s in every 30 s | Game |
Powered up (boosted) | 660 | While under Speed, Strength, Haste or Jump Boost. On other players, only the effects they had when they came into view. | Excited | while it holds | Game |
Invisible (ghost) | 285 | While invisible, on an avatar you can still see through its see-through look: a teammate’s, or any player’s when you are a spectator. | Sly | while it holds | Game |
Glowing (beacon) | 280 | While glowing, from the Glowing effect or a spectral arrow. | Sparkly | while it holds | Game |
Places and music
Time of day, dimension, biome, a campfire and a jukebox. These sit low, so they show when nothing stronger does.
| Reaction | Priority | When it fires | Look | Holds | From |
|---|---|---|---|---|---|
Music (jam) | 300 | After 1 second of standing still with a jukebox playing within 12 blocks, the way Moves’ listening clips start. | Zen, brows bob to the beat | while it holds | Moves |
Campfire (cozy) | 295 | After 1 second of standing still within 3.5 blocks of a lit campfire. | Zen, warm cheeks | while it holds | World |
Flowery places (bloom) | 200 | In a cherry grove, a flower forest, a meadow or sunflower plains. | Happy | while it holds | World |
Cold places (frosty) | 195 | Under open sky in a biome cold enough to snow, out of water, now and then: 4 seconds in each 30 second cycle. | Cold, no shaking, steadier blinks | 4 s in every 30 s | World |
Hot places (swelter) | 190 | In the Nether, or by day under open sky in a hot biome, such as a desert, badlands or savanna, now and then: 4 seconds in each 30 second cycle. | Hot | 4 s in every 30 s | World |
Eerie places (eerie) | 185 | In a dark forest, the pale garden, the deep dark or a soul sand valley. | Nervous, no sweat | while it holds | World |
Night (night) | 180 | At night, now and then: 4 seconds in each 30 second cycle. | Sleepy, lighter, no rings | 4 s in every 30 s | World |
Nether (hellish) | 175 | In the Nether. | Determined, softer | while it holds | World |
The End (void) | 170 | In the End. | Worried | while it holds | World |
Deep underground (deep) | 165 | In the Overworld below y 0, with no sky above. | Wary | while it holds | World |
Creatures and people
Mobs and players around the avatar.
| Reaction | Priority | When it fires | Look | Holds | From |
|---|---|---|---|---|---|
Warden (dread) | 1150 | With a warden within 16 blocks. | Scared | while it holds | World |
Creeper (brace) | 1140 | With a swelling creeper within 7 blocks. | Shocked | while it holds | World |
Monster nearby (spooked) | 970 | With a hostile mob within 6 blocks. | Nervous, eyes turn toward the closest mob | while it holds | World |
Pets and babies (adore) | 820 | While looking at your own tamed pet or a young animal within about 4 blocks, inside 30 degrees of where you look. | Love | while it holds | World |
Watched (noticed) | 290 | When another player within 24 blocks looks right at you, within 8 degrees. | Sly, eyes turn toward the watcher | while it holds | World |
Emotes
Moves’ emotes. The look comes from the emote’s entry in a pack’s compat file (see Keys and emotes).
| Reaction | Priority | When it fires | Look | Holds | From |
|---|---|---|---|---|---|
Emotes (emote) | 920 | While one of Moves’ emotes plays. Your avatar only. | The look the emote names, or Happy | while it holds | Moves |
How clip faces and reactions combine
Reactions are the face’s own behavior. A clip can take the face over for a while: it can hold a look for its whole length with face, or key single parts with face_ bones. The two always meet in the same order.
- The reactions pick a look, as described above.
- If a clip with face data is playing, its face goes over that look, but only when the winning reaction’s priority is 1135 or lower.
Seven reactions are stronger than that, so they show over a clip’s face: Creeper (1140), Warden (1150), Hurt (1160), Hit from behind (1165), In lava (1170), Asleep (1180) and Dying (1190). A clip’s face covers everything else, up to a Long fall at 1130. The limit is checked against the winner’s priority as a pack set it.
For each part of the face (lids, brows, pupils, marks and the rest), the result is:
(1 minus
face_mix) of the reactions’ look, plus the parts the clip keys, plus each look the clip holds at its weight.
face_mixis how much of the reactions’ look the clip takes away, from 0 to 1. Without it the reactions’ look stays whole and the clip’s parts add to it.face_look_<name>is the weight of a look the clip holds. The look is added at that weight.- Keyed parts such as
face_browsorface_lid_rightadd to the part of the same name. - An eye takes the clip’s strongest keyed shape while that shape’s value is above 0.5. When no shape is keyed and
face_mixis above 0.5, the eye takes the shape of the strongest look the clip holds (the painted eye when it holds none). Otherwise it keeps the reaction’s shape. - Blinks:
face_blink_offabove 0.5 stops them. Otherwise, withface_mixabove 0.5 the pace comes from the clip’s strongest look (the usual pace when that look sets none or the clip holds no look), and at or below that it stays with the reactions. - The clip’s face blends and fades with the clip’s own layer, so it eases in and out with the clip.
The face shorthand writes two of these bones for you: face_mix at the mix you give (1 if you give none) and face_look_<look> at 1, held for the whole clip. So "face": "proud" replaces the reactions’ look with Proud. With "mix": 0.5, half of the reactions’ look stays and Proud is added in full on top. For a smooth cross fade, key face_mix and the look’s weight yourself.
Hold a look, or add to the reaction
This pack has two clips and an emote file. Make this folder in your resourcepacks folder:
Face Over Reactions/
pack.mcmeta
assets/
punchy_moves/
animations/
face_over_reactions.json
compat/
face_over_reactions.json
pack.mcmeta, at the top of the folder. The three 75s are the resource format of Minecraft 1.21.11. On another version, put that version’s number from the table on Resource packs in their place:
{
"pack": {
"description": "Face over reactions demo",
"pack_format": 75,
"min_format": 75,
"max_format": 75
}
}
hold_proud holds a look and shuts out the reactions. quick_wink keys only a lid, so the reaction’s look carries on and the right eye winks over it. Save the clips as assets/punchy_moves/animations/face_over_reactions.json:
{
"format_version": "1.8.0",
"animations": {
"hold_proud": {
"animation_length": 2.0,
"face": { "look": "proud", "mix": 1 },
"bones": {
"head": { "rotation": { "0.0": [0, 0, 0], "1.0": [-6, 0, 0], "2.0": [0, 0, 0] } }
}
},
"quick_wink": {
"animation_length": 0.6,
"bones": {
"face_lid_right": { "position": { "0.0": [0, 0, 0], "0.15": [0, 1, 0], "0.45": [0, 1, 0], "0.6": [0, 0, 0] } }
}
}
}
}
Put both on the emote wheel with this file at assets/punchy_moves/compat/face_over_reactions.json. quick_wink names the look Sly, which the Emotes reaction plays under the wink:
{
"format_version": 2,
"emotes": {
"entries": [
{ "id": "proud_pose", "display_name": "Proud pose", "animation": "hold_proud" },
{ "id": "quick_wink", "display_name": "Quick wink", "animation": "quick_wink", "face": "sly" }
]
}
}
In the game, open Options, then Resource Packs, move Face Over Reactions to the right-hand list and press Done. If the game was already running, press F3+T to reload. Stand still in third person and press C to open the emote wheel. Click Proud pose: the Emotes reaction would show Happy, because the entry names no look, but the clip’s face covers it and the whole face is Proud for two seconds. Click Quick wink: the face is Sly, the look the entry names, and the right eye winks over it. An emote’s face is matched exactly as typed against the built-in look names, in lower case; a look that only a pack defines plays Happy.
Video coming soon

Every face bone, with its units, is on Faces in packs and clips.
Glances
A glance is a short spell in which the pupils look to one side, rest, cross quickly and rest on the other side, with the lids drooping a little. Between spells the brows drift up and down very slowly. Together they are the face’s idle life: they make a standing player look alive instead of frozen.
A spell comes about every 40 seconds, lasts 2 to 4 seconds and fades in and out over 6 ticks. Each player has their own timing, so a crowd does not glance in step. A glance shows only when all of these are true:
- Glances is switched on in the Face tab. Switching it off stops the glances and the brow drift.
- The avatar has stood still for 2 seconds.
- No reaction above priority 300 is winning. The calm reactions that allow glances are Music, Campfire, Watched, Invisible, Glowing, Light at night, Idle moments, Daydreaming, Standing still and the places, or no reaction at all. Crouching, fighting, eating and the rest keep the eyes on what you are doing. Walking stops glances too, because you are not standing still.
- The head has not been turning faster than 1.5 degrees a tick, yaw and pitch together, for the last 12 ticks. While you look around, the glances wait.
The reactions that belong to standing about work next to glances:
- Standing still (priority 260) starts at the same 2 seconds. It has no look: it keeps blinks at their usual pace. The glances themselves come from the Glances setting, not from this switch.
- Idle moments (270) is one of Moves’ idle moments: every 20 to 45 seconds by default, a playful look for 60 ticks (Sly, Curious, Bored, Wink, Smug or Happy).
- Daydreaming (265) droops the lids and slows the blinks (the Sleepy look) once you have stood still for the Time before daydreaming, 30 seconds by default.
In the Test tab, Look left and Look right hold the pupils to one side for about a second and a half. They are not the glance spell and work with Glances off.
Video coming soon
Change a reaction in a pack
A resource pack can give a reaction another look, or another priority, with faces/triggers.json. Several layers can have an opinion, and they apply in this order:
- The player’s pick, made in the face editor’s Test tab with Plays:. It is stored in
face.jsonand it is a look only. - The highest pack’s entry in
faces/triggers.json, a look and a priority. - The reaction’s own look and priority, built into Moves.
A reaction’s switch still applies first: a reaction that is switched off in the Face tab never plays, whatever any pack says.
In Punchy! Studio
Studio’s Face workspace lists every reaction under Reactions and writes faces/triggers.json for you.
- Open your pack in Punchy! Studio, select Third Person at the top and click the Face tab.
- In the Faces list on the left, scroll to Reactions and open a group, for example Running and crouching. Click Starting a run.
- The Properties panel on the right names the moment, shows Its own look: Excited and offers Plays. Open Plays and choose a look from the list, for example
cheeky, a look of the pack’s own made in Faces in packs and clips. The pack’s own looks come after the built-in ones, and the search box at the top of the list finds a look by name. The face grid shows that look and the line under it reads This pack makes the reaction play the look cheeky. - To change how strong the reaction is, tick Own priority and type a number in Priority. The field shows the reaction’s own priority until you tick the box.
- To go back, press Reset Reaction. The reaction leaves
faces/triggers.json. - Export the pack (Punchy! Studio shows the steps). Studio writes
faces/triggers.jsoninto it, with an entry for every reaction you changed and none for the ones you reset. - Enable the pack in the game and press F3+T. Studio’s Game view does not preview reaction changes, so check them in the game: run, and your face is the new look.

Faces overview and Faces in packs and clips cover making the looks a reaction can play.
By hand
Create faces/triggers.json in your pack, at assets/punchy_moves/faces/triggers.json. If you have no pack yet, the folder and pack.mcmeta are the ones under Hold a look, or add to the reaction. This file is valid as it stands, with built-in looks only:
{
"kickoff": "proud",
"shear": { "look": "smug" },
"munch": { "look": "zen", "priority": 915 },
"wounded": { "priority": 1000 },
"stride": "relaxed"
}
What each entry does:
kickoffplays Proud when a run starts, in place of Excited. A bare name changes only the look.shearis the same change written as an object: Smug in place of Happy.munch(Eating) plays Zen and moves from 850 up to 915, so it now beats Charging a throw, Loading a crossbow, Aiming and Shield up. It still sits under Emotes at 920.wounded(Low health) keeps its own Sad look but climbs from 670 to 1000, so it shows over eating, mining and casting. It still sits under Hurt.stride(Walking) has no look of its own. With a name it plays Relaxed whenever you walk and nothing stronger applies.
| Key | Type | Default | What it does | Example |
|---|---|---|---|---|
<reaction id> | string or object | The key is a reaction's id from the tables above. A string is the look it plays. An object takes look and priority. An id that is not one of the 119 is ignored. A value that is an array or null is skipped. | "kickoff": "joyful" | |
look | string | the reaction's own | A look's name: a built-in one, a pack's or the player's. The name is lower-cased and spaces become underscores. A name that no look has leaves the reaction with its own look. | |
priority | whole number | the reaction's own | How strong the reaction is. A higher number wins. Studio accepts -100000 to 100000. | 1000 |
Rules to know:
- Every pack’s copy of the file is read. The higher pack wins per reaction, and its entry replaces the lower pack’s entry whole. If a lower pack set a priority and the higher pack gives only a look, the priority goes back to the reaction’s own.
- A
triggers.jsonthat does not parse, or has a value the game cannot read (aprioritythat is not a number, say), is skipped whole. The game’s log names it in a warning that containsFace:. A look file that fails is left out and the other files still load. - A look file with a built-in name, such as
happy.json, replaces that look wherever a reaction plays it as it is. A reaction that adjusts the look keeps the built-in one: Rain, Under water, Low health, Riding, Banking, Climbing down, At the edge, Balancing, Strafing, Music, Campfire, Watched, Light at night, Cold places, Eerie places, Night, Nether, Frozen, Monster nearby, Map view, Reading and Brushing. See Faces overview. - Hurt, Hit from behind, In lava and Burning play an animated startle. A look you give them replaces the startle with a still look.
- Priorities only matter between reactions that apply at the same moment. Raising Walking above Crouching changes nothing while you are not walking.
- A priority above 1135 stops a clip’s face from covering that reaction. A priority of 300 or below lets glances play under it, and a priority above 300 stops them.
Limits a pack can change
Reactions that read Moves’ moments use the same limits as Moves’ clips. A compat file changes them, and the reactions follow. The defaults are what Moves uses when a pack leaves a setting out. Settings go inside the action, under defaults.animations, and an item group or an item can override the map_view and trident ones. A clip is not needed: a setting on its own is valid.
| Setting in a compat file | Default | What it sets | Reactions |
|---|---|---|---|
falling. | 5 | Blocks expected below before Moves calls it a fall (never below 5) | Falling |
falling., falling. | 7, 0.72 | A long fall, by distance or by speed in blocks a tick | Long fall |
falling., falling. | 13, 1.05 | Moves’ hard fall | Long fall |
landing., landing. | 4, 0.58 | A medium landing | Rough landing, Landing |
landing., landing. | 8, 0.95 | A heavy landing | Hard landing, Landing |
water_ | 3 | How high above water a drop counts as a dive | Diving |
lava_ | 3 | The same above lava | Falling into lava |
elytra. | 0.9 | The middle of the high speed blend | Flying fast |
elytra., elytra., elytra. | 30, 5, 5 | How far and how fast gliding banks | Banking |
idle_, idle_, idle_ | 20, 45, 1 | How often idle moments come | Idle moments |
music_, music_ | 12, 10 | How near a playing jukebox must be, and how often Moves looks (1 to 32 blocks, 1 to 100 ticks) | Music |
cold. | 0.05 | How frozen before the cold starts | Freezing |
map_, map_ | 42, 32 | Degrees down to open and close the map view | Map view |
trident. | 10 | The shortest charge that throws a trident | Trident throw |
run_ | 0.08 | The speed a sprint needs before Moves holds a run | Running, Starting a run, Stopping a run, Long run |
This compat file is valid as it stands. It makes falls count later, hard landings need more height, idle moments rarer and the jukebox reach longer. Save it as assets/punchy_moves/compat/face_limits.json:
{
"format_version": 2,
"defaults": {
"animations": {
"falling": {
"trigger_distance": 8,
"free_fall_distance": 10,
"free_fall_velocity": 0.8,
"effect_distance": 16,
"effect_velocity": 1.2
},
"landing": {
"medium_distance": 5,
"medium_velocity": 0.6,
"heavy_distance": 10,
"heavy_velocity": 1.0
},
"water_dive": { "trigger_distance": 4 },
"lava_dive": { "trigger_distance": 4 },
"elytra": { "high_speed_threshold": 1.0, "bank_degrees": 25 },
"idle_events": { "min_interval_seconds": 30, "max_interval_seconds": 60, "chance": 0.5 },
"music_listening": { "radius": 16, "scan_interval_ticks": 20 },
"cold": { "trigger_progress": 0.1 },
"map_view": { "look_down_enter": 45, "look_down_exit": 35 },
"trident": { "minimum_charge_ticks": 15 },
"run_stop": { "minimum_speed": 0.1 }
}
}
}
These limits also move Moves’ own clips, which use the same moments. A compat file with a layout error is dropped whole, so read Compat files before you write a long one.
Settings
Most of these are in the Face tab (the look picks, trigger_looks, are made in the face editor’s Test tab). They save as soon as you change them and are also keys in config/punchy_moves/face.json.
| Key | Type | Default | What it does | Example |
|---|---|---|---|---|
reactions | object | every reaction on | One switch per reaction, by its id. In the tab they sit in 15 sections: Always, Standing about, Running and crouching, Jumps and falls, Flying, Climbing, Water and weather, Riding, Combat, Items and tools, Fishing, Body and effects, Places and music, Creatures and people and Emotes. A reaction that is off is left out of the check, so the next strongest one applies. The Gaze switch stops the eyes from following the head. | { "noticed": false } |
trigger_ | object | none | The look you gave a reaction with Plays: in the face editor's Test tab, by reaction id. It wins over a pack's change. | { "kickoff": "joyful" } |
glances | boolean | true | Glances. The pupils look to one side now and then. Turning it off also stops the brow drift. | |
daydream_ | number | 30 | Time before daydreaming. Seconds of standing still before the lids droop (the Daydreaming reaction). From 10 to 120. The slider moves in steps of 5; a value in the file outside 10 to 120 is moved into that range. | 45 |
blinking | boolean | true | Blinking. Turns the blinks on or off. A clip can also stop them with face_. | |
blink_ | number | 3.6 | Time between blinks. Seconds between blinks on average. From 1.5 to 8.0. A look's own blink pace scales it: 2 blinks twice as often. | 2.5 |
Each switch has a title and a short description, and the titles are the names in the tables above. This file switches off two reactions that some players find busy and picks two looks. It is valid as it stands:
{
"reactions": {
"noticed": false,
"fidget": false
},
"trigger_looks": {
"kickoff": "joyful",
"shear": "wink"
}
}
Close the game before you edit the file: it is read once, when the settings are first used. The keys are read in this order: over_hat, blinking, glances, blink_seconds, daydream_seconds, sparkle, sparkle_color, line_color, reactions, trigger_looks. A value that cannot be read, such as a color that is not hex in sparkle_color, stops the read at that key, and the keys after it keep their defaults. A file that does not parse keeps every default.
Video coming soon
Things that go wrong
- A reaction never shows. Its switch is off, or a stronger reaction is winning. Open the Test tab and play it: if it shows there, something outranks it in play. A few reactions say Your avatar only, and some need Moves’ own moment, such as a run held at the run stop speed.
- The reaction shows in the Test tab but not in the game. The Test tab ignores your switches, a clip’s face and the look hold. Check the switch in the Face tab and whether a clip is covering the face.
- A clip’s face does not show. The winning reaction’s priority is above 1135. Creeper, Warden, Hurt, Hit from behind, In lava, Asleep and Dying always show over it.
triggers.jsondoes nothing. The file is not atassets/punchy_moves/faces/triggers.json, it does not parse or has a value the game cannot read (look for a warning that containsFace:in the log), a higher pack has an entry for the same reaction, your own pick in the Test tab wins, or the reaction’s switch is off. A look name that does not exist also does nothing: the reaction plays its own look.- A priority change did nothing. Reactions only compete when they apply at the same time. Walking, Standing still and Gaze have no look, so their priority never changes the face. For Walking and Standing still it can change the blink pace.
- Glances never happen. Glances is off, a reaction above priority 300 is winning (crouching, fighting, eating), the head has turned in the last 12 ticks (0.6 seconds), or you have stood still for less than 2 seconds (walking resets that).
- My switches or picks in
face.jsondo not load. A bad color insparkle_colororline_colorstops the read beforereactionsandtrigger_looks, so they keep their defaults. - Edits to
face.jsonhave no effect. The file is read once. Close the game, edit it and start again. - First person shows no face. Moves draws none there.
Related pages
- Faces overview: the face, its looks and eye shapes, and your own settings.
- Faces in packs and clips: every file, folder and face bone of a face pack.
- Face editor: the Face tab, and marking eyes and testing looks and reactions in the game.
- The face marker: for skin makers, marking where the face sits.
- Compat files and Keys and emotes: the limits a pack can change, and the emote that names a look.
- Punchy! Studio and Game view: making a pack and trying it on your player.
- Troubleshooting and the FAQ.
Last checked against the mod on 30 October 2026.