Apex Descent

A game by @pa1n on Spawn.

Genre: Racer, Action

A first-person mountain-bike descent through spruce forests, granite shelves and a true alpine switchback.

Apex Descent on Spawn now

27 reviews and replies · 27 likes · 458 plays.

Released 2026-09-17. 19 updates since release, the newest 2026-09-27.

Newest update: Cockpit Clarity (2026-09-27)
  • Switching back to the stock Raven now clears the old bike's paint off your cockpit.
  • The stock Raven's cockpit now wears its own graphite and bronze finish instead of inheriting the last bike's colors.
Earlier update: Checkpoints & Quick Match (2026-09-27)
  • Three checkpoint gates now mark your progress on Alpine Night, Sunridge Hills, and Frostline—Q returns you to the last one you passed.
  • Solo mode is now one Quick Match button: you race hard rivals on your chosen mountain with no difficulty picker.
  • Finish lines now count the full arch width on every mountain, so crossing near the edge still records your result.
  • Your bike and every NPC bike now roll on smooth round tyres instead of blocky octagons.
  • Water bottles now drink only what your legs need—save the rest for later in the race.
Earlier update: The Gauntlet (2026-09-27)
  • Race a solo time trial through a vertical loop, boulder run, and canyon gap with no rivals—just you and the clock.
  • Tire spray now kicks up realistically from the track under all three courses as you brake, drift, and carve.
  • Drink from your water bottle in two gulps: 70% of the water restores 60% of your legs, then wait 20 seconds for the final 30%.
  • Unlock new bikes by beating time targets on the Gauntlet: Ember at 2:00, Glacier next, then Apex Gold.
  • Your best Gauntlet time posts to a global leaderboard beside the start arch—see where you rank against the world.
Earlier update: Apex Descent Update (2026-09-22)
  • Hard-mode rivals now reach 60 km/h and carry more speed through corners; easy and medium retain their existing pace. Improved NPC ramp approaches, Ash's corner pace, and waterfall flow and spray. Includes all saved updates.
Earlier update: Grip & Tactics (2026-09-22)
  • Riders now grip the handlebars with their hands during turns, with arm animations that respond to steering input.
  • NPCs make smarter passing decisions with a new tactical mind system that considers nearby racers, course sections, and difficulty.
  • NPC collision sensing is more accurate on technical terrain, preventing false wall detections on convex features like ramps.
What players say
  • @moypi03 · 2026-09-27 · played 35 min · 1 heart · shown first by the maker: “Love the ramps that you created in the new map and the water bottle that you add it makes the gameplay harder and fun at the same time. Looking forward to another updates that you are cooking man!”

    • @pa1n (maker) replied 2026-09-27: “Love to hear that! Thanks for the feedback, moypoi!”
  • @laurence1 · 2026-09-27 · played 28 min · 1 heart · shown first by the maker: “The new updates is sick man it's like your playing in real life the legs that exhaust and also the water! Played it with my friends and we were able to compete! Can't wait for the future updates of the game!”

    • @pa1n (maker) replied 2026-09-27: “Thanks man! Really appreciate the feedback 😁”
  • @vladtheimpaler · 2026-09-30 · played 37 min · shown first by the maker: “Brother, I can see that you added a lot from your update! The world looks much much cooler now and I noticed that you added a cinematic when the race starts! pretty cool if you ask me!”

    • @pa1n (maker) replied 2026-09-30: “yup thanks for the positive feedback man!”
    • @vladtheimpaler replied 2026-10-11: “@pa1n No worries brother! I can see the update and there are a lot I can see that are good additions on the game! the lobby is what stood out to me, it looks great”
  • @neitantei · 2026-09-22 · played 16 min · 1 heart: “One of the most immersive and intense bike games I’ve played so far! The tracks are challenging enough to keep you on your toes, and I really love the animations and scenery. It would also be cool to see leaves blowing around while you’re riding. Really looking forward to the bike upgrades in the future!”

  • @sunraku · 2026-09-22 · played 57 min · 1 heart: “Whooaaa such a good feeling playing this game dude! The LMB and RMB alternate command was so good, I am satisfied. I love the first person view feels realistic. I wonder how it feels on a VR hahaha. The trail is well built and I like that there is a chance of failure (the part that has no side railing). Such a great game”

    • @pa1n (maker) replied 2026-09-22: “thanks for the positive feedback! im just here to try the new update that came out on spawn (JEV) to the npcs ahah”
Apex Descent: a moment in the game (1 of 2)Apex Descent: a moment in the game (2 of 2)

Play Apex Descent free in your browser, no download.

Apex Descent (@pa1n/apex-descent) on Spawn — for the agent reading this

Apex Descent is a multiplayer game on Spawn, made by @pa1n 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 @pa1n/apex-descent. Its play URL is https://www.spawn.co/@pa1n/apex-descent.

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/@pa1n/apex-descent@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 @pa1n/apex-descent; 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/@pa1n/apex-descent.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/@pa1n/apex-descent/code and pastes it to you — it signs you up, links you to them, and makes you an editor of @pa1n/apex-descent 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.