Privacy
Language: Português (Portugal)

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.

This page has not been translated into European Portuguese 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

Four reactions on your own player.

How the face picks a reaction

Every reaction has a priority, a number. The higher the number, the stronger the reaction.

  1. 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.
  2. 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).
  3. Gaze runs under every look. The pupils and brows follow the head, up, down and to the sides, emote clips and head aim included.
  4. 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.
  5. 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:

FromWhere the moment comes from
MovesThe 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).
GameWhat the game shows of the avatar: its pose, effects, health, vehicle and hand.
WorldWhat 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

PriorityWhat lives there
1140 to 1190Danger to the body: Dying, Asleep, In lava, Hit from behind, Hurt, Warden and Creeper. A clip’s face never covers these.
1000 to 1130Hard 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 990What 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 700How the body is: Frozen, Burning, Freezing, Blinded, Nausea, Poisoned, Low health, Hungry and Powered up.
490 to 600Water, flight, jumps and climbing.
360 to 470Riding, edges and balancing, runs, crouching and walking.
165 to 300Calm 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.
10Gaze.

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.

  1. In third person, press F8 and click Face under Punchy Moves.
  2. Next to Face editor, press Open, then click the Test tab.
  3. 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.
  4. Look at your player in the editor. The reaction plays for as long as it stays picked.
  5. Use the arrows beside the Plays: box to give the reaction another look. It reads Plays: its own until you pick one.
  6. Press Done.

Video coming soon

Stepping through reactions in the Test tab.

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.

ReactionPriorityWhen it firesLookHoldsFrom
Gaze (gaze)10Always. 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 lookalwaysMoves

Standing about

Standing still and walking. These sit low, so almost anything else takes over.

ReactionPriorityWhen it firesLookHoldsFrom
Walking backwards (backpedal)370While walking backwards, with more than half of Moves’ walk blend going back.Worriedwhile it holdsMoves
Strafing (sidestep)365While 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 stepwhile it holdsMoves
Walking (stride)360While 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 pacewhile it holdsMoves
Idle moments (fidget)270When 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 moment60 ticksMoves
Daydreaming (daydream)265After standing still for the Time before daydreaming set in the Face tab, 30 seconds by default.Sleepywhile it holdsMoves
Standing still (still)260After 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 pacewhile it holdsMoves

Running and crouching

Runs, crouches, crawling and balancing, from Moves’ own run and crouch.

ReactionPriorityWhen it firesLookHoldsFrom
At the edge (vertigo)420While 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 downwhile it holdsWorld
Balancing (tightrope)415While 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 downwhile it holdsMoves
Starting a run (kickoff)410When Moves starts a run.Excited10 ticksMoves
Stopping a run (skid)405When Moves ends a run.Surprised12 ticksMoves
Long run (marathon)400After 6 seconds of running, but only now and then: it shows for 4 seconds in each 30 second cycle.Strain4 s in every 30 sMoves
Running (dash)395While Moves holds a run: sprinting on the ground with a movement key held, and not flying, climbing, crawling, falling or swimming.Determinedwhile it holdsMoves
Crouching down (duck)390When crouching down.Wary8 ticksMoves
Sneaking (sneak)385While moving crouched.Sneakywhile it holdsMoves
Crouching (crouch)380While crouching. The first moment is Crouching down, and moving while crouched is Sneaking.Focusedwhile it holdsGame
Crawling (prone)375While crawling: the swimming pose out of water, as under a trapdoor or through a one block gap.Focusedwhile it holdsGame

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.

ReactionPriorityWhen it firesLookHoldsFrom
Long fall (freefall)1130While 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.Shockedwhile it holdsMoves
Hard landing (thud)1120When landing from 8 blocks or more, or at 0.95 blocks a tick or faster: Moves’ heavy landing.Pain14 ticksMoves
Falling into lava (scald)1110While dropping toward lava from 3 blocks or more above it, by Moves’ dive probe.Scaredwhile it holdsMoves
Riptide (spin)1100While spinning with a Riptide trident.Dizzywhile it holdsGame
Splash (splash)1090When hitting water while moving down faster than 0.4 blocks a tick.Pain8 ticksMoves
Rough landing (stumble)1080When landing from 4 blocks or more, or at 0.58 blocks a tick or faster: Moves’ medium landing.Wince8 ticksMoves
Falling (plunge)1010While Moves sees a fall: dropping with more than 5 blocks expected below.Surprisedwhile it holdsMoves
Diving (cannonball)1000While dropping toward water from 3 blocks or more above it, by Moves’ dive probe.Joyfulwhile it holdsMoves
Levitating (float)525While under Levitation. On other players, only the effects they had when they came into view.Nervouswhile it holdsGame
Running jump (leap)520When a jump starts while moving.Excited10 ticksMoves
Jumping (liftoff)515When a jump starts.Happy4 ticksMoves
Rising (ascent)510While 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.Happywhile it holdsGame
Landing (touchdown)505When landing. Medium and heavy landings switch to Rough landing and Hard landing, so this one shows on light ones.Squint5 ticksMoves

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.

ReactionPriorityWhen it firesLookHoldsFrom
Firework boost (boost)980When a firework boosts you while gliding. Your avatar only.Excited20 ticksMoves
Banking (bank)550While gliding and banking 8 degrees or more, by Moves’ elytra bank.Happy, pupils lead into the turnwhile it holdsMoves
Flying fast (jet)545While gliding fast: past the middle of Moves’ high speed blend, which starts near 0.72 blocks a tick and is full by 1.08.Squintwhile it holdsMoves
Gliding (glide)540While flying with elytra.Happywhile it holdsGame
Flying fast in creative (zoom)535While flying fast in creative: sprinting in the air, or holding sneak.Determinedwhile it holdsMoves
Flying (hover)530While flying in creative.Relaxedwhile it holdsMoves

Climbing

Ladders, vines and scaffolding.

ReactionPriorityWhen it firesLookHoldsFrom
Climbing up (scramble)500While climbing up.Strainwhile it holdsMoves
Climbing down (descend)495While climbing down.Focused, eyes downwhile it holdsMoves
Holding on (shimmy)490While on a ladder, vines or scaffolding, off the ground and not moving up or down.Worriedwhile it holdsGame

Water and weather

Swimming, lava, rain and lightning.

ReactionPriorityWhen it firesLookHoldsFrom
In lava (lava)1170While in lava, at each burn: the hurt startle plays again with every damage tick.Hurt startleper hit, 12 ticksGame
Out of air (breathless)1050While under water with less than a quarter of the air left.Scaredwhile it holdsGame
Lightning (flash)1030When lightning strikes within 32 blocks.Shocked30 ticksWorld
Swimming fast (dolphin)600While sprint swimming under water.Determinedwhile it holdsMoves
Under water (submerged)595While the eyes are under water.Squint, fewer blinkswhile it holdsGame
Swimming (paddle)590While in the swimming pose in water. Swimming fast under water is stronger. At the surface is weaker, so Swimming wins when both apply.Focusedwhile it holdsGame
At the surface (surface)585While swimming at the surface of deep water.Happywhile it holdsMoves
Wading (wade)580While walking through shallow water, as Moves’ wading clips see it.Worriedwhile it holdsMoves
Rain (drizzle)575While rain falls where the head is.Squint, quicker blinkswhile it holdsWorld

Riding

Mounts and vehicles, and being ridden.

ReactionPriorityWhen it firesLookHoldsFrom
Happy ghast (skyride)470While riding a happy ghast.Sparklywhile it holdsGame
Galloping (gallop)465While riding a horse, donkey, mule, camel or llama moving faster than 0.25 blocks a tick.Excitedwhile it holdsGame
Minecart (rail)460While in a minecart moving faster than 0.1 blocks a tick.Surprisedwhile it holdsGame
Pig or strider (saddle)455While riding a pig or a strider.Joyfulwhile it holdsGame
Nautilus (voyage)450While riding a nautilus.Curiouswhile it holdsGame
Boat (sail)445While in a boat or a raft.Relaxedwhile it holdsGame
Riding (mounted)440While riding anything. The rides above take over on their own mounts.Happy, slower blinkswhile it holdsGame
Carrying a rider (carrying)435While someone rides on you.Strainwhile it holdsGame

Combat

Swings, hits taken, shields, bows, crossbows, spears and tridents.

ReactionPriorityWhen it firesLookHoldsFrom
Dying (fading)1190While dying. The strongest trigger of all.Knocked outwhile it holdsGame
Hit from behind (blindside)1165When 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 eyesper hit, 12 ticksMoves
Hurt (struck)1160When hurt. Wide eyes and jumping brows, then squeezed shut, over about half a second after the hit.Hurt startleper hit, 12 ticksGame
Critical hit (smash)1070While swinging and dropping, the way a critical hit lands: off the ground, moving down, and not climbing, in water, blind or riding.Furiouswhile it holdsGame
Mace smash (slam)1060While dropping faster than 0.3 blocks a tick with a mace in the main hand, not gliding.Furiouswhile it holdsGame
Trident throw (hurl)1040When a trident charged for half a second or more leaves the hand.Furious14 ticksMoves
Spear attack (lunge)1020When an attack with a spear that has the Lunge enchantment plays the pack’s spear attack clip.Determined12 ticksMoves
Knocked back (recoil)990While pushed backwards faster than 0.3 blocks a tick, as by a strong knockback.Surprisedwhile it holdsGame
Charging a throw (windup)910While charging a trident or a spear.Determinedwhile it holdsGame
Loading a crossbow (load)900While pulling back a crossbow.Strainwhile it holdsMoves
Aiming (aim)890While drawing a bow or holding a loaded crossbow.The eye away from the main arm shuts under a lowered brow; the other narrowswhile it holdsGame
Shot (release)880When a bow or a crossbow fires. Your avatar only.Smug12 ticksMoves
Shield up (guard)870While holding a shield up.Determinedwhile it holdsGame
Attacking (strike)790While the arm swings, about 0.3 seconds a swing: attacks, and the other swings the game shows, like placing a block.Determinedwhile it holdsGame
Low health (wounded)670While health is 6 or less (three hearts).Sad, quicker blinkswhile it holdsGame

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.

ReactionPriorityWhen it firesLookHoldsFrom
Spyglass (scope)950While looking through a spyglass.Wide whites, and the eye away from the spyglass shuts under a lowered browwhile it holdsGame
Horn (toot)930While blowing a goat horn.Joyfulwhile it holdsGame
Eating (munch)850While eating.Joyfulwhile it holdsGame
Drinking (sip)840While drinking: potions, milk, honey.Zenwhile it holdsGame
Map view (chart)815While 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 downwhile it holdsMoves
Reading (study)810While holding a map or a book and looking down more than 10 degrees.Focused, eyes down, fewer blinkswhile it holdsGame
Brushing (brush)805While brushing.Focused, eyes down, brows tiltedwhile it holdsGame
Lighting fire (ignite)800When using flint and steel or a fire charge. Your avatar only.Menacing16 ticksMoves
Mining (mine)795While breaking a block. On other players it plays while they swing anything but a sword.Focusedwhile it holdsMoves
Shearing (shear)785When using shears. Your avatar only.Happy12 ticksMoves
Throwing (toss)780When throwing a snowball, an egg or a wind charge. Your avatar only.Wink14 ticksMoves
Ender pearl (pearl)775When throwing an ender pearl. Your avatar only.Excited14 ticksMoves
Throwing potions (brew)770When throwing a splash or lingering potion, or a bottle o’ enchanting. Your avatar only.Sly14 ticksMoves
Using blocks (tinker)765When using a block: opening a door or a chest, pressing a button, pulling a lever. Your avatar only.Curious10 ticksMoves
Putting on armor (equip)760When a piece of armor goes on, except while gliding, flying, climbing, crawling or falling.Proud24 ticksMoves
Switching items (swap)755When the held item changes or the hands swap, except while gliding, flying, climbing, crawling or falling.A quick look down at the hands8 ticksMoves
Light at night (glow)275While holding a block that gives light of 10 or more, like a torch or a lantern, at night or deep underground.Curious, wider, steady blinkswhile it holdsGame

Fishing

The line going out, a bite, the line coming in.

ReactionPriorityWhen it firesLookHoldsFrom
A bite (nibble)960While a fish bites the line.Surprisedwhile it holdsMoves
Reeling in (reel)860When the line comes back in.Joyful14 ticksMoves
Casting (cast)830When the fishing line flies out.Sparkly16 ticksMoves

Body and effects

Fire, cold, sleep, effects, food and levels.

ReactionPriorityWhen it firesLookHoldsFrom
Asleep (doze)1180While asleep in a bed.Shutwhile it holdsGame
Level up (levelup)940When you gain a level. Your avatar only.Sparkly40 ticksGame
Frozen (chill)700While frozen through in powder snow.Cold, shaking harder, dark ringswhile it holdsGame
Burning (scorch)695While on fire, at each burn. Hurt plays the same startle and outranks it, so this one shows when Hurt is switched off.Hurt startleper hit, 12 ticksGame
Freezing (shiver)690While starting to freeze: 5 percent frozen or more, Moves’ cold trigger.Coldwhile it holdsMoves
Blinded (dim)685While under Blindness or Darkness. On other players, only the effects they had when they came into view.Blindedwhile it holdsGame
Nausea (woozy)680While under Nausea. On other players, only the effects they had when they came into view.Dizzywhile it holdsGame
Poisoned (queasy)675While under Poison or Wither. On other players, only the effects they had when they came into view.Sickwhile it holdsGame
Hungry (hungry)665When the food bar is at 6 or less (three drumsticks), now and then: 4 seconds in each 30 second cycle. Your avatar only.Tired4 s in every 30 sGame
Powered up (boosted)660While under Speed, Strength, Haste or Jump Boost. On other players, only the effects they had when they came into view.Excitedwhile it holdsGame
Invisible (ghost)285While 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.Slywhile it holdsGame
Glowing (beacon)280While glowing, from the Glowing effect or a spectral arrow.Sparklywhile it holdsGame

Places and music

Time of day, dimension, biome, a campfire and a jukebox. These sit low, so they show when nothing stronger does.

ReactionPriorityWhen it firesLookHoldsFrom
Music (jam)300After 1 second of standing still with a jukebox playing within 12 blocks, the way Moves’ listening clips start.Zen, brows bob to the beatwhile it holdsMoves
Campfire (cozy)295After 1 second of standing still within 3.5 blocks of a lit campfire.Zen, warm cheekswhile it holdsWorld
Flowery places (bloom)200In a cherry grove, a flower forest, a meadow or sunflower plains.Happywhile it holdsWorld
Cold places (frosty)195Under 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 blinks4 s in every 30 sWorld
Hot places (swelter)190In 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.Hot4 s in every 30 sWorld
Eerie places (eerie)185In a dark forest, the pale garden, the deep dark or a soul sand valley.Nervous, no sweatwhile it holdsWorld
Night (night)180At night, now and then: 4 seconds in each 30 second cycle.Sleepy, lighter, no rings4 s in every 30 sWorld
Nether (hellish)175In the Nether.Determined, softerwhile it holdsWorld
The End (void)170In the End.Worriedwhile it holdsWorld
Deep underground (deep)165In the Overworld below y 0, with no sky above.Warywhile it holdsWorld

Creatures and people

Mobs and players around the avatar.

ReactionPriorityWhen it firesLookHoldsFrom
Warden (dread)1150With a warden within 16 blocks.Scaredwhile it holdsWorld
Creeper (brace)1140With a swelling creeper within 7 blocks.Shockedwhile it holdsWorld
Monster nearby (spooked)970With a hostile mob within 6 blocks.Nervous, eyes turn toward the closest mobwhile it holdsWorld
Pets and babies (adore)820While looking at your own tamed pet or a young animal within about 4 blocks, inside 30 degrees of where you look.Lovewhile it holdsWorld
Watched (noticed)290When another player within 24 blocks looks right at you, within 8 degrees.Sly, eyes turn toward the watcherwhile it holdsWorld

Emotes

Moves’ emotes. The look comes from the emote’s entry in a pack’s compat file (see Keys and emotes).

ReactionPriorityWhen it firesLookHoldsFrom
Emotes (emote)920While one of Moves’ emotes plays. Your avatar only.The look the emote names, or Happywhile it holdsMoves

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.

  1. The reactions pick a look, as described above.
  2. 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_mix is 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_brows or face_lid_right add 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_mix is 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_off above 0.5 stops them. Otherwise, with face_mix above 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

A clip's face over a reaction, and a reaction stronger than a clip's face.
Keying the face in a clip in Punchy! Studio.

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

A glance, and the Glances switch.

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:

  1. The player’s pick, made in the face editor’s Test tab with Plays:. It is stored in face.json and it is a look only.
  2. The highest pack’s entry in faces/triggers.json, a look and a priority.
  3. 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.

  1. Open your pack in Punchy! Studio, select Third Person at the top and click the Face tab.
  2. In the Faces list on the left, scroll to Reactions and open a group, for example Running and crouching. Click Starting a run.
  3. 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.
  4. 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.
  5. To go back, press Reset Reaction. The reaction leaves faces/triggers.json.
  6. Export the pack (Punchy! Studio shows the steps). Studio writes faces/triggers.json into it, with an entry for every reaction you changed and none for the ones you reset.
  7. 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.
Giving a reaction a look in Punchy! Studio: the cheeky look first gets a gem right eye, then Starting a run is set to play cheeky, picked from the Plays list.

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:

  • kickoff plays Proud when a run starts, in place of Excited. A bare name changes only the look.
  • shear is 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.
An entry in faces/triggers.json
KeyTypeDefaultWhat it doesExample
<reaction id>string or objectThe 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"
lookstringthe reaction's ownA 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.
prioritywhole numberthe reaction's ownHow 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.json that does not parse, or has a value the game cannot read (a priority that is not a number, say), is skipped whole. The game’s log names it in a warning that contains Face:. 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 fileDefaultWhat it setsReactions
falling.trigger_distance5Blocks expected below before Moves calls it a fall (never below 5)Falling
falling.free_fall_distance, falling.free_fall_velocity7, 0.72A long fall, by distance or by speed in blocks a tickLong fall
falling.effect_distance, falling.effect_velocity13, 1.05Moves’ hard fallLong fall
landing.medium_distance, landing.medium_velocity4, 0.58A medium landingRough landing, Landing
landing.heavy_distance, landing.heavy_velocity8, 0.95A heavy landingHard landing, Landing
water_dive.trigger_distance3How high above water a drop counts as a diveDiving
lava_dive.trigger_distance3The same above lavaFalling into lava
elytra.high_speed_threshold0.9The middle of the high speed blendFlying fast
elytra.bank_degrees, elytra.bank_sensitivity, elytra.bank_response30, 5, 5How far and how fast gliding banksBanking
idle_events.min_interval_seconds, idle_events.max_interval_seconds, idle_events.chance20, 45, 1How often idle moments comeIdle moments
music_listening.radius, music_listening.scan_interval_ticks12, 10How near a playing jukebox must be, and how often Moves looks (1 to 32 blocks, 1 to 100 ticks)Music
cold.trigger_progress0.05How frozen before the cold startsFreezing
map_view.look_down_enter, map_view.look_down_exit42, 32Degrees down to open and close the map viewMap view
trident.minimum_charge_ticks10The shortest charge that throws a tridentTrident throw
run_stop.minimum_speed0.08The speed a sprint needs before Moves holds a runRunning, 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.

Settings that shape reactions
KeyTypeDefaultWhat it doesExample
reactionsobjectevery reaction onOne 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_looksobjectnoneThe 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" }
glancesbooleantrueGlances. The pupils look to one side now and then. Turning it off also stops the brow drift.
daydream_secondsnumber30Time 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
blinkingbooleantrueBlinking. Turns the blinks on or off. A clip can also stop them with face_blink_off.
blink_secondsnumber3.6Time 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

Switching reactions off in the Face tab.

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.json does nothing. The file is not at assets/punchy_moves/faces/triggers.json, it does not parse or has a value the game cannot read (look for a warning that contains Face: 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.json do not load. A bad color in sparkle_color or line_color stops the read before reactions and trigger_looks, so they keep their defaults.
  • Edits to face.json have no effect. The file is read once. Close the game, edit it and start again.
  • First person shows no face. Moves draws none there.

Last checked against the mod on 30 October 2026.