Firewalls? What are those?

Don't you hate it? You want to host a server in your favorite game but oh, no wait. You need to open port 21621 to play in your firewall? How does that even work?
Sometimes you don't want to have your player go to this trouble, and you don't have to. Grab your existing UDP based Game Maker multiplayer game and trow GMnet PUNCH at it. Or if you don't have multiplayer with your game yet, why not try out GMnet ENGINE?

UDP Hole Punching

GMnet PUNCH is designed to handle UDP connections between players behind NATs. It provides basic hole punching mechanisms.

Intergrates with your networking scripts

GMnet PUNCH only manages the connection between players. If that's done, it's turn for your multiplayer engine.

Powered by GMnet GATE.PUNCH

To have it working, you need to host a small little java-powered server somewhere.

Online-lobby support

GMnet PUNCH and GMnet GATE.PUNCH provide functions to list all servers. That way you can create your own online multiplayer lobby.

Fallback mode if Hole Punching does not work

If GMnet PUNCH is unable to connect via Hole Punching (e.g. in LANs) it doesn't fail but instead tries to connect without hole punching.

Open Source

GMnet PUNCH is licensed under MIT and open for development by the community. You can also create your own forks of it and distribute it yourself. Or join the development!

All the platforms!

Tested on Linux, Windows, Mac OSX and Android.

All-you-need manual!

GMnet PUNCH comes with a demo project and a manual to guide you through everything you need to know.

What are you waiting for? Download now:

Get it on

Download 1.2.2

Github Repo

GameMaker: Studio is owned by YoYoGames. GMnet is not affiliated with YoYoGames.
The GMnet logos use icons from Entypo ( and Open Iconic ( They are licensed under CC BY-SA 4.0.