When you set it up as a trusted application, make sure you have selected “Allow invisible connection attempts”. This is on the “Miscellaneous” tab. Make sure ANY is selected for remote and local ports.
Call of Duty and Racing Simulator 3 would not run without this being set, so Quake 4 may be the same.
You could temporarily kill CPF and open up a DOS window.
In the DOS window type “netstat -p TCP -a”.
This will produce a listing of what TCP ports are open.
For the point of this test, call this listing “LIST A”.
ALT-TAB back to the desktop and start Quake 4.
Once it is running correctly, ALT-TAB or WindowKey-D back to the desktop.
ALT-TAB to the command window and run the “netstat -p TCP -a” command again.
This should show the ports listed in LIST A along with any additional ports opened since then.
The only changes to the netastat listing should be the ones opened by Quake 4.
End Quake4 and repeat this sequence, substituting UDP for TCP in the netstat commands.
Slow and tedious, I know, but I don’t have Quake4 here to test on. Hang in there - there’s got to be an answer somewhere.