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.
This is an early build. Core functionality works, but expect rough
edges and the occasional crash. Please report issues so they can be
fixed. Known limitations are listed further down this page.
🕒
A Personal Project — Updates May Be Slow
Netplayseeker was built entirely in my own time, outside of work.
Because of a busy day-job schedule, updates and bug fixes may be
low priority and arrive irregularly. Issues you report are still
very welcome — they just may take a while to get to. Thanks for
your patience.
🛡️
Windows SmartScreen Warning
Netplayseeker is currently unsigned. When you first run
it, Windows may show a "Windows protected your PC" warning. This is
normal for unsigned software. Click More info →
Run anyway to proceed. Code signing is planned for a
future release.
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.
Changelog
Latest v1.0.12
2026-10-20
ProDuke Team Games now work as intended! — Team-based game modes (TDM, CTF, 1-Flag CTF, ATK/DEF CTF, TLMS) now launch with the correct game mode flags. The "Player Choices" UI now correctly enables the Team selector for these modes so players can choose their side, while disabling it in non-team modes.
Color Selection restricted to Non-Team Modes — To prevent confusion and invalid arguments, the Color selection dropdown is now greyed out and disabled whenever a Team game mode is active. Color selection is exclusively available for DM, COOP, Survival, LMS, and Terminator modes.
ProDuke Game Mode Auto-Presets — Selecting a game mode (DM, COOP, TDM, CTF, Survival, LMS, TLMS, or Terminator) now instantly wipes and applies the standard competitive default loadout for NetFlags, Weapon Flags, and Inventory Flags. You can still manually tweak them, which will automatically set the preset dropdown to "Custom".
ProDuke Game Mode Command-Line Fixes — Fixed a critical bug where game modes with similar names were launching with the wrong /cN arguments.
Team Dukematch (TDM) now correctly launches as /c3 (was falling back to /c1 DM), 1-Flag CTF and ATK/DEF CTF now launch as /c5//c6 (was /c4), and TLMS now launches as /c9 (was /c8).
State Syncing Fixes — Switching between Team and Non-Team modes now instantly clears any previously selected (and now invalid) color or team from the server to prevent ghost badges from appearing in the player list.
Lobby Server: Relay Port Leak Fixed — Fixed a backend bug where rejected room creations (like trying to host a second room, or using a duplicate room name) would permanently consume a relay UDP port. This prevents the relay port pool from slowly exhausting over time.
v1.0.112026-10-19
Window Size Memory — The launcher now remembers your preferred window size. No more resizing the client every time you open it!
Remember Last Nickname — Your last used nickname is now saved locally and auto-filled on startup. Just click "Connect".
Live Usermap Refresh — If you add a new .map file to your Usermaps folder while inside a room, simply click the Usermap dropdown to instantly refresh the list without restarting.
v1.0.102026-10-18
UDP Port Checker — The launcher now automatically tests if your UDP port 23513 is reachable from the internet when you enter a room.
"Port Blocked" Badge — A red icon now appears next to players whose ports are blocked, warning everyone that Direct mode might fail for them. This icon syncs instantly for all players in the room.
Anti-Flood Protection — Hardened the client-side UDP responders with rate limiting and exact packet-size checks to prevent the app from being used for network reflection attacks.
Fixed Duplicate Rooms — Players can no longer create multiple rooms at the same time. The server will reject it, and the UI now disables the button to prevent double-clicks.
NetDuke32 Nicknames — Fixed a bug where NetDuke32 players were stuck with their default config names. The launcher now correctly passes the -name command.
NetDuke32 Relay Connections — Fixed a bug where NetDuke32 guests were trying to connect to the relay on the wrong port.
NetDuke32 "Waiting for Players" Hang — Guests now wait exactly 10 seconds before launching. This guarantees the host has enough time to load the map and bind the UDP port before the guests try to connect.
Port Checker Race Condition — Added a 500ms buffer before launching games to ensure the launcher has fully released port 23513 so the game can use it.
v1.0.92026-10-18
ProDuke launch fixes — General fixes applied to the ProDuke launch commands for improved reliability and correct execution.
v1.0.82026-10-18
ProDuke command-line fixes — the ProDuke
command line is now generated correctly. Arguments are emitted
in the order ProDuke expects, and the weapon and inventory
flags use the correct /weapflags /
/invflags syntax. Together these fixes resolve
cases where ProDuke silently ignored loadout flags, which
caused missing keycards and other starting-inventory issues
in modes like Hotel Hell with the Classic preset.
ProDuke connection fix — ProDuke's
netlist.txt now uses interface 0.0.0.0
(IPv4) instead of the previous dual-stack [::]
bind. The old bind caused a Windows WSAEFAULT
error ("invalid pointer address") whenever ProDuke
tried to send to an IPv4 peer, which broke connections to any
room.
Settings save fix — the ProDuke executable
path in the Settings modal now saves correctly. Previously a
typo in the save function meant the path was silently written
as empty, which blocked joining or hosting ProDuke rooms with
a "path not configured" warning. Users who hit this bug before
updating should re-select their produke.exe and
click Save one more time.
Game Type dropdown fix — switching between
different source ports (e.g. from NetDuke32 to ProDuke) a
second time no longer fails to refresh the Game Type dropdown,
which previously left options missing or incorrect.
v1.0.72026-10-17
ProDuke source-port support — ProDuke joins
NetDuke32, SDLDuke, and NBlood as a fully supported source port.
All of its game modes are wired up: Dukematch, COOP, Team
Dukematch, Capture the Flag, 1-Flag CTF, ATK/DEF CTF, Survival,
LMS, TLMS, and Terminator. Read the ProDuke setup guide.
NetFlags presets and custom flags — pick from
the Classic, Alternative, Modern, or Hardcore NetFlags presets,
or toggle every individual flag manually. Starting weapon and
inventory loadouts are also configurable.
Bots and match limits — enable ProDuke bots and
set a count, plus optional score and time limits. When bots are
disabled, /q0 is always passed so the game can't
silently spawn default bots.
Per-player team and colour sync — each player
picks their own colour and team (when the game mode is
team-based). Those choices sync to everyone in the room and are
shown next to each player's name.
Spectator and demo recording — per-player
Spectate and Record Demo options, wired to ProDuke's
-spec and /r flags.
v1.0.62026-10-16
Nicknames must now be unique — if you try to
connect with a nickname that's already in use by another player,
you'll get a clear error message and be prompted to pick a
different one. The client's nickname field re-enables and focuses
so you can retype without restarting.
Unidentified clients can no longer see the lobby —
a client that fails the nickname check is now completely excluded
from lobby broadcasts. Previously, a rejected client could still
see the player list, room list, and lobby chat even though it
hadn't successfully connected. It's now isolated until it picks
a valid nickname.
Re-identify without reconnecting — after a
nickname is rejected, entering a new one and clicking Connect
reuses the same WebSocket connection instead of opening a fresh
one. Faster and cleaner.
v1.0.5
Player latency display — the lobby's Online
Players list now shows each player's round-trip time to the
lobby server, with colour-coded badges (green below 80 ms,
amber 80–200 ms, red above 200 ms). Hovering a badge
explains exactly what's being measured.
Peer-to-peer latency inside rooms — once you
join a room, each player's row shows the estimated latency
between you and them. Numbers refresh every 10 seconds.
Relay and direct modes both supported — relay
rooms show ~Nms derived from the sum of two relay
round-trips. Direct rooms show the real measured round-trip for
the host, and ~Nms for other guests (via the
host). The ~ prefix marks derived values; a number
without a tilde is a direct measurement.
Ping scope labels — pane headers now read
Online Players · to lobby and
Players in Room · via relay (or · direct) so
it's always clear which kind of latency is being shown.
Hovering either header gives a longer explanation.
Relay and direct-mode probe support — the
relay now echoes small NPS_PING_ UDP probes, and
direct-mode hosts run a lightweight responder on port 23513
before the game launches so guests can measure their latency
before clicking Ready. The responder releases the port
automatically when the game starts.
v1.0.4
NetDuke32 relay now supports more than 2 players —
previously the host proxy was capped at one guest slot due to
NetDuke32's netcode instability over relay. With the patched NY00
build, NetDuke32 relay now scales to match NBlood and SDLDuke's
multi-player support.
NBlood rooms now default to "None" in the room list
— the room-list Map column no longer shows a Duke episode/level
placeholder for NBlood rooms. NBlood has no equivalent default map,
so "None" is the correct initial value until the host picks a
Cryptic Passage addon or custom map.
Blood Addon dropdown is now always available —
removed the previous restriction that disabled it when a custom
usermap was selected. If both a custom map and Cryptic Passage are
chosen, -ini CRYPTIC.INI still gets passed to every
player.
v1.0.3
NBlood custom map transfer — hosts can pick a Blood
.map file from a dedicated Blood usermaps folder, and
every player downloads it automatically before launch. Once in-game,
the map is selected from NBlood's own menu. Netplayseeker handles
the file transfer; NBlood handles map selection. Duke and Blood map
folders are kept separate in Settings so they never mix.
Lobby peek — while inside a room, click the new
Lobby button to switch back to the lobby and chat with
everyone without leaving your match. A Back to Room button
returns you to the room view. Your room stays open in the background.
Version number is now visible in the client — the
top bar shows the running version (e.g. v1.0.3) so you
always know what you're on.
v1.0.2
NBlood multiplayer support — including the Cryptic Passage expansion via -ini CRYPTIC.INI.
NBlood launch support — host uses -server N, guests use -client <ip>, both use -nosetup and -pname.
SDLDuke fraglimit greyed out — SDLDuke does not support a frag limit, so the field is now permanently disabled for that port.
NBlood skill lock — skill dropdown is locked to "No Monsters" for NBlood.
Auto-updater UI — the client now checks for updates on launch and can install them in the background.
v1.0.1
SDLDuke and NetDuke32 multiplayer lobbies.
Relay mode for guests behind NAT (no port-forward needed).
Password-protected rooms with in-app password prompt.
Lobby chat, room chat, and usermap sync for Duke ports.
UPnP automatic port forwarding with relay fallback.
Running on Linux
🐧
Linux Dependencies
Netplayseeker is dynamically linked against GTK 3 and
WebKitGTK 4.1. Most desktop installs already have them, but if the
app fails to launch with an "error while loading shared libraries"
message, install them first:
sudo apt install libgtk-3-0 libwebkit2gtk-4.1-0
The same package names apply on Debian 13 (Trixie) and Ubuntu 24.04+.
On older releases, libwebkit2gtk-4.1-0 may need to come from
backports.
Install dependencies (if needed)
Only required if the app refuses to start with a missing-library error. On Debian / Ubuntu:
The executable bit is usually preserved by zip, but if double-clicking does nothing, set it manually:
chmod +x ~/Netplayseeker/Netplayseeker
Launch
Run it from a terminal or your file manager:
~/Netplayseeker/Netplayseeker
Linux troubleshooting
"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
Before You Download the Source Ports
🎮
You need the Duke Nukem 3D Atomic Edition game files
The Duke source ports below ship with the engine only — they do not
include the game content. To play, you must copy
DUKE3D.GRP and DUKE.RTS from your own
original copy of Duke Nukem 3D: Atomic Edition into
the source port's folder.
Atomic Edition recommended:
the Duke ports — including ProDuke — have only been tested against
Atomic Edition game files. Other retail or shareware versions may
work, but have not been verified and are not supported.
NBlood ships with the engine only — it does not include the game
content. To play, you must copy the following files from your own
original copy of Blood 1.21 (Steam, GOG, or the retail CD) into
the NBlood folder:
Cryptic Passage addon (optional):
to play the Cryptic Passage expansion in multiplayer, also copy
CP01.MAP … CP09.MAP, CPBB01.MAP … CPBB04.MAP,
CPSL.MAP, CPART07.AR_, CPART15.AR_,
and CRYPTIC.INI into the NBlood folder. Netplayseeker will
pass -ini CRYPTIC.INI to every player automatically when
the host selects Cryptic Passage.
Recommended: Blood usermaps folder.
Create a subdirectory inside your NBlood source-port folder — for
example nblood\Maps\ — and point Netplayseeker's
Blood usermaps setting at it. This keeps custom
.map files separate from the base game data, and means
downloaded maps from other players land in a predictable place.
Netplayseeker will transfer any Blood map the host selects to every
player's folder automatically.
The stock NetDuke32 v1.2.1 release has known multiplayer
crashes and netplay instability, especially over Relay mode.
The patched build we host is based on
NY00123's r11589 release,
which fixes these issues. All players in a session must use
the same patched build — mixing builds causes desyncs.
Can't switch builds right now? Deleting
ebacktrace1.dll from your NetDuke32 folder often stops
the immediate-crash-on-launch symptom. This file conflicts with
certain audio drivers. It's a partial workaround — the patched
build is still the recommended fix.
SDLDuke Legacy / Unmaintained
This is the final build of xDuke — the classic SDL-based
Duke Nukem 3D source port known for its stable network play. It
was renamed to SDLDuke by Turrican as a planned
successor, but the release was never officially published. The
build linked here was preserved and provided by Replica.
Note: We don't generally recommend SDLDuke unless you specifically want to use an older, unmaintained source port. If you do choose to use it, it is fully working in Netplayseeker! For the best experience, it's highly recommended to run the game in Windowed mode.
Requires DUKE3D.GRP and DUKE.RTS
from your original Duke Nukem 3D: Atomic Edition copy.
A modern Duke Nukem 3D source port with updated netcode.
All players should download this
specific patched build — it's based on
NY00123's r11589 release and fixes the multiplayer crashes
and netplay instability present in the stock v1.2.1 build.
Requires DUKE3D.GRP and DUKE.RTS
from your original Duke Nukem 3D: Atomic Edition copy.
Two known fixes for stock-build
crashes: use this patched build, or delete
ebacktrace1.dll from your NetDuke32 folder (audio
driver conflict). The patched build is preferred.
An extended Duke Nukem 3D source port that builds on the Duke
3D engine with team modes, multiple CTF variants, survival
and last-man-standing modes, bots, and a highly configurable
NetFlags system. Netplayseeker wires up all ten of its game
modes, the NetFlags presets, per-player team and colour
selection, spectator mode, and demo recording.
IPv6 support:
ProDuke uses [::] in its netlist.txt to accept both IPv4 and IPv6 peers. SDLDuke uses 0.0.0.0 (IPv4-only). NetDuke32 doesn't use a netlist.txt file at all, so its binding is handled internally by the engine—IPv6 is suspected to work there, but I haven't fully tested it yet.
Requires DUKE3D.GRP and DUKE.RTS
from your original Duke Nukem 3D: Atomic Edition copy. Only
Atomic Edition game files are recommended and have been
tested — other versions may work but are not verified.
A reverse-engineered port of Blood using EDuke32 engine
technology, developed by the NBlood team. Supports the original
Blood campaign, the Cryptic Passage expansion, and
custom usermaps in multiplayer. Netplayseeker passes
-ini CRYPTIC.INI to every player when Cryptic
Passage is selected. Custom Blood maps are transferred to each
player's Blood usermaps folder, and the map is then chosen from
NBlood's own in-game menu after launch.
Recommended map folder:
point Netplayseeker's Blood usermaps setting at a
subdirectory inside your NBlood folder — for example
nblood\Maps\. That way custom maps, downloaded or
local, stay grouped together and never mix with the base game data.
Requires the original Blood 1.21
game files (BLOOD.RFF, GUI.RFF, SOUNDS.RFF, SURFACE.DAT,
TILES*.ART, VOXEL.DAT, BLOOD.INI) — see the note above. Cryptic
Passage files are also required if you want to play that
expansion.
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,
NetDuke32 (Duke Nukem 3D), NBlood
(Blood — including the Cryptic Passage expansion and custom usermaps), and
ProDuke (an extended Duke 3D build with team modes, CTF,
bots, configurable NetFlags, and native IPv6 support), 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.
Feature Overview
📖 Usage Guide
First time using Netplayseeker? Check out our comprehensive guide on networking modes, port forwarding, and troubleshooting.
🎮 Multi-Source-Port Support
Launch games through SDLDuke, NetDuke32, NBlood, or ProDuke today. Each source port receives the correct command-line arguments automatically.
🩸 Blood + Cryptic Passage + Custom Maps
NBlood players can choose Blood: Original, the Cryptic Passage expansion, or a custom .map file. Cryptic Passage loads automatically via -ini CRYPTIC.INI; custom maps transfer to every player's Blood folder, and each player picks the map from NBlood's in-game menu.
🛡️ ProDuke Team & CTF Modes
Ten game modes including Team Dukematch, Capture the Flag, 1-Flag CTF, ATK/DEF CTF, Survival, LMS, TLMS, and Terminator. Per-player team and colour pickers sync to the whole room, and NetFlags presets make configuring rules fast.
🌐 ProDuke IPv6-Ready
ProDuke uses [::] in its netlist.txt to accept both IPv4 and IPv6 peers. SDLDuke uses 0.0.0.0 (IPv4-only). NetDuke32 doesn't use a netlist file at all, so its binding is handled internally by the engine—IPv6 is suspected to work there, but I haven't fully tested it yet.
📶 Player Latency Display
See each player's ping at a glance. Lobby shows ping to the master server; rooms show estimated peer-to-peer latency — real measurements in direct mode, sum of relay round-trips in relay mode. Colour-coded badges with hover tooltips.
🌐 Direct & Relay Modes
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.
📦 Automatic Usermap Sync
Host picks a .map file, and every other client downloads it automatically — no more "missing map" desyncs. Works with Duke and Blood ports, each using its own dedicated map folder.
👥 Lobby Peek
While in a room, pop back to the lobby to chat and see who's online — without leaving your match. One click returns you to the room.
🔒 Passworded Rooms
Host a private room with a password. Guests get an in-app prompt; passwords are bcrypt-hashed server-side.
💬 Lobby & Room Chat
Live lobby chat for everyone, plus a room-scoped chat so you can coordinate while the game is loading.
🔊 Sound Notifications
Subtle tones for chat messages, player joins, room creation, and game launch. Mute with one click.
⚙️ UPnP Port Forwarding
On routers that support it, Netplayseeker opens the game port automatically. Falls back to relay mode if UPnP fails.
⬆️ Auto-Update
Checks for updates on every launch. New versions download in the background and apply on restart — no manual reinstall needed. The running version is shown in the client top bar.
📸 See It In Action
Want to see what the client actually looks like before downloading? Check out our Screenshot Gallery to preview the lobby, room settings, and ProDuke options.
How It Works
Connect
Enter a nickname and click Connect. The client registers or logs in with the lobby server, then opens a WebSocket for live updates.
Create or Join a Room
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.
Get Ready
Guests click Ready. The host's Launch Game button becomes clickable once everyone is ready.
Play
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.
Command Lines (Reference)
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>
NBlood
-pname NAME -server N -nodudes -record -nosetup -port 23513
-pname NAME -client <host-or-relay-ip> -nodudes -nosetup -port <relay-port>
N = actual connected player count (NBlood clamps to 2–8).
For the Duke ports, 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. For NBlood, selecting Cryptic Passage adds
-ini CRYPTIC.INI to every player's command line. NBlood custom
maps are transferred to each player's Blood folder, but are not
passed via -map — the map is selected from NBlood's in-game
menu after launch.
Networking Modes
Works out of the box
Relay Mode
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. Supports up to 8 players for NBlood and SDLDuke, and up to 16 for NetDuke32 and ProDuke (when using the patched NetDuke32 build).
Requires port-forward
Direct Mode
Lowest latency — traffic flows host-to-guest directly. Requires the host to have UDP 23513 open on their router, either manually or via UPnP.
ProDuke only
IPv6 Support
Netplayseeker only generates a netlist.txt for SDLDuke and ProDuke.
ProDuke binds to [::] (dual-stack), while SDLDuke binds to 0.0.0.0 (IPv4-only).
NetDuke32 does not use a netlist file (it connects via command-line IPs), so its IPv4/IPv6 binding
is handled entirely by the engine itself—IPv6 is suspected to work for NetDuke32, but hasn't been fully tested.
Peer-address discovery currently uses public-IPv4 services, so cross-internet sessions default to IPv4
until native IPv6 peer exchange lands in a future release.
Limited compatibility
VPN Notes
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.
Known Bugs & Limitations
Documentation may be outdated — I've been out of the loop in the source-port community for a little while. Some information on this page (especially regarding specific port features like IPv6 support) might be inaccurate or may have changed since I last checked. If you spot anything wrong, please let me know so I can update it!
NetDuke32 stock build instability — solved by the patched build
— the default v1.2.1 release of NetDuke32 has known crashes and netplay
issues during multiplayer sessions, especially over Relay mode. These
are fixed in the
patched build
hosted above (based on NY00123's r11589 release). All players
in a session must use the same patched build — mixing builds
causes desyncs.
Alternative quick fix for stock builds: if you can't
switch to the patched build immediately, deleting
ebacktrace1.dll from your NetDuke32 folder often resolves
the immediate-crash-on-launch symptom. The file conflicts with certain
audio drivers (Razer Kraken headsets are a common trigger). This is a
partial workaround — the patched build is the recommended fix.
NBlood custom maps must be selected in-game — after
joining an NBlood room with a custom .map selected,
players must open NBlood's own map selection menu to load it. The file
is transferred to the Blood usermaps folder automatically, but
Netplayseeker deliberately doesn't pass -map on the command
line, because that flag doesn't reliably load custom maps in NBlood's
multiplayer mode.
Relay rooms require different public IPs — hosts and
guests on the same network (or the same machine) can't both join a
relay room, because the relay tells host and guest apart by source IP.
Use Direct mode for same-network play.
Peer latency in rooms is estimated, not measured —
relay rooms derive the number from the sum of two relay round-trips;
direct rooms show the actual measurement to the host, and the sum of
two host legs for other guests. Latency to the lobby is a real
measurement but reflects the connection to the master server, not to
other players.
ProDuke IPv6 is at the source-port level only —
ProDuke's netlist supports IPv6 and Netplayseeker binds its socket in
dual-stack mode, but peer-address discovery still uses public-IPv4
services (ipify, icanhazip, ifconfig.me). Cross-internet sessions
therefore default to IPv4, and native IPv6 peer exchange is not yet
wired up.
Some features are lightly tested — usermap sync,
passworded rooms, lobby peek, latency display, multiple concurrent
rooms, and ProDuke support all work but have only been tested on a
handful of machines. Report anything that misbehaves.
ProDuke has only been tested with Atomic Edition game files
— other retail or shareware Duke 3D versions may or may not work with
ProDuke in multiplayer. Use DUKE3D.GRP and
DUKE.RTS from Duke Nukem 3D: Atomic Edition.
macOS build not yet available — planned but not shipped.
Requirements
Windows 10/11 (64-bit), or a modern Linux distribution
SDLDuke, the patched NetDuke32 build, NBlood, or ProDuke installed on
your machine (download links above)
For Duke3D ports (including ProDuke): you must own
Duke Nukem 3D: Atomic Edition. Copy DUKE3D.GRP and
DUKE.RTS from your original copy into the source port's
folder. Only Atomic Edition files are recommended and tested. You can
buy the game from
Zoom Platform ↗.
For NBlood: you must own the original Blood. Copy
BLOOD.INI, BLOOD.RFF, GUI.RFF,
SOUNDS.RFF, SURFACE.DAT,
TILES000.ART … TILES017.ART, and
VOXEL.DAT from your original copy into the NBlood folder.
Cryptic Passage also requires the CP map and CRYPTIC.INI
files. Point Netplayseeker's Blood usermaps setting at a
subdirectory inside your NBlood folder (e.g. nblood\Maps\)
to keep custom maps organised.
Your game files shared identically with all players
Internet connection to reach the lobby server
Quick Start
1
Download & extract
Windows: 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.
2
Copy your game files & open Settings
For Duke3D (including ProDuke): copy DUKE3D.GRP and
DUKE.RTS from Duke Nukem 3D: Atomic Edition into the
source port's folder. For NBlood: copy
BLOOD.RFF, GUI.RFF, SOUNDS.RFF,
SURFACE.DAT, TILES*.ART,
VOXEL.DAT, and BLOOD.INI into the NBlood
folder. Then point Netplayseeker at your source-port executables
(duke3d_w32.exe, netduke32.exe,
nblood.exe, produke.exe) and — if you use
them — your Duke and Blood usermap folders. For Blood, use a
subdirectory inside the NBlood folder (e.g. nblood\Maps\)
to keep custom maps tidy. Make sure to use the
patched NetDuke32 build
.