How to Make Counters in JJS Skill Builder

Counters are one of the most advanced and satisfying move types you can build in JJS Skill Builder. A good counter does not just play an animation or deal damage. It reacts to an incoming attack, checks whether the trigger happened, and branches into a punish sequence.

In this guide, you will learn how counters work in JJS Skill Builder, what makes a counter feel fair, and how to build a simple counter using timing, hit checks, and branch logic.

If you are still learning the basics, read our guides on custom moves, hitboxes, and branch and hit cancel first.

jujutsu-shenanigans-codes-preview
Jujutsu Shenanigans codes preview — browse working movesets to study counter logic
Browse working movesets on the JJS codes page to study real counter and branch structures

What a Counter Does in JJS Skill Builder

A counter is a move that waits for a short moment and reacts if a condition is met. In most cases, that means:

  • the user enters a counter stance
  • the move opens a short active window
  • an incoming attack or hit condition is detected
  • the move branches into a punish animation or follow-up hit

A counter is not just another attack. It is a reaction-based move. That is what makes it different from a normal hitbox move or a simple variant.

Why Counters Feel So Different

Normal moves are usually proactive:

Startup — Hitbox — Damage — End

Counters are reactive:

Startup stance — Wait for trigger — Check condition
→ Punish if successful
→ Recover if not

That difference is what makes counters feel much more technical.

The 3 Main Parts of a Counter

Counter Startup

The animation or stance that shows the move is active.

Trigger Window

The short time where the move is waiting for the condition.

Counter Response

If the condition is met, the move goes into the punish path, which can include animation, sound, hitbox, velocity, knockback, and combo continuation.

What Makes a Good Counter

Readable startup

The player should be able to tell that the counter is active.

Short but fair timing

If the window is too short, the move feels useless. If the window is too long, it feels unfair.

Clear success feedback

A successful counter should look and sound different from a failed one.

Meaningful but balanced reward

The punish should feel worth landing, but not automatic free damage with no risk.

What You Need Before Building a Counter

Before you try counters, you should already understand:

Counters are not the best first custom move. They become much easier after you already know how to make one basic move, split logic into different paths, and build hit and miss outcomes.

The Main Logic Behind a Counter

The easiest way to understand counter logic is: open a short window, check for a trigger, then branch into success or failure.

Startup animation
Wait / active window
Hit check or condition check
Branch
→ Punish on success
→ Recovery on failure

This is why counters are closely related to Branch and Hit Cancel logic.

How to Make a Simple Counter Step by Step

Step 1: Start With a Very Simple Counter Idea

Do not build an advanced cinematic counter first. Good beginner ideas:

  • defensive stance into one punish hit
  • short parry pose into knockback
  • guard animation into one counter slash

Step 2: Add a Startup Animation

The startup animation should clearly show that the move is in a counter state. Good choices: guard stance, ready pose, short defensive freeze, weapon raise, hand sign pose. Browse Animation & Sound IDs to find the right one.

Step 3: Add a Short Active Window

Add a short wait that represents the counter window:

  • 0.15 to 0.3 seconds for a fast counter
  • 0.3 to 0.5 seconds for an easier beginner counter

This is the most important balance point.

Step 4: Add the Trigger Check

Now you need the move to determine whether the counter should activate. A beginner counter usually works best when a check happens after the active window opens, the move can tell whether the required event happened, and the move has two clear outcomes after that.

Step 5: Add a Branch

Once the move has the information it needs, add the branch. Your two main paths are success and failure.

Step 6: Build the Success Path

A simple success path:

Counter animation — Sound — Hitbox — Stun — Velocity — End

Step 7: Build the Failure Path

The move should also do something if the counter fails:

  • recovery animation
  • short vulnerable endlag
  • no damage, no follow-up

Step 8: Test Success and Failure Separately

Also test: no attack arrives, attack arrives too early, attack arrives too late, wrong spacing, awkward edge cases. A counter is only good when both paths feel correct.

A Beginner Counter Template

Base Counter Flow

Animation
Wait
Trigger check
Branch

Success Path

Animation — Sound — Hitbox — Velocity — End

Failure Path

Recovery animation — End

How to Balance a Counter

Counters are very easy to overtune.

Keep the active window reasonable

If the counter stays active too long, it becomes frustrating to fight against.

Make the punish fit the risk

A stronger punish usually needs tighter timing, more startup, or more recovery on failure.

Do not make the success automatic

A counter should react to a condition, not just become a guaranteed attack every time.

Give the failure path a real downside

If failure has no cost, the move may feel too safe.

jjs-sound-ids-skill-builder
JJS Sound IDs in JJS Skill Builder — use sound effects to make counter success feel distinct
Find the right impact sound for your counter on the Sound IDs page

How to Make Counters Feel Better

Use a distinct startup pose

This makes the counter window readable.

Use a unique sound on success

That makes successful counters feel much more satisfying.

Make the punish visually different

A counter should not look exactly like a normal move.

Use knockback or stun carefully

Good feedback matters more than raw numbers.

Common Counter Mistakes

The counter never triggers

Usually caused by: wrong timing, bad trigger placement, branch logic in the wrong spot, or active window too short.

The counter always works

Usually caused by: active window too long, condition too loose, or no real fail state.

The punish feels weak

Usually caused by: no clear hit feedback, low damage with no stun, or weak animation and sound.

The counter feels unfair

Usually caused by: too much reward, too much window length, or too little recovery on failure.

The move becomes messy

Usually caused by: trying to build too many outcomes at once, mixing variants and counter logic too early, or not separating success and failure cleanly.

Good Uses for Counters

  • parry-style moves
  • defensive specials
  • reaction-based punish moves
  • alternate defensive finishers
  • high-skill custom move designs

If a move is supposed to reward timing and anticipation, it is a good counter candidate.

When Not to Use Counters

Do not force counters into every moveset. A counter may not be worth using if:

  • the moveset is meant to be simple
  • the idea works better as a normal defensive move
  • the counter logic is harder than the payoff
  • the punish does not feel different enough

Sometimes a clean variant or branch is better than a counter.

How Counters Connect to Other Systems

Counters become much stronger when combined with:

Helpful Resources

To improve your counter moves faster, use these resources together:

Pro tip: Browse our JJS codes collection to find movesets that use defensive or reaction-based logic. Studying a real counter structure is one of the fastest ways to understand how timing and branch paths work together.

FAQ

What is the easiest counter to build in JJS Skill Builder?

The easiest counter is usually a simple defensive stance that branches into one punish hit when the trigger condition is met.

Should a counter always deal high damage?

No. A counter should feel rewarding, but that reward can come from stun, knockback, repositioning, or combo setup, not only damage.

What makes a counter feel fair?

A fair counter usually has a readable startup, a short active window, and a real downside when it fails.

What should I learn before making counters?

You should first understand custom moves, hitboxes, variants, and branch / hit-check logic.

Conclusion

Learning how to make counters in JJS Skill Builder is really about understanding timing, reaction windows, and move logic. Start with a simple guard-style move, give it one short active window, and split it into a success path and a failure path. Once that basic version works, you can improve the animation, sound, hitbox, and balance until the counter feels clean and satisfying.

If you need ideas before building your own, browse our JJS codes, Animation & Sound IDs, and Planner (Beta).