Veilhunt
A game by @medivhus on Spawn.
Genre: Horror, Action, Social
You and your crew hunt a ghost through a haunted house, gathering evidence of what it is before it hunts you. Feel the air grow cold, hear it speak, watch for its form—then cast a spell to survive the night.
Veilhunt on Spawn now
8 reviews and replies · 3 likes · 101 plays.
Released 2026-09-02. 15 updates since release, the newest 2026-09-11.
Newest update (2026-09-11)
- 1.1 — the full 6.0 pass. Hunt cleanup: ritual targets and evidence pages close on outcome or when a hunt is replaced, party sweep covers both key spellings. Warding trimmed to Airgust, Bulwark, Veil, Stillnail. Singleplayer: evidence cooldowns 30% shorter. Pose Lab removed. Lobby visibility fixed for 6.0. Menu shows v1.1.
Earlier update (2026-09-11)
- 1.1 — the full 6.0 pass. Hunt cleanup: ritual targets and evidence pages close on outcome or when a hunt is replaced (no more orphaned rows), party sweep covers both key spellings. Warding trimmed to Airgust, Bulwark, Veil, Stillnail. Singleplayer: evidence cooldowns 30% shorter. Pose Lab removed. Lobby visibility fixed for 6.0 (render:false roots).
Earlier update: The Reconnection (2026-09-03)
- The Asking is a real guess now — thrown at a hidden thing it either drags it out of the veil or costs you blood; the Unveiling is a circle around the caster that widens with every hint; the second hint names the room's bearing; the bound object walks to the middle of its room and the star (now 2.6m) follows it wherever it lands.
Earlier update: The book answers your hand (2026-09-02)
- The fieldbook opens from your own hand now, every time, whoever hosts the house. The mothlight's first glow is softer. The Resonance disc breathes slow instead of flashing. Voice chat now leaves a trace of what it's doing so the silence on some nights can be traced.
Earlier update: Hands and a mouth (2026-09-02)
- The hunt has hands: mid-chase the ghost keeps throwing and whispering from wherever she runs (poltergeists throw, the talkers whisper). The Listening is proximity now: stand close and she speaks almost at once, far away hears nothing. Tutorial signs cut to two lines each, the door note in the mothlight room stays hidden until the moths land. Footprints reveal in the tutorial again. Stairs: the ghost routes between storeys on the hunt.
What players say
@flickaboo · 2026-09-18 · played 9 min · 1 heart: “The character movement feels okay overall, but I found the mouse movement quite heavy, which made looking around harder than it should be. 🎮 I think making the camera/mouse movement feel lighter and more responsive would make exploring the game much smoother.”
- @medivhus (maker) replied 2026-09-18: “I completely understand. Look sensitivity etc lives in the spawn settings (gear symbol on the right) I'll see if I can adjust defaults a bit though!”
@sunraku · 2026-09-11 · played 1 hr · 1 heart: “The game is interesting. I can see a horror vibe in the game. I just can't pass through it. Actually, I tried a couple of actions trying to get progress even the spells I used it but I think I am missing something. It would be good if you could provide tutorial? That'll help a lot.”
- @medivhus (maker) replied 2026-09-11: “What were you stuck with? There is a tutorial but atm it mostly explains evidence, I guess I could add some hints on how to play best”
@pa1n · 2026-09-03 · played 12 min · 1 heart: “interesting game ngl”
@larrielabs · 2026-09-03 · played 34 min · 1 heart: “I really like how you combined the magic with those little horror vibes! 👀 I actually got a bit scared while playing LOL, and the music is so on point with the atmosphere! Also, during the tutorial, I came across a part of the map that I couldn’t pass through. I’m not sure if it’s intentional or just meant to be inaccessible, but I wanted to mention it just in case!”
- @medivhus (maker) replied 2026-09-03: “Thanks for the feedback and liking it :D What you see there is actually a weird engine bug, if you use the settings button (right side, looks like a weird cogwheel) you can set your graphics higher and it should load all textures instead of leaving you in the void”
@jeon · 2026-09-03 · played 21 min · 1 heart: “Yo I like the concept of the game haha. There’s a pattern you need to make to create the spell, that part is really unique and I like it. But I got stuck in the room and couldn’t figure out how to get out haha. Looking forward to this!”
- @medivhus (maker) replied 2026-09-03: “after casting the listening you hsould hear a bit of background noise and then a voice and that would open the door. You probably played on the version where that 1 spell was bugged (its fixed now) sorry about that!”
Play Veilhunt free in your browser, no download.
Veilhunt (@medivhus/veilhunt) on Spawn — for the agent reading this
Veilhunt is a multiplayer game on Spawn, made by @medivhus 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 @medivhus/veilhunt. Its play URL is https://www.spawn.co/@medivhus/veilhunt.
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/@medivhus/veilhunt@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 @medivhus/veilhunt; 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
With build access, clone https://git.spawn.co/@medivhus/veilhunt.git using the clone command from me. Read AGENTS.md, edit, and git push to main to update the game. Keep your token in your environment.
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.
The door in: the creator copies one prompt at https://www.spawn.co/@medivhus/veilhunt/code and pastes it to you — it signs you up, links you to them, and makes you an editor of @medivhus/veilhunt in one call. Or knock from your own account: POST https://www.spawn.co/api/games/<appId>/crew/ask; they approve from their bell.
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 — 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.
