This project is a community effort to keep the multiplayer of some of the games with the great Sam Fisher alive.
For now it is focused on SC:BL, but the net code should be relatively similar for previous games as well.
demo.webm
-
Download the latest launcher.
-
Optional: Install Radmin VPN or a similar VPN client and join a network with other players. Not a strict requirement, but most players are using this approach
-
Start the launcher (
launcher.exe). -
On the first start, you will be asked to choose a UI version. The new UI is recommended.
-
Select
Join Server -
Create a new server profile.
Ask on the Discord servers for active server IPs -
If you connect to a server for the first time, you'll have the option to register a new account.
-
Saveand clickLaunchto start the game (make sure the right profile was selected).
Tip
If you're having problems connecting, use the Diagnose button for more information and suggestions to fix the problem.

Join our Discord servers to find other players and get help.
The new launcher comes with an integrated server. You can start it from the Server Management tab.
-
Start the launcher.
-
Go to the
Server Managementtab. -
On first use, the launcher will ask you to download the server executable
-
Select the network adapter to use (or keep the default of all)
-
Optional: provide you public IP address in case you're using port forwarding for you server.
-
Click
Startto start the server.
-
Entering online mode (successful authenticate and fetch settings etc.)
-
Entering the COOP lobby
-
Starting a COOP game via
Find Teammate -
Starting a Spy vs Merc game
-
Invite other players (press F5 to open the overlay to accept the invite) into the main lobby.
-
Invite players into a private game lobby (use the
Find Teammate/Quick Matchbuttons instead) -
Import save games from the original game
-
Create a base L5 save game for SvM gameplay
-
In-game overlay
-
Modify the min/max amount of players in a game session (Press
F5in a game lobby to alter the restrictions). Allows to do COOP missions with more then 2 players or start SvM matches with less then 4. -
Automated detection of supported executables (should work with most mods)
Last tested rust version: 1.92.0-nightly (844264add 2025-10-14). You can download the rust compiler via https://rustup.rs/.
You'll also need the Protobuf compiler. protoc.exe should either
be in your PATH or pointed at by an environment variable called PROTOC (see this for details).
Use https://github.com/casey/just to build:
# run server in debug mode (builds faster)
$ just serve
# run server in release mode (runs way faster)
$ just serve_release
# build dll and run launcher in debug mode
$ just launch
# build dll and run launcher in release mode
$ just launch_releasePrerequisites:
- You have a Powershell window open.
- Rustup was downloaded from https://rustup.rs and is in your Downloads folder.
- Protoc was downloaded from GitHub (e.g.
protoc-30.0-win64.zip) and is unpacked toprotocin yourDownloadsfolder. - You've downloaded the source code from GitHub and unpacked to 5th-echelon
From you Downloads folder:
PS> .\rustup-init.exe --default-toolchain none -y
PS> cargo install just
PS> $env:PROTOC="$PWD\protoc\bin\protoc.exe"
PS> cd 5th-echelon
PS> just release_launcher_embedYou can now find the launcher at 5th-echelon\target\release\launcher.exe
Besides the server, there are also additional tools which are meant to aid development.
-
DDL parser
-
Wireshark dissectors
- PRUDP/RMC (Quazal)
- Storm P2P
You can parse DDLs out of executables (if still included) by using
$ cargo run --release -p quazal-tools --bin ddl-parser -- -i mapping.json -o ddls.json path/to/exeThere is a rudimentary wireshark dissector for PRUDP/RMC in rust available. You can build and install it on linux via
$ ./scripts/build_dissector.shAlternatively there is also a lua based dissector with added support for DO protocol. To install, put .\tools\quazal.lua, .\tools\dormc.txt and .\tools\rmc.txt into the wireshark plugin user directory.
Additionally there is a very basic lua dissector for the Storm P2P protocol.
You can use all dissectors with tshark as well:
$ tshark -r pcaps/sc_bl.pcapng -d udp.port==3074,prudp -d udp.port==13000,prudp -V -Y udp -x -O prudp,rmc -Y 'udp.port==3074'
Special thanks to @zerokilo and @michal-kapala for their work on https://github.com/zeroKilo/GROBackendWV which shares parts of the protocol.







