Index: binary-improvements/7dtd-server-fixes/src/PersistentData/Player.cs
===================================================================
--- binary-improvements/7dtd-server-fixes/src/PersistentData/Player.cs	(revision 232)
+++ binary-improvements/7dtd-server-fixes/src/PersistentData/Player.cs	(revision 233)
@@ -20,4 +20,6 @@
 		private int
 			lastPositionX, lastPositionY, lastPositionZ;
+		[OptionalField]
+		private uint experience;
 		[NonSerialized]
 		private ClientInfo
@@ -94,4 +96,18 @@
 		}
 
+		public uint Experience {
+			get {
+				return experience;
+			}
+		}
+
+		public float Level {
+			get {
+				float perc = (float)experience / 600000;
+				perc = Mathf.Sqrt (perc);
+				return Mathf.Clamp ((perc * 60) + 1, 1, 60);
+			}
+		}
+
 		public void SetOffline ()
 		{
@@ -121,4 +137,9 @@
 		}
 
+		public void Update (PlayerDataFile _pdf) {
+			experience = _pdf.experience;
+			inventory.Update (_pdf);
+		}
+
 		public Player (string steamId)
 		{
Index: binary-improvements/7dtd-server-fixes/src/PersistentData/Players.cs
===================================================================
--- binary-improvements/7dtd-server-fixes/src/PersistentData/Players.cs	(revision 232)
+++ binary-improvements/7dtd-server-fixes/src/PersistentData/Players.cs	(revision 233)
@@ -11,10 +11,10 @@
 		private Dictionary<string, Player> players = new Dictionary<string, Player> ();
 
-		public Player this [string steamId] {
+		public Player this [string steamId, bool create] {
 			get {
 				if (players.ContainsKey (steamId))
 					return players [steamId];
 				else {
-					if (steamId != null && steamId.Length == 17) {
+					if (create && steamId != null && steamId.Length == 17) {
 						Log.Out ("Created new player entry for ID: " + steamId);
 						Player p = new Player (steamId);
@@ -35,22 +35,12 @@
 		}
 
-		public Player GetPlayerByClientId (int _clientid)
-		{
-			foreach (Player p in players.Values) {
-				if (p.ClientInfo != null && p.ClientInfo.clientId == _clientid) {
-					return p;
-				}
-			}
-			return null;
-		}
-
-		public Player GetPlayerByNameOrId (string _nameOrId, bool _ignoreColorCodes)
-		{
-			string sid = GetSteamID (_nameOrId, _ignoreColorCodes);
-			if (sid != null)
-				return this [sid];
-			else
-				return null;
-		}
+//		public Player GetPlayerByNameOrId (string _nameOrId, bool _ignoreColorCodes)
+//		{
+//			string sid = GetSteamID (_nameOrId, _ignoreColorCodes);
+//			if (sid != null)
+//				return this [sid];
+//			else
+//				return null;
+//		}
 
 		public string GetSteamID (string _nameOrId, bool _ignoreColorCodes)
