Thanks to visit codestin.com
Credit goes to github.com

Skip to content

unixoide/5th-echelon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dedicated server for EoL echelon games

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

Quick Start

  1. Download the latest launcher.

  2. 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

  3. Start the launcher (launcher.exe).

  4. On the first start, you will be asked to choose a UI version. The new UI is recommended.

    UI Version Selection

  5. Select Join Server

    Main Menu

  6. Create a new server profile.

    Client Window Ask on the Discord servers for active server IPs

    New Server Profile

  7. If you connect to a server for the first time, you'll have the option to register a new account.

    Register Profile

  8. Save and click Launch to 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. Diagose Diagose

Community

Join our Discord servers to find other players and get help.

Usage

Starting your own server for others to use

The new launcher comes with an integrated server. You can start it from the Server Management tab.

  1. Start the launcher.

  2. Go to the Server Management tab.

  3. On first use, the launcher will ask you to download the server executable

  4. Select the network adapter to use (or keep the default of all)

  5. Optional: provide you public IP address in case you're using port forwarding for you server.

  6. Click Start to start the server.

    Launcher Server Menu

Features

  • 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 Match buttons instead)

  • Import save games from the original game

  • Create a base L5 save game for SvM gameplay

  • In-game overlay

    Overlay

  • Modify the min/max amount of players in a game session (Press F5 in 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.

    Overlay Player Settings

  • Automated detection of supported executables (should work with most mods)

Build

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_release

Developing Quickstart

Prerequisites:

  • 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 to protoc in your Downloads folder.
  • 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_embed

You can now find the launcher at 5th-echelon\target\release\launcher.exe

Additional Tools

Besides the server, there are also additional tools which are meant to aid development.

  • DDL parser

  • Wireshark dissectors

    • PRUDP/RMC (Quazal)
    • Storm P2P

DDL parser

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/exe

Wireshark dissector

There is a rudimentary wireshark dissector for PRUDP/RMC in rust available. You can build and install it on linux via

$ ./scripts/build_dissector.sh

Alternatively 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

Special thanks to @zerokilo and @michal-kapala for their work on https://github.com/zeroKilo/GROBackendWV which shares parts of the protocol.

Packages

 
 
 

Contributors