Download and extract the latest Lanemu release by selecting your OS under Packages
Launch Lanemu
Windows
Run Lanemu.exe
Linux
Run Lanemu.desktop or Lanemu-pkexec / Lanemu-run0
Do you want to join 'Default network'?
Click No
Click the Options icon and select Global tab
Specify Your Name
Specify any port in "Listen on Port" (e.g., 5521)
At least one user should enable UPnP or forward the port(s) on the router
All used TCP and UDP ports are displayed in the Protocol selection
Legacy TCP port is unnecessary if all users are able to connect via RUDP
If nobody can set up port forwarding (stuck behind NAT)
Lanemu might be able to connect peers by using STUN and UDP hole-punching
STUN only works if all peers set Protocol to RUDP + UDP or RUDP
Created network must include BitTorrent Trackers / DHT Nodes
Peers behind Symmetric NAT won't be able to connect to anyone
In case of Symmetric NAT, all users can try hyper-nat (everyone must set Protocol to TCP + UDP)
Windows
Download the latest forwarder.zip under Assets
Extract forwarder.zip to Lanemu folder
Linux
Install npm
Download the latest Source code (tar.gz) under Assets
Extract hyper-nat.tar.gz to Lanemu folder
If connection via hyper-nat is unsuccessful, all users can route Tailscale or other similar VPN through Lanemu
Lanemu allows Layer 3 VPNs to work in games that require Broadcast / Multicast
Replace all instances of PublicIP:Port with Tailscale or other VPN IP (e.g., 100.111.88.108:5521)
Alternatively, one user (Host PC) can create a tunnel (e.g., playit.gg)
Lanemu supports TCP+UDP or UDP-only / TCP-only tunnels
Tunnel type requirements (TunnelIP:TunnelPort -> 127.0.0.1:LanemuPort)
TCP+UDP
Lanemu Protocol: RUDP + UDP (Legacy TCP) or TCP + UDP
Example: tcp-udp-tunnel.gl.at.ply.gg:6411 -> 127.0.0.1:6411
TunnelPort and LanemuPort must be identical
RUDP + UDP needs 1 tunnel with 2 sequent ports (e.g., 6411 & 6412)
Lanemu Protocol: RUDP (Legacy TCP)
Example: tcp-udp-tunnel.gl.at.ply.gg:6411 -> 127.0.0.1:5521
TunnelPort and LanemuPort can be the same or different
UDP-only
Lanemu Protocol: RUDP + UDP
Example: udp-tunnel.gl.at.ply.gg:6411 -> 127.0.0.1:6411
TunnelPort and LanemuPort must be identical
RUDP + UDP needs 1 tunnel with 2 sequent ports (e.g., 6411 & 6412)
Lanemu Protocol: RUDP
Example: udp-tunnel.gl.at.ply.gg:6411 -> 127.0.0.1:5521
TunnelPort and LanemuPort can be the same or different
TCP-only
Lanemu Protocol: TCP
Example: tcp-tunnel.gl.at.ply.gg:6411 -> 127.0.0.1:5521
TunnelPort and LanemuPort can be the same or different
Click OK
Steps for Host PC
If you are using hyper-nat
Modify hyper-nat options.json file
{
  "schema": [
    {
      "mode": "server",
      "proto": "tcp",
      "port": "5521",
      "host": "127.0.0.1",
      "secret": "SomeUniqueTextThatIsTheSameForAllPorts"
    },
    {
      "mode": "server",
      "proto": "udp",
      "port": "5521",
      "host": "127.0.0.1",
      "secret": "SomeUniqueTextThatIsTheSameForAllPorts"
    }
  ]
}
Launch hyper-nat
Windows
Run hyper-nat.exe
Linux
Open the Terminal in Lanemu -> hyper-nat folder
npm install
npm run start
Windows : Allow hyper-nat through Windows Firewall
Check both Private and Public networks
Click Allow access
Copy your public key from the Console / Terminal
Windows
Highlight it and press CTRL + C
Linux
Highlight it and press CTRL + SHIFT + C
Send your public key to every Client
Create a network
Click the New Network icon
Select Simple tab
Specify Network Name
Select Advanced tab
If you are using UPnP / Port Forwarding or Tunneling Services
Specify your PublicIP:Port or TunnelIP:Port in Known Hosts
Example: 82.129.80.111:5521 or udp-tunnel.gl.at.ply.gg:6411
If you are using hyper-nat
Specify these network settings
Known Hosts: 127.0.0.1:5521
BitTorrent Trackers: Empty
BitTorrent DHT Nodes: Empty
Click OK
Windows : Allow OpenJDK through Windows Firewall
Check both Private and Public networks
Click Allow access
Create an invitation
Click the Invite Someone icon
Check Allow invitation of others
Click Generate Invitation
Click Save to a File
Click Close
Send the invitation file to every Client
You may also send a pre-configured profile.ini file that automatically accepts your invitation on first launch
default.autoInvite=invitation_file.txt
Steps for Client PC
If you are using hyper-nat
Temporarily close Lanemu
Right click Lanemu tray icon and select Quit
Modify hyper-nat options.json file
{
  "schema": [
    {
      "mode": "client",
      "proto": "tcp",
      "port": "5521",
      "serverport": "5521",
      "publicKey": "CopyPasteTheServerPublicKeyHere"
    },
    {
      "mode": "client",
      "proto": "udp",
      "port": "5521",
      "serverport": "5521",
      "publicKey": "CopyPasteTheServerPublicKeyHere"
    }
  ]
}
Launch hyper-nat
Windows
Run hyper-nat.exe
Linux
Open the Terminal in Lanemu -> hyper-nat folder
npm install
npm run start
Windows : Allow hyper-nat through Windows Firewall
Check both Private and Public networks
Click Allow access
Wait until hyper-nat establishes connection to the server
The window closes if connection fails, you might have to retry several times
Relaunch Lanemu
Join a network
Click the Accept Invitation icon
Click Load from File
Click OK
Windows : Allow OpenJDK through Windows Firewall
Check both Private and Public networks
Click Allow access
Wait for connection
If connection did not occur automatically
Option 1 : Click the Connect to Known IPs icon at the bottom
Option 2 : Click the Information icon at the bottom and select Connections tab
If you are using hyper-nat
Enter 127.0.0.1:Port (e.g., 127.0.0.1:5521) next to the Connect To button and click it
If you are using other connection method
Enter a peer PublicIP:Port or TunnelIP:Port next to the Connect To button and click it
Open Control Panel
Click System and Security
Click Allow an app through Windows Firewall
Click Change settings
Click Allow another app
Click Browse
DirectPlay
Go to C:\Windows\SysWOW64
Select dplaysvr.exe and click Open
DirectPlay 8 (x32)
Go to C:\Windows\System32
Select dpnsvr.exe and click Open
DirectPlay 8 (x64)
Go to C:\Windows\SysWOW64
Select dpnsvr.exe and click Open
Game
Go to game directory
Select game executable and click Open
Click Network types
Check Private and Public
Click OK
Click Add
Click OK
If you have any questions / suggestions, leave a comment on GitHub :)