Hollow City

A game by @squeezebtw on Spawn.

Genre: Survivors, Shooter, Horror, Action

Survive 25 waves of relentless zombies in a fog-choked city. Scavenge weapons, fight bosses, and pray your flashlight holds out.

Hollow City on Spawn now

3 reviews and replies · 12 likes · 274 plays.

Released 2026-03-01. 9 updates since release, the newest 2026-04-22.

Newest update: Contracts & Armory (2026-04-22)
  • Take on daily contracts for kills, wave survival, and weapon mastery — earn credits to spend on permanent unlocks.
  • Unlock new weapons and character skins in the Armory using credits earned from combat and contracts.
  • Start every run with your favorite weapon — purchase permanent weapons to begin loaded instead of always pistol-first.
  • Watch your character model appear in third-person as you hold and fire each weapon.
  • Survive harder waves and complete tougher contracts to earn bigger credit payouts.
Earlier update (2026-04-11)
  • Spitter zombies now hurl corrosive acid at you from a distance, dealing heavy damage on contact.
  • A new exploder variant shambles through the horde starting at wave 9, detonating in a massive toxic blast when it gets close.
  • Pickups no longer bob and rotate—they stay still and wait for you to grab them, making looting faster and cleaner.
  • Acid projectiles arc through the air with gravity, splashing on impact and leaving toxic residue behind.
Earlier update (2026-04-03)
  • Craft deadly traps from zombie parts you collect — proximity mines, spike traps, molotov cocktails, barbed wire, and tripwire bombs.
  • Find a crafting table on the roof of the gunshop and gather scrap metal, gunpowder, wire, and blade shards dropped by fallen zombies.
  • Place traps strategically where you stand to slow, burn, explode, and skewer incoming hordes.
  • Watch zombies get caught in barbed wire and slow to a crawl, or trigger mines that send them flying with massive knockback.
  • Each trap has its own timing and effect — learn when to use mines for raw damage, spikes for sustained punishment, or molotovs to create walls of fire.
Earlier update (2026-03-30)
  • Compete against the top 20 survivors globally — your best wave and kill count are logged permanently.
  • Open the leaderboard overlay mid-run to see who's dominating the hollow and where you rank.
  • Every session counts — your playtime and stats accumulate across runs, pushing you higher on the board.
  • Claim the #1 spot and watch your name shine in yellow at the top of the global rankings.
Earlier update (2026-03-22)
  • Pickups now shine with their own inner light instead of floating particles.
  • The zombies have health bars on top of them.
  • Health and ammo crates glow steadily in the darkness—easier to spot when supplies matter most.
What players say
  • @forge_ranger_94 · 2026-03-25 · played 18 min · 1 heart: “Man this game is super fun!!! I love the perks system it's like a blend of a zombies game mode with roguelike elements. Game has a lot of potential!”

    • @squeezebtw (maker) replied 2026-03-27: “Thank you so much! I am glad you've enjoyed it!”
  • @bennett · 2026-03-18 · played 25 min · 1 heart: “i cant get my flashlight to turn on. but this game is super fun and kinda scary!”

    • @squeezebtw (maker) replied 2026-03-19: “Thanks for posting this comment! There is a problem with a flashlight, it only works with first person mode, please try it.”
  • @dreamcatcher · 2026-03-27 · played 49 min: “Having a tonne of fun! Never really been one for zombie games, but I can definitely make an exception for this one!”

    • @squeezebtw (maker) replied 2026-03-27: “Thanks dreamcatcher! Really appreciate you for spending time on this game :)”
Hollow City: a moment in the game (1 of 8)Hollow City: a moment in the game (2 of 8)Hollow City: a moment in the game (3 of 8)Hollow City: a moment in the game (4 of 8)Hollow City: a moment in the game (5 of 8)Hollow City: a moment in the game (6 of 8)Hollow City: a moment in the game (7 of 8)Hollow City: a moment in the game (8 of 8)

Play Hollow City free in your browser, no download.

Hollow City (@squeezebtw/hollow-city) on Spawn — for the agent reading this

Hollow City is a multiplayer game on Spawn, made by @squeezebtw 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 @squeezebtw/hollow-city. Its play URL is https://www.spawn.co/@squeezebtw/hollow-city/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/@squeezebtw/hollow-city@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 @squeezebtw/hollow-city; 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/@squeezebtw/hollow-city/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.