diff --git a/srb2query.php b/srb2query.php
index 52542542e7840bea8ade5106777df7778edfe8aa..2d14d1d7f073257c514069a72656c16c72bf7a5d 100644
--- a/srb2query.php
+++ b/srb2query.php
@@ -182,15 +182,6 @@ class SRB2Query
 	private const TICRATE            = 35;
 
 	// doomstat.h
-	private const GT_COOP            = 0;
-	private const GT_COMPETITION     = 1;
-	private const GT_RACE            = 2;
-	private const GT_MATCH           = 3;
-	private const GT_TEAMMATCH       = 4;
-	private const GT_TAG             = 5;
-	private const GT_HIDEANDSEEK     = 6;
-	private const GT_CTF             = 7;
-
 	private const GF_REDFLAG         = 1;
 	private const GF_BLUEFLAG        = 2;
 
@@ -214,16 +205,19 @@ class SRB2Query
 	private const pkformats = [
 		self::PT_SERVERINFO => [
 			'format' =>
+			'C_255/'           .
+			'Cpacketversion/'  .
+			'a16application/'  .
 			'Cversion/'        .
 			'Csubversion/'     .
 			'Cnumberofplayer/' .
 			'Cmaxplayer/'      .
-			'Cgametype/'       .
+			'Crefusereason/'   .
+			'a24gametypename/' .
 			'Cmodifiedgame/'   .
 			'Ccheatsenabled/'  .
 			'Cisdedicated/'    .
 			'Cfileneedednum/'  .
-			'cadminplayer/'    .
 			'Vtime/'           .
 			'Vleveltime/'      .
 			'a32servername/'   .
@@ -235,12 +229,14 @@ class SRB2Query
 			'a*fileneeded',
 
 			'strings' => [
+				'application',
+				'gametypename',
 				'servername',
 				'mapname',
 				'maptitle',
 			],
 
-			'minimum' => 109,
+			'minimum' => 151,
 		],
 		self::PT_PLAYERINFO => [
 			'format' =>
@@ -286,43 +282,6 @@ class SRB2Query
 	private $fileneedednum;
 	private $fileneeded;
 
-	private function Versionname ($pk)
-	{
-		switch ($pk['version'])
-		{
-		case 100:
-		case 110:
-			return 'SRB2Kart';
-		default:
-			return 'SRB2';
-		}
-	}
-
-	private function Gametype ($pk)
-	{
-		// SRB2Kart
-		if ($pk['version'] == 100 || $pk['version'] == 110)
-		{
-			$kartnames = [
-				self::GT_COMPETITION => 'Battle',
-			];
-			if (isset($kartnames[$pk['gametype']]))
-				return $kartnames[$pk['gametype']];
-		}
-		$names = [
-			self::GT_COOP        => 'Co-op',
-			self::GT_COMPETITION => 'Competition',
-			self::GT_RACE        => 'Race',
-			self::GT_MATCH       => 'Match',
-			self::GT_TEAMMATCH   => 'Team Match',
-			self::GT_TAG         => 'Tag',
-			self::GT_HIDEANDSEEK => 'Hide and Seek',
-			self::GT_CTF         => 'CTF',
-		];
-		$name = $names[$pk['gametype']];
-		return ( ($name) ? $name : 'Unknown' );
-	}
-
 	private function Zonetitle ($pk)
 	{
 		$maptitle = $pk['maptitle'];
@@ -545,11 +504,11 @@ class SRB2Query
 		}
 
 		$t['version'] = [
-			'major' => $version / 100,
+			'major' => intval($version / 100),
 			'minor' => $version % 100,
 			'patch' => $subversion,
 		];
-		$t['version']['name'] = self::Versionname($pk);
+		$t['version']['name'] = $pk['application'];
 
 		$t['servername'] = $pk['servername'];
 
@@ -558,7 +517,7 @@ class SRB2Query
 			'max'   => $pk['maxplayer'],
 		];
 
-		$t['gametype'] = self::Gametype($pk);
+		$t['gametype'] = $pk['gametypename'];
 
 		copy_bool($t['mods'],   $pk['modifiedgame']);
 		copy_bool($t['cheats'], $pk['cheatsenabled']);
@@ -609,6 +568,7 @@ class SRB2Query
 	function Fileinfo () : array
 	{
 		self::Unfileneeded($fileinfo, $this->fileneedednum, $this->fileneeded);
+
 		if ($this->lotsofaddons)
 		{
 			$start = $this->fileneedednum;