Client stuck on “Awaiting Challenge” trying to connect to ioquake3 server

Every week, I meet up with a group of friends from work for a LAN party. Since the age-old Quake vs Unreal debate could not be settled (obviously Quake is better and they are wrong), we decided to alternate between Quake3 and Unreal 2004.

Last week was Quake’s turn, so I naturally set up a dedicated server. Alas, even though most people were able to connect and play without issue, some got stuck in the dreaded “Awaiting Challenge” stage and could not connect. The Unreal fans rejoiced, believing this spelled the end of our quake sessions.

But my resolve when it comes to Quake should not be underestimated…

After a long process of elimination and a chat conversation with one of the ioquake3 developers (DevHC – great guy), the issue was identified. It turns out that when specifying the host name (rather than the IP) of the server, the ioquake3 client resolves it to IPv6 (where available) by default. For some reason, this didn’t resonate well with the server. Once we specified the IPv4 explicitly, the issue was resolved.

You have several options to work around this issue:

  1. Specify the IPv4 address of the server explicitly
  2. Force IPv4 resolution by issuing the console (~) command /connect -4 hostName
  3. Disable IPv6 in the client by adding the following lines to your autoexec.cfg:
    set net_enabled 1
    net_restart

Happy fragging!