Index: /binary-improvements/7dtd-server-fixes/ModInfo.xml
===================================================================
--- /binary-improvements/7dtd-server-fixes/ModInfo.xml	(revision 275)
+++ /binary-improvements/7dtd-server-fixes/ModInfo.xml	(revision 276)
@@ -5,5 +5,5 @@
 		<Description value="Common functions" />
 		<Author value="Christian 'Alloc' Illy" />
-		<Version value="10" />
+		<Version value="11" />
 		<Website value="http://7dtd.illy.bz" />
 	</ModInfo>
Index: /binary-improvements/7dtd-server-fixes/src/ChatHookExample.cs
===================================================================
--- /binary-improvements/7dtd-server-fixes/src/ChatHookExample.cs	(revision 275)
+++ /binary-improvements/7dtd-server-fixes/src/ChatHookExample.cs	(revision 276)
@@ -14,5 +14,5 @@
 						GameManager.Instance.GameMessageServer (_cInfo, EnumGameMessages.Chat, string.Format("!{0}", _message), _playerName, false, "", false);
 					} else {
-						Log.Error ("Argument _cInfo null on message: {0}", _message);
+						Log.Error ("ChatHookExample: Argument _cInfo null on message: {0}", _message);
 					}
 					return false;
Index: /binary-improvements/7dtd-server-fixes/src/PersistentData/Player.cs
===================================================================
--- /binary-improvements/7dtd-server-fixes/src/PersistentData/Player.cs	(revision 275)
+++ /binary-improvements/7dtd-server-fixes/src/PersistentData/Player.cs	(revision 276)
@@ -26,4 +26,9 @@
 		[OptionalField]
 		private int maxChatLength;
+		[OptionalField]
+		private uint expToNextLevel;
+		[OptionalField]
+		private int level;
+
 		[NonSerialized]
 		private ClientInfo
@@ -112,7 +117,9 @@
 		}
 
+
+		// Deprecated
 		public uint Experience {
 			get {
-				return experience;
+				return 0;
 			}
 		}
@@ -120,7 +127,7 @@
 		public float Level {
 			get {
-				float perc = (float)experience / 600000;
-				perc = Mathf.Sqrt (perc);
-				return Mathf.Clamp ((perc * 60) + 1, 1, 60);
+				float expForNextLevel = (int)Math.Min ((Progression.BaseExpToLevel * Mathf.Pow (Progression.ExpMultiplier, level + 1)), int.MaxValue);
+				float fLevel = level + 1f - ((float)expToNextLevel / expForNextLevel);
+				return fLevel;
 			}
 		}
@@ -176,5 +183,7 @@
 
 		public void Update (PlayerDataFile _pdf) {
-			experience = _pdf.experience;
+			experience = 0;
+			expToNextLevel = _pdf.experience;
+			level = _pdf.level;
 			inventory.Update (_pdf);
 		}
Index: /binary-improvements/7dtd-server-fixes/src/PersistentData/Players.cs
===================================================================
--- /binary-improvements/7dtd-server-fixes/src/PersistentData/Players.cs	(revision 275)
+++ /binary-improvements/7dtd-server-fixes/src/PersistentData/Players.cs	(revision 276)
@@ -12,5 +12,7 @@
 		public Player this [string steamId, bool create] {
 			get {
-				if (players.ContainsKey (steamId)) {
+				if (string.IsNullOrEmpty (steamId)) {
+					return null;
+				} else if (players.ContainsKey (steamId)) {
 					return players [steamId];
 				} else {
Index: /binary-improvements/CoppisAdditions/src/ChatFilter.cs
===================================================================
--- /binary-improvements/CoppisAdditions/src/ChatFilter.cs	(revision 275)
+++ /binary-improvements/CoppisAdditions/src/ChatFilter.cs	(revision 276)
@@ -32,5 +32,5 @@
 					}
 				} else {
-					Log.Error ("Argument _cInfo null on message: {0}", _message);
+//					Log.Error ("ChatFilter: Argument _cInfo null on message: {0}", _message);
 				}
 			}
