Fly together.
Run your own FPV Sim server.
One small download for Windows or Linux. Pick a port, share the address (or a free playit.gg tunnel), and your friends join from the game's Multiplayer tab. You see who is in, press Start, everyone votes for a map, and you fly together.
Get started
About five minutes. The installer downloads the server, and a private copy of Node.js if your computer doesn't have it.
Download and run the installer
Put install.bat in an empty folder (e.g. Documents\FPV Server) and double-click it. It makes a FPV-Sim-Server folder with everything inside. (Windows may say it protected your PC: More info → Run anyway.)
In the folder where you want the server:
curl -fsSL https://raw.githubusercontent.com/guyka2212/flysim-servers/main/install.sh | sh
No curl? wget -qO- …/install.sh | sh. It makes a FPV-Sim-Server folder.
Start it once
Open FPV-Sim-Server and double-click start.bat. The first time it creates eula.txt and server.settings and stops.
cd FPV-Sim-Server ./start.sh
The first time it creates eula.txt and server.settings and stops.
Agree to the EULA
Open eula.txt, read it, and change eula=false to eula=true. Save.
Make yourself the owner
In server.settings set Owner-user-name= to your user name in the game (the one you chose in the Multiplayer tab). The owner gets the Start button and can run commands from the game. Change any other setting you like.
Start the server and choose the port
Double-click start.bat. It asks Port to run on [25580]: press Enter, or type another port. Want the admin window? Run start.bat gui from a terminal (or make a shortcut with gui on the end).
./start.sh asks Port to run on [25580]: press Enter, or type another. ./start.sh 25580 skips the question. On a desktop, ./start.sh gui also opens the admin window. On a headless server, keep it running in screen / tmux.
Windows Firewall may ask about Node.js: allow it.
Share the address
Same Wi-Fi: your local IP and port, like 192.168.1.20:25580. Friends anywhere: make a free playit.gg tunnel and share its address, like name.gl.joinmc.link:12345.
Join from the game
FPV Sim → Multiplayer → pick a user name the first time → paste the address → Add server → Join. The server list remembers it.
How a round works
The owner can press End round (or type lobby) to go back for a new vote. In the lobby there is a chat, and the owner has a console for server commands. Recordings made on a server include the other pilots, and the replay editor can show or hide their names. Pilots signed in to an FPV Sim account show their Pilot Level next to their name, and everyone sees each other's drone skins (server 1.1+).
server.settings
key=value, one per line. true/false switch things on and off; numbers are numbers. Save and type reload in the server window, or restart.
| Setting | Default | What it does |
|---|---|---|
server-name | My FPV Sim server | Name in the server list and lobby |
motd | Welcome!… | Message in the lobby |
port | 25580 | TCP port (also asked at start) |
Owner-user-name | (empty) | Your game user name: Start button and commands from the game |
max-drones | 16 | Most players at once |
drone-collision | true | Drones bump into each other (and crash when hit hard) |
drone-show | true | Players see each other. false: everyone flies alone on the same map |
show-names | true | Names float above the drones |
voting-time | 30 | Seconds the map vote lasts (ends early when everyone voted) |
min-players | 1 | Players needed before the owner can start |
allow-teleport | true | Players may use the map (M) to teleport |
allow-recording | true | Players may record (V) |
allow-plugins | true | Players may use game plugins here (false pauses them while they're on the server) |
allowed-plugins | (empty) | Empty = any plugin, or plugin ids separated by commas to allow only those |
maps | all | Maps in the vote: all or ids, e.g. paris,lake,stadium |
password | (empty) | Players must type it to join |
whitelist | false | Only names in whitelist.txt (one per line) may join |
state-rate | 20 | Position updates per second (10 to 30) |
Server commands
Type them in the server window, the admin window (gui), or the owner console in the game's lobby.
| Command | What it does |
|---|---|
list | Who is online: name, IP, drone, ping |
kick <name> [reason] | Remove a player (they can come back) |
ban <name> [reason] | Remove and keep out, by name (and IP when they connect directly) |
unban <name> · banlist | Let back in · show bans |
tp <name> <target> · tpall <target> | Teleport a player (or everyone) to a player |
say <text> | Message everyone |
vote · map <id> · maps · lobby | Start the vote · force a map · list maps · end the round |
owner <name> | Set the owner (saved) |
set <key> <value> · settings · reload | Change and save a setting · show them · reread the file |
help · stop | All commands · shut down |
Friends outside your network: a tunnel
Like a Minecraft server: a free tunnel gives your server a public address, no router settings. The server is plain TCP, so any TCP tunnel works.
playit.gg (recommended)
Sign up, install the agent, add a TCP tunnel to 127.0.0.1 and your port, share the address it gives you (with the number after the colon).
Other tunnels
ngrok (ngrok tcp 25580), Cloudflare, zrok, localtonet…, or a private network like Tailscale, ZeroTier or Radmin VPN. Or forward TCP port 25580 on your router.
Check it works
Open http://<address> in any browser. It should say FPV Sim server is running. The game's server list also shows Online / Offline and the player count.
Maps in the vote
The maps are built into the game; the server only needs their ids. Limit the vote with maps= in server.settings.
FAQ
What does it need to run?
Windows 10/11 or any 64-bit Linux (x64 or ARM, so a Raspberry Pi 4/5 works too), with Node.js 18 or newer. The installer fetches Node.js into the server folder if it's missing. Uses very little CPU; about 1 KB/s for each other pilot a player can see.
Does it need a desktop?
No. Without gui it is a plain terminal program, fine on a VPS. With gui it also opens an admin page in your browser, only reachable from that computer.
How do I update?
Run the installer again in the same place. Your server.settings, eula.txt, bans and whitelist are kept.
"Different game version"
The game and server must speak the same version. Update both: the game, and the server by running the installer again.
Players behind a tunnel all show 127.0.0.1
That's how TCP tunnels work: everyone arrives through the tunnel agent. Bans still work, by name.
Can I run it as a service on Linux?
Yes. A systemd unit with ExecStart=/path/FPV-Sim-Server/start.sh 25580 and WorkingDirectory=/path/FPV-Sim-Server. Make sure the EULA is accepted first.