Index: data/defaultNexuiz.cfg
===================================================================
--- data/defaultNexuiz.cfg	(revision 8081)
+++ data/defaultNexuiz.cfg	(working copy)
@@ -306,6 +306,10 @@
 set sv_qcweaponanimation 0
 
 set g_telefrags 1
+// fragmessage: This allows extra information to be displayed with the frag centerprints. 
+set sv_fragmessage_information_ping 0 "Enable ping display information, 0 = Never display 1 = Always display (If the player is a bot, it will say bot instead of the ping.)"
+set sv_fragmessage_information_handicap 1 "Enable handicap display information, 0 = Never display 1 = Only when the player has handicap on 2 = Always (Displays Off if off)"
+set sv_fragmessage_information_stats 0 "Enable statistics (health/armor) display information, 0 = Never display 1 = Always display (Only available for the person who was killed)"
 
 // use default physics
 set sv_friction_on_land 0
Index: data/qcsrc/server/g_damage.qc
===================================================================
--- data/qcsrc/server/g_damage.qc	(revision 8081)
+++ data/qcsrc/server/g_damage.qc	(working copy)
@@ -371,11 +371,11 @@
 				}
 
 				if(sv_gentle > 0) {
-					centerprint(attacker, strcat(DAMAGE_CENTERPRINT_SPACER, "^4You scored against ^7", s));
-					centerprint(targ, strcat(DAMAGE_CENTERPRINT_SPACER, a,"^1 scored against you ^7"));
+					centerprint(attacker, strcat(DAMAGE_CENTERPRINT_SPACER, blood_message, "^4You scored against ^7", s, GetAdvancedDeathReports(targ)));
+					centerprint(targ, strcat(DAMAGE_CENTERPRINT_SPACER, a,"^1 scored against you ^7", GetAdvancedDeathReports(attacker)));
 				} else {
-					centerprint(attacker, strcat(DAMAGE_CENTERPRINT_SPACER, blood_message, "^4You fragged ^7", s));
-					centerprint(targ, strcat(DAMAGE_CENTERPRINT_SPACER, victim_message, "^1You were fragged by ^7", a));
+					centerprint(attacker, strcat(DAMAGE_CENTERPRINT_SPACER, blood_message, "^4You fragged ^7", s, GetAdvancedDeathReports(targ)));
+					centerprint(targ, strcat(DAMAGE_CENTERPRINT_SPACER, victim_message, "^1You were fragged by ^7", a, GetAdvancedDeathReports(attacker)));
 					attacker.taunt_soundtime = time + 1;
 				}
 
Index: data/qcsrc/server/miscfunctions.qc
===================================================================
--- data/qcsrc/server/miscfunctions.qc	(revision 8081)
+++ data/qcsrc/server/miscfunctions.qc	(working copy)
@@ -111,6 +111,49 @@
 float logfile_open;
 float logfile;
 
+string GetAdvancedDeathReports(entity enPlayer) // Extra fragmessage information
+{
+	local float nPlayerHealth = rint(enPlayer.health);
+	local float nPlayerArmor = rint(enPlayer.armorvalue);
+	local float nPlayerHandicap = enPlayer.cvar_cl_handicap;
+	local float nPlayerPing = rint(enPlayer.ping);
+	local string strPlayerPingColor;
+	local string strMessage;
+	if(nPlayerPing >= 150)
+		strPlayerPingColor = "^1";
+	else
+		strPlayerPingColor = "^2";
+	
+	if(cvar("sv_fragmessage_information_ping")) {
+		if(clienttype(enPlayer) == CLIENTTYPE_BOT) // Bots have no ping
+			strMessage = strcat(strMessage, "\n^7(^2Bot");
+		else
+			strMessage = strcat(strMessage, "\n^7(Ping ", strPlayerPingColor, ftos(nPlayerPing), "ms");
+		if(cvar("sv_fragmessage_information_handicap"))
+			if(cvar("sv_fragmessage_information_handicap") == 2)
+				if(nPlayerHandicap <= 1)
+					strMessage = strcat(strMessage, "^7 / Handicap ^2Off^7)");
+				else 
+					strMessage = strcat(strMessage, "^7 / Handicap ^2", ftos(nPlayerHandicap), "^7)");
+			else if(nPlayerHandicap >= 1)
+				strMessage = strcat(strMessage, "^7 / Handicap ^2", ftos(nPlayerHandicap), "^7)");
+		else
+			strMessage = strcat(strMessage, "^7)");
+	} else if(cvar("sv_fragmessage_information_handicap")) {
+		if(cvar("sv_fragmessage_information_handicap") == 2)
+			if(nPlayerHandicap <= 1)
+				strMessage = strcat(strMessage, "\n^7(Handicap ^2Off^7)");
+			else 
+				strMessage = strcat(strMessage, "\n^7(Handicap ^2", ftos(nPlayerHandicap), "^7)");
+		else if(nPlayerHandicap >= 1)
+			strMessage = strcat(strMessage, "\n^7(Handicap ^2", ftos(nPlayerHandicap), "^7)");
+	}
+	if(cvar("sv_fragmessage_information_stats"))
+		if(nPlayerHealth >= 1)
+			strMessage = strcat(strMessage, "\n^7(Health ^1", ftos(nPlayerHealth), "^7 / Armor ^2", ftos(nPlayerArmor), "^7)");
+	
+	return strMessage;
+}
 void bcenterprint(string s)
 {
     // TODO replace by MSG_ALL (would show it to spectators too, though)?
