A modern multiplayer lobby and launcher for any game that does peer-to-peer netplay through a source port over UDP. Ships with built-in relay support so guests never need to port-forward.
Linux users may need to install libgtk-3-0 and
libwebkit2gtk-4.1-0 (or the distro equivalent) and run
chmod +x Netplayseeker before launching — see the
Running on Linux
section below. macOS is planned but not yet available.
Only required if the app refuses to start with a missing-library error. On Debian / Ubuntu:
sudo apt update && sudo apt install libgtk-3-0 libwebkit2gtk-4.1-0
Unzip the release somewhere convenient, for example ~/Netplayseeker:
unzip Netplayseeker-linux-x64.zip -d ~/Netplayseeker
The executable bit is usually preserved by zip, but if double-clicking does nothing, set it manually:
chmod +x ~/Netplayseeker/Netplayseeker
Run it from a terminal or your file manager:
~/Netplayseeker/Netplayseeker
"error while loading shared libraries"
A required library is missing. Install the dependencies above, then check which one is missing:
ldd ./Netplayseeker | grep "not found"
"cannot open display"
You are running on a headless server or over plain SSH. A graphical session
(X11 or Wayland) is required. On a server, use X11 forwarding
(ssh -X) or run under a virtual display such as xvfb-run.
Nothing happens when double-clicking
The executable bit may not be set. Run chmod +x Netplayseeker
from a terminal first.
WebKit rendering issues
Update your graphics stack:
sudo apt update && sudo apt upgrade
Netplayseeker is a lobby client and server system for games that support peer-to-peer netplay through a source port over UDP. It finds your friends, syncs maps, generates the right command line for each player, and launches the game — so you just pick a room and play.
Currently ships with source-port support for SDLDuke and NetDuke32 (Duke Nukem 3D), with more source ports and games on the way. If your favourite game has a source port that does peer-to-peer UDP netplay, it can be added.
Launch games through SDLDuke or NetDuke32 today. Each source port receives the correct command-line arguments automatically.
Direct mode uses your own port-forward if you have one. Relay mode routes UDP through a public relay server so guests never need to port-forward.
Host picks a .map file, and every other client downloads it automatically — no more "missing map" desyncs.
Host a private room with a password. Guests get an in-app prompt; passwords are bcrypt-hashed server-side.
Live lobby chat for everyone, plus a room-scoped chat so you can coordinate while the game is loading.
Subtle tones for chat messages, player joins, room creation, and game launch. Mute with one click.
On routers that support it, Netplayseeker opens the game port automatically. Falls back to relay mode if UPnP fails.
Checks for updates on every launch. New versions download in the background and apply on restart — no manual reinstall needed.
Enter a nickname and click Connect. The client registers or logs in with the lobby server, then opens a WebSocket for live updates.
The host picks a source port, connection mode (Direct or Relay), and — optionally — a usermap. Guests see the room appear in the list, click it, and are in.
Guests click Ready. The host's Launch Game button becomes clickable once everyone is ready.
Host clicks Launch. The correct command line is generated per player, the game opens, and everyone joins the same match. When the game closes, the client returns to the lobby.
| Source Port | Host | Guest |
|---|---|---|
SDLDuke |
/v1 /l1 /m /c1 /tx -net netlist.txt |
/v1 /l1 /m /c1 /tx -net netlist.txt |
NetDuke32 |
-v1 -l1 -m -c1 -tx -net /n0:N |
-net /n0 <host-or-relay-ip> |
N = actual connected player count. Usermap selection adds
-map <local-path> to both host and guest command lines, and each
side uses its own local path — the file content is identical because the
lobby server syncs it before launch.
Guests need zero configuration. The relay server accepts traffic from any NAT and forwards UDP packets between host and guests. Good for the majority of home networks.
Lowest latency — traffic flows host-to-guest directly. Requires the host to have UDP 23513 open on their router, either manually or via UPnP.
Commercial VPNs with symmetric NAT can break the relay for the VPN'd player. Real-internet play is unaffected. Workaround: only one side behind a VPN at a time.
DUKE3D.GRP and DUKE.RTS from your original
copy of the game into the source port's folder. These files are
copyrighted and are not included with the source ports.
You can buy the game from
Zoom Platform ↗.
DUKE3D.GRP and DUKE.RTS files shared identically with all playersWindows: unzip and run Netplayseeker.exe. If SmartScreen appears, click More info → Run anyway. Linux: unzip, install the GTK 3 / WebKitGTK 4.1 dependencies (see Running on Linux), then chmod +x Netplayseeker and run it.
Copy DUKE3D.GRP and DUKE.RTS from your original Duke Nukem 3D: Atomic Edition install into the source port's folder. Then point Netplayseeker at your source-port executables (duke3d_w32.exe, netduke32.exe) and — if you use them — your usermap folders.
Enter a nickname, click Connect, then create or join a room. Everyone clicks Ready, the host clicks Launch, and the game starts on every machine.