Battlefield 2 uses the new Gamespy Query Protocol 3...there are 11 Bytes now to transmit...
Gamespy Query Protocol 3If you have success with your UDP script...can you please post the code here...I've tried it myself to get a running script with sockudp to get the serverstats shown in mirc...but the f**king mirc help and the tuts about sockudp in the internet are s**t...useless...

getting no server reply at all...
I've tried this code...
alias udp {
bset &binvar 11 254 253 0 12 174 61 0 255 255 255 1
sockudp -kb test 70.84.77.164 29900 11 &binvar
}
on *:udpread:test:{
var %temp
sockread %temp
echo -st -> %temp
}