> ## Documentation Index
> Fetch the complete documentation index at: https://docs.playflowcloud.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Quick Start - Any Game Engine

> Choose your networking framework and deploy your first game server on PlayFlow Cloud

# Choose Your Quick Start Guide

Select the networking framework you're using to get started with PlayFlow Cloud.

## Video Tutorial

<iframe width="100%" height="400" src="https://www.youtube.com/embed/ydFBvDOaeDw" title="Unity on PlayFlow Cloud Tutorial" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />

<Tip>
  This video demonstrates deploying Unity games to PlayFlow Cloud. The concepts apply to all Unity networking frameworks.
</Tip>

## Popular Networking Frameworks

PlayFlow's backend is engine-agnostic — it hosts any headless Linux dedicated server over the REST API. Unity is the first-class SDK, and the guides below cover the most common setups.

<CardGroup cols={2}>
  <Card title="Mirror" icon="network" href="/quickstart/mirror">
    High-level networking library with clean API and battle-tested architecture
  </Card>

  <Card title="Mirror WebGL" icon="globe" href="/quickstart/mirror-webgl">
    Deploy Mirror games for web browsers with secure WebSocket connections
  </Card>

  <Card title="Fish-Net" icon="fish" href="/quickstart/fishnet">
    High-performance networking with prediction and lag compensation
  </Card>

  <Card title="Fish-Net WebGL" icon="globe" href="/quickstart/fishnet-webgl">
    Deploy Fish-Net games for web browsers with secure WebSocket connections
  </Card>

  <Card title="Unity Netcode" icon="unity" href="/quickstart/netcode">
    Unity's official Netcode for GameObjects (NGO)
  </Card>

  <Card title="Godot" icon="gamepad-2" href="/quickstart/godot">
    Deploy a Godot dedicated server using the REST API
  </Card>

  <Card title="Generic Setup" icon="server" href="#generic-setup">
    For other engines, frameworks, or custom networking solutions
  </Card>
</CardGroup>

<Info>
  **Not sure which framework to choose?**

  * **Mirror**: Great for beginners, large community, stable and mature
  * **Fish-Net**: Best performance, advanced features, actively developed
  * **Unity Netcode**: Official Unity support, good integration with Unity services
</Info>

## Generic Setup

If you're using a different framework or custom networking solution, follow these general steps.

<Info>
  **Not using Unity?** The Unity plugin and the Unity prerequisites below only apply to Unity projects. For any other engine (Godot, Unreal, custom C++/Go/Node servers, etc.), skip the Unity tooling and use **Option 2: Manual Upload** together with the [REST API](/fundamentals/api) — PlayFlow runs any headless Linux dedicated server. The [Godot quickstart](/quickstart/godot) is a worked example.
</Info>

<Warning>
  **Prerequisites (Unity)**

  If you're building with Unity, make sure you have completed the following setup steps first:

  <CardGroup cols={2}>
    <Card title="Installation Guide" icon="download" href="/guides/installation">
      Install the PlayFlow SDK into your Unity project.
    </Card>

    <Card title="Unity Modules Setup" icon="box" href="/guides/unity-modules">
      Install the required Linux modules for dedicated server builds.
    </Card>
  </CardGroup>
</Warning>

### 1. Unity Project Setup

Before uploading your server, ensure your Unity project is correctly configured.

#### Configure Your Networking

Your game needs a networking transport. Make sure you have one set up. Take note of the **Port** you are using (e.g., `7777`). You will need this later.

#### Ensure Server Auto-Start

Your dedicated server build must start the server automatically when it launches. Most networking libraries have a setting for this, often called "Start on Headless" or similar. Ensure this is enabled so your server doesn't just launch and sit idle.

### 2. PlayFlow Account & Project Setup

<Steps>
  <Step title="Create your PlayFlow Account">
    First, you'll need an account.

    1. Visit [app.playflowcloud.com](https://app.playflowcloud.com).
    2. Sign up with your email or connect with your GitHub/Google account.
  </Step>

  <Step title="Set up your Organization">
    Organizations help you manage your game projects and teams. You'll be prompted to create one after signing up. Give it a name (e.g., your studio name).
  </Step>

  <Step title="Create your First Project">
    Projects in PlayFlow represent individual games.

    1. From your organization dashboard, click **Create Project**.
    2. Give your project a name and click **Create**.
  </Step>
</Steps>

### 3. Upload Your Game Server

You can upload your game server build either directly from the Unity Editor using the PlayFlow plugin (recommended) or manually through the dashboard.

<Tabs>
  <Tab title="Option 1: Upload via Unity Plugin">
    This is the easiest method for Unity developers.

    1. In your PlayFlow project dashboard, go to **API Keys** and copy your **PlayFlow API Key**.
    2. In the Unity Editor, open the PlayFlow window (**PlayFlow → PlayFlow Cloud**).
    3. Paste your API key into the token box.
    4. Select your game server scene from the list.
    5. Click **Upload Server**.

    The plugin will automatically build a headless Linux server and upload it directly to PlayFlow.
  </Tab>

  <Tab title="Option 2: Manual Upload">
    This method works for any game engine.

    1. Build a **headless Linux server** from your game project.
    2. Create a `.zip` file containing your server executable and all its dependencies.
       * PlayFlow defaults to running `Server.x86_64`. If your executable has a different name (e.g. `GameServer.x86_64`), pass `executable_path` when creating the build — see the [API guide](/fundamentals/api#upload-a-build).
    3. In your PlayFlow project dashboard, navigate to the **Builds** tab and click **Upload Build**.
    4. Upload your `.zip` file.
  </Tab>
</Tabs>

### 4. Configure and Deploy

<Steps>
  <Step title="Configure Network Ports">
    For clients to connect, you must tell PlayFlow which port to open.

    1. Go to the **Configuration** tab in your project.
    2. Under **Network Configuration**, add a new port.
    3. Set the **Port Number** to match the one your networking transport uses (e.g., `7777`).
    4. Set the **Protocol** (usually UDP for games).
    5. Save your settings.
  </Step>

  <Step title="Deploy Your Server">
    Now you're ready to launch your server.

    1. Navigate to the **Servers** tab.
    2. Click **Create Server**.
    3. Select the build you just uploaded.
    4. Choose a region and an instance type.
    5. Click **Launch Server**.
  </Step>

  <Step title="Connect to Your Server">
    Once the server status changes to "Running", it's live.

    1. Click **Details** on your running server.
    2. In the **Network** section, read the public **host** and **port** for each mapping.
    3. Use that host and port in your game client to connect.

    <Warning>
      Always read the connection details from the server's response — never hardcode them. Each entry in the response's `network_ports[]` array gives you the `host` and the **`external_port`** to connect to. The external port is allocated by PlayFlow's proxy and is **different from the internal port** your server listens on (it is not `7777`). TCP ports return a hostname (for example `relay.computeflow.cloud`) while UDP ports return a proxy IP address, so treat the host as a host string, not always a raw IP.
    </Warning>
  </Step>
</Steps>

## Next Steps

Congratulations! Your first server is running. Now you can explore more of PlayFlow's features.

<CardGroup cols={3}>
  <Card title="Game Servers Overview" icon="server" href="/unity/overview">
    Learn more about how dedicated servers work on PlayFlow.
  </Card>

  <Card title="Game Servers API" icon="code" href="/unity/game-servers">
    Learn to manage servers programmatically from your game.
  </Card>

  <Card title="Lobby System" icon="users" href="/unity/lobby-overview">
    Learn how to create lobbies and match players together.
  </Card>
</CardGroup>
