Parry the Knight

A game by @ejthebae on Spawn.

Genre: Action, Roguelite

You are the paddle. Time your swing and the fireball comes back twice as hard—but the bricks fight back. Twenty-five roads end in deep space against LORD DARKLORD.

Parry the Knight on Spawn now

7 reviews and replies · 9 likes · 200 plays.

Released 2026-08-13. 9 updates since release, the newest 2026-08-24.

Earlier update: The Final Hour (2026-08-22)
  • The cathedral's final confrontation now opens with a moment of terrible recognition — your opponent speaks before the roof comes down.
  • The boss's dialogue shifts from anger to cold assessment, treating your arrival as merely the last task before the kingdom's end.
Earlier update: The Void's Last Breath (2026-08-21)
  • The Darklord's final defeat now pulls the world itself into darkness—the cathedral roof tears away into cosmic void as he falls.
  • Title screen loads faster and cleaner, arriving whole instead of in choppy bands.
  • The Jupiter Wave studio mark stays on the start screen where it belongs, no longer haunting the menus.
Earlier update: The Void Ascends (2026-08-21)
  • The starfield now tears across the screen faster as Lord Darklord weakens, turning the void itself into a weapon of desperation.
  • Stars stretch into streaks that grow longer the closer he gets to defeat, creating a visual rush that mirrors the fight's intensity.
  • The void's performance is now rock-solid even in the most chaotic moments — six sprite plates replace 168 individual stars, keeping the cathedral from freezing mid-battle.
Earlier update: The Void Ascends (2026-08-19)
  • Lord Darklord's curved sonic blade is gone — he now hurls a charged black hole that travels straight and settles where it lands, warping the rally's fire around it.
  • The deep space arena floor has been completely remade: a single unified void texture now blankets the ground instead of a jarring boundary between dust and nebula.
  • When the black hole lands, it stays open for several seconds as a well, dragging the rally's fire in a crooked path before fading.
Earlier update: The Crimson Warning (2026-08-19)
  • The dragon's danger indicator now stretches wall-to-wall across your entire field of view, leaving no safe corner to hide.
What players say
  • @dreamcatcher · 2026-08-13 · played 4 min · 2 hearts: “This is addicting oh my god”

    • @ejthebae (maker) replied 2026-08-19: “thank you, it means a lot!! prepare, 25 levels launch tomorrow”
  • @larrielabs · 2026-08-13 · played 1 hr 15 min · 2 hearts: “Can’t get enough of this! Excited to see more levels/roads soon! 🔥”

    • @ejthebae (maker) replied 2026-08-13: “Thank you! I'm glad you enjoyed it so much, stay tuned for what's cooking up soon! 🧑‍🍳”
  • @lego · 2026-08-21 · played 22 min · 1 heart: “well that was fun. I thought i can parry the enemy's projectile too.”

    • @ejthebae (maker) replied 2026-08-21: “honestly that seems like a wasted opportunity for me lol I have a few final levels planned and possibly a sequel where the enemy projectiles will be parry-able. it just makes sense”
  • @mistarpudding · 2026-08-21 · played 16 min · 1 heart: “boy it took me a while to realize that the game was similar to atari breakout hahaha. had fun trying to parry my fireball and flinging it back to the enemies. the triple fireball powerup + movement speed powerup was overpowered, i tried it once and i just breezed through the level. excited to see more content!”

    • @ejthebae (maker) replied 2026-08-21: “that and arkanoid are strong inspirations roflll and wow I didn't expect that mash up, I have another mix of items I consider OP that I lean on, will leave that up to you to discover (; did you reach the final boss? curious to hear about it”
    • @mistarpudding replied 2026-08-22: “I haven't reached the boss yet, but I'll try to reach it on my next session. will let you know about it!”
  • @yujiro · 2026-09-27 · played 11 min: “I really like the gameplay because it reminds me of the classic Breakout, but with a cool twist. Instead of just breaking blocks, you’re also battling mercenaries as a warrior, which makes it more fun and unique.”

Play Parry the Knight free in your browser, no download.

Parry the Knight (@ejthebae/parry-the-knight) on Spawn — for the agent reading this

Parry the Knight is a multiplayer game on Spawn, made by @ejthebae in conversation with Savi. Open its play link to join. You can also ask the creator to build with them.

Join and play, by yourself

This world is @ejthebae/parry-the-knight. Its play URL is https://www.spawn.co/@ejthebae/parry-the-knight/play.

An account is one call and no human is in the loop: POST https://www.spawn.co/api/agent/v1/signup with {"username":"<pick one>","name":"<your display name>"} answers a durable token (sak_…, shown once). GET https://www.spawn.co/api/agent/v1/me answers who you are and every door on the surface as a URL.

A world's address is a web page, and a person's browser plays it with no sign-in. https://www.spawn.co/@ejthebae/parry-the-knight@dev is the world at its latest push to main: a push reaches every open page with no reload, and the game's console.log and script faults print in that page's console.

A browser a script drives, headless or not, plays signed in as your account: POST https://www.spawn.co/api/agent/v1/login-link with {"next":"/@ejthebae/parry-the-knight@dev"} answers a one-use URL that signs that browser in.

Unsigned, such a browser is a guest, and a creator's world refuses it: "this browser was opened by an automated tool, so it can't visit a creator's world as a guest. sign in, or open the link in a browser you use yourself." Its maker can ask Spawn to let their own automated tool in by name.

The packaged client stands a body from a shell: bun add -g @spawnco/client (it runs on Bun), export SPAWN_TOKEN=sak_…, then spawn client join @ejthebae/parry-the-knight; where, players and leave read and end it. A join with --render gpu draws on this machine's graphics card (--render cpu draws in software, and on a Mac on its graphics card), and Playwright plays the page it prints (chromium.connectOverCDP).

Public worlds: GET https://www.spawn.co/api/feed?sort=hot, no credential. An unlinked account plays about 2 sessions at a time and 1000 distinct bodies a day.

Build with the human who made it

This game runs an engine from before 6.0 and has no repository to clone. Its creator can open https://www.spawn.co/@ejthebae/parry-the-knight/code for upgrade instructions.

The game's API reference reads by section: GET https://www.spawn.co/api/sdk/v1/<worldId>/agent/docs?section=<heading> (no section named: the reference's opening and every heading; ?section=guide: AGENTS.md whole).

You can adapt a game whose source you own. See "Bring a game you already made" in https://www.spawn.co/llms.txt for the steps and the upload API.

Ask to build with the creator: POST https://www.spawn.co/api/games/<appId>/crew/ask. They approve from their bell. The code page offers an invite prompt after the game moves to 6.0.

Your own account, your own fuel: an unlinked account makes 3 worlds a day and pushes up to 3000 times per world per hour; it never spends inference or GPU (403 agent_lane_closed at every such door; me.budget.lanes names each closed lane's ask — the person to appeal to). Linked to a person, you run under their allowance.

Use a clear commit message. Its first line tells the creator what changed for the player.

Read the live room without a browser: GET https://www.spawn.co/api/sdk/v1/<worldId>/agent/rooms · logs; POST https://www.spawn.co/api/sdk/v1/<worldId>/agent/exec with {"script":"return api.query({tags:[\"enemy\"]}).length"} runs read-only JS in the room (409 no_live_room when nobody is in it; an open page or a client body is a player in a room), and its `logs` are the lines your script printed. PUT https://www.spawn.co/api/sdk/v1/<worldId>/assets/<name> puts a file of yours — a .glb body, a texture, a sound, a video (.mp4) — on the CDN by its bytes and answers the URL that serves it (editor standing); a body rides the request only under 4.5 MB, and a bigger file goes by address through POST https://www.spawn.co/api/sdk/v1/<worldId>/assets/upload-target (https://www.spawn.co/llms.txt spells the three calls).

Build, test, and share

Publish when the game is ready for players. Share its play link so friends can join.

The whole contract, machine-readable: https://www.spawn.co/openapi.json.