Well.
The thing works this way. If someone in your lan accesses the Internet, the router saves that and sends the response to the right client.
Now, if someone from the outside makes a new connection to the public id, the router doesn't know any packet before that's valid so he doesn't know where to deliver that packet => drops it.
Now with packet forwarding, you set that any packet coming from a specific port to a specific port to send it to a specific port on a specific lan machine. You usually want every source port to a specific port.
Ie, you can have 5 machines in the lan, each one running a teeworlds server on 8303 and the router sends incoming packets coming to 8301 to the first machine (at port 8303) and packets coming to 8302 at the router to the second machine (still at port 8303)
So the outside sees 5 open ports.
8301 => first machine, port 8303
8302 => second machine, port 8303
8303 => third machine.....
In your case you need to set FROM ANY port TO 8303, apply the rule to FORWARD to LOCAL IP of the server TO PORT 8303
A short introduction to the alternative: DMZ. A DeMilitarized Zone is that you specify a certain machine in the lan to receive all packets that come from the outside without any request from the inside. So you are basically disabling the routers firewall and say, pass anything there WHICH IS NOT RECOMMENDED IN 90% OF THE USE CASES. Only do that if you really do know what you want (or probably want to circumvent the routers firewall because you do router cascading. But that's nothing for you
I hope it's now a bit clearer for you how these things work.
Having troubles finding servers in the serverlist? Go to
Pastebin (its a referer cause there is daily a new pastebin) and add the lines to your settings.cfg (in %APPDATA%\teeworlds). Then open teeworlds and go to the favorites tab. (Note however, standard teeworlds client can only show 256 favorites, use ddnet instead)