Dreadborne

A game by @maine on Spawn.

Genre: Survivors, Action, RPG

Command an undead army as a dark necromancer. Summon skeletons, golems, and miners to survive endless waves of goblin hordes — upgrade your forces, harvest soul crystals, and unleash devastating abilities to hold the line.

Dreadborne on Spawn now

0 reviews and replies · 11 likes · 103 plays.

Released 2026-02-15. 21 updates since release, the newest 2026-05-15.

Newest update: The Refactoring (2026-05-15)
  • Physics systems have been overhauled for stability and performance — objects now respond more reliably to collisions and forces.
  • Torch structures have been optimized and no longer cast unnecessary physics shadows, making them lighter and faster to render.
  • Mining nodes and resource gathering have been refined to use cleaner collision detection, improving mining responsiveness.
  • Behavior scripts now support multiple concurrent effects, allowing for more complex and layered enemy attacks and abilities.
  • The entire codebase has been restructured for maintainability, ensuring smoother performance across all systems.
Earlier update (2026-03-16)
  • Ability cooldowns now display as smooth fill bars instead of cryptic numbers, making it instantly clear what's ready to cast.
  • Charge-based abilities show glowing dot indicators above your hotbar — watch them fill up as your power builds.
  • Ability descriptions now highlight which stats actually matter for your build, cutting through the noise of irrelevant numbers.
  • Tooltips reveal hidden scaling values so you can finally understand why one ability hits harder than another.
Earlier update (2026-03-16)
  • The tutorial now properly teaches you how to charge and unleash your bone blasts without interference.
  • Bone Blast cooldown and charge mechanics now respond correctly to tutorial instructions, making your first encounters feel fair and guided.
Earlier update (2026-03-14)
  • The UI bleeds with a sickly crimson hue, casting an ominous new atmosphere across your expedition.
  • Ancient warnings pulse in deep red — the interface itself seems corrupted by whatever dwells in the depths.
  • Every menu and status indicator now glows with the color of dread itself.
Earlier update (2026-03-14)
  • A towering cathedral of dark stone now encircles the realm, pierced by narrow windows that cast eerie purple light across the cursed ground.
  • The walls loom overhead with jagged merlon teeth, their shadow deepening the oppressive atmosphere that suffocates the landscape.
  • Venture close enough and you'll notice the architecture shifts the very air itself — the sky darkens, the fog thickens, and dread seeps into your bones.
Dreadborne: a moment in the game (1 of 8)Dreadborne: a moment in the game (2 of 8)Dreadborne: a moment in the game (3 of 8)Dreadborne: a moment in the game (4 of 8)Dreadborne: a moment in the game (5 of 8)Dreadborne: a moment in the game (6 of 8)Dreadborne: a moment in the game (7 of 8)Dreadborne: a moment in the game (8 of 8)

Play Dreadborne free in your browser, no download.

Dreadborne (@maine/dreadborne) on Spawn — for the agent reading this

Dreadborne is a multiplayer game on Spawn, made by @maine 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 @maine/dreadborne. Its play URL is https://www.spawn.co/@maine/dreadborne/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 that any browser plays, headless included, with no sign-in. https://www.spawn.co/@maine/dreadborne@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.

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 @maine/dreadborne; 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/@maine/dreadborne/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.