GameCopter runs your Fish-Net game servers on infrastructure you control. Spin up nodes in any region, deploy from a dashboard, and let ping-based matchmaking route every player to the closest server, for WebGL and mobile alike.
Built on Fish-Net · Unity · Docker · No per-CCU fees
Everything in one place
From bootstrapping a fresh VPS to draining a node for a deploy, GameCopter handles the operations so you can ship games.
Fish-Net Multipass runs Bayou (WebSocket) and Tugboat (UDP) side by side. Browsers connect over WSS through the CDN; mobile hits raw UDP direct. Same container.
Add a fresh Ubuntu VPS, paste an SSH key, and watch a live progress bar install Docker, Nginx, the agent and the firewall. No manual server setup.
Clients ping every region and join the nearest healthy node. Atomic room assignment fills the fullest room first. No race conditions, no double-booked players.
Real-time CCU, CPU, RAM, disk and load per node, plus per-game container health that de-lists a wedged server from matchmaking before players notice.
Push a build, drain rooms, swap the container, rejoin matchmaking. Every version is kept, so rollback is one click to any previous image.
Tail any container's docker logs straight from the dashboard. Pick a game or a node and watch output stream without SSH.
Three steps to live
Buy a VPS in any region, add it in the dashboard, and bootstrap it over SSH. Docker, Nginx, the agent and the firewall are configured for you.
Tag your Unity headless server image to GHCR, add the build, pick your nodes. GameCopter pulls, runs and wires up Nginx automatically.
The matchmaking API returns the closest healthy node. Fish-Net connects over WebSocket or UDP and players are in a room, anywhere on earth.
// the client pings these and joins the lowest-latency node [ { "node": "eu1", "region": "Europe", "ws_url": "wss://my-game.eu1.gamecopter.com", "udp_host": "46.101.120.237", "udp_port": 7001 } ]
Two paths, one server
Each game container speaks both protocols at once, so browsers and phones share the same rooms.
Browser clients connect over wss:// through a CDN on port 443. TLS terminates at the edge; Nginx proxies plain WebSocket to the Bayou port. A wildcard hostname covers every game, with no per-game CDN config.
iOS and Android connect straight to the node's raw IP over Tugboat UDP, bypassing the CDN entirely for the lowest-latency path. The matchmaking API hands back the droplet IP and port; no DNS in the loop.
Owned infrastructure
Hosted multiplayer services charge per concurrent user, forever. GameCopter runs on VPSes you rent. Pay flat for the hardware, scale by adding nodes, and keep every byte of player traffic on infrastructure you control.
We're building it now. Leave your email and we'll tell you the moment early access opens. It also helps us decide which regions and features to build first.
No spam, just one email when early access is ready. Unsubscribe anytime.