Index: binary-improvements/AllocsCommands/Commands/ListKnownPlayers.cs
===================================================================
--- binary-improvements/AllocsCommands/Commands/ListKnownPlayers.cs	(revision 273)
+++ binary-improvements/AllocsCommands/Commands/ListKnownPlayers.cs	(revision 278)
@@ -17,9 +17,9 @@
 				   "  2. listknownplayers -online\n" +
 				   "  3. listknownplayers -notbanned\n" +
-				   "  4. listknownplayers <player name>\n" +
+				   "  4. listknownplayers <player name / steamid>\n" +
 				   "1. Lists all players that have ever been online\n" +
 				   "2. Lists only the players that are currently online\n" +
 				   "3. Lists only the players that are not banned\n" +
-					"4. Lists all players whose name contains the given string";
+				   "4. Lists all players whose name contains the given string or matches the given SteamID";
 		}
 
@@ -37,10 +37,14 @@
 				bool notBannedOnly = false;
 				string nameFilter = string.Empty;
+				bool isSteamId = false;
 
 				if (_params.Count == 1) {
+					long steamid = -1;
 					if (_params [0].ToLower ().Equals ("-online")) {
 						onlineOnly = true;
 					} else if (_params [0].ToLower ().Equals ("-notbanned")) {
 						notBannedOnly = true;
+					} else if (_params [0].Length == 17 && long.TryParse (_params [0], out steamid)) {
+						isSteamId = true;
 					} else {
 						nameFilter = _params [0].ToLower ();
@@ -48,21 +52,35 @@
 				}
 
-				int num = 0;
-				foreach (string sid in PersistentContainer.Instance.Players.SteamIDs) {
-					Player p = PersistentContainer.Instance.Players [sid, false];
+				if (isSteamId) {
+					Player p = PersistentContainer.Instance.Players [nameFilter, false];
 
-					if (
-						(!onlineOnly || p.IsOnline)
-						&& (!notBannedOnly || !admTools.IsBanned (sid))
-						&& (nameFilter.Length == 0 || p.Name.ToLower ().Contains (nameFilter))
-					) {
+					if (p != null) {
 						SdtdConsole.Instance.Output (String.Format ("{0}. {1}, id={2}, steamid={3}, online={4}, ip={5}, playtime={6} m, seen={7}",
-						                                    ++num, p.Name, p.EntityID, sid, p.IsOnline, p.IP,
-						                                    p.TotalPlayTime / 60,
-						                                    p.LastOnline.ToString ("yyyy-MM-dd HH:mm"))
+							0, p.Name, p.EntityID, nameFilter, p.IsOnline, p.IP,
+							p.TotalPlayTime / 60,
+							p.LastOnline.ToString ("yyyy-MM-dd HH:mm"))
 						);
+					} else {
+						SdtdConsole.Instance.Output (String.Format ("SteamID {0} unknown!", nameFilter));
 					}
+				} else {
+					int num = 0;
+					foreach (string sid in PersistentContainer.Instance.Players.SteamIDs) {
+						Player p = PersistentContainer.Instance.Players [sid, false];
+
+						if (
+							(!onlineOnly || p.IsOnline)
+							&& (!notBannedOnly || !admTools.IsBanned (sid))
+							&& (nameFilter.Length == 0 || p.Name.ToLower ().Contains (nameFilter))
+						) {
+							SdtdConsole.Instance.Output (String.Format ("{0}. {1}, id={2}, steamid={3}, online={4}, ip={5}, playtime={6} m, seen={7}",
+							                                    ++num, p.Name, p.EntityID, sid, p.IsOnline, p.IP,
+							                                    p.TotalPlayTime / 60,
+							                                    p.LastOnline.ToString ("yyyy-MM-dd HH:mm"))
+							);
+						}
+					}
+					SdtdConsole.Instance.Output ("Total of " + PersistentContainer.Instance.Players.Count + " known");
 				}
-				SdtdConsole.Instance.Output ("Total of " + PersistentContainer.Instance.Players.Count + " known");
 			} catch (Exception e) {
 				Log.Out ("Error in ListKnownPlayers.Run: " + e);
