# Player Two > A game store and a launchpad for games you play in the browser: games for sale (or free) to play in the browser or download, and raises where players back a game being made, paid to its developer stage by stage as they post proof. For developers, a game SDK (multiplayer rooms with no server of their own, trophies, leaderboards, cloud saves) and hosting for web games. Player Two (playertwo.lol) is a store and launchpad for browser games and the game SDK that comes with it. It is not the Player 2 app for finding people to play with, nor the Player2 company that makes AI characters for games. Player Two is at https://playertwo.plus. Its own channels: X https://x.com/PlayerTwoPad, Telegram https://t.me/PlayerTwoPad. Email hello@playertwo.lol. ## Games on Player Two Every game in the store and on the launchpad now, each with its page (play it there) and its page as Markdown: - [Impact](https://playertwo.plus/game/impact): 100 fighters. One arena. Awaken, go ultimate, and be the last one standing. (free, by Dude Games; Markdown: https://playertwo.plus/game/impact.md) - [Hoop It](https://playertwo.plus/game/hoop-it): Big heads. Bigger dunks. Streetball with your friends. (free, by Dude Games; Markdown: https://playertwo.plus/game/hoop-it.md) - [MECHA / RAMPAGE RUSH](https://playertwo.plus/game/mecha): Small frame. Big headlines. (free, by Dude Games; Markdown: https://playertwo.plus/game/mecha.md) - [Thrustline](https://playertwo.plus/game/thrustline): Tether racing at the edge of the world. (free, by Dude Games; Markdown: https://playertwo.plus/game/thrustline.md) - [On The Cruise](https://playertwo.plus/game/cruise): Broadsides, bounties and one more voyage on the Brightwater. (free, by Dude Games; Markdown: https://playertwo.plus/game/cruise.md) - [Knead for Speed](https://playertwo.plus/game/knead-for-speed): Cat kart racing where the race stops for staring contests and nose boops. (free, by DevFMD; Markdown: https://playertwo.plus/game/knead-for-speed.md) - [BloodRoot](https://playertwo.plus/game/bloodroot): Plant what bleeds. Sell to what reaches out. Don't look back. It is only a garden. (free, by 3Ps Studio; Markdown: https://playertwo.plus/game/bloodroot.md) - [Netstorm](https://playertwo.plus/game/netstorm): Read it. Set it. SEND IT. Storm-powered volleyball, free in your browser. (free, by Netstorm Studio; Markdown: https://playertwo.plus/game/netstorm.md) The same list as JSON: https://playertwo.plus/api/v1/games. A game's page: https://playertwo.plus/game/; as Markdown: https://playertwo.plus/game/.md. Search the store: https://playertwo.plus/?q=. ## Pages as Markdown Every page of the help, the docs and the rules has its words as Markdown at its address with .md after it (made from the page itself, so they are the same), and all of them together with every game's are in https://playertwo.plus/llms-full.txt: - https://playertwo.plus/help (Markdown: https://playertwo.plus/help.md): questions and answers for players, backers and developers: balance, buying, free games, backing, fees, refunds, passes, payouts, downloads, your account - https://playertwo.plus/docs (Markdown: https://playertwo.plus/docs.md): how the platform works, part by part, and for developers: listing, editing, updates, playtests, raising, builds, agents - https://playertwo.plus/docs/sdk (Markdown: https://playertwo.plus/docs/sdk.md): the game SDK: trophies, levels, stats, leaderboards, cloud saves, presence, in-game purchases, multiplayer rooms and worlds, voice - https://playertwo.plus/docs/sdk/travel (Markdown: https://playertwo.plus/docs/sdk/travel.md): the player's avatar and travel between games with the party - https://playertwo.plus/docs/sdk/connect (Markdown: https://playertwo.plus/docs/sdk/connect.md): Player Two Connect, for a game on its own site - https://playertwo.plus/docs/hosting (Markdown: https://playertwo.plus/docs/hosting.md): hosting a web game here, pushing builds, GitHub, a game served from its own site - https://playertwo.plus/docs/webhooks (Markdown: https://playertwo.plus/docs/webhooks.md): webhooks for a studio's own service or Discord - https://playertwo.plus/developers/compare (Markdown: https://playertwo.plus/developers/compare.md): where to publish a web game: Player Two beside itch.io, Poki, CrazyGames, Steam and Discord Activities, from each platform's own pages, dated - https://playertwo.plus/policy (Markdown: https://playertwo.plus/policy.md): the content and moderation policy - https://playertwo.plus/terms (Markdown: https://playertwo.plus/terms.md): the terms of service - https://playertwo.plus/privacy (Markdown: https://playertwo.plus/privacy.md): the privacy policy - https://playertwo.plus/developer-terms (Markdown: https://playertwo.plus/developer-terms.md): the developer terms - https://playertwo.plus/developers (Markdown: https://playertwo.plus/developers.md): everything a game gets, on one page ## Asking Player Two, as any agent The MCP server https://playertwo.plus/api/mcp (lol.playertwo/mcp in the official MCP Registry; its card at https://playertwo.plus/.well-known/mcp.json) answers with no key: search_games, list_games, get_game_facts (a game's facts by slug), get_sdk_docs (a part of the docs in Markdown) and where_to_publish (the offer to developers). A studio's tools take the player's agent key, or the player signs in when the client asks (OAuth: https://playertwo.plus/.well-known/oauth-protected-resource/api/mcp). https://playertwo.plus/docs#agents-public ## Submitting a game as an agent An agent can submit its player's game (for the store, or as a raise), upload its pictures, trailers and web builds, and edit its page, with a key the player makes in their studio (https://playertwo.plus/studio, under Agents). Send it as `Authorization: Bearer p2_agent_...`. - MCP server (Streamable HTTP): https://playertwo.plus/api/mcp. Tools: get_submission_guide, check_game, upload_media, upload_web_build, submit_game, update_game, get_game, my_studio, list_trophies, define_trophy, list_boards, define_board, list_builds, make_build_live, name_build (a build's version: each build is called what its developer named it, up to 32 characters of letters, digits, dots, dashes, plus signs and spaces, or else by its number in its game's builds, "12"; also PATCH https://playertwo.plus/api/v1/agent/games//web/builds { key, version }), list_products, define_product, playtest_link (a game's "anyone with the link" playtest before it is out: on, off or reset; also PUT https://playertwo.plus/api/v1/agent/games//testers/link), post_update (an update on a game's page: a title up to 80 characters, Markdown words up to 10,000, up to 4 pictures or a video and 3 pictures uploaded with upload_media's game; its players told in plain words; also POST https://playertwo.plus/api/v1/agent/games//posts; https://playertwo.plus/docs#dev-updates), list_updates, edit_update, pin_update and delete_update (post_update with at, 5 minutes to 90 days ahead, posts it later: only the team sees it and nobody is told until it goes up, as if posted then; edit_update with at moves it, with now: true posts it now; a game's posts with their ids; edit a developer post's title, words or attachments by the same rules, nobody told again, "Edited" on it; pin one first, one a game, any post; delete one, its notices taken back and its files dropped a day later; Player Two's own posts only pinned; also GET https://playertwo.plus/api/v1/agent/games//posts and PATCH and DELETE https://playertwo.plus/api/v1/agent/games//posts/), list_comments, hide_comment, lock_comments and mark_comments_read (players' comments on a game's posts: read them, with which are new for the key's player, take one down, lock a post's, mark a post's or every post's read; agents don't comment; also GET and PATCH https://playertwo.plus/api/v1/agent/games//posts//comments, DELETE .../comments/, POST https://playertwo.plus/api/v1/agent/games//comments/read), and get_rooms (a game's multiplayer rooms now and their players' connections: ping, p90, jitter, bytes a second, corrections, drops; read-only, also GET https://playertwo.plus/api/v1/agent/games//rooms). - Agent API: https://playertwo.plus/api/v1/agent/guide explains every field, its limits, the rules and an example of each kind. Submit with POST https://playertwo.plus/api/v1/agent/games {"draft": {...}, "publish": true}. - API spec: https://playertwo.plus/openapi.json (OpenAPI 3.1): every call of the agent API, the game SDK (a play session's, rooms' and a game server's), a game's services for its developer and the public reads, with the four ways a call says who it is (an agent key p2_agent_, a play session p2s_, a game key p2g_, a signed-in player). - A web build bigger than a zip (up to 5 GB and 20,000 files): once the game is on Player Two, push its folder with https://playertwo.plus/cli/p2.mjs (Node 20 or later, nothing to install): `P2_AGENT_KEY=p2_agent_... node p2.mjs push --game [--version 1.4.0]` (--version names the build; left out, it is its number in the game's builds). It plays at https://.playertwo.cc, with no code changes. The three calls it makes: https://playertwo.plus/docs/hosting#push-calls. A game on its own site that Player Two serves pushes its rooms' code alone: `node p2.mjs push --game --room` (its room.js or room/ folder, never served): https://playertwo.plus/docs/hosting#room-code. - A raise is live at once but takes no money until the player (a human) checks their identity in their studio. Agents can't do that, or pay, claim money or change accounts. ## Reading a game's page Every game's page (https://playertwo.plus/game/) has an "At a glance" part, shown to players and agents alike, `
`: what the game is, who made it, when it came out and when it was last updated, where to play it and whether a guest can, how to play (its controls and goals, in its developer's words), whether it is multiplayer, its players and reviews, the Player Two services it has, and how to report a bug. It is in the page's HTML even when the page asks a player's age first (there, visually hidden). The same game as JSON: https://playertwo.plus/api/v1/games/, and as Markdown (its words, features, price, these facts and its updates): https://playertwo.plus/game/.md. ## Everything a game and its developer get Each with its part of the docs and, for the game SDK, its calls: `p2.*` and `PlayerTwo.*` in the game's page, `room.*` in a room it joined, `script.*` in its room.js on Player Two's servers, `server.*` from its own server with its game key (https://playertwo.plus/api/v1/sdk/server/...). ### On Player Two - A store page, free or paid: https://playertwo.plus/docs#dev-listing - A raise on the launchpad: https://playertwo.plus/docs#dev-raising - Stages, proof and votes: https://playertwo.plus/docs#stages - Web builds and downloads: https://playertwo.plus/docs#dev-builds - Pushing a build: https://playertwo.plus/docs/hosting#push - Testers first, history and rollback: https://playertwo.plus/docs/hosting#push - From GitHub: https://playertwo.plus/docs/hosting#github - Your own site, served: https://playertwo.plus/docs/hosting#follow - Room code for your own site: https://playertwo.plus/docs/hosting#room-code - Saves with no code: https://playertwo.plus/docs/hosting#saves - A free trial: https://playertwo.plus/docs/hosting#trial - Editing a live page: https://playertwo.plus/docs#dev-editing - Earnings and payouts: https://playertwo.plus/docs#money-payouts - Webhooks: https://playertwo.plus/docs/webhooks - MCP and the agent API: https://playertwo.plus/docs#agents - Your rooms' connections, for your agent: https://playertwo.plus/docs/sdk#rooms-stats ### In your game - One script tag, or npm: https://playertwo.plus/docs/sdk#call-init (PlayerTwo.init, PlayerTwo.ready, PlayerTwo.env, PlayerTwo.v, p2.env, p2.player, p2.game, p2.call) - Building without Player Two: https://playertwo.plus/docs/sdk#start-local - Who is playing: https://playertwo.plus/docs/sdk#call-me (p2.me) - Trophies and levels: https://playertwo.plus/docs/sdk#call-trophies (p2.trophies, p2.trophies.list, p2.trophies.unlock) - Leaderboards: https://playertwo.plus/docs/sdk#call-scores (p2.scores, p2.scores.submit, p2.scores.list) - Stats: https://playertwo.plus/docs/sdk#call-stats (p2.stats, p2.stats.get, p2.stats.set, p2.stats.add) - Cloud saves: https://playertwo.plus/docs/sdk#call-saves (p2.saves, p2.saves.list, p2.saves.get, p2.saves.put, p2.saves.delete) - Add-ons: https://playertwo.plus/docs/sdk#addons (p2.addons, p2.addons.list, p2.addons.has) - In-game purchases: your studio's products, or your own prices: https://playertwo.plus/docs/sdk#purchases (p2.store, p2.store.list, p2.store.owned, p2.store.buy, p2.store.pay) - Presence: https://playertwo.plus/docs/sdk#call-presence (p2.presence, p2.presence.set) - Identity and invites: https://playertwo.plus/docs/sdk#call-identity (p2.identity, p2.invite, p2.params) - Loading and play events: https://playertwo.plus/docs/sdk#call-gameplay (p2.loading, p2.loading.done, p2.gameplay, p2.gameplay.start, p2.gameplay.stop) - The overlay: https://playertwo.plus/docs/sdk#call-overlay (p2.on) - On air in the Plaza: https://playertwo.plus/docs/sdk#call-air (p2.onAir) - Test mode and demos: https://playertwo.plus/docs/sdk#test (p2.test, p2.demo) - The player's avatar, 2D and 3D: https://playertwo.plus/docs/sdk/travel#avatar (p2.avatar) - What they have from the Plaza shop: https://playertwo.plus/docs/sdk/travel#avatar-items (p2.items, p2.items.list) - Travel with the party: https://playertwo.plus/docs/sdk/travel#travel (p2.travel, p2.travel.to, p2.travel.home, p2.travel.links) - Played with recently: https://playertwo.plus/docs/sdk/travel#played - Trophies across games: https://playertwo.plus/docs/sdk/travel#trophies ### Your server - Game keys and checks: https://playertwo.plus/docs/sdk#server-keys (server.session, server.trophies, server.boards, server.addons) - Signed identity: https://playertwo.plus/docs/sdk/connect#identity (server.identity) - Charges at your own prices, purchase receipts and consumables: https://playertwo.plus/docs/sdk#store-server (server.store) - Match reports: https://playertwo.plus/docs/sdk/travel#played-match (server.match) - Your own accounts: https://playertwo.plus/docs/sdk/connect#accounts - Desktop launch tickets: https://playertwo.plus/docs/sdk#desktop-tickets - Unity, Godot and the app: https://playertwo.plus/docs/sdk#launcher ### Multiplayer - Matches, codes and parties: https://playertwo.plus/docs/sdk#rooms-join (p2.rooms, p2.rooms.join, p2.rooms.create, p2.rooms.party, room.id, room.code, room.mode, room.size, room.me, room.host, room.isHost, room.players, room.leave) - Messages and shared state: https://playertwo.plus/docs/sdk#rooms-talk (room.send, room.set, room.get, room.state, room.owners, room.on) - Smooth movement: https://playertwo.plus/docs/sdk#rooms-sync (room.sync) - The fast lane: https://playertwo.plus/docs/sdk#rooms-fast (room.stats, room.ping, room.now) - Timing, each player's ping in room.js, and where a room runs: https://playertwo.plus/docs/sdk#rooms-network - Your server code: https://playertwo.plus/docs/sdk#rooms-scripted (room.scripted, script.defineRoom, script.id, script.tickRate, script.onCreate, script.onStart, script.onJoin, script.onLeave, script.onMessage, script.onTick, script.players, script.player, script.send, script.state, script.state.get, script.state.set, script.kick, script.close, script.data, script.store, script.store.get, script.store.set, script.store.delete, script.store.keys, script.save, script.now, script.log) - Input-run rooms: https://playertwo.plus/docs/sdk#rooms-inputs (room.inputs, script.confirm) - Corrections: https://playertwo.plus/docs/sdk#rooms-corrections (script.onSync, script.correct, script.past) - Server-moved objects: https://playertwo.plus/docs/sdk#rooms-objects (room.objects, script.objects, script.objects.set, script.objects.get, script.objects.delete, script.objects.keys) - Physics engines: https://playertwo.plus/docs/sdk#rooms-engines - Teams and party matches: https://playertwo.plus/docs/sdk#rooms-teams (room.teams, script.teams, script.team) - Matching by skill, rated by mode: https://playertwo.plus/docs/sdk#rooms-matching (script.result) - A ranked leaderboard from your room code: https://playertwo.plus/docs/sdk#rooms-ranked (script.score, script.trophy) - Watching and replays: https://playertwo.plus/docs/sdk#rooms-watch (p2.rooms.watch, p2.rooms.live, p2.rooms.replays, p2.rooms.replay, room.watching, room.replay, script.open, script.record) - Worlds of 256: https://playertwo.plus/docs/sdk#rooms-worlds (p2.rooms.world, room.world, room.gated, script.near, script.between) - Voice chat: https://playertwo.plus/docs/sdk#rooms-voice (room.voice, room.voice.who, room.voice.join, room.voice.leave, room.voice.mute, room.voice.isMuted, room.voice.volume, room.voice.speaking, room.voice.viaParty) - A bad connection, on purpose: https://playertwo.plus/docs/sdk#rooms-simulate (p2.rooms.simulate) - Releases that never cut a match: https://playertwo.plus/docs/sdk#rooms-releases ## More - Docs: https://playertwo.plus/docs - Everything a game gets, on one page to share (and save as an image): https://playertwo.plus/developers - Where to publish a web game: Player Two beside itch.io, Poki, CrazyGames, Steam and Discord Activities, from each platform's own pages (checked November 8, 2026): https://playertwo.plus/developers/compare - The game SDK (trophies, stats, leaderboards, saves, presence, and rooms for multiplayer with no server of the game's own, for hosted games): https://playertwo.plus/docs/sdk - Travel and avatars (the player's critter as pixels and a 3D model, doors to other games with the party, played with recently): https://playertwo.plus/docs/sdk/travel - On npm: playertwo-sdk (init() for bundled code, and the SDK's TypeScript types, a room's code included: https://www.npmjs.com/package/playertwo-sdk), and a new game from a starter: `npm create playertwo-game@latest my-game` (https://www.npmjs.com/package/create-playertwo-game) - Hosting a web game here, or playing it from its own site: https://playertwo.plus/docs/hosting - Help: https://playertwo.plus/help - Content policy: https://playertwo.plus/policy