# Hosting a Unity Netcode for GameObjects server

> NetCraftGames is designed to host an NGO dedicated server built for Linux x64, using Unity Transport over UDP. NGO's matchmaking, Relay and Lobby services are separate and unaffected; this is about where the server process runs. Not certified yet.

*NetCraftGames (NCG) by Charging Bull Software. Last updated: 2026-10-03. Canonical page: https://netcraftgames.com/engines/unity-netcode-for-gameobjects/*

## Short answer

Yes, by design. If your NGO game already runs as a **dedicated server on Linux x64** and listens with Unity Transport on a UDP port, NetCraftGames can host it: we deploy the build, verify it, and give your clients the address and port. Unity ended Multiplay Game Server Hosting on March 31, 2026, so NGO teams need somewhere else to run the server; NetCraftGames is one option once it launches. NGO, Relay, Lobby, Matchmaker and Distributed Authority are not affected by that change, per Unity.

## What to set in your project

NGO reaches the network through the Unity Transport component. For a dedicated server you set the connection data so the server listens on all interfaces, for example:

```csharp
var utp = NetworkManager.Singleton.GetComponent<UnityTransport>();
utp.SetConnectionData("0.0.0.0", 7777, "0.0.0.0");
NetworkManager.Singleton.StartServer();
```

Clients connect to the public address and port from the connection configuration NetCraftGames gives you. Do not hard-code `127.0.0.1` in the server build.

## What you provide

- A Linux Server build (File > Build Profiles > Linux Server), packed as `.tar.gz`.
- The declared UDP port, a health reply and, ideally, a join probe.
- A loopback player-count endpoint if you want automatic idle shutdown.
- A save path under `/game/` if your server writes state we should preserve.

## Steps


1. **Build for Linux Server.** Use File > Build Profiles, add the Linux Server platform, switch the profile and build. The output is a headless executable such as `UnityServer.x86_64` with its data folder.
2. **Listen on 0.0.0.0.** Call `SetConnectionData("0.0.0.0", port, "0.0.0.0")` on the Unity Transport component in the server path and start with `StartServer()`. Pick one UDP port and keep it fixed.
3. **Add a health and join probe.** Reply to a small UDP or HTTP request on a declared port with a known answer, so a join is proven and not only a socket.
4. **Report players and saves.** Expose a loopback player-count endpoint, and write saves under `/game/saves`, so idle shutdown can save before it stops the machine.
5. **Pack it cleanly.** Run `tar -czf server.tar.gz .` from the build folder after confirming it contains no links, no executables you do not need and no secrets.
6. **Submit, apply the config, test.** After launch, submit the archive, apply the connection configuration to your client and join from another network before inviting players.


## Honest gaps

- **Not certified.** The exact Unity and NGO package versions, a headless start, a client join and scene synchronization still need to be proven with real machines.
- **UDP only in this lane.** The manifest example for NGO declares UDP. Unity WebGL clients using WebSockets are not a tested lane; see [browser WSS](https://netcraftgames.com/engines/browser-websocket/) for the browser path.
- **Relay and Lobby** are Unity services you can keep using; NetCraftGames does not replace them.
- **No anti-cheat** and no host migration.
- **Not every Unity networking game uses Netcode for GameObjects.** If your Linux build's `Managed/` folder holds no `Unity.Netcode.Runtime` assembly because the server is written on plain sockets, the code reading raises a non-blocking advisory. The right choice is then Custom native TCP/UDP (direct) on the [engines page](https://netcraftgames.com/engines/): configuration and deployment only, direct to the server's public IP and port with no gateway, and you supply the join probe.

## Frequently asked questions


### Does NetCraftGames replace Unity Relay or Lobby?

No. Relay, Lobby, Matchmaker and Distributed Authority are Unity services that Unity says are unaffected by the Multiplay wind-down. NetCraftGames only runs your dedicated server process on a Linux machine and gives clients its address. You can keep using Unity's services for matchmaking and lobbies alongside it.

### Which UDP port does an NGO server use?

Whatever you configure. Samples commonly use 7777, but the port is set in your Unity Transport connection data and must match the port you declare to NetCraftGames. Keep it fixed, bind to 0.0.0.0, and make sure the declared UDP port is the one the server actually listens on.

## Sources

- [Unity Manual: Build a Dedicated Server](https://docs.unity3d.com/6000.0/Documentation/Manual/dedicated-server-build.html), accessed 2026-10-03
- [Unity Discussions: End of services (Multiplay wind-down)](https://discussions.unity.com/t/end-of-services/1698428), accessed 2026-10-03

## Related pages

- [How to build a Linux dedicated server from Unity](https://netcraftgames.com/guides/build-linux-dedicated-server-unity/): Step by step: build a headless Linux dedicated server from Unity 6 with Build Profiles, bind it correctly, test it and pack it for hosting.
- [What a connection config file must contain](https://netcraftgames.com/guides/connection-config-file-contents/): What a deployment manifest and a player connection config must contain for a hosted multiplayer server, with a real example and the rules that cause rejections.
- [How to host a multiplayer game server cheaply](https://netcraftgames.com/guides/host-multiplayer-game-server-cheaply/): Honest ways to host a multiplayer game server cheaply: stop idle hours, right-size, mind egress, use free tiers and decide when managed hosting is worth it.
