Index: binary-improvements2/WebServer/src/WebAPI/APIs/Command.cs
===================================================================
--- binary-improvements2/WebServer/src/WebAPI/APIs/Command.cs	(revision 402)
+++ binary-improvements2/WebServer/src/WebAPI/APIs/Command.cs	(revision 404)
@@ -25,11 +25,11 @@
 
 			if (string.IsNullOrEmpty (id)) {
-				bool first = true;
-				foreach (IConsoleCommand cc in SdtdConsole.Instance.GetCommands ()) {
-					if (!first) {
+				IList<IConsoleCommand> ccs = SdtdConsole.Instance.GetCommands ();
+				for (int i = 0; i < ccs.Count; i++) {
+					IConsoleCommand cc = ccs [i];
+					
+					if (i > 0) {
 						writer.WriteValueSeparator ();
 					}
-
-					first = false;
 
 					writeCommandJson (ref writer, cc, permissionLevel);
@@ -81,5 +81,5 @@
 			_writer.WriteString (_command.GetHelp ());
 				
-			int commandPermissionLevel = GameManager.Instance.adminTools.GetCommandPermissionLevel (_command.GetCommands ());
+			int commandPermissionLevel = GameManager.Instance.adminTools.Commands.GetCommandPermissionLevel (_command.GetCommands ());
 			_writer.WriteRaw (jsonAllowedKey);
 			_writer.WriteBoolean (_userPermissionLevel <= commandPermissionLevel);
@@ -117,5 +117,5 @@
 			}
 
-			int commandPermissionLevel = GameManager.Instance.adminTools.GetCommandPermissionLevel (command.GetCommands ());
+			int commandPermissionLevel = GameManager.Instance.adminTools.Commands.GetCommandPermissionLevel (command.GetCommands ());
 
 			if (_context.PermissionLevel > commandPermissionLevel) {
Index: binary-improvements2/WebServer/src/WebAPI/APIs/ServerInfo.cs
===================================================================
--- binary-improvements2/WebServer/src/WebAPI/APIs/ServerInfo.cs	(revision 402)
+++ binary-improvements2/WebServer/src/WebAPI/APIs/ServerInfo.cs	(revision 404)
@@ -1,2 +1,3 @@
+using System.Collections.Generic;
 using JetBrains.Annotations;
 using Utf8Json;
@@ -22,71 +23,64 @@
 			GameServerInfo gsi = ConnectionManager.Instance.LocalServerInfo;
 
-			bool first = true;
-			
-			
+			IList<GameInfoString> list = EnumUtils.Values<GameInfoString> ();
+			for (int i = 0; i < list.Count; i++) {
+				GameInfoString stringGamePref = list [i];
 
-			foreach (GameInfoString stringGamePref in EnumUtils.Values<GameInfoString> ()) {
-				string value = gsi.GetValue (stringGamePref);
-
-				if (!first) {
+				if (i > 0) {
 					writer.WriteValueSeparator ();
 				}
 
-				first = false;
-				
 				writer.WriteString (stringGamePref.ToStringCached ());
 				writer.WriteNameSeparator ();
-				
+
 				writer.WriteRaw (keyType);
 				writer.WriteString ("string");
-				
+
 				writer.WriteRaw (keyValue);
-				writer.WriteString (value);
-				
+				writer.WriteString (gsi.GetValue (stringGamePref));
+
 				writer.WriteEndObject ();
 			}
 
-			foreach (GameInfoInt intGamePref in EnumUtils.Values<GameInfoInt> ()) {
-				int value = gsi.GetValue (intGamePref);
+			IList<GameInfoInt> ints = EnumUtils.Values<GameInfoInt> ();
+			for (int i = 0; i < ints.Count; i++) {
+				GameInfoInt intGamePref = ints [i];
 
-				if (!first) {
+				if (i > 0) {
 					writer.WriteValueSeparator ();
 				}
 
-				first = false;
-				
 				writer.WriteString (intGamePref.ToStringCached ());
 				writer.WriteNameSeparator ();
-				
+
 				writer.WriteRaw (keyType);
 				writer.WriteString ("int");
-				
+
 				writer.WriteRaw (keyValue);
-				writer.WriteInt32 (value);
-				
+				writer.WriteInt32 (gsi.GetValue (intGamePref));
+
 				writer.WriteEndObject ();
 			}
 
-			foreach (GameInfoBool boolGamePref in EnumUtils.Values<GameInfoBool> ()) {
-				bool value = gsi.GetValue (boolGamePref);
+			IList<GameInfoBool> prefs = EnumUtils.Values<GameInfoBool> ();
+			for (int i = 0; i < prefs.Count; i++) {
+				GameInfoBool boolGamePref = prefs [i];
 
-				if (!first) {
+				if (i > 0) {
 					writer.WriteValueSeparator ();
 				}
 
-				first = false;
-				
 				writer.WriteString (boolGamePref.ToStringCached ());
 				writer.WriteNameSeparator ();
-				
+
 				writer.WriteRaw (keyType);
 				writer.WriteString ("bool");
-				
+
 				writer.WriteRaw (keyValue);
-				writer.WriteBoolean (value);
-				
+				writer.WriteBoolean (gsi.GetValue (boolGamePref));
+
 				writer.WriteEndObject ();
 			}
-			
+
 			writer.WriteEndObject ();
 			
