Set up static IP (if they have dynamic IP)?
Note that it's not about static or dynamic ip.
It's about real (white) or unreal (gray) ip.
Static ip (which you buy for several $ per month) will also be real most likely.
But both static and dynamic ip could be real.
So, you should check if your ip is real or unreal before anything else.
Buy new router that supports UPNP?
This new router will not help if your ip is unreal.
It will help for lazy users only who can not setup their upnp-incompatible router properly. Also i don't think there are many routers with no UPNP support left now.
manual forward ports
Also note that it will not help if your ip is unreal.
According to lance's stats people with pnp enabled routers was 80% so fixing 80% of people's hosting problems is sufficient, I say the new version of combat is a success and the hosting problem is official solved.
I'll check that stat about % of upnp-compatible routers also.
But also note that upnp-compatible router will not help if your ip is unreal.
Also note that you can be connected directly to your ISP, then upnp port forwarding will fail, but you can host games.
Same with properly configured port forwarding with upnp-incompatible router.
but it could get smarter if he applied memory reading to it
The best way would be to find $10 per month to start windows-hosting. It will resolve the problem with lagging connections to GameBot.