NAT Punching
Step-by-step process for setting up a dedicated SPT server with NAT punching.
What is NAT punching?
NAT punching is a NAT traversal technique that allows two devices located behind separate routers to establish a direct peer-to-peer connection. It is particularly useful in cases where port forwarding is not possible due to ISP or network restrictions.
However, NAT punching is not supported on all routers. For instance, symmetric NAT routers often prevent successful NAT punching due to the way they handle external port mappings.
How does it work?
A public server listens for incoming connections from clients and records their external IP addresses and ports. It then introduces each client by sharing the other’s external IP address. For example, Client 1 receives Client 2’s external IP address, and vice versa.
This is when NAT punching occurs: upon receiving Client 2’s IP address, Client 1 begins sending multiple packets (the “punching”) to Client 2. At the same time, Client 2 sends packets to Client 1, creating a routing entry in both clients’ routers.
At this point, both routers allow communication through this specific route, which can then be leveraged to host a Fika raid.
Requirements
The SPT server must be hosted on an externally accessible machine, such as a VPS.
Both the raid host and any players connecting via NAT punching must use a router that supports Full-Cone NAT, as this type is required for proper connectivity. You can check your router’s NAT type by searching online for your specific router model.
Notes
This guide covers the installation process for Windows only. Linux is not covered in this article but the principle is the same. Check out our dedicated Linux channel in our Discord for more information.
Installation
Set up a public Windows-based server
A publicly accessible server is required for NAT punching. It is recommended to rent an affordable Windows-based VPS to host the SPT Server; providers listed on LowEndBox are a good starting point for low-cost options.
If you are uncertain whether NAT punching will work with your network configuration, you can provision a temporary VPS using Kamatera, which offers hourly billing — making it a cost-effective solution for testing.
Download the latest SPT standalone release
SPT standalone releaseObtain the latest standalone SPT release here. The download link will be in the release notes.
Download the latest Fika-Server standalone release
Fika-Server standalone releaseObtain the latest Fika-Server standalone release here.
Enable NAT Punching in Fika Server
This setting controls if the Nat Punch Server should run on your SPT server.
Navigate to
SPT\user\mods\fika-server\assets\configs.Open
fika.jsoncwith your preferred text editor software (Notepad++is recommended).Find the
natPunchServersection and setenabletotrue.

Save and exit the text editor.
Start SPT.Launcher on your computer
SPT.Launcher on your computerWe assume you already have a working Fika installation or you know how to set up one. If you don't, click here for Fika installation steps.
Configure your server IP in SPT Launcher
SPT LauncherSPT Launcher needs to connect to the SPT server on your VPS/public server. Other players will also need to do the following steps.
Click the
Settingsbutton at the top right corner.

Check the
Developer Modebox then enter your server IP address in the URL box. Do not removehttps://, do not add a slash at the end.Press the arrow key at the top right corner to save your settings.

Enable NAT Punching in Fika (raid host only)
This setting indicates that any player connecting to your raid must use NAT punching. It is a client-side setting, meaning it only applies to you, the raid host. Other players do not need to enable this setting unless they intend to host a raid without port forwarding.
Press F12 to bring up the configuration manager.
Check the
Advanced settingsbox.Check the
Nat Punchingbox to enable NAT punching.

Headless client
To enable NAT punching for the headless client:
Make sure you followed all the steps above.
Navigate to
BepInEx\configof yourheadless client.Open
com.fika.core.cfgwith your preferred text editor.Search for the parameter
Use NAT Punchingand set totrue.Save and close the text editor.

Last updated








