CrownFall
A game by @seele on Spawn.
Genre: Strategy, Tower Defense
You are a commander pushing your gaze left and right along a battle lane, summoning soldiers and turrets to break the enemy keep. Watch your gold, time your deploys, and crush your opponent before their forces overwhelm
CrownFall on Spawn now
2 reviews and replies · 4 likes · 102 plays.
Released 2026-08-13. 5 updates since release, the newest 2026-08-22.
Newest update: The Doomsday Reckoning (2026-08-22)
- As both armies accumulate experience in the late game, a cascading crisis unfolds: bases crumble under mounting pressure, enemies grow deadlier with each threshold crossed, and the very music shifts to herald defeat.
- Great Canyons become devastatingly efficient weapons in the endgame, constructing faster and hitting harder as the doomsday meter climbs.
- Commanders can now burn accumulated experience to cast their ultimate skill, sacrificing raw power to buy time and reset the pressure when the end feels near.
- The war's final phase is no longer a stalemate—it's a ticking clock where every decision matters and momentum can shift in seconds.
Earlier update: The Powder Age (2026-08-21)
- A new Herald has arrived — a mysterious messenger who can strike a keep directly from anywhere on the field.
- Overkill damage from cannons now spills through enemy ranks and onto the keep itself, rewarding precise shots.
- The great cannon now stands alone without its crew, firing at the exact same size every frame — no more floating in mid-air.
- Wars that grind too long enter a Doomsday state: gold swells, cannons quicken, keeps crumble on their own, and the song of defeat plays while both kings still live.
- Abandoned wars now have a clear exit: open the settings and choose to quit the battlefield, returning to the front door to start fresh.
Earlier update: The Referee Unparked (2026-08-13)
- Duels fixed for real: the war referee no longer gets parked mid-match, so every button works in PvP. The far keep now stands where you can actually see it, and the battlefield scrolls at the screen edge in duels too. The enemy AI stands down in player-vs-player. Turret rework: you now start with zero turret slots — the first unlock costs 250 gold (then 1000, 3000, 7500), and the drills teach it.
Earlier update: The Yard Opens (2026-08-13)
- Duels fixed: both commanders now walk into the arena — each carries himself through his own door, the yard just posts it. A ghost that could re-pair two commanders into a second arena is gated out. Also: no more stray frame when backing out of settings, the song plays at proper volume, and pairing strikes faster.
Earlier update: The Second Commander (2026-08-13)
- Every commander now owns their own screens — menus, volumes, settings, and the tale no longer shared between players in a room. Duels pair properly: queue up, get matched, and both fighters walk into their own arena. New players open on the tale itself, from the very first frame. Finishing the drills from PLAY drops you straight into a real war. The view only drifts when your cursor rests at the outermost edge of the screen, so picking a tower holds still. And the first lesson's spotlight is cut clean — no chrome poking into the light.
What players say
@rookie · 2026-08-23 · played 1 hr 4 min · 1 heart: “Game is fun can't wait for some players so that I can rock with the leader board xD!”
- @seele (maker) replied 2026-08-23: “Im glad you enjoyed it, i'm gonna take a look at that bar as well, once im back to fixing”
@mistarpudding · 2026-08-28 · played 26 min: “i suggest having the option to adjust the difficulty (easy-medium-hard mode) to make the game more challenging. i just completed the game by spamming specific units :D having increased difficulties would make players adjust their strategies. still, good stuff again seele! another nostalgic piece from ya, and i love it”
Play CrownFall free in your browser, no download.
CrownFall (@seele/crownfall) on Spawn — for the agent reading this
CrownFall is a multiplayer game on Spawn, made by @seele 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 @seele/crownfall. Its play URL is https://www.spawn.co/@seele/crownfall/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/@seele/crownfall@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":"/@seele/crownfall@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 @seele/crownfall; 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/@seele/crownfall/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.
