{
 "schema": "aiblocks-page/1",
 "id": "agency-unity-multiplayer-engineer",
 "type": "agent",
 "name": "Unity multiplayer engineer agent",
 "summary": "Plan Unity multiplayer with Netcode for GameObjects. Decide who owns what, what syncs and how to hide lag, with tests for slow links and cheaters.",
 "headline": "Unity multiplayer engineer agent",
 "subhead": "Describe your Unity game, how many players it holds and what must stay in sync. It decides what the server owns, sorts each piece of state into the right Netcode tool, and plans lag hiding. You get a design and a test plan for slow connections and cheaters.",
 "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": "codebase",
   "required": false,
   "label": "Codebase",
   "what": "a project's code, in a folder or repo the AI can open"
  }
 ],
 "outputs": [
  {
   "type": "plan",
   "required": true,
   "label": "Plan",
   "what": "a dated plan: what to do, in what order, with a decision rule for each step"
  },
  {
   "type": "audit_report",
   "required": true,
   "label": "Audit report",
   "what": "findings with evidence, severity, missing inputs and next actions"
  }
 ],
 "you_give": [
  "The game type and the most players one match holds",
  "Who hosts the game, such as a dedicated server, a player host, or not decided",
  "Your Unity and Netcode for GameObjects versions",
  "Everything that must stay in sync, such as positions, health, items and score",
  "Your current networking scripts (optional)",
  "The lowest connection quality you want to support (optional)"
 ],
 "you_get": [
  "A decision on who owns the game truth, with the tradeoff",
  "A table that sorts each piece of state into the right Netcode tool",
  "A plan for player movement and lag hiding",
  "A bandwidth plan and a Relay and Lobby plan",
  "A cheat check on every request the server accepts",
  "A test plan for slow connections and busy matches"
 ],
 "use_when": [
  "You are starting a Unity co-op or competitive game and need to choose how it will sync.",
  "Your players see different things, or movement jumps when the connection is slow.",
  "You worry that a player could cheat by sending fake data to your server.",
  "You are adding Relay and Lobby and need to know what to put in each."
 ],
 "skip_when": [
  "You use Godot. Use the Godot multiplayer designer.",
  "You use Unreal Engine. Use the Unreal multiplayer designer.",
  "You use Mirror, Photon or another network tool. This agent covers Netcode for GameObjects and Unity Gaming Services only.",
  "You only want to tidy your project's structure. Use the Unity software architect."
 ],
 "output_sample": {
  "input": [
   "Your game type and the most players one match holds",
   "Who hosts the game",
   "Everything that must stay in sync",
   "Your Unity and Netcode versions"
  ],
  "prerequisites": [
   "A Unity project with Netcode for GameObjects, to build and test the plan"
  ],
  "output": [
   {
    "name": "Authority decision",
    "contains": "Whether the server or a host player owns the truth, why, and what that choice costs."
   },
   {
    "name": "State map",
    "contains": "Each piece of state sorted into NetworkVariable, ServerRpc or ClientRpc, with its update rate."
   },
   {
    "name": "Movement and lag",
    "contains": "What players send, what the server decides, and how prediction and correction work."
   },
   {
    "name": "Bandwidth plan",
    "contains": "How often each kind of data updates and how to keep it small."
   },
   {
    "name": "Relay and Lobby",
    "contains": "What goes in Relay and in Lobby, and which Lobby fields stay private."
   },
   {
    "name": "Cheat check",
    "contains": "Each server request, what a cheater could send, and the check that stops it."
   },
   {
    "name": "Test plan",
    "contains": "Tests at set delays and with several players, each with what must be true."
   }
  ]
 },
 "output_shape": "AUTHORITY DECISION\n  <server or host> | <why> | <what it costs>\n\nSTATE MAP\n  <state> | <NetworkVariable, ServerRpc or ClientRpc> | <update rate> | <who may change it>\n\nMOVEMENT AND LAG\n  <inputs sent> | <what the server decides> | <prediction and correction plan>\n\nBANDWIDTH PLAN\n  <kind of data> | <how often> | <how to keep it small>\n\nRELAY AND LOBBY\n  <what goes where> | <public, member or private>\n\nCHEAT CHECK\n  <ServerRpc> | <what a cheater could send> | <server check>\n\nTEST PLAN\n  <test> | <setup> | <what must be true>\n\nOPEN QUESTIONS\n  <what is missing or must be measured>",
 "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 your game, the player count and who hosts. List what must sync. Say MISSING for what you have not decided.",
  "Say \"Plan this. Do not assume numbers I did not give.\" Your AI asks once for anything missing.",
  "Read the authority decision first. Make sure you agree with who owns the truth before you read the rest.",
  "Build the first piece in Unity, then run the test plan with simulated slow connections.",
  "Paste what you see back and ask for the next step."
 ],
 "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": "Developer tools engineer",
   "url": "https://useaiblocks.com/skills/agency-engineering-developer-tooling-engineer",
   "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/unity/unity-multiplayer-engineer.md",
  "licence": "MIT",
  "original_name": "Unity Multiplayer Engineer",
  "commit": "b37b5bb33b78f2c1d6567d98e25ca818e3259219"
 },
 "credits": [
  {
   "title": "Unity Multiplayer Engineer",
   "by": "Michael Sitarzewski and Agency Agents contributors",
   "url": "https://github.com/msitarzewski/agency-agents/blob/b37b5bb33b78f2c1d6567d98e25ca818e3259219/game-development/unity/unity-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-unity-multiplayer-engineer",
  "markdown": "https://useaiblocks.com/agents/agency-unity-multiplayer-engineer.md",
  "json": "https://useaiblocks.com/agents/agency-unity-multiplayer-engineer.json",
  "instructions": "https://useaiblocks.com/skills/agency-unity-multiplayer-engineer/SKILL.md",
  "download": "https://useaiblocks.com/skills/agency-unity-multiplayer-engineer.zip",
  "api_item": "https://useaiblocks.com/api/v1/items/agency-unity-multiplayer-engineer",
  "api_document": "https://useaiblocks.com/api/v1/documents/agent/agency-unity-multiplayer-engineer",
  "mcp": "https://useaiblocks.com/mcp"
 }
}
