Public
JJK turn-based RPG fighting game, playable in browser
frontendgamereact
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
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 the game — it's live at https://nebula-snake.val.run
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 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".
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.
| Sorcerer | Style | Notes |
|---|---|---|
| 🥊 Yuji Itadori | Pure melee | Every move is physical — the best Black Flash user |
| 🐺 Megumi Fushiguro | Mixed shikigami | Melee summons (Divine Dogs) can BF; Nue is ranged |
| 🔨 Nobara Kugisaki | Full ranged | Can't Black Flash — that's the tradeoff |
| 🌀 Satoru Gojo | Ranged + Awakening | Rebound Red can BF; blindfold-off unlocks Maximum Output + Hollow Nuke |
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
- Characters / moves / bosses — edit
frontend/components/data.ts - Black Flash odds —
BF_CHANCE(0.08) andBF_MULT(2.5) indata.ts - Screens & battle UI / logic —
frontend/components/App.tsx
Save any file and Val Town redeploys instantly.