General Port Forwarding Recipe
Note: You will only need to do this if you are playing a Widelands version older than Build 20.
To create port forwarding within router/modem or other device you can follow this recipe. It is very general and it desn't contain all solutions!
If you have direct Internet connection (Ethernet cable), you probably have to check firewalls and antivirus programs (like here).
- Login into router settings client
- Set your computer IP into static one
- Add port forwarding for port 7396
- Ensure that your computer can receive data to port 7396*
- Check if Widelands can host a game
- If not, retry different router, firewall & antivirus programs settings
*-Many firewalls (your antivirus could also act as one) prevent unrecognized accesses. Firewalls are not widelands-aware, and tend to block Widelands from being a game server. You should add a firewall exception. Easy, unsafe and not recommended way is to disable firewalls and antivirus programs. Do not take that path. The correct way depends on the operating system and firewall software.
Login into router options settings
To login you have to find IP or address of the device. It can be found on router itself (underneath the device), on the box or in the user manual. Most of the devices have their manual on the Internet too. You should find information like:
IP: 192.168.1.1 login: admin password: admin
http://tplinklogin.net login: admin password:
Typing IP or address to the webbrowser should open a window, where you can use login/password information. Correct login will open settings window (in a webbrowser). Modern routers contain lots of options listed in menu.
Warning: remember the changes you make. Some of them can harm your LAN settings or even disconnect from Internet. All settings can be fixed to previous state, but some of them are hard to remember, so maybe using a piece of paper and a pencil will help.
Set your computer IP into static one
In a menu find list of devices connected to the router (clicking on menu will not harm anything). On some devices this is under DHCP settings. The list can be like this:
For setting static IP we need only MAC address (which you can find also using console), but this table can be useful too: we will set MAC address for John's laptop as it is now (no real change for this device).
So the next step is to find menu for "IP reservations" (or similar), where we can find very simple list with MAC addresses and IPs. Adding new record is like:
MAC address: 00-40-34-05-A3-4B reserved IP: 192.168.0.101 state: ON
Save the record.
Warning: after this step, the router can ask for reboot.
Add port forwarding
In the menu find "Triggering", "Forwarding" or simillar. Adding new record will contain:
Outside port: 7396 Inside port: 7396 IP address: 192.168.0.101 (EXAMPLE HERE!) protocol: TCP state: ON
Firewalls & antivirus settings
Firewall and/or antivirus program running on your computer might think that widelands is doing something nasty. This is mostly since most people writing antivirus software have never even heard of Widelands. If you want to host a game, you must tell your computer to trust widelands.
The correct recipe depends on the operating system, operating system version and antivirus/firewall software. For example, the recipe for Windows 10 and Windows 8 differ. The correct recipe also depends on the firewall program in use. For example, Windows defender, F-secure and Norton have different recipes.
You can either use a search engine for instructions, or try to browse through the firewall settings with eyes focused on "firewall rules/exceptions", "trusted programs" or something similar. Your program might do the filtering based on port numbers or program names. The port number is 7396, and program name is Widelands.
Note that from Firewall's point of view, joining a network game and hosting a network game are different. In widelands network game, the clients connect to host. From the host computer's point of view, those are incoming connections. So you should add the firewall exceptions for incoming connections, to host a network game.
An easy way to skip this is to disable firewall/AV. That risks the safety of yours and others, do not do it.
Check if Widelands is working
Run Widelands (if you have it opened, reopen the game). Go to the mulitplayer lobby and begin new game ("Open a new game"). Wait few seconds.
Wrong behaviour contains error message. Also you can't join the game from outside.
Helpful can be running Widelands in a window mode. Then you can try running two windows at once (run Widelands twice). First one will open new game, second one will try to join.
Play with firewall & antivirus programs settings
If hosting a game fails, then something is blocking your incoming connections. It could be a router, or a program on your computer. If somebody in the same LAN network can join a game but others "in the internet" cannot, then the problem is probably in the router. If nobody can join, the problem is more likely to be in your computer.
If still not working, revisit the setting and change something that you were unsure of. If still not working after that, ask for help.
Possible issues that can happened while hosting
All issues refer to opened game, but not played yet.
- Your game has "red circle" symbol
Metaserver can't connect to your game, nobody can do that. Check all steps above.
- Your game has "green circle" symbol, but nobody can't join (the connection is rejected after about a minute)
Probably your antivirus program cause the problem- configure it by defining him a white list of programs with Widelands included (or something simillar).
For players using virtual machines
Virtual machines are using LAN inside the host machine. That can create long chain of connection:
Internet -> Modem/ Router -> Home Lan -> Your PC -> Virtual Lan -> Virtual machine
It is better to make it shorten:
Internet -> Modem/ Router -> Home Lan -> Virtual machine
That can be done by chagning settings of virtual machine. You need to find Network Adapter settings and change it to "bridged" mode. After reconnecting to the Internet, your router should find one more device and give it IP. That is your virtual machine.