Vintage Story "Unable to Connect to Server" Fix
If your Vintage Story dedicated server works on your local network but friends on other networks get "Unable to connect to server", the problem is usually not the world save. It is almost always a network path problem involving Port, router forwarding, CGNAT, or the server binding to the wrong IP.
Check These Settings First
{
"Port": 42420,
"Ip": null,
"Upnp": false,
"AdvertiseServer": true
}
Vintage Story uses the same port for TCP and UDP. Forward both on your router if you self-host. If you are renting, make sure your provider exposes the actual public game port and is not hiding the service behind a firewall rule.
| Test Result | What It Usually Means |
|---|---|
| You can join from the same machine | The game process itself is running correctly |
| You can join from home Wi-Fi but not from another state | Router, ISP, or CGNAT path problem |
| The server never appears publicly | AdvertiseServer is off or the port is not reachable |
Most Common Causes
- Only TCP was forwarded: Vintage Story needs both TCP and UDP on the same port.
- The server bound to the wrong IP: leave
Ipasnullunless you know exactly why you need a fixed bind. - UPnP gave a false sense of success: set
Upnptofalseand configure forwarding explicitly. - Your ISP uses CGNAT: port forwarding looks correct, but inbound traffic never reaches your router.
How to Troubleshoot in the Right Order
- Confirm the server is listening on the expected port.
- Test from a truly external network, not another device on the same Wi-Fi.
- Forward both TCP and UDP for the configured
Port. - Turn on
AdvertiseServeronly after direct IP join works. - If nothing changes, ask your ISP whether your line is behind CGNAT.
Important: if a rented or home server works only for you and one nearby tester, but fails for distant players, that usually points to routing, firewall, or ISP constraints, not a corrupted save.
Need a cleaner path than consumer router forwarding? Run Vintage Story on Supercraft with the port already exposed and the public join path handled for you.