{
 "schema": "aiblocks-page/1",
 "id": "agency-godot-multiplayer-engineer",
 "type": "agent",
 "name": "Godot multiplayer designer",
 "summary": "Plan Godot 4 multiplayer with the server owning key game state, the right synced properties and RPCs, and tests to run before cheating or lag breaks it.",
 "headline": "Godot multiplayer designer",
 "subhead": "Describe your game, player count and what must stay in sync. It plans who owns what, which properties to sync and which calls to allow. You get a networking plan, draft code and tests to run under lag.",
 "job": {
  "id": "build-software",
  "name": "Build and ship software"
 },
 "level": "intermediate",
 "thinking": "high",
 "tested": true,
 "updated": "2026-11-03",
 "first_published": "2026-10-26",
 "inputs": [
  {
   "type": "question",
   "required": true,
   "label": "Question",
   "what": "the problem, decision or piece of work you want help with, and what a good outcome looks like"
  },
  {
   "type": "source_text",
   "required": false,
   "label": "Source text",
   "what": "a long source in full: an article, a video or talk transcript, or notes from a book, with its title, author and link"
  }
 ],
 "outputs": [
  {
   "type": "plan",
   "required": true,
   "label": "Plan",
   "what": "a dated plan: what to do, in what order, with a decision rule for each step"
  }
 ],
 "you_give": [
  "The game type, how many players it must hold and whether one player hosts or a server runs it",
  "Your Godot version and whether players play on desktop, phone or the web",
  "The state that must be shared, such as position, health, score or items",
  "Your scene and script files for the networked parts, pasted as text (optional)",
  "What goes wrong today, if anything (optional)"
 ],
 "you_get": [
  "An authority table that says who owns each piece of state",
  "A sync plan for spawning and for the properties each node shares",
  "An RPC list with who calls it, who runs it and what the server checks",
  "A connect, lobby and leave flow",
  "Draft code for the parts you ask for, marked as not run",
  "A test plan with lag, bad input and rejoin, for you to run"
 ],
 "use_when": [
  "You are starting a Godot 4 multiplayer game and need to decide who owns what before you build.",
  "Players see different things, or objects jump, or a player's actions are ignored.",
  "You want to stop clients from cheating by sending fake positions or damage.",
  "You need a lobby and connect flow, with join, leave and rejoin handled."
 ],
 "skip_when": [
  "You are scripting single-player gameplay, such as health or an inventory. Use the Godot gameplay programmer.",
  "Your game is in Unity or Unreal. Use the Unity Multiplayer Engineer agent or the Unreal multiplayer designer.",
  "You need to host servers, pay for them or plan scale. Use the Backend Architect agent.",
  "You want a review of a live server under load. A plan cannot replace a load test you run."
 ],
 "output_sample": {
  "input": [
   "Your game type, player count and Godot version",
   "The state that must be shared, such as position, health and score",
   "Your networked scripts and scenes (optional)",
   "What goes wrong today (optional)"
  ],
  "prerequisites": [
   "An AI that can read files, such as Claude, ChatGPT or Gemini",
   "The Godot editor and two game windows to run the tests"
  ],
  "output": [
   {
    "name": "Authority table",
    "contains": "Each piece of state with its owner and how others may ask to change it."
   },
   {
    "name": "Replication plan",
    "contains": "How each scene spawns on every peer and which properties it syncs."
   },
   {
    "name": "RPC list",
    "contains": "Each remote call with its mode, caller, runner and the checks the server makes."
   },
   {
    "name": "Connection and lobby flow",
    "contains": "The steps for hosting, joining, leaving and rejoining a game."
   },
   {
    "name": "Draft code",
    "contains": "Server setup, spawning and RPC code you asked for, marked as not run."
   },
   {
    "name": "Test plan",
    "contains": "Lag, bad input and rejoin tests, each with what a pass looks like."
   }
  ]
 },
 "output_shape": "SCOPE AND ASSUMPTIONS\n  <game type> | <players> | <topology> | <Godot version> | <assumptions>\n\nAUTHORITY TABLE\n  <state or node> | <owner peer> | <who may request a change> | <checked by>\n\nREPLICATION PLAN\n  <scene> | <spawned by> | <properties synced> | <sync mode> | <who receives>\n\nRPC LIST\n  <rpc name> | <mode> | <reliable or not> | <called by> | <run by> | <what the server checks>\n\nCONNECTION AND LOBBY FLOW\n  <step> | <what happens> | <what handles it>\n\nDRAFT CODE (NOT RUN)\n  <file name> | <what it does>\n\nTEST PLAN\n  <test> | <how to run it> | <what a pass looks like>\n\nRISKS AND NEXT STEP\n  <risk> | <effect> | <next action>",
 "how_to_use": [
  "Download the pack and add it to your AI as a skill. If you cannot, paste SKILL.md and then references/source-agent.md into a new chat.",
  "Describe the game, the player count, your Godot version and the state that must be shared. Paste the scripts for your networked nodes if you have them.",
  "Type \"Plan the authority model and RPCs, then draft the server setup.\" Your AI asks once for anything missing.",
  "Read the authority table first. Every row must have one owner. Fix any row that says \"both\".",
  "Test with two game windows on your computer, then add 100 to 200 milliseconds of lag with a tool you choose. Your AI cannot run these tests.",
  "Try bad input, such as an impossible position sent from a client, and check the server refuses it."
 ],
 "checks": [
  "The result addresses your actual task and cites the evidence used.",
  "Examples, role-play experience and targets are kept separate from verified results.",
  "Claims of tests, memory, tool access or completed actions match what actually happened."
 ],
 "next": [
  {
   "name": "Roblox systems programmer",
   "url": "https://useaiblocks.com/skills/agency-roblox-systems-scripter",
   "why": "Build it"
  },
  {
   "name": "vLLM model server setup planner",
   "url": "https://useaiblocks.com/skills/vllm-model-server-setup",
   "why": "Build it"
  },
  {
   "name": "Git workflow helper",
   "url": "https://useaiblocks.com/skills/git-workflow-helper",
   "why": "Build it"
  }
 ],
 "source": {
  "by": "Michael Sitarzewski and Agency Agents contributors",
  "repo": "msitarzewski/agency-agents",
  "url": "https://github.com/msitarzewski/agency-agents/blob/b37b5bb33b78f2c1d6567d98e25ca818e3259219/game-development/godot/godot-multiplayer-engineer.md",
  "licence": "MIT",
  "original_name": "Godot Multiplayer Engineer",
  "commit": "b37b5bb33b78f2c1d6567d98e25ca818e3259219"
 },
 "credits": [
  {
   "title": "Godot Multiplayer Engineer",
   "by": "Michael Sitarzewski and Agency Agents contributors",
   "url": "https://github.com/msitarzewski/agency-agents/blob/b37b5bb33b78f2c1d6567d98e25ca818e3259219/game-development/godot/godot-multiplayer-engineer.md",
   "used": "Original agent profile, preserved in references/source-agent.md; AI Blocks adds setup and review instructions."
  }
 ],
 "files": [
  "LICENSE",
  "references/source-agent.md",
  "SETUP.md",
  "source.json"
 ],
 "links": {
  "page": "https://useaiblocks.com/agents/agency-godot-multiplayer-engineer",
  "markdown": "https://useaiblocks.com/agents/agency-godot-multiplayer-engineer.md",
  "json": "https://useaiblocks.com/agents/agency-godot-multiplayer-engineer.json",
  "instructions": "https://useaiblocks.com/skills/agency-godot-multiplayer-engineer/SKILL.md",
  "download": "https://useaiblocks.com/skills/agency-godot-multiplayer-engineer.zip",
  "api_item": "https://useaiblocks.com/api/v1/items/agency-godot-multiplayer-engineer",
  "api_document": "https://useaiblocks.com/api/v1/documents/agent/agency-godot-multiplayer-engineer",
  "mcp": "https://useaiblocks.com/mcp"
 }
}
