⚔️ JJK: Cursed Combat RPG

A turn-based Jujutsu Kaisen fighting game, built as a client-side React val on Val Town. Runs entirely in your browser — no installs, no downloads.

Play it

Play the game — it's live at https://nebula-snake.val.run

Flow

Home Screen → Mode Select → Character Select → Battle → Victory / Defeat
  • Home — title screen with a Start button.
  • Mode Select — "Cursed Gauntlet" is available now; a second mode is locked (Coming Soon).
  • Character Select — pick Yuji, Megumi, Nobara, or Gojo with full move listings.
  • Battle — turn-based combat with HP, Cursed Energy (CE), guard, heal, and a live log.

🌟 Black Flash — the skill check

Black Flash is built canonically:

  • Any sorcerer can land it on a physical, contact move that actually connects (punch, kick, swing).
  • Ranged / projected moves cannot land it (no contact impact).
  • It's a rare skill check — an 8% chance per eligible hit, and when it procs it multiplies damage by 2.5×.
  • The Gojo exception: his rebound techniques land as physical impacts, so they can Black Flash.
  • Enemies can Black Flash too — Sukuna's melee Cleave/Dismantle have the same check.

Move cards show their type (MELEE / RANGED / DEFENSE / HEAL) and whether they "✦ can Black Flash".

🌀 Awakening (Gojo's second form)

Satoru Gojo has a second form: remove his blindfold (costs cursed energy) to open the Six Eyes and unleash Maximum Output. This is true for special sorcerers generally — Gojo is the one with it implemented currently.

While awakened, Gojo's kit changes entirely:

  • Overcharged Blue (HOLD to charge) — keep holding to amplify attraction. Extra charge = extra damage (and extra CE spent). Releasing at charge ≥3 leaves a lingering sphere of attraction.
  • Overcharged Red (HOLD to charge) — release to blast; hold through the recoil to rebound it as a crushing physical hit that can Black Flash.
  • 🧨 HOLLOW NUKE — fire an overcharged Blue that lingers, then fire Red before it fades → they merge into a Hollow Nuke that vaporizes the target (massive damage).
  • Infinity — a stronger guard in awakened form.

The interface:

  • HOLD the Blue/Red button to charge (a fill bar shows charge level).
  • Release to fire at that charge.
  • When a Blue sphere is lingering, a prompt appears — fire Red to trigger the merge.

The roster

SorcererStyleNotes
🥊 Yuji ItadoriPure meleeEvery move is physical — the best Black Flash user
🐺 Megumi FushiguroMixed shikigamiMelee summons (Divine Dogs) can BF; Nue is ranged
🔨 Nobara KugisakiFull rangedCan't Black Flash — that's the tradeoff
🌀 Satoru GojoRanged + AwakeningRebound Red can BF; blindfold-off unlocks Maximum Output + Hollow Nuke

File structure

index.ts                       ← Hono server (serves the frontend)
frontend/
  root.tsx                     ← HTML shell
  index.tsx                    ← React entrypoint
  components/
    App.tsx                    ← UI: screens + combat engine
    data.ts                    ← Roster, enemies, moves, Black Flash rules

Editing the game

Save any file and Val Town redeploys instantly.