/********* QStat - Real-time game server stats http://sourceforge.net/p/qstat/ License: The Artistic License 2.0 *********/ Ghost Recon - QStat notes ------------------------- The following Server Stats are pulled from the Ghost Recon Server - NOTE many other stats continue to work as normal due to the base qstat program. $SERVERNAME The name of the GR Server. $PLAYERS The number of Players that are playing, oberving or in the Lobby (note the ignoreserverplayer Argument above) $MAXPLAYERS The maximum players that the server will allow playing, oberving or in the Lobby (note the ignoreserverplayer Argument above) $MAP The Name of the MAP that is being used (NOTE not the Mission) $GAME The Mods that the server is running. Ex: mp1; is the Desert Seige Mod $(RULE:error) If an error occured there may be some detail here. IF the problm occurred very early in the interpretation then $SERVERNAME will hold the details. $(RULE:mission) The name of the Mission that the server is running. $(RULE:gamemode) What is the Game Mode that the server is in. Known values are COOP, TEAM and SOLO $(RULE:missiontype) What is the Mission Type. Known Values are: Mission, Firefight, Recon, Hamburger Hill, Last Man Standing, Sharpshooter, Search And Rescue, Domination, and Seige. $(RULE:dedicated) Is this server Dedicated; Yes or No. $(RULE:status) What is the Playing Status of the Server, values are Playing, Joining or Debrief. $(RULE:gametime) What is the Time limit for the Game. Values are 00:00, 05:00, 10:00, 15:00 20:00, 25:00, 30:00, 45:00 and 60:00. The 00:00 is for an unlimited game. The format of this uses the -ts, -tc and -tsw command line options. $(RULE:timeplayed) How long has this game been playing. The format of this uses the -ts, -tc and -tsw command line options. $(RULE:remainingtime) How much time is left in this game. The format of this uses the -ts, -tc and -tsw command line options. $(RULE:version) What is the Version number reported by the server. Patch 1.2 = 10.1010A, Patch 1.3 = 11.101A $(RULE:spawntype) What type of spawn is in use. Known Values are None, Infinite, Individual and Team. $(RULE:spawncount) How many spawns are allowed. Enhancment possibility to add $(IF:SPAWN) to filter out when spawntype is none. $(RULE:restrict) What Weapon restrictions are in force for the server. $(RULE:password) Does the Server have a join password defined Yes or No. $(RULE:ti) Is the server using the Threat Indicator. $(RULE:motd) What is the Message Of The Day - Note these can be quite big. $(RULE:patch) What is the patch level of the GR Server. $(RULE:usestarttime) Is the server configured to start a game after "starttimeset" (Yes) OR does everyone need to click on ready (no). $(RULE:starttimeset) What time is configured to automatically start the next round. $(RULE:debrieftime) How long does the server wait at the Debrief screen after a mission. $(RULE:respawnmin) How long must a dead player wait before he can repawn. $(RULE:respawnmax) What is the longest time that a user has to respawn. $(RULE:respawnsafe) How long after respawn is a player invulnerable/cannot damage others. $(RULE:allowobservers) Does the server allow observers? Yes or No $(RULE:startwait) How long untill the automatic start timer forces the next game to start. $(RULE:iff) What Identification - Friend or Foe is configured. None, Reticule or Names $PLAYERNAME What is the Players Name. $TEAMNUM What Team Number is the Player On. Known Values are 1,2,3,4,5. 1 is Team BLUE, 2 is Team Read, 3 is Team Yellow, 4 is Team Green, 5 is Unassigned (observer or in lobby) $TEAMNAME What is the Name of the Team, see above. $DEATHS What is the health of this player. 0 Alive, 1 Dead. Note if the player has spawns remaining this can change from 1 back to 0. Enhancement possibility to add $HEALTH or $(RULE:health). Hopefully RSE/UBI will add the Deaths, Frags, and Ping to the availible information. If this happens then it would be better to have a $HEALTH $(IF:DEATHS) and $(IFNOT:DEATHS) A Test to see if the player is dead. Usefull in this constuct: $(IF:DEATHS)Dead$(ENDIF)$(IFNOT:DEATHS)Alive$(ENDIF) Ghost Recon communicates on two UDP ports and one TCP stream. Normally TCP is on port 2346 and carries the game dialog. This is the port number that is mentioned in the game so we use it and apply an offset to get the port number for status queries. Port 2347 gives some high level server stats and 2348 gives fairly low level server stats. QStat is designed around a single port per server so the 2348 port is used. One down side to this is the lack of many meaningful detail player stats (Deaths, frags, hit percentage, ping etc.). I imagines that some of these are availible in the TCP stream but that would be difficult to add to a program like QStat. The Ghost Recon packets are variable structures with a lot of string lengths. This requires fairly defensive programming as Red Storm Entertainment is not forthcoming with any details. This release adds support for the GhostRecon game. Number one note is that Red Storm and UBI do not provide the information that many Quake based users expect. Specifically they do not make Frags, Deaths Connect Time or Pings availible - at least not as far as I can tell. That said there are quite a few things that are availible and allow a server administrator to make the status of his or her server available to the public via the web. This change uses all undocumented interfaces to the Ghost Recon server so will most likely break when you install a patch. It has been tested against the Desert Seige update and several public servers. It should work against the 1.2, 1.3, and 1.4 patches and Island Thunder add-on to Ghost Recon. The Ghost Recon game type is GRS. For command-line queries, use -grs There is one query argument to this server, ignoreserverplayer. This option controls whether the first player is ignored. Ghost Recon requires that the dedicated server program take up one of the player slots (always the first slot). The ignoreserverplayer option defaults to 'yes', so the "server player" will normally not be seen. If you are running a non-dedicated server, then set ignoreserverplayer to 'no' like this: -grs,ignoreserverplayer=no Otherwise you would not be able to display your own stats. Ghost Recon support provided by Bob Marriott.