]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Hard code the default values of each notification
authorSamual Lenks <samual@xonotic.org>
Thu, 21 Feb 2013 21:50:53 +0000 (16:50 -0500)
committerSamual Lenks <samual@xonotic.org>
Thu, 21 Feb 2013 21:50:53 +0000 (16:50 -0500)
qcsrc/common/notifications.qc
qcsrc/common/notifications.qh

index 2f9d7f1e6c08a8ad1f28472f3919ec222eb49106..126aa2a91e05b41c8495f9bbb52f45da8c477f97 100644 (file)
@@ -30,8 +30,8 @@ void Dump_Notifications(float fh, float alsoprint)
                        if(b != "") { print(b); } \
                        else { print(a); } \
                } }
-       #define NOTIF_WRITE_SETA(name,text) { \
-               notif_msg = sprintf("seta notification_%s 1 \"notif string: %s\"\n", name, strreplace("\n", "\\n", text)); \
+       #define NOTIF_WRITE_SETA(name,default,text) { \
+               notif_msg = sprintf("seta notification_%s %d \"notif string: %s\"\n", name, default, strreplace("\n", "\\n", text)); \
                NOTIF_WRITE(notif_msg, strreplace("^", "^^", notif_msg)) }
 
        string notif_msg;
@@ -70,23 +70,23 @@ void Dump_Notifications(float fh, float alsoprint)
        NOTIF_WRITE(sprintf("\n// MSG_INFO notifications (count = %d):\n", NOTIF_INFO_COUNT), "");
        for(i = 0; i < NOTIF_INFO_COUNT; ++i) {
                e = Get_Notif_Ent(MSG_INFO, i);
-               NOTIF_WRITE_SETA(e.nent_name, e.nent_string); }
+               NOTIF_WRITE_SETA(e.nent_name, e.nent_default, e.nent_string); }
 
        NOTIF_WRITE(sprintf("\n// MSG_CENTER notifications (count = %d):\n", NOTIF_CENTER_COUNT), "");
        for(i = 0; i < NOTIF_CENTER_COUNT; ++i) {
                e = Get_Notif_Ent(MSG_CENTER, i);
-               NOTIF_WRITE_SETA(e.nent_name, e.nent_string); }
+               NOTIF_WRITE_SETA(e.nent_name, e.nent_default, e.nent_string); }
 
        NOTIF_WRITE(sprintf("\n// MSG_WEAPON notifications (count = %d):\n", NOTIF_WEAPON_COUNT), "");
        for(i = 0; i < NOTIF_WEAPON_COUNT; ++i) {
                e = Get_Notif_Ent(MSG_WEAPON, i);
-               NOTIF_WRITE_SETA(e.nent_name, sprintf("infoname: %s, centername: %s",
+               NOTIF_WRITE_SETA(e.nent_name, e.nent_default, sprintf("infoname: %s, centername: %s",
                        e.nent_msginfo.nent_name, e.nent_msgcenter.nent_name)); }
 
        NOTIF_WRITE(sprintf("\n// MSG_DEATH notifications (count = %d):\n", NOTIF_DEATH_COUNT), "");
        for(i = 0; i < NOTIF_DEATH_COUNT; ++i) {
                e = Get_Notif_Ent(MSG_DEATH, i);
-               NOTIF_WRITE_SETA(e.nent_name, sprintf("infoname: %s, centername: %s",
+               NOTIF_WRITE_SETA(e.nent_name, e.nent_default, sprintf("infoname: %s, centername: %s",
                        e.nent_msginfo.nent_name, e.nent_msgcenter.nent_name)); }
 
        // edit these to match whichever cvars are used for specific notification options
index f3ef22dbf8598f2a570c7e60bf715f017e575647..66c1dd3600a01f05380f6d8b33fcadef0e0e0a26 100644 (file)
@@ -130,28 +130,31 @@ void Send_CSQC_Centerprint_Generic_Expire(entity e, float id);
 // ====================================
 /*
  List of all notifications (including identifiers and display information)
- Possible Tokens: name, infoname, centername, strnum, flnum, args, hudargs, icon, cpid, durcnt, normal, gentle
+ Possible Tokens: default, name, infoname, centername, strnum, flnum, args, hudargs, icon, cpid, durcnt, normal, gentle
  Format Specifications:
     MSG_INFO:
+      default: FLOAT: Default setting for whether the notification is enabled or not
       name: VAR: Name of notification
       strnum: FLOAT: Number of STRING arguments (so that networking knows how many to send/receive)
       flnum: FLOAT: Number of FLOAT arguments (so that networking knows how many to send/receive)
-      args: MISC: Arguments for sprintf(string, args), if no args needed then use ""
-      hudargs: XPD(STRING, STRING): arguments for names in notify messages 
+      args: STRING: Arguments for Local_Notification_sprintf()
+      hudargs: STRING: Arguments for Local_Notification_HUD_Notify_Push()
       icon: STRING: icon string name for the hud notify panel, "" if no icon is used
       normal: STRING: Normal message (string for sprintf when gentle messages are NOT enabled)
       gentle: STRING: Gentle message (string for sprintf when gentle messages ARE enabled)
     MSG_CENTER:
+      default: FLOAT: Default setting for whether the notification is enabled or not
       name: VAR: Name of notification
       strnum: FLOAT: Number of STRING arguments (so that networking knows how many to send/receive)
       flnum: FLOAT: Number of FLOAT arguments (so that networking knows how many to send/receive)
-      args: MISC: Arguments for sprintf(string, args), if no args needed then use ""
+      args: STRING: Arguments for Local_Notification_sprintf()
       cpid: FLOAT: centerprint ID number (CPID_*), NO_CPID if no CPID is needed
       durcnt: XPD(FLOAT, FLOAT): Duration/Countdown: extra arguments for centerprint messages
       normal: STRING: Normal message (string for sprintf when gentle messages are NOT enabled)
       gentle: STRING: Gentle message (string for sprintf when gentle messages ARE enabled)
     MSG_WEAPON:
     MSG_DEATH:
+      default: FLOAT: Default setting for whether the notification is enabled or not
       name: VAR: Name of chaining notification
       infoname: VAR: Name of info notification for reference
       centername: VAR: Name of centerprint notification for reference
@@ -188,400 +191,400 @@ void Send_CSQC_Centerprint_Generic_Expire(entity e, float id);
       If you send a notification with mismatching arguments, Send_Notification() will error.
 */
 
-#define MULTITEAM_INFO(prefix,teams,strnum,flnum,args,hudargs,icon,normal,gentle) \
-       MSG_INFO_NOTIF(prefix##RED, strnum, flnum, args, hudargs, sprintf(icon, strtolower(STR_TEAM_1)), TCR(normal, COL_TEAM_1, strtoupper(STR_TEAM_1)), TCR(gentle, COL_TEAM_1, strtoupper(STR_TEAM_1))) \
-       MSG_INFO_NOTIF(prefix##BLUE, strnum, flnum, args, hudargs, sprintf(icon, strtolower(STR_TEAM_2)), TCR(normal, COL_TEAM_2, strtoupper(STR_TEAM_2)), TCR(gentle, COL_TEAM_2, strtoupper(STR_TEAM_2))) \
+#define MULTITEAM_INFO(default,prefix,teams,strnum,flnum,args,hudargs,icon,normal,gentle) \
+       MSG_INFO_NOTIF(default, prefix##RED, strnum, flnum, args, hudargs, sprintf(icon, strtolower(STR_TEAM_1)), TCR(normal, COL_TEAM_1, strtoupper(STR_TEAM_1)), TCR(gentle, COL_TEAM_1, strtoupper(STR_TEAM_1))) \
+       MSG_INFO_NOTIF(default, prefix##BLUE, strnum, flnum, args, hudargs, sprintf(icon, strtolower(STR_TEAM_2)), TCR(normal, COL_TEAM_2, strtoupper(STR_TEAM_2)), TCR(gentle, COL_TEAM_2, strtoupper(STR_TEAM_2))) \
        #if teams >= 3 \
-               MSG_INFO_NOTIF(prefix##YELLOW, strnum, flnum, args, hudargs, sprintf(icon, strtolower(STR_TEAM_3)), TCR(normal, COL_TEAM_3, strtoupper(STR_TEAM_3)), TCR(gentle, COL_TEAM_3, strtoupper(STR_TEAM_3))) \
+               MSG_INFO_NOTIF(default, prefix##YELLOW, strnum, flnum, args, hudargs, sprintf(icon, strtolower(STR_TEAM_3)), TCR(normal, COL_TEAM_3, strtoupper(STR_TEAM_3)), TCR(gentle, COL_TEAM_3, strtoupper(STR_TEAM_3))) \
        #endif \
        #if teams >= 4 \
-               MSG_INFO_NOTIF(prefix##PINK, strnum, flnum, args, hudargs, sprintf(icon, strtolower(STR_TEAM_4)), TCR(normal, COL_TEAM_4, strtoupper(STR_TEAM_4)), TCR(gentle, COL_TEAM_4, strtoupper(STR_TEAM_4))) \
+               MSG_INFO_NOTIF(default, prefix##PINK, strnum, flnum, args, hudargs, sprintf(icon, strtolower(STR_TEAM_4)), TCR(normal, COL_TEAM_4, strtoupper(STR_TEAM_4)), TCR(gentle, COL_TEAM_4, strtoupper(STR_TEAM_4))) \
        #endif
 #define MSG_INFO_NOTIFICATIONS \
        /*MSG_INFO_NOTIF(INFO_EMPTY,                                            0, 0, "", "",                                                   "",                                             "", "")*/ \
-       MULTITEAM_INFO(INFO_CTF_FLAGRETURN_DROPPED_, 2,         0, 0, "", "",                                                   "",                                             _("^BGThe ^TC^TT^BG flag was dropped in the base and returned itself\n"), "") \
-       MULTITEAM_INFO(INFO_CTF_FLAGRETURN_DAMAGED_, 2,         0, 0, "", "",                                                   "",                                             _("^BGThe ^TC^TT^BG flag was destroyed and returned to base\n"), "") \
-       MULTITEAM_INFO(INFO_CTF_FLAGRETURN_SPEEDRUN_, 2,        0, 1, "f1p2dec", "",                                    "",                                             _("^BGThe ^TC^TT^BG flag became impatient after ^F1%.2f^BG seconds and returned itself\n"), "") \
-       MULTITEAM_INFO(INFO_CTF_FLAGRETURN_NEEDKILL_, 2,        0, 0, "", "",                                                   "",                                             _("^BGThe ^TC^TT^BG flag fell somewhere it couldn't be reached and returned to base\n"), "") \
-       MULTITEAM_INFO(INFO_CTF_FLAGRETURN_ABORTRUN_, 2,        0, 0, "", "",                                                   "",                                             _("^BGThe ^TC^TT^BG flag was returned to base by its owner\n"), "") \
-       MULTITEAM_INFO(INFO_CTF_FLAGRETURN_TIMEOUT_, 2,         0, 0, "", "",                                                   "",                                             _("^BGThe ^TC^TT^BG flag has returned to the base\n"), "") \
-       MULTITEAM_INFO(INFO_CTF_PICKUP_, 2,                                     1, 0, "s1", "s1",                                               "notify_%s_taken",              _("^BG%s^BG got the ^TC^TT^BG flag\n"), "") \
-       MULTITEAM_INFO(INFO_CTF_RETURN_, 2,                                     1, 0, "s1", "s1",                                               "notify_%s_returned",   _("^BG%s^BG returned the ^TC^TT^BG flag\n"), "") \
-       MULTITEAM_INFO(INFO_CTF_LOST_, 2,                                       1, 0, "s1", "s1",                                               "notify_%s_lost",               _("^BG%s^BG lost the ^TC^TT^BG flag\n"), "") \
-       MULTITEAM_INFO(INFO_CTF_CAPTURE_, 2,                            1, 0, "s1", "s1",                                               "notify_%s_captured",   _("^BG%s^BG captured the ^TC^TT^BG flag\n"), "") \
-       MULTITEAM_INFO(INFO_CTF_CAPTURE_TIME_, 2,                       1, 1, "s1 f1p2dec", "s1",                               "notify_%s_captured",   _("^BG%s^BG captured the ^TC^TT^BG flag in ^F1%s^BG seconds\n"), "") \
-       MULTITEAM_INFO(INFO_CTF_CAPTURE_BROKEN_, 2,                     2, 2, "s1 f1p2dec s2 f2p2dec", "s1",    "notify_%s_captured",   _("^BG%s^BG captured the ^TC^TT^BG flag in ^F1%s^BG seconds, breaking ^BG%s^BG's previous record of ^F2%s^BG seconds\n"), "") \
-       MULTITEAM_INFO(INFO_CTF_CAPTURE_UNBROKEN_, 2,           2, 2, "s1 f1p2dec s2 f2p2dec", "s1",    "notify_%s_captured",   _("^BG%s^BG captured the ^TC^TT^BG flag in ^F2%s^BG seconds, failing to break ^BG%s^BG's previous record of ^F1%s^BG seconds\n"), "") \
-       MULTITEAM_INFO(INFO_DEATH_TEAMKILL_, 4,                         2, 1, "s1 s2 spree_end", "s2 s1",               "notify_teamkill_%s",   _("^BG%s^K1 was betrayed by ^BG%s^K1%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_FIRSTBLOOD,                           2, 0, "s2", "",                                                 "",                                             _("^BG%s^K1 drew first blood\n"), _("^F1%s^K1 got the first score\n")) \
-       MSG_INFO_NOTIF(INFO_DEATH_SELF_CUSTOM,                          2, 1, "s1 s2 spree_end", "s1",                  "notify_void",                  _("^BG%s^K1 %s^K1%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_SELF_GENERIC,                         1, 1, "s1 spree_end", "s1",                             "notify_selfkill",              _("^BG%s^K1 died%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_SELF_VOID,                            1, 1, "s1 spree_end", "s1",                             "notify_void",                  _("^BG%s^K1 was in the wrong place%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_SELF_SUICIDE,                         1, 1, "s1 spree_end", "s1",                             "notify_selfkill",              _("^BG%s^K1 couldn't take it anymore%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_SELF_NOAMMO,                          1, 1, "s1 spree_end", "s1",                             "notify_outofammo",             _("^BG%s^K1 died%s. What's the point of living without ammo?\n"), _("^F1%s^K1 ran out of ammo%s\n")) \
-       MSG_INFO_NOTIF(INFO_DEATH_SELF_ROT,                                     1, 1, "s1 spree_end", "s1",                             "notify_death",                 _("^BG%s^K1 rotted away%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_SELF_CAMP,                            1, 1, "s1 spree_end", "s1",                             "notify_camping",               _("^BG%s^K1 thought they found a nice camping ground%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_SELF_BETRAYAL,                        1, 1, "s1 spree_end", "s1",                             "notify_teamkill_red",  _("^BG%s^K1 became enemies with the Lord of Teamplay%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_SELF_TEAMCHANGE,                      1, 1, "s1 death_team", "",                              "",                                             _("^BG%s^K1 switched to the %s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_SELF_AUTOTEAMCHANGE,          1, 1, "s1 death_team", "",                              "",                                             _("^BG%s^K1 was moved into the %s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_SELF_FALL,                            1, 1, "s1 spree_end", "s1",                             "notify_fall",                  _("^BG%s^K1 hit the ground with a crunch%s\n"), _("^F1%s^K1 hit the ground with a bit too much force%s\n")) \
-       MSG_INFO_NOTIF(INFO_DEATH_SELF_DROWN,                           1, 1, "s1 spree_end", "s1",                             "notify_water",                 _("^BG%s^K1 couldn't catch their breath%s\n"), _("^F1%s^K1 was in the water for too long%s\n")) \
-       MSG_INFO_NOTIF(INFO_DEATH_SELF_FIRE,                            1, 1, "s1 spree_end", "s1",                             "notify_death",                 _("^BG%s^K1 became a bit too crispy%s\n"), _("^F1%s^K1 felt a little hot%s\n")) \
-       MSG_INFO_NOTIF(INFO_DEATH_SELF_LAVA,                            1, 1, "s1 spree_end", "s1",                             "notify_lava",                  _("^BG%s^K1 turned into hot slag%s\n"), _("^F1%s^K1 found a hot place%s\n")) \
-       MSG_INFO_NOTIF(INFO_DEATH_SELF_SLIME,                           1, 1, "s1 spree_end", "s1",                             "notify_slime",                 _("^BG%s^K1 was slimed%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_SELF_SHOOTING_STAR,           1, 1, "s1 spree_end", "s1",                             "notify_shootingstar",  _("^BG%s^K1 became a shooting star%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_SELF_SWAMP,                           1, 1, "s1 spree_end", "s1",                             "notify_slime",                 _("^BG%s^K1 is now preserved for centuries to come%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_SELF_CHEAT,                           1, 1, "s1 spree_end", "s1",                             "notify_selfkill",              _("^BG%s^K1 unfairly eliminated themself%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_SELF_TOUCHEXPLODE,            1, 1, "s1 spree_end", "s1",                             "notify_death",                 _("^BG%s^K1 died in an accident%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_SELF_TURRET,                                  1, 1, "s1 spree_end", "s1",                     "notify_death",                 _("^BG%s^K1 ran into a turret%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_SELF_TURRET_EWHEEL,                   1, 1, "s1 spree_end", "s1",                     "notify_death",                 _("^BG%s^K1 was blasted away by an eWheel turret%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_SELF_TURRET_FLAC,                             1, 1, "s1 spree_end", "s1",                     "notify_death",                 _("^BG%s^K1 got caught up in the FLAC turret fire%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_SELF_TURRET_MACHINEGUN,               1, 1, "s1 spree_end", "s1",                     "notify_death",                 _("^BG%s^K1 was riddled full of holes by a Machinegun turret%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_SELF_TURRET_WALKER_GUN,               1, 1, "s1 spree_end", "s1",                     "notify_death",                 _("^BG%s^K1 got served a lead enrichment by a Walker turret%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_SELF_TURRET_WALKER_MEELE,             1, 1, "s1 spree_end", "s1",                     "notify_death",                 _("^BG%s^K1 was impaled by a Walker turret%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_SELF_TURRET_WALKER_ROCKET,    1, 1, "s1 spree_end", "s1",                     "notify_death",                 _("^BG%s^K1 was blasted away by a Walker turret%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_SELF_TURRET_HELLION,                  1, 1, "s1 spree_end", "s1",                     "notify_death",                 _("^BG%s^K1 was blasted away by a Hellion turret%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_SELF_TURRET_HK,                               1, 1, "s1 spree_end", "s1",                     "notify_death",                 _("^BG%s^K1 could not hide from the Hunter turret%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_SELF_TURRET_MLRS,                             1, 1, "s1 spree_end", "s1",                     "notify_death",                 _("^BG%s^K1 got turned into smoldering gibs by an MLRS turret%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_SELF_TURRET_PLASMA,                   1, 1, "s1 spree_end", "s1",                     "notify_death",                 _("^BG%s^K1 got served some superheated plasma from a turret%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_SELF_TURRET_PHASER,                   1, 1, "s1 spree_end", "s1",                     "notify_death",                 _("^BG%s^K1 was phased out by a turret%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_SELF_TURRET_TESLA,                    1, 1, "s1 spree_end", "s1",                     "notify_death",                 _("^BG%s^K1 was electrocuted by a Tesla turret%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_MURDER_TELEFRAG,                      2, 1, "s1 s2 spree_end", "s2 s1",               "notify_telefrag",              _("^BG%s^K1 was telefragged by ^BG%s^K1%s\n"), _("^F1%s^K1 tried to occupy ^BG%s^K1's teleport destination space\n")) \
-       MSG_INFO_NOTIF(INFO_DEATH_MURDER_FALL,                          2, 1, "s1 s2 spree_end", "s2 s1",               "notify_fall",                  _("^BG%s^K1 was grounded by ^BG%s^K1%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_MURDER_DROWN,                         2, 1, "s1 s2 spree_end", "s2 s1",               "notify_water",                 _("^BG%s^K1 was drowned by ^BG%s^K1%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_MURDER_LAVA,                          2, 1, "s1 s2 spree_end", "s2 s1",               "notify_lava",                  _("^BG%s^K1 was cooked by ^BG%s^K1%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_MURDER_SLIME,                         2, 1, "s1 s2 spree_end", "s2 s1",               "notify_slime",                 _("^BG%s^K1 was slimed by ^BG%s^K1%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_MURDER_SHOOTING_STAR,         2, 1, "s1 s2 spree_end", "s2 s1",               "notify_shootingstar",  _("^BG%s^K1 was shot into space by ^BG%s^K1%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_MURDER_SWAMP,                         2, 1, "s1 s2 spree_end", "s2 s1",               "notify_slime",                 _("^BG%s^K1 was preserved by ^BG%s^K1%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_MURDER_VOID,                          2, 1, "s1 s2 spree_end", "s2 s1",               "notify_void",                  _("^BG%s^K1 was thrown into a world of hurt by ^BG%s^K1%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_MURDER_TOUCHEXPLODE,          2, 1, "s1 s2 spree_end", "s2 s1",               "notify_death",                 _("^BG%s^K1 died in an accident with ^BG%s^K1%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_MURDER_CHEAT,                         2, 1, "s1 s2 spree_end", "s2 s1",               "notify_death",                 _("^BG%s^K1 was unfairly eliminated by ^BG%s^K1%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_MURDER_FIRE,                          2, 1, "s1 s2 spree_end", "s2 s1",               "notify_death",                 _("^BG%s^K1 was burnt up into a crisp by ^BG%s^K1%s\n"), _("^F1%s^K1 felt a little hot from ^BG%s^K1's fire^K1%s\n")) \
-       MSG_INFO_NOTIF(INFO_DEATH_MURDER_VH_CRUSH,                      2, 1, "s1 s2 spree_end", "s2 s1",               "notify_death",                 _("^BG%s^K1 was crushed by ^BG%s^K1%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_MURDER_VH_SPID_MINIGUN,       2, 1, "s1 s2 spree_end", "s2 s1",               "notify_death",                 _("^BG%s^K1 got shredded by ^BG%s^K1%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_MURDER_VH_SPID_ROCKET,        2, 1, "s1 s2 spree_end", "s2 s1",               "notify_death",                 _("^BG%s^K1 was blasted to bits by ^BG%s^K1%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_MURDER_VH_SPID_DEATH,         2, 1, "s1 s2 spree_end", "s2 s1",               "notify_death",                 _("^BG%s^K1 got caught in the blast when ^BG%s^K1%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_MURDER_VH_WAKI_GUN,           2, 1, "s1 s2 spree_end", "s2 s1",               "notify_death",                 _("^BG%s^K1 was bolted down by ^BG%s^K1%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_MURDER_VH_WAKI_ROCKET,        2, 1, "s1 s2 spree_end", "s2 s1",               "notify_death",                 _("^BG%s^K1 couldn't find shelter from ^BG%s^K1%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_MURDER_VH_WAKI_DEATH,         2, 1, "s1 s2 spree_end", "s2 s1",               "notify_death",                 _("^BG%s^K1 got caught in the blast when ^BG%s^K1%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_MURDER_VH_RAPT_CANNON,        2, 1, "s1 s2 spree_end", "s2 s1",               "notify_death",                 _("^BG%s^K1 couldn't resist ^BG%s^K1 purple blobs%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_MURDER_VH_RAPT_BOMB,          2, 1, "s1 s2 spree_end", "s2 s1",               "notify_death",                 _("^BG%s^K1 was cluster bombed by ^BG%s^K1%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_MURDER_VH_RAPT_FRAGMENT,      2, 1, "s1 s2 spree_end", "s2 s1",               "notify_death",                 _("^BG%s^K1 was cluster bombed by ^BG%s^K1%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_MURDER_VH_RAPT_DEATH,         2, 1, "s1 s2 spree_end", "s2 s1",               "notify_death",                 _("^BG%s^K1 got caught in the blast when ^BG%s^K1%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_MURDER_VH_BUMB_GUN,           2, 1, "s1 s2 spree_end", "s2 s1",               "notify_death",                 _("^BG%s^K1 foobar by ^BG%s^K1%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_MURDER_VH_BUMB_RAY,           2, 1, "s1 s2 spree_end", "s2 s1",               "notify_death",                 _("^BG%s^K1 foobar by ^BG%s^K1%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_MURDER_VH_BUMB_RAY_HEAL,      2, 1, "s1 s2 spree_end", "s2 s1",               "notify_death",                 _("^BG%s^K1 foobar by ^BG%s^K1%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_DEATH_MURDER_VH_BUMB_DEATH,         2, 1, "s1 s2 spree_end", "s2 s1",               "notify_death",                 _("^BG%s^K1 foobar by ^BG%s^K1%s\n"), "") \
-       MULTITEAM_INFO(INFO_FREEZETAG_ROUND_WIN_, 4,            0, 0, "", "",                                                   "",                                             _("^TC^TT^BG team wins the round, all other teams were frozen\n"), "") \
-       MSG_INFO_NOTIF(INFO_FREEZETAG_REVIVE,                           2, 0, "s1 s2", "",                                              "",                                             _("^BG%s^K3 was revived by ^BG%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_FREEZETAG_FREEZE,                           2, 0, "s1 s2", "",                                              "",                                             _("^BG%s^K1 was frozen by ^BG%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_FREEZETAG_SELF,                                     1, 0, "s1", "",                                                 "",                                             _("^BG%s^K1 froze themself\n"), "") \
-       MSG_INFO_NOTIF(INFO_GODMODE_OFF,                                        0, 1, "f1", "",                                                 "",                                             _("^BGGodmode saved you %s units of damage, cheater!\n"), "") \
-       MSG_INFO_NOTIF(INFO_JOIN_CONNECT,                                       1, 0, "s1", "",                                                 "",                                             _("^BG%s^F3 connected%s\n"), "") \
-       MULTITEAM_INFO(INFO_JOIN_CONNECT_TEAM_, 4,                      1, 0, "s1", "",                                                 "",                                             _("^BG%s^F3 connected and joined the ^TC^TT\n"), "") \
-       MSG_INFO_NOTIF(INFO_JOIN_PLAY,                                          1, 0, "s1", "",                                                 "",                                             _("^BG%s^F3 is now playing\n"), "") \
-       MSG_INFO_NOTIF(INFO_KEEPAWAY_DROPPED,                           1, 0, "s1", "s1",                                               "notify_balldropped",   _("^BG%s^BG has dropped the ball!\n"), "") \
-       MSG_INFO_NOTIF(INFO_KEEPAWAY_PICKUP,                            1, 0, "s1", "s1",                                               "notify_ballpickedup",  _("^BG%s^BG has picked up the ball!\n"), "") \
-       MSG_INFO_NOTIF(INFO_LMS_NOLIVES,                                        1, 0, "s1", "s1",                                               "",                                             _("^BG%s^F3 has no more lives left\n"), "") \
-       MSG_INFO_NOTIF(INFO_LMS_FORFEIT,                                        1, 0, "s1", "s1",                                               "",                                             _("^BG%s^F3 forfeited\n"), "") \
-       MSG_INFO_NOTIF(INFO_POWERDOWN_INVISIBILITY,                     0, 0, "", "",                                                   "",                                             _("^F2Invisibility has worn off\n"), "") \
-       MSG_INFO_NOTIF(INFO_POWERDOWN_SHIELD,                           0, 0, "", "",                                                   "",                                             _("^F2Shield has worn off\n"), "") \
-       MSG_INFO_NOTIF(INFO_POWERDOWN_SPEED,                            0, 0, "", "",                                                   "",                                             _("^F2Speed has worn off\n"), "") \
-       MSG_INFO_NOTIF(INFO_POWERDOWN_STRENGTH,                         0, 0, "", "",                                                   "",                                             _("^F2Strength has worn off\n"), "") \
-       MSG_INFO_NOTIF(INFO_POWERUP_INVISIBILITY,                       0, 0, "", "",                                                   "",                                             _("^F2You are invisible\n"), "") \
-       MSG_INFO_NOTIF(INFO_POWERUP_SHIELD,                                     0, 0, "", "",                                                   "",                                             _("^F2Shield surrounds you\n"), "") \
-       MSG_INFO_NOTIF(INFO_POWERUP_SPEED,                                      0, 0, "", "",                                                   "",                                             _("^F2You are on speed\n"), "") \
-       MSG_INFO_NOTIF(INFO_POWERUP_STRENGTH,                           0, 0, "", "",                                                   "",                                             _("^F2Strength infuses your weapons with devastating power\n"), "") \
-       MSG_INFO_NOTIF(INFO_QUIT_DISCONNECT,                            1, 0, "s1", "s1",                                               "",                                             _("^BG%s^F3 disconnected\n"), "") \
-       MSG_INFO_NOTIF(INFO_QUIT_KICK_IDLING,                           1, 0, "s1", "s1",                                               "",                                             _("^BG%s^F3 was kicked for idling\n"), "") \
-       MSG_INFO_NOTIF(INFO_QUIT_KICK_SPECTATING,                       0, 0, "", "",                                                   "",                                             _("^F2You were kicked from the server because you are a spectator and spectators aren't allowed at the moment.\n"), "") \
-       MSG_INFO_NOTIF(INFO_QUIT_SPECTATE,                                      1, 0, "s1", "s1",                                               "",                                             _("^BG%s^F3 is now spectating\n"), "") \
-       MSG_INFO_NOTIF(INFO_RACE_FAIL,                                          2, 0, "s1 s2", "s1",                                    "race_newfail",                 "", "") \
-       MSG_INFO_NOTIF(INFO_RACE_NEW_RECORD,                            2, 0, "s1 s2", "s1",                                    "race_newrecordserver", "", "") \
-       MSG_INFO_NOTIF(INFO_RACE_NEW_TIME,                                      2, 0, "s1 s2", "s1",                                    "race_newtime",                 "", "") \
-       MSG_INFO_NOTIF(INFO_RACE_NEW_RANK,                                      2, 0, "s1 s2", "s1",                                    "race_newrankyellow",   "", "") \
-       MULTITEAM_INFO(INFO_SCORES_, 4,                                         0, 0, "", "",                                                   "",                                             _("^TC^TT ^BGteam scores!\n"), "") \
-       MSG_INFO_NOTIF(INFO_SPECTATE_WARNING,                           0, 1, "f1", "",                                                 "",                                             _("^F2You have to become a player within the next %s seconds, otherwise you will be kicked, because spectating isn't allowed at this time!\n"), "") \
-       MSG_INFO_NOTIF(INFO_SUPERWEAPON_BROKEN,                         0, 0, "", "",                                                   "",                                             _("^F2Superweapons have broken down\n"), "") \
-       MSG_INFO_NOTIF(INFO_SUPERWEAPON_PICKUP,                         0, 0, "", "",                                                   "",                                             _("^F2You now have a superweapon\n"), "") \
-       MSG_INFO_NOTIF(INFO_SUPERWEAPON_LOST,                           0, 0, "", "",                                                   "",                                             _("^F2Superweapons have been lost\n"), "") \
-       MSG_INFO_NOTIF(INFO_VERSION_BETA,                                       2, 0, "s1 s2", "",                                              "",                                             _("\{1}^F4NOTE: ^BGThe server is running ^F1Xonotic %s (beta)^BG, you have ^F2Xonotic %s\n"), "") \
-       MSG_INFO_NOTIF(INFO_VERSION_OLD,                                        2, 0, "s1 s2", "",                                              "",                                             _("\{1}^F4NOTE: ^BGThe server is running ^F1Xonotic %s^BG, you have ^F2Xonotic %s\n"), "") \
-       MSG_INFO_NOTIF(INFO_VERSION_OUTDATED,                           2, 0, "s1 s2", "",                                              "",                                             _("\{1}^F4NOTE: ^F1Xonotic %s^BG is out, and you still have ^F2Xonotic %s^BG - get the update from ^F3http://www.xonotic.org/^BG!\n"), "") \
-       MSG_INFO_NOTIF(INFO_WATERMARK,                                          1, 0, "s1", "",                                                 "",                                             _("^F3SVQC Build information: ^F4%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_THINKING_WITH_PORTALS,                       1, 1, "s1 spree_end", "s1",             "notify_selfkill",                      _("^BG%s^K1 is now thinking with portals%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_CRYLINK_SUICIDE,                             1, 1, "s1 spree_end", "s1",             "weaponcrylink",                        _("^BG%s^K1 felt the strong pull of their Crylink%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_CRYLINK_MURDER,                                      2, 1, "s1 s2 spree_end", "s2 s1",       "weaponcrylink",                        _("^BG%s^K1 felt the strong pull of ^BG%s^K1's Crylink%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_ELECTRO_SUICIDE_ORBS,                        1, 1, "s1 spree_end", "s1",             "weaponelectro",                        _("^BG%s^K1 could not remember where they put their Electro plasma%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_ELECTRO_SUICIDE_BOLT,                        1, 1, "s1 spree_end", "s1",             "weaponelectro",                        _("^BG%s^K1 played with Electro plasma%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_ELECTRO_MURDER_BOLT,                         2, 1, "s1 s2 spree_end", "s2 s1",       "weaponelectro",                        _("^BG%s^K1 was blasted by ^BG%s^K1's Electro bolt%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_ELECTRO_MURDER_ORBS,                         2, 1, "s1 s2 spree_end", "s2 s1",       "weaponelectro",                        _("^BG%s^K1 got too close to ^BG%s^K1's Electro plasma%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_ELECTRO_MURDER_COMBO,                        2, 1, "s1 s2 spree_end", "s2 s1",       "weaponelectro",                        _("^BG%s^K1 felt the electrifying air of ^BG%s^K1's Electro combo%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_FIREBALL_SUICIDE_FIREMINE,           1, 1, "s1 spree_end", "s1",             "weaponfireball",                       _("^BG%s^K1 forgot about their firemine%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_FIREBALL_SUICIDE_BLAST,                      1, 1, "s1 spree_end", "s1",             "weaponfireball",                       _("^BG%s^K1 should have used a smaller gun%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_FIREBALL_MURDER_FIREMINE,            2, 1, "s1 s2 spree_end", "s2 s1",       "weaponfireball",                       _("^BG%s^K1 got burnt by ^BG%s^K1's firemine%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_FIREBALL_MURDER_BLAST,                       2, 1, "s1 s2 spree_end", "s2 s1",       "weaponfireball",                       _("^BG%s^K1 got too close to ^BG%s^K1's fireball%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_MORTAR_SUICIDE_EXPLODE,                      1, 1, "s1 spree_end", "s1",             "weapongrenadelauncher",        _("^BG%s^K1 blew themself up with their own Mortar%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_MORTAR_SUICIDE_BOUNCE,                       1, 1, "s1 spree_end", "s1",             "weapongrenadelauncher",        _("^BG%s^K1 didn't see their own Mortar grenade%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_MORTAR_MURDER_EXPLODE,                       2, 1, "s1 s2 spree_end", "s2 s1",       "weapongrenadelauncher",        _("^BG%s^K1 ate ^BG%s^K1's Mortar grenade%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_MORTAR_MURDER_BOUNCE,                        2, 1, "s1 s2 spree_end", "s2 s1",       "weapongrenadelauncher",        _("^BG%s^K1 got too close to ^BG%s^K1's Mortar grenade%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_HAGAR_SUICIDE,                                       1, 1, "s1 spree_end", "s1",             "weaponhagar",                          _("^BG%s^K1 played with tiny Hagar rockets%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_HAGAR_MURDER_BURST,                          2, 1, "s1 s2 spree_end", "s2 s1",       "weaponhagar",                          _("^BG%s^K1 was pummeled by a burst of ^BG%s^K1's Hagar rockets%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_HAGAR_MURDER_SPRAY,                          2, 1, "s1 s2 spree_end", "s2 s1",       "weaponhagar",                          _("^BG%s^K1 was pummeled by ^BG%s^K1's Hagar rockets%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_HLAC_SUICIDE,                                        1, 1, "s1 spree_end", "s1",             "weaponhlac",                           _("^BG%s^K1 got a little jumpy with their HLAC%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_HLAC_MURDER,                                         2, 1, "s1 s2 spree_end", "s2 s1",       "weaponhlac",                           _("^BG%s^K1 was cut down with ^BG%s^K1's HLAC%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_HOOK_MURDER,                                         2, 1, "s1 s2 spree_end", "s2 s1",       "weaponhook",                           _("^BG%s^K1 was caught in ^BG%s^K1's Hook gravity bomb%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_LASER_SUICIDE,                                       1, 1, "s1 spree_end", "s1",             "weaponlaser",                          _("^BG%s^K1 shot themself to hell with their Laser%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_LASER_MURDER,                                        2, 1, "s1 s2 spree_end", "s2 s1",       "weaponlaser",                          _("^BG%s^K1 was shot to death by ^BG%s^K1's Laser%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_MINELAYER_SUICIDE,                           1, 1, "s1 spree_end", "s1",             "weaponminelayer",                      _("^BG%s^K1 forgot about their mine%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_MINELAYER_MURDER,                            2, 1, "s1 s2 spree_end", "s2 s1",       "weaponminelayer",                      _("^BG%s^K1 got too close to ^BG%s^K1's mine%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_MINSTANEX_MURDER,                            2, 1, "s1 s2 spree_end", "s2 s1",       "weaponminstanex",                      _("^BG%s^K1 has been vaporized by ^BG%s^K1's Minstanex%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_NEX_MURDER,                                          2, 1, "s1 s2 spree_end", "s2 s1",       "weaponnex",                            _("^BG%s^K1 has been vaporized by ^BG%s^K1's Nex%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_RIFLE_MURDER_HAIL_PIERCING,          2, 1, "s1 s2 spree_end", "s2 s1",       "weaponrifle",                          _("^BG%s^K1 failed to hide from ^BG%s^K1's Rifle bullet hail%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_RIFLE_MURDER_HAIL,                           2, 1, "s1 s2 spree_end", "s2 s1",       "weaponrifle",                          _("^BG%s^K1 died in ^BG%s^K1's Rifle bullet hail%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_RIFLE_MURDER_PIERCING,                       2, 1, "s1 s2 spree_end", "s2 s1",       "weaponrifle",                          _("^BG%s^K1 failed to hide from ^BG%s^K1's Rifle%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_RIFLE_MURDER,                                        2, 1, "s1 s2 spree_end", "s2 s1",       "weaponrifle",                          _("^BG%s^K1 was sniped with a Rifle by ^BG%s^K1%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_RIFLE_MURDER_HEADSHOT,                       2, 1, "s1 s2 spree_end", "s2 s1",       "notify_headshot",                      _("^BG%s^K1 was shot in the head with a Rifle by ^BG%s^K1%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_ROCKETLAUNCHER_SUICIDE,                      1, 1, "s1 spree_end", "s1",             "weaponrocketlauncher",         _("^BG%s^K1 blew themself up with their Rocketlauncher%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_ROCKETLAUNCHER_MURDER_DIRECT,        2, 1, "s1 s2 spree_end", "s2 s1",       "weaponrocketlauncher",         _("^BG%s^K1 ate ^BG%s^K1's rocket%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_ROCKETLAUNCHER_MURDER_SPLASH,        2, 1, "s1 s2 spree_end", "s2 s1",       "weaponrocketlauncher",         _("^BG%s^K1 got too close ^BG%s^K1's rocket%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_SEEKER_SUICIDE,                                      1, 1, "s1 spree_end", "s1",             "weaponseeker",                         _("^BG%s^K1 played with tiny Seeker rockets%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_SEEKER_MURDER_TAG,                           2, 1, "s1 s2 spree_end", "s2 s1",       "weaponseeker",                         _("^BG%s^K1 was tagged by ^BG%s^K1's Seeker%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_SEEKER_MURDER_SPRAY,                         2, 1, "s1 s2 spree_end", "s2 s1",       "weaponseeker",                         _("^BG%s^K1 was pummeled by ^BG%s^K1's Seeker rockets%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_SHOTGUN_MURDER_SLAP,                         2, 1, "s2 s1 spree_end", "s2 s1",       "notify_melee_shotgun",         _("^BG%s^K1 slapped ^BG%s^K1 around a bit with a large Shotgun%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_SHOTGUN_MURDER,                                      2, 1, "s1 s2 spree_end", "s2 s1",       "weaponshotgun",                        _("^BG%s^K1 was gunned down by ^BG%s^K1's Shotgun%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_TUBA_SUICIDE,                                        1, 1, "s1 spree_end", "s1",             "weapontuba",                           _("^BG%s^K1 hurt their own ears with the @!#%%'n Tuba%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_TUBA_MURDER,                                         2, 1, "s1 s2 spree_end", "s2 s1",       "weapontuba",                           _("^BG%s^K1 died of ^BG%s^K1's great playing on the @!#%%'n Tuba%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_ACCORDEON_SUICIDE,                           1, 1, "s1 spree_end", "s1",             "weapontuba",                           _("^BG%s^K1 hurt their own ears with the @!#%%'n Accordeon%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_ACCORDEON_MURDER,                            2, 1, "s1 s2 spree_end", "s2 s1",       "weapontuba",                           _("^BG%s^K1 died of ^BG%s^K1's great playing on the @!#%%'n Accordeon%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_KLEINBOTTLE_SUICIDE,                         1, 1, "s1 spree_end", "s1",             "weapontuba",                           _("^BG%s^K1 hurt their own ears with the @!#%%'n Klein Bottle%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_KLEINBOTTLE_MURDER,                          2, 1, "s1 s2 spree_end", "s2 s1",       "weapontuba",                           _("^BG%s^K1 died of ^BG%s^K1's great playing on the @!#%%'n Klein Bottle%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_UZI_MURDER_SNIPE,                            2, 1, "s1 s2 spree_end", "s2 s1",       "weaponuzi",                            _("^BG%s^K1 was sniped by ^BG%s^K1's Machine Gun%s\n"), "") \
-       MSG_INFO_NOTIF(INFO_WEAPON_UZI_MURDER_SPRAY,                            2, 1, "s1 s2 spree_end", "s2 s1",       "weaponuzi",                            _("^BG%s^K1 was riddled full of holes by ^BG%s^K1's Machine Gun%s\n"), "") 
-
-#define MULTITEAM_CENTER(prefix,teams,strnum,flnum,args,cpid,durcnt,normal,gentle) \
-       MSG_CENTER_NOTIF(prefix##RED, strnum, flnum, args, cpid, durcnt, TCR(normal, COL_TEAM_1, strtoupper(STR_TEAM_1)), TCR(gentle, COL_TEAM_1, strtoupper(STR_TEAM_1))) \
-       MSG_CENTER_NOTIF(prefix##BLUE, strnum, flnum, args, cpid, durcnt, TCR(normal, COL_TEAM_2, strtoupper(STR_TEAM_2)), TCR(gentle, COL_TEAM_2, strtoupper(STR_TEAM_2))) \
+       MULTITEAM_INFO(1, INFO_CTF_FLAGRETURN_DROPPED_, 2,              0, 0, "", "",                                                   "",                                             _("^BGThe ^TC^TT^BG flag was dropped in the base and returned itself\n"), "") \
+       MULTITEAM_INFO(1, INFO_CTF_FLAGRETURN_DAMAGED_, 2,              0, 0, "", "",                                                   "",                                             _("^BGThe ^TC^TT^BG flag was destroyed and returned to base\n"), "") \
+       MULTITEAM_INFO(1, INFO_CTF_FLAGRETURN_SPEEDRUN_, 2,             0, 1, "f1p2dec", "",                                    "",                                             _("^BGThe ^TC^TT^BG flag became impatient after ^F1%.2f^BG seconds and returned itself\n"), "") \
+       MULTITEAM_INFO(1, INFO_CTF_FLAGRETURN_NEEDKILL_, 2,             0, 0, "", "",                                                   "",                                             _("^BGThe ^TC^TT^BG flag fell somewhere it couldn't be reached and returned to base\n"), "") \
+       MULTITEAM_INFO(1, INFO_CTF_FLAGRETURN_ABORTRUN_, 2,             0, 0, "", "",                                                   "",                                             _("^BGThe ^TC^TT^BG flag was returned to base by its owner\n"), "") \
+       MULTITEAM_INFO(1, INFO_CTF_FLAGRETURN_TIMEOUT_, 2,              0, 0, "", "",                                                   "",                                             _("^BGThe ^TC^TT^BG flag has returned to the base\n"), "") \
+       MULTITEAM_INFO(1, INFO_CTF_PICKUP_, 2,                                  1, 0, "s1", "s1",                                               "notify_%s_taken",              _("^BG%s^BG got the ^TC^TT^BG flag\n"), "") \
+       MULTITEAM_INFO(1, INFO_CTF_RETURN_, 2,                                  1, 0, "s1", "s1",                                               "notify_%s_returned",   _("^BG%s^BG returned the ^TC^TT^BG flag\n"), "") \
+       MULTITEAM_INFO(1, INFO_CTF_LOST_, 2,                                    1, 0, "s1", "s1",                                               "notify_%s_lost",               _("^BG%s^BG lost the ^TC^TT^BG flag\n"), "") \
+       MULTITEAM_INFO(1, INFO_CTF_CAPTURE_, 2,                                 1, 0, "s1", "s1",                                               "notify_%s_captured",   _("^BG%s^BG captured the ^TC^TT^BG flag\n"), "") \
+       MULTITEAM_INFO(1, INFO_CTF_CAPTURE_TIME_, 2,                    1, 1, "s1 f1p2dec", "s1",                               "notify_%s_captured",   _("^BG%s^BG captured the ^TC^TT^BG flag in ^F1%s^BG seconds\n"), "") \
+       MULTITEAM_INFO(1, INFO_CTF_CAPTURE_BROKEN_, 2,                  2, 2, "s1 f1p2dec s2 f2p2dec", "s1",    "notify_%s_captured",   _("^BG%s^BG captured the ^TC^TT^BG flag in ^F1%s^BG seconds, breaking ^BG%s^BG's previous record of ^F2%s^BG seconds\n"), "") \
+       MULTITEAM_INFO(1, INFO_CTF_CAPTURE_UNBROKEN_, 2,                2, 2, "s1 f1p2dec s2 f2p2dec", "s1",    "notify_%s_captured",   _("^BG%s^BG captured the ^TC^TT^BG flag in ^F2%s^BG seconds, failing to break ^BG%s^BG's previous record of ^F1%s^BG seconds\n"), "") \
+       MULTITEAM_INFO(1, INFO_DEATH_TEAMKILL_, 4,                              2, 1, "s1 s2 spree_end", "s2 s1",               "notify_teamkill_%s",   _("^BG%s^K1 was betrayed by ^BG%s^K1%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_FIRSTBLOOD,                                2, 0, "s2", "",                                                 "",                                             _("^BG%s^K1 drew first blood\n"), _("^F1%s^K1 got the first score\n")) \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_CUSTOM,                               2, 1, "s1 s2 spree_end", "s1",                  "notify_void",                  _("^BG%s^K1 %s^K1%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_GENERIC,                              1, 1, "s1 spree_end", "s1",                             "notify_selfkill",              _("^BG%s^K1 died%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_VOID,                                 1, 1, "s1 spree_end", "s1",                             "notify_void",                  _("^BG%s^K1 was in the wrong place%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_SUICIDE,                              1, 1, "s1 spree_end", "s1",                             "notify_selfkill",              _("^BG%s^K1 couldn't take it anymore%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_NOAMMO,                               1, 1, "s1 spree_end", "s1",                             "notify_outofammo",             _("^BG%s^K1 died%s. What's the point of living without ammo?\n"), _("^F1%s^K1 ran out of ammo%s\n")) \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_ROT,                                  1, 1, "s1 spree_end", "s1",                             "notify_death",                 _("^BG%s^K1 rotted away%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_CAMP,                                 1, 1, "s1 spree_end", "s1",                             "notify_camping",               _("^BG%s^K1 thought they found a nice camping ground%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_BETRAYAL,                             1, 1, "s1 spree_end", "s1",                             "notify_teamkill_red",  _("^BG%s^K1 became enemies with the Lord of Teamplay%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_TEAMCHANGE,                   1, 1, "s1 death_team", "",                              "",                                             _("^BG%s^K1 switched to the %s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_AUTOTEAMCHANGE,               1, 1, "s1 death_team", "",                              "",                                             _("^BG%s^K1 was moved into the %s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_FALL,                                 1, 1, "s1 spree_end", "s1",                             "notify_fall",                  _("^BG%s^K1 hit the ground with a crunch%s\n"), _("^F1%s^K1 hit the ground with a bit too much force%s\n")) \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_DROWN,                                1, 1, "s1 spree_end", "s1",                             "notify_water",                 _("^BG%s^K1 couldn't catch their breath%s\n"), _("^F1%s^K1 was in the water for too long%s\n")) \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_FIRE,                                 1, 1, "s1 spree_end", "s1",                             "notify_death",                 _("^BG%s^K1 became a bit too crispy%s\n"), _("^F1%s^K1 felt a little hot%s\n")) \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_LAVA,                                 1, 1, "s1 spree_end", "s1",                             "notify_lava",                  _("^BG%s^K1 turned into hot slag%s\n"), _("^F1%s^K1 found a hot place%s\n")) \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_SLIME,                                1, 1, "s1 spree_end", "s1",                             "notify_slime",                 _("^BG%s^K1 was slimed%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_SHOOTING_STAR,                1, 1, "s1 spree_end", "s1",                             "notify_shootingstar",  _("^BG%s^K1 became a shooting star%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_SWAMP,                                1, 1, "s1 spree_end", "s1",                             "notify_slime",                 _("^BG%s^K1 is now preserved for centuries to come%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_CHEAT,                                1, 1, "s1 spree_end", "s1",                             "notify_selfkill",              _("^BG%s^K1 unfairly eliminated themself%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_TOUCHEXPLODE,                 1, 1, "s1 spree_end", "s1",                             "notify_death",                 _("^BG%s^K1 died in an accident%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_TURRET,                                       1, 1, "s1 spree_end", "s1",                     "notify_death",                 _("^BG%s^K1 ran into a turret%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_TURRET_EWHEEL,                        1, 1, "s1 spree_end", "s1",                     "notify_death",                 _("^BG%s^K1 was blasted away by an eWheel turret%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_TURRET_FLAC,                          1, 1, "s1 spree_end", "s1",                     "notify_death",                 _("^BG%s^K1 got caught up in the FLAC turret fire%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_TURRET_MACHINEGUN,            1, 1, "s1 spree_end", "s1",                     "notify_death",                 _("^BG%s^K1 was riddled full of holes by a Machinegun turret%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_TURRET_WALKER_GUN,            1, 1, "s1 spree_end", "s1",                     "notify_death",                 _("^BG%s^K1 got served a lead enrichment by a Walker turret%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_TURRET_WALKER_MEELE,          1, 1, "s1 spree_end", "s1",                     "notify_death",                 _("^BG%s^K1 was impaled by a Walker turret%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_TURRET_WALKER_ROCKET,         1, 1, "s1 spree_end", "s1",                     "notify_death",                 _("^BG%s^K1 was blasted away by a Walker turret%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_TURRET_HELLION,                       1, 1, "s1 spree_end", "s1",                     "notify_death",                 _("^BG%s^K1 was blasted away by a Hellion turret%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_TURRET_HK,                            1, 1, "s1 spree_end", "s1",                     "notify_death",                 _("^BG%s^K1 could not hide from the Hunter turret%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_TURRET_MLRS,                          1, 1, "s1 spree_end", "s1",                     "notify_death",                 _("^BG%s^K1 got turned into smoldering gibs by an MLRS turret%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_TURRET_PLASMA,                        1, 1, "s1 spree_end", "s1",                     "notify_death",                 _("^BG%s^K1 got served some superheated plasma from a turret%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_TURRET_PHASER,                        1, 1, "s1 spree_end", "s1",                     "notify_death",                 _("^BG%s^K1 was phased out by a turret%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_TURRET_TESLA,                 1, 1, "s1 spree_end", "s1",                     "notify_death",                 _("^BG%s^K1 was electrocuted by a Tesla turret%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_MURDER_TELEFRAG,                   2, 1, "s1 s2 spree_end", "s2 s1",               "notify_telefrag",              _("^BG%s^K1 was telefragged by ^BG%s^K1%s\n"), _("^F1%s^K1 tried to occupy ^BG%s^K1's teleport destination space\n")) \
+       MSG_INFO_NOTIF(1, INFO_DEATH_MURDER_FALL,                               2, 1, "s1 s2 spree_end", "s2 s1",               "notify_fall",                  _("^BG%s^K1 was grounded by ^BG%s^K1%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_MURDER_DROWN,                              2, 1, "s1 s2 spree_end", "s2 s1",               "notify_water",                 _("^BG%s^K1 was drowned by ^BG%s^K1%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_MURDER_LAVA,                               2, 1, "s1 s2 spree_end", "s2 s1",               "notify_lava",                  _("^BG%s^K1 was cooked by ^BG%s^K1%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_MURDER_SLIME,                              2, 1, "s1 s2 spree_end", "s2 s1",               "notify_slime",                 _("^BG%s^K1 was slimed by ^BG%s^K1%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_MURDER_SHOOTING_STAR,              2, 1, "s1 s2 spree_end", "s2 s1",               "notify_shootingstar",  _("^BG%s^K1 was shot into space by ^BG%s^K1%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_MURDER_SWAMP,                              2, 1, "s1 s2 spree_end", "s2 s1",               "notify_slime",                 _("^BG%s^K1 was preserved by ^BG%s^K1%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_MURDER_VOID,                               2, 1, "s1 s2 spree_end", "s2 s1",               "notify_void",                  _("^BG%s^K1 was thrown into a world of hurt by ^BG%s^K1%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_MURDER_TOUCHEXPLODE,               2, 1, "s1 s2 spree_end", "s2 s1",               "notify_death",                 _("^BG%s^K1 died in an accident with ^BG%s^K1%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_MURDER_CHEAT,                              2, 1, "s1 s2 spree_end", "s2 s1",               "notify_death",                 _("^BG%s^K1 was unfairly eliminated by ^BG%s^K1%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_MURDER_FIRE,                               2, 1, "s1 s2 spree_end", "s2 s1",               "notify_death",                 _("^BG%s^K1 was burnt up into a crisp by ^BG%s^K1%s\n"), _("^F1%s^K1 felt a little hot from ^BG%s^K1's fire^K1%s\n")) \
+       MSG_INFO_NOTIF(1, INFO_DEATH_MURDER_VH_CRUSH,                   2, 1, "s1 s2 spree_end", "s2 s1",               "notify_death",                 _("^BG%s^K1 was crushed by ^BG%s^K1%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_MURDER_VH_SPID_MINIGUN,    2, 1, "s1 s2 spree_end", "s2 s1",               "notify_death",                 _("^BG%s^K1 got shredded by ^BG%s^K1%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_MURDER_VH_SPID_ROCKET,             2, 1, "s1 s2 spree_end", "s2 s1",               "notify_death",                 _("^BG%s^K1 was blasted to bits by ^BG%s^K1%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_MURDER_VH_SPID_DEATH,              2, 1, "s1 s2 spree_end", "s2 s1",               "notify_death",                 _("^BG%s^K1 got caught in the blast when ^BG%s^K1%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_MURDER_VH_WAKI_GUN,                2, 1, "s1 s2 spree_end", "s2 s1",               "notify_death",                 _("^BG%s^K1 was bolted down by ^BG%s^K1%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_MURDER_VH_WAKI_ROCKET,             2, 1, "s1 s2 spree_end", "s2 s1",               "notify_death",                 _("^BG%s^K1 couldn't find shelter from ^BG%s^K1%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_MURDER_VH_WAKI_DEATH,              2, 1, "s1 s2 spree_end", "s2 s1",               "notify_death",                 _("^BG%s^K1 got caught in the blast when ^BG%s^K1%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_MURDER_VH_RAPT_CANNON,             2, 1, "s1 s2 spree_end", "s2 s1",               "notify_death",                 _("^BG%s^K1 couldn't resist ^BG%s^K1 purple blobs%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_MURDER_VH_RAPT_BOMB,               2, 1, "s1 s2 spree_end", "s2 s1",               "notify_death",                 _("^BG%s^K1 was cluster bombed by ^BG%s^K1%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_MURDER_VH_RAPT_FRAGMENT,   2, 1, "s1 s2 spree_end", "s2 s1",               "notify_death",                 _("^BG%s^K1 was cluster bombed by ^BG%s^K1%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_MURDER_VH_RAPT_DEATH,              2, 1, "s1 s2 spree_end", "s2 s1",               "notify_death",                 _("^BG%s^K1 got caught in the blast when ^BG%s^K1%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_MURDER_VH_BUMB_GUN,                2, 1, "s1 s2 spree_end", "s2 s1",               "notify_death",                 _("^BG%s^K1 foobar by ^BG%s^K1%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_MURDER_VH_BUMB_RAY,                2, 1, "s1 s2 spree_end", "s2 s1",               "notify_death",                 _("^BG%s^K1 foobar by ^BG%s^K1%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_MURDER_VH_BUMB_RAY_HEAL,   2, 1, "s1 s2 spree_end", "s2 s1",               "notify_death",                 _("^BG%s^K1 foobar by ^BG%s^K1%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_MURDER_VH_BUMB_DEATH,              2, 1, "s1 s2 spree_end", "s2 s1",               "notify_death",                 _("^BG%s^K1 foobar by ^BG%s^K1%s\n"), "") \
+       MULTITEAM_INFO(1, INFO_FREEZETAG_ROUND_WIN_, 4,                 0, 0, "", "",                                                   "",                                             _("^TC^TT^BG team wins the round, all other teams were frozen\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_FREEZETAG_REVIVE,                                2, 0, "s1 s2", "",                                              "",                                             _("^BG%s^K3 was revived by ^BG%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_FREEZETAG_FREEZE,                                2, 0, "s1 s2", "",                                              "",                                             _("^BG%s^K1 was frozen by ^BG%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_FREEZETAG_SELF,                                  1, 0, "s1", "",                                                 "",                                             _("^BG%s^K1 froze themself\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_GODMODE_OFF,                                             0, 1, "f1", "",                                                 "",                                             _("^BGGodmode saved you %s units of damage, cheater!\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_JOIN_CONNECT,                                    1, 0, "s1", "",                                                 "",                                             _("^BG%s^F3 connected%s\n"), "") \
+       MULTITEAM_INFO(1, INFO_JOIN_CONNECT_TEAM_, 4,                   1, 0, "s1", "",                                                 "",                                             _("^BG%s^F3 connected and joined the ^TC^TT\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_JOIN_PLAY,                                               1, 0, "s1", "",                                                 "",                                             _("^BG%s^F3 is now playing\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_KEEPAWAY_DROPPED,                                1, 0, "s1", "s1",                                               "notify_balldropped",   _("^BG%s^BG has dropped the ball!\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_KEEPAWAY_PICKUP,                                 1, 0, "s1", "s1",                                               "notify_ballpickedup",  _("^BG%s^BG has picked up the ball!\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_LMS_NOLIVES,                                             1, 0, "s1", "s1",                                               "",                                             _("^BG%s^F3 has no more lives left\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_LMS_FORFEIT,                                             1, 0, "s1", "s1",                                               "",                                             _("^BG%s^F3 forfeited\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_POWERDOWN_INVISIBILITY,                  0, 0, "", "",                                                   "",                                             _("^F2Invisibility has worn off\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_POWERDOWN_SHIELD,                                0, 0, "", "",                                                   "",                                             _("^F2Shield has worn off\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_POWERDOWN_SPEED,                                 0, 0, "", "",                                                   "",                                             _("^F2Speed has worn off\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_POWERDOWN_STRENGTH,                              0, 0, "", "",                                                   "",                                             _("^F2Strength has worn off\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_POWERUP_INVISIBILITY,                    0, 0, "", "",                                                   "",                                             _("^F2You are invisible\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_POWERUP_SHIELD,                                  0, 0, "", "",                                                   "",                                             _("^F2Shield surrounds you\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_POWERUP_SPEED,                                   0, 0, "", "",                                                   "",                                             _("^F2You are on speed\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_POWERUP_STRENGTH,                                0, 0, "", "",                                                   "",                                             _("^F2Strength infuses your weapons with devastating power\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_QUIT_DISCONNECT,                                 1, 0, "s1", "s1",                                               "",                                             _("^BG%s^F3 disconnected\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_QUIT_KICK_IDLING,                                1, 0, "s1", "s1",                                               "",                                             _("^BG%s^F3 was kicked for idling\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_QUIT_KICK_SPECTATING,                    0, 0, "", "",                                                   "",                                             _("^F2You were kicked from the server because you are a spectator and spectators aren't allowed at the moment.\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_QUIT_SPECTATE,                                   1, 0, "s1", "s1",                                               "",                                             _("^BG%s^F3 is now spectating\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_RACE_FAIL,                                               2, 0, "s1 s2", "s1",                                    "race_newfail",                 "", "") \
+       MSG_INFO_NOTIF(1, INFO_RACE_NEW_RECORD,                                 2, 0, "s1 s2", "s1",                                    "race_newrecordserver", "", "") \
+       MSG_INFO_NOTIF(1, INFO_RACE_NEW_TIME,                                   2, 0, "s1 s2", "s1",                                    "race_newtime",                 "", "") \
+       MSG_INFO_NOTIF(1, INFO_RACE_NEW_RANK,                                   2, 0, "s1 s2", "s1",                                    "race_newrankyellow",   "", "") \
+       MULTITEAM_INFO(1, INFO_SCORES_, 4,                                              0, 0, "", "",                                                   "",                                             _("^TC^TT ^BGteam scores!\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_SPECTATE_WARNING,                                0, 1, "f1", "",                                                 "",                                             _("^F2You have to become a player within the next %s seconds, otherwise you will be kicked, because spectating isn't allowed at this time!\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_SUPERWEAPON_BROKEN,                              0, 0, "", "",                                                   "",                                             _("^F2Superweapons have broken down\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_SUPERWEAPON_PICKUP,                              0, 0, "", "",                                                   "",                                             _("^F2You now have a superweapon\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_SUPERWEAPON_LOST,                                0, 0, "", "",                                                   "",                                             _("^F2Superweapons have been lost\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_VERSION_BETA,                                    2, 0, "s1 s2", "",                                              "",                                             _("\{1}^F4NOTE: ^BGThe server is running ^F1Xonotic %s (beta)^BG, you have ^F2Xonotic %s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_VERSION_OLD,                                             2, 0, "s1 s2", "",                                              "",                                             _("\{1}^F4NOTE: ^BGThe server is running ^F1Xonotic %s^BG, you have ^F2Xonotic %s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_VERSION_OUTDATED,                                2, 0, "s1 s2", "",                                              "",                                             _("\{1}^F4NOTE: ^F1Xonotic %s^BG is out, and you still have ^F2Xonotic %s^BG - get the update from ^F3http://www.xonotic.org/^BG!\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WATERMARK,                                               1, 0, "s1", "",                                                 "",                                             _("^F3SVQC Build information: ^F4%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_THINKING_WITH_PORTALS,                    1, 1, "s1 spree_end", "s1",             "notify_selfkill",                      _("^BG%s^K1 is now thinking with portals%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_CRYLINK_SUICIDE,                                  1, 1, "s1 spree_end", "s1",             "weaponcrylink",                        _("^BG%s^K1 felt the strong pull of their Crylink%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_CRYLINK_MURDER,                                   2, 1, "s1 s2 spree_end", "s2 s1",       "weaponcrylink",                        _("^BG%s^K1 felt the strong pull of ^BG%s^K1's Crylink%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_ELECTRO_SUICIDE_ORBS,                     1, 1, "s1 spree_end", "s1",             "weaponelectro",                        _("^BG%s^K1 could not remember where they put their Electro plasma%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_ELECTRO_SUICIDE_BOLT,                     1, 1, "s1 spree_end", "s1",             "weaponelectro",                        _("^BG%s^K1 played with Electro plasma%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_ELECTRO_MURDER_BOLT,                              2, 1, "s1 s2 spree_end", "s2 s1",       "weaponelectro",                        _("^BG%s^K1 was blasted by ^BG%s^K1's Electro bolt%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_ELECTRO_MURDER_ORBS,                              2, 1, "s1 s2 spree_end", "s2 s1",       "weaponelectro",                        _("^BG%s^K1 got too close to ^BG%s^K1's Electro plasma%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_ELECTRO_MURDER_COMBO,                     2, 1, "s1 s2 spree_end", "s2 s1",       "weaponelectro",                        _("^BG%s^K1 felt the electrifying air of ^BG%s^K1's Electro combo%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_FIREBALL_SUICIDE_FIREMINE,                1, 1, "s1 spree_end", "s1",             "weaponfireball",                       _("^BG%s^K1 forgot about their firemine%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_FIREBALL_SUICIDE_BLAST,                   1, 1, "s1 spree_end", "s1",             "weaponfireball",                       _("^BG%s^K1 should have used a smaller gun%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_FIREBALL_MURDER_FIREMINE,                 2, 1, "s1 s2 spree_end", "s2 s1",       "weaponfireball",                       _("^BG%s^K1 got burnt by ^BG%s^K1's firemine%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_FIREBALL_MURDER_BLAST,                    2, 1, "s1 s2 spree_end", "s2 s1",       "weaponfireball",                       _("^BG%s^K1 got too close to ^BG%s^K1's fireball%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_MORTAR_SUICIDE_EXPLODE,                   1, 1, "s1 spree_end", "s1",             "weapongrenadelauncher",        _("^BG%s^K1 blew themself up with their own Mortar%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_MORTAR_SUICIDE_BOUNCE,                    1, 1, "s1 spree_end", "s1",             "weapongrenadelauncher",        _("^BG%s^K1 didn't see their own Mortar grenade%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_MORTAR_MURDER_EXPLODE,                    2, 1, "s1 s2 spree_end", "s2 s1",       "weapongrenadelauncher",        _("^BG%s^K1 ate ^BG%s^K1's Mortar grenade%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_MORTAR_MURDER_BOUNCE,                     2, 1, "s1 s2 spree_end", "s2 s1",       "weapongrenadelauncher",        _("^BG%s^K1 got too close to ^BG%s^K1's Mortar grenade%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_HAGAR_SUICIDE,                                    1, 1, "s1 spree_end", "s1",             "weaponhagar",                          _("^BG%s^K1 played with tiny Hagar rockets%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_HAGAR_MURDER_BURST,                               2, 1, "s1 s2 spree_end", "s2 s1",       "weaponhagar",                          _("^BG%s^K1 was pummeled by a burst of ^BG%s^K1's Hagar rockets%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_HAGAR_MURDER_SPRAY,                               2, 1, "s1 s2 spree_end", "s2 s1",       "weaponhagar",                          _("^BG%s^K1 was pummeled by ^BG%s^K1's Hagar rockets%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_HLAC_SUICIDE,                                     1, 1, "s1 spree_end", "s1",             "weaponhlac",                           _("^BG%s^K1 got a little jumpy with their HLAC%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_HLAC_MURDER,                                              2, 1, "s1 s2 spree_end", "s2 s1",       "weaponhlac",                           _("^BG%s^K1 was cut down with ^BG%s^K1's HLAC%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_HOOK_MURDER,                                              2, 1, "s1 s2 spree_end", "s2 s1",       "weaponhook",                           _("^BG%s^K1 was caught in ^BG%s^K1's Hook gravity bomb%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_LASER_SUICIDE,                                    1, 1, "s1 spree_end", "s1",             "weaponlaser",                          _("^BG%s^K1 shot themself to hell with their Laser%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_LASER_MURDER,                                     2, 1, "s1 s2 spree_end", "s2 s1",       "weaponlaser",                          _("^BG%s^K1 was shot to death by ^BG%s^K1's Laser%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_MINELAYER_SUICIDE,                                1, 1, "s1 spree_end", "s1",             "weaponminelayer",                      _("^BG%s^K1 forgot about their mine%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_MINELAYER_MURDER,                                 2, 1, "s1 s2 spree_end", "s2 s1",       "weaponminelayer",                      _("^BG%s^K1 got too close to ^BG%s^K1's mine%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_MINSTANEX_MURDER,                                 2, 1, "s1 s2 spree_end", "s2 s1",       "weaponminstanex",                      _("^BG%s^K1 has been vaporized by ^BG%s^K1's Minstanex%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_NEX_MURDER,                                               2, 1, "s1 s2 spree_end", "s2 s1",       "weaponnex",                            _("^BG%s^K1 has been vaporized by ^BG%s^K1's Nex%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_RIFLE_MURDER_HAIL_PIERCING,               2, 1, "s1 s2 spree_end", "s2 s1",       "weaponrifle",                          _("^BG%s^K1 failed to hide from ^BG%s^K1's Rifle bullet hail%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_RIFLE_MURDER_HAIL,                                2, 1, "s1 s2 spree_end", "s2 s1",       "weaponrifle",                          _("^BG%s^K1 died in ^BG%s^K1's Rifle bullet hail%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_RIFLE_MURDER_PIERCING,                    2, 1, "s1 s2 spree_end", "s2 s1",       "weaponrifle",                          _("^BG%s^K1 failed to hide from ^BG%s^K1's Rifle%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_RIFLE_MURDER,                                     2, 1, "s1 s2 spree_end", "s2 s1",       "weaponrifle",                          _("^BG%s^K1 was sniped with a Rifle by ^BG%s^K1%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_RIFLE_MURDER_HEADSHOT,                    2, 1, "s1 s2 spree_end", "s2 s1",       "notify_headshot",                      _("^BG%s^K1 was shot in the head with a Rifle by ^BG%s^K1%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_ROCKETLAUNCHER_SUICIDE,                   1, 1, "s1 spree_end", "s1",             "weaponrocketlauncher",         _("^BG%s^K1 blew themself up with their Rocketlauncher%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_ROCKETLAUNCHER_MURDER_DIRECT,     2, 1, "s1 s2 spree_end", "s2 s1",       "weaponrocketlauncher",         _("^BG%s^K1 ate ^BG%s^K1's rocket%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_ROCKETLAUNCHER_MURDER_SPLASH,     2, 1, "s1 s2 spree_end", "s2 s1",       "weaponrocketlauncher",         _("^BG%s^K1 got too close ^BG%s^K1's rocket%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_SEEKER_SUICIDE,                                   1, 1, "s1 spree_end", "s1",             "weaponseeker",                         _("^BG%s^K1 played with tiny Seeker rockets%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_SEEKER_MURDER_TAG,                                2, 1, "s1 s2 spree_end", "s2 s1",       "weaponseeker",                         _("^BG%s^K1 was tagged by ^BG%s^K1's Seeker%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_SEEKER_MURDER_SPRAY,                              2, 1, "s1 s2 spree_end", "s2 s1",       "weaponseeker",                         _("^BG%s^K1 was pummeled by ^BG%s^K1's Seeker rockets%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_SHOTGUN_MURDER_SLAP,                              2, 1, "s2 s1 spree_end", "s2 s1",       "notify_melee_shotgun",         _("^BG%s^K1 slapped ^BG%s^K1 around a bit with a large Shotgun%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_SHOTGUN_MURDER,                                   2, 1, "s1 s2 spree_end", "s2 s1",       "weaponshotgun",                        _("^BG%s^K1 was gunned down by ^BG%s^K1's Shotgun%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_TUBA_SUICIDE,                                     1, 1, "s1 spree_end", "s1",             "weapontuba",                           _("^BG%s^K1 hurt their own ears with the @!#%%'n Tuba%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_TUBA_MURDER,                                              2, 1, "s1 s2 spree_end", "s2 s1",       "weapontuba",                           _("^BG%s^K1 died of ^BG%s^K1's great playing on the @!#%%'n Tuba%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_ACCORDEON_SUICIDE,                                1, 1, "s1 spree_end", "s1",             "weapontuba",                           _("^BG%s^K1 hurt their own ears with the @!#%%'n Accordeon%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_ACCORDEON_MURDER,                                 2, 1, "s1 s2 spree_end", "s2 s1",       "weapontuba",                           _("^BG%s^K1 died of ^BG%s^K1's great playing on the @!#%%'n Accordeon%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_KLEINBOTTLE_SUICIDE,                              1, 1, "s1 spree_end", "s1",             "weapontuba",                           _("^BG%s^K1 hurt their own ears with the @!#%%'n Klein Bottle%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_KLEINBOTTLE_MURDER,                               2, 1, "s1 s2 spree_end", "s2 s1",       "weapontuba",                           _("^BG%s^K1 died of ^BG%s^K1's great playing on the @!#%%'n Klein Bottle%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_UZI_MURDER_SNIPE,                                 2, 1, "s1 s2 spree_end", "s2 s1",       "weaponuzi",                            _("^BG%s^K1 was sniped by ^BG%s^K1's Machine Gun%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_WEAPON_UZI_MURDER_SPRAY,                                 2, 1, "s1 s2 spree_end", "s2 s1",       "weaponuzi",                            _("^BG%s^K1 was riddled full of holes by ^BG%s^K1's Machine Gun%s\n"), "") 
+
+#define MULTITEAM_CENTER(default,prefix,teams,strnum,flnum,args,cpid,durcnt,normal,gentle) \
+       MSG_CENTER_NOTIF(default, prefix##RED, strnum, flnum, args, cpid, durcnt, TCR(normal, COL_TEAM_1, strtoupper(STR_TEAM_1)), TCR(gentle, COL_TEAM_1, strtoupper(STR_TEAM_1))) \
+       MSG_CENTER_NOTIF(default, prefix##BLUE, strnum, flnum, args, cpid, durcnt, TCR(normal, COL_TEAM_2, strtoupper(STR_TEAM_2)), TCR(gentle, COL_TEAM_2, strtoupper(STR_TEAM_2))) \
        #if teams >= 3 \
-               MSG_CENTER_NOTIF(prefix##YELLOW, strnum, flnum, args, cpid, durcnt, TCR(normal, COL_TEAM_3, strtoupper(STR_TEAM_3)), TCR(gentle, COL_TEAM_3, strtoupper(STR_TEAM_3))) \
+               MSG_CENTER_NOTIF(default, prefix##YELLOW, strnum, flnum, args, cpid, durcnt, TCR(normal, COL_TEAM_3, strtoupper(STR_TEAM_3)), TCR(gentle, COL_TEAM_3, strtoupper(STR_TEAM_3))) \
        #endif \
        #if teams >= 4 \
-               MSG_CENTER_NOTIF(prefix##PINK, strnum, flnum, args, cpid, durcnt, TCR(normal, COL_TEAM_4, strtoupper(STR_TEAM_4)), TCR(gentle, COL_TEAM_4, strtoupper(STR_TEAM_4))) \
+               MSG_CENTER_NOTIF(default, prefix##PINK, strnum, flnum, args, cpid, durcnt, TCR(normal, COL_TEAM_4, strtoupper(STR_TEAM_4)), TCR(gentle, COL_TEAM_4, strtoupper(STR_TEAM_4))) \
        #endif
 #define MSG_CENTER_NOTIFICATIONS \
        /*MSG_CENTER_NOTIF(CENTER_EMPTY,                                                0, 0, "",                               NO_CPID,                                XPD(0, 0), "null", "")*/ \
-       MSG_CENTER_NOTIF(CENTER_ASSAULT_ATTACKING,                              0, 0, "",                               CPID_ASSAULT_ROLE,              XPD(0, 0), _("^BGYou are attacking!"), "") \
-       MSG_CENTER_NOTIF(CENTER_ASSAULT_DEFENDING,                              0, 0, "",                               CPID_ASSAULT_ROLE,              XPD(0, 0), _("^BGYou are defending!"), "") \
-       MSG_CENTER_NOTIF(CENTER_CTF_CAPTURESHIELD_SHIELDED,             0, 0, "",                               CPID_CTF_CAPSHIELD,             XPD(0, 0), _("^BGYou are now ^F1shielded^BG from the flag\n^BGfor ^F2too many unsuccessful attempts^BG to capture.\n^BGMake some defensive scores before trying again."), "") \
-       MSG_CENTER_NOTIF(CENTER_CTF_CAPTURESHIELD_FREE,                 0, 0, "",                               CPID_CTF_CAPSHIELD,             XPD(0, 0), _("^BGYou are now free.\n^BGFeel free to ^F2try to capture^BG the flag again\n^BGif you think you will succeed."), "") \
-       MULTITEAM_CENTER(CENTER_CTF_PASS_OTHER_, 2,                             2, 0, "s1 s2",                  CPID_CTF_PASS,                  XPD(0, 0), _("^BG%s^BG passed the ^TC^TT^BG flag to %s"), "") \
-       MULTITEAM_CENTER(CENTER_CTF_PASS_SENT_, 2,                              1, 0, "s1",                     CPID_CTF_PASS,                  XPD(0, 0), _("^BGYou passed the ^TC^TT^BG flag to %s"), "") \
-       MULTITEAM_CENTER(CENTER_CTF_PASS_RECEIVED_, 2,                  1, 0, "s1",                     CPID_CTF_PASS,                  XPD(0, 0), _("^BGYou received the ^TC^TT^BG flag from %s"), "") \
-       MSG_CENTER_NOTIF(CENTER_CTF_PASS_REQUESTING,                    1, 0, "s1",                             CPID_CTF_PASS,                  XPD(0, 0), _("^BGRequesting %s^BG to pass you the flag"), "") \
-       MSG_CENTER_NOTIF(CENTER_CTF_PASS_REQUESTED,                     1, 0, "s1 pass_key",    CPID_CTF_PASS,                  XPD(0, 0), _("^BG%s^BG requests you to pass the flag%s"), "") \
-       MULTITEAM_CENTER(CENTER_CTF_RETURN_, 2,                                 0, 0, "",                               CPID_CTF_LOWPRIO,               XPD(0, 0), _("^BGYou returned the ^TC^TT^BG flag!"), "") \
-       MULTITEAM_CENTER(CENTER_CTF_CAPTURE_, 2,                                0, 0, "",                               CPID_CTF_LOWPRIO,               XPD(0, 0), _("^BGYou captured the ^TC^TT^BG flag!"), "") \
-       MULTITEAM_CENTER(CENTER_CTF_PICKUP_, 2,                                 0, 0, "",                               CPID_CTF_LOWPRIO,               XPD(0, 0), _("^BGYou got the ^TC^TT^BG flag!"), "") \
-       MSG_CENTER_NOTIF(CENTER_CTF_PICKUP_TEAM,                                1, 0, "s1",                             CPID_CTF_LOWPRIO,               XPD(0, 0), _("^BGYour %steam mate^BG got the flag! Protect them!"), "") \
-       MSG_CENTER_NOTIF(CENTER_CTF_PICKUP_TEAM_VERBOSE,                2, 0, "s1 s2 s1",               CPID_CTF_LOWPRIO,               XPD(0, 0), _("^BGYour %steam mate (^BG%s%s)^BG got the flag! Protect them!"), "") \
-       MSG_CENTER_NOTIF(CENTER_CTF_PICKUP_ENEMY,                               1, 0, "s1",                             CPID_CTF_LOWPRIO,               XPD(0, 0), _("^BGThe %senemy^BG got your flag! Retrieve it!"), "") \
-       MSG_CENTER_NOTIF(CENTER_CTF_PICKUP_ENEMY_VERBOSE,               2, 0, "s1 s2 s1",               CPID_CTF_LOWPRIO,               XPD(0, 0), _("^BGThe %senemy (^BG%s%s)^BG got your flag! Retrieve it!"), "") \
-       MSG_CENTER_NOTIF(CENTER_CTF_STALEMATE_CARRIER,                  0, 0, "",                               CPID_STALEMATE,                 XPD(0, 0), _("^BGStalemate! Enemies can now see you on radar!"), "") \
-       MSG_CENTER_NOTIF(CENTER_CTF_STALEMATE_OTHER,                    0, 0, "",                               CPID_STALEMATE,                 XPD(0, 0), _("^BGStalemate! Flag carriers can now be seen by enemies on radar!"), "") \
-       MSG_CENTER_NOTIF(CENTER_CTF_FLAG_THROW_PUNISH,                  0, 1, "f1",                             CPID_CTF_LOWPRIO,               XPD(0, 0), _("^BGToo many flag throws! Throwing disabled for %s seconds."), "") \
-       MSG_CENTER_NOTIF(CENTER_DEATH_SELF_CUSTOM,                              2, 0, "s2",                             NO_CPID,                                XPD(0, 0), _("^K1You were %s"), "") \
-       MSG_CENTER_NOTIF(CENTER_DEATH_SELF_GENERIC,                             0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1You killed your own dumb self!"), _("^K1You need to be more careful!")) \
-       MSG_CENTER_NOTIF(CENTER_DEATH_SELF_VOID,                                0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1Watch your step!"), "") \
-       MSG_CENTER_NOTIF(CENTER_DEATH_SELF_SUICIDE,                             0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1You committed suicide!"), _("^K1You ended it all!")) \
-       MSG_CENTER_NOTIF(CENTER_DEATH_SELF_NOAMMO,                              0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1You were killed for running out of ammo..."), _("^K1You are respawning for running out of ammo...")) \
-       MSG_CENTER_NOTIF(CENTER_DEATH_SELF_ROT,                                 0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1You grew too old without taking your medicine"), _("^K1You need to preserve your health")) \
-       MSG_CENTER_NOTIF(CENTER_DEATH_SELF_CAMP,                                0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1Die camper!"), _("^K1Reconsider your tactics, camper!")) \
-       MSG_CENTER_NOTIF(CENTER_DEATH_SELF_BETRAYAL,                    0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1Don't shoot your team mates!"), _("^K1Don't go against your team mates!")) \
-       MSG_CENTER_NOTIF(CENTER_DEATH_SELF_TEAMCHANGE,                  0, 1, "death_team",             NO_CPID,                                XPD(0, 0), _("^BGYou are now on: %s"), "") \
-       MSG_CENTER_NOTIF(CENTER_DEATH_SELF_AUTOTEAMCHANGE,              0, 1, "death_team",             NO_CPID,                                XPD(0, 0), _("^BGYou have been moved into a different team\nYou are now on: %s"), "") \
-       MSG_CENTER_NOTIF(CENTER_DEATH_SELF_FALL,                                0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1You hit the ground with a crunch!"), "") \
-       MSG_CENTER_NOTIF(CENTER_DEATH_SELF_DROWN,                               0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1You couldn't catch your breath in time!"), "") \
-       MSG_CENTER_NOTIF(CENTER_DEATH_SELF_FIRE,                                0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1You got a little bit too crispy!"), _("^K1You felt a little too hot!")) \
-       MSG_CENTER_NOTIF(CENTER_DEATH_SELF_LAVA,                                0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1You couldn't stand the heat!"), "") \
-       MSG_CENTER_NOTIF(CENTER_DEATH_SELF_SLIME,                               0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1You melted away in slime!"), "") \
-       MSG_CENTER_NOTIF(CENTER_DEATH_SELF_SHOOTING_STAR,               0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1You became a shooting star!"), "") \
-       MSG_CENTER_NOTIF(CENTER_DEATH_SELF_SWAMP,                               0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1You got stuck in a swamp!"), "") \
-       MSG_CENTER_NOTIF(CENTER_DEATH_SELF_CHEAT,                               0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1You unfairly eliminated yourself!"), "") \
-       MSG_CENTER_NOTIF(CENTER_DEATH_SELF_TOUCHEXPLODE,                0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1You died in an accident!"), "") \
-       MSG_CENTER_NOTIF(CENTER_DEATH_SELF_TURRET,                              0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1You were fragged by a turret!"), _("^K1You had an unfortunate run in with a turret!")) \
-       MSG_CENTER_NOTIF(CENTER_DEATH_SELF_TURRET_EWHEEL,               0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1You were fragged by an eWheel turret!"), _("^K1You had an unfortunate run in with an eWheel turret!")) \
-       MSG_CENTER_NOTIF(CENTER_DEATH_SELF_TURRET_WALKER,               0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1You were fragged by a Walker turret!"), _("^K1You had an unfortunate run in with a Walker turret!")) \
-       MSG_CENTER_NOTIF(CENTER_DEATH_MURDER_FRAG,                                              1, 1, "spree_cen s1",                           NO_CPID, XPD(0, 0), _("^K3%sYou fragged ^BG%s"), _("^K3%sYou scored against ^BG%s")) \
-       MSG_CENTER_NOTIF(CENTER_DEATH_MURDER_FRAGGED,                                   1, 0, "s1",                                                     NO_CPID, XPD(0, 0), _("^K1You were fragged by ^BG%s"), _("^K1You were scored against by ^BG%s")) \
-       MSG_CENTER_NOTIF(CENTER_DEATH_MURDER_TYPEFRAG,                                  1, 1, "spree_cen s1",                           NO_CPID, XPD(0, 0), _("^K1%sYou typefragged ^BG%s"), _("^K1%sYou scored against ^BG%s^K1 while they were typing")) \
-       MSG_CENTER_NOTIF(CENTER_DEATH_MURDER_TYPEFRAGGED,                               1, 0, "s1",                                                     NO_CPID, XPD(0, 0), _("^K1You were typefragged by ^BG%s"), _("^K1You were scored against by ^BG%s^K1 while typing!")) \
-       MSG_CENTER_NOTIF(CENTER_DEATH_MURDER_FRAG_FIRST,                                1, 0, "s1",                                                     NO_CPID, XPD(0, 0), _("^K3First blood! You fragged ^BG%s"), _("^K3First score! You scored against ^BG%s")) \
-       MSG_CENTER_NOTIF(CENTER_DEATH_MURDER_FRAGGED_FIRST,                             1, 0, "s1",                                                     NO_CPID, XPD(0, 0), _("^K1First victim! You were fragged by ^BG%s"), _("^K1First casualty! You were scored against by ^BG%s")) \
-       MSG_CENTER_NOTIF(CENTER_DEATH_MURDER_TYPEFRAG_FIRST,                    1, 0, "s1",                                                     NO_CPID, XPD(0, 0), _("^K1First blood! You typefragged ^BG%s"), _("^K1First score! You scored against ^BG%s^K1 while they were typing")) \
-       MSG_CENTER_NOTIF(CENTER_DEATH_MURDER_TYPEFRAGGED_FIRST,                 1, 0, "s1",                                                     NO_CPID, XPD(0, 0), _("^K1First victim! You were typefragged by ^BG%s"), _("^K1First casualty! You were scored against by ^BG%s^K1 while typing!")) \
-       MSG_CENTER_NOTIF(CENTER_DEATH_MURDER_FRAG_VERBOSE,                              1, 2, "spree_cen s1 frag_ping",         NO_CPID, XPD(0, 0), _("^K3%sYou fragged ^BG%s^BG%s"), _("^K3%sYou scored against ^BG%s^BG%s")) \
-       MSG_CENTER_NOTIF(CENTER_DEATH_MURDER_FRAGGED_VERBOSE,                   1, 3, "s1 frag_stats",                          NO_CPID, XPD(0, 0), _("^K1You were fragged by ^BG%s^BG%s"), _("^K1You were scored against by ^BG%s^BG%s")) \
-       MSG_CENTER_NOTIF(CENTER_DEATH_MURDER_TYPEFRAG_VERBOSE,                  1, 2, "spree_cen s1 frag_ping",         NO_CPID, XPD(0, 0), _("^K1%sYou typefragged ^BG%s^BG%s"), _("^K1%sYou scored against ^BG%s^K1 while they were typing^BG%s")) \
-       MSG_CENTER_NOTIF(CENTER_DEATH_MURDER_TYPEFRAGGED_VERBOSE,               1, 3, "s1 frag_stats",                          NO_CPID, XPD(0, 0), _("^K1You were typefragged by ^BG%s^BG%s"), _("^K1You were scored against by ^BG%s^K1 while typing^BG%s")) \
-       MSG_CENTER_NOTIF(CENTER_DEATH_MURDER_FRAG_FIRST_VERBOSE,                1, 1, "s1",                                                     NO_CPID, XPD(0, 0), _("^K3First blood! You fragged ^BG%s"), _("^K3First score! You scored against ^BG%s")) \
-       MSG_CENTER_NOTIF(CENTER_DEATH_MURDER_FRAGGED_FIRST_VERBOSE,             1, 3, "s1",                                                     NO_CPID, XPD(0, 0), _("^K1First victim! You were fragged by ^BG%s"), _("^K1First casualty! You were scored against by ^BG%s")) \
-       MSG_CENTER_NOTIF(CENTER_DEATH_MURDER_TYPEFRAG_FIRST_VERBOSE,    1, 1, "s1",                                                     NO_CPID, XPD(0, 0), _("^K1First blood! You typefragged ^BG%s"), _("^K1First score! You scored against ^BG%s^K1 while they were typing")) \
-       MSG_CENTER_NOTIF(CENTER_DEATH_MURDER_TYPEFRAGGED_FIRST_VERBOSE, 1, 3, "s1",                                                     NO_CPID, XPD(0, 0), _("^K1First victim! You were typefragged by ^BG%s"), _("^K1First casualty! You were scored against by ^BG%s^K1 while typing!")) \
-       MSG_CENTER_NOTIF(CENTER_DEATH_TEAMKILL_FRAG,                                    1, 0, "s1",                                                     NO_CPID, XPD(0, 0), _("^K1Moron! You fragged ^BG%s^K1, a team mate!"), _("^K1Moron! You went against ^BG%s^K1, a team mate!")) \
-       MSG_CENTER_NOTIF(CENTER_DEATH_TEAMKILL_FRAGGED,                                 1, 0, "s1",                                                     NO_CPID, XPD(0, 0), _("^K1You were fragged by ^BG%s^K1, a team mate"), _("^K1You were scored against by ^BG%s^K1, a team mate")) \
-       MSG_CENTER_NOTIF(CENTER_DISCONNECT_IDLING,                              0, 1, "",                                       CPID_IDLING,                    XPD(0, f1), _("^K1Stop idling!\n^BGDisconnecting in ^COUNT..."), "") \
-       MULTITEAM_CENTER(CENTER_FREEZETAG_ROUND_WIN_, 4,                0, 0, "",                                       NO_CPID,                                XPD(0, 0), _("^TC^TT^BG team wins the round, all other teams were frozen"), "") \
-       MSG_CENTER_NOTIF(CENTER_FREEZETAG_SPAWN_LATE,                   0, 0, "",                                       NO_CPID,                                XPD(0, 0), _("^K1You spawned after the round started, you'll spawn as frozen"), "") \
-       MSG_CENTER_NOTIF(CENTER_FREEZETAG_REVIVE,                               1, 0, "s1",                                     NO_CPID,                                XPD(0, 0), _("^K3You revived ^BG%s"), "") \
-       MSG_CENTER_NOTIF(CENTER_FREEZETAG_REVIVED,                              1, 0, "s1",                                     NO_CPID,                                XPD(0, 0), _("^K3You were revived by ^BG%s"), "") \
-       MSG_CENTER_NOTIF(CENTER_FREEZETAG_SELF,                                 0, 0, "",                                       NO_CPID,                                XPD(0, 0), _("^K1You froze yourself"), "") \
-       MSG_CENTER_NOTIF(CENTER_FREEZETAG_FREEZE,                               1, 0, "s1",                                     NO_CPID,                                XPD(0, 0), _("^K3You froze ^BG%s"), "") \
-       MSG_CENTER_NOTIF(CENTER_FREEZETAG_FROZEN,                               1, 0, "s1",                                     NO_CPID,                                XPD(0, 0), _("^K1You were frozen by ^BG%s"), "") \
-       MSG_CENTER_NOTIF(CENTER_KEEPAWAY_DROPPED,                               1, 0, "s1",                             CPID_KEEPAWAY,                  XPD(0, 0), _("^BG%s^BG has dropped the ball!"), "") \
-       MSG_CENTER_NOTIF(CENTER_KEEPAWAY_PICKUP,                                1, 0, "s1",                             CPID_KEEPAWAY,                  XPD(0, 0), _("^BG%s^BG has picked up the ball!"), "") \
-       MSG_CENTER_NOTIF(CENTER_KEEPAWAY_WARN,                                  0, 0, "",                                       CPID_KA_WARN,                   XPD(0, 0), _("^BGKilling people while you don't have the ball gives no points!"), "") \
-       MSG_CENTER_NOTIF(CENTER_LMS_CAMPCHECK,                                  0, 0, "",                                       CPID_LMS_CAMP,                  XPD(0, 0), _("^K1Don't camp!"), "") \
-       MSG_CENTER_NOTIF(CENTER_JOIN_NOSPAWNS,                                  0, 0, "",                                       CPID_PREVENT_JOIN,              XPD(0, 0), _("^K1No spawnpoints available!\nHope your team can fix it..."), "") \
-       MSG_CENTER_NOTIF(CENTER_JOIN_PREVENT,                                   0, 0, "",                                       CPID_PREVENT_JOIN,              XPD(0, 0), _("^K1You may not join the game at this time.\nThe player limit reached maximum capacity."), "") \
-       MSG_CENTER_NOTIF(CENTER_OVERTIME_TIME,                                  0, 1, "f1",                                     CPID_OVERTIME,                  XPD(0, 0), _("^F2Now playing ^F4OVERTIME^F2!\nAdded ^F4%s ^F2minute(s) to the game!"), "") \
-       MSG_CENTER_NOTIF(CENTER_OVERTIME_FRAG,                                  0, 0, "",                                       CPID_OVERTIME,                  XPD(0, 0), _("^F2Now playing ^F4OVERTIME^F2!\nKeep fragging until we have a winner!"), _("^F2Now playing ^F4OVERTIME^F2!\nKeep scoring until we have a winner!")) \
-       MSG_CENTER_NOTIF(CENTER_RACE_FINISHLAP,                                 0, 0, "",                                       CPID_RACE_FINISHLAP,    XPD(0, 0), _("^F2The race is over, finish your lap!"), "") \
-       MULTITEAM_CENTER(CENTER_TEAMCHANGE_, 4,                                 0, 1, "",                                       CPID_TEAMCHANGE,                XPD(0, f1), _("^BGChanging to ^TC^TT^BG in ^COUNT"), "") \
-       MSG_CENTER_NOTIF(CENTER_TEAMCHANGE_SPECTATE,                    0, 1, "",                                       CPID_TEAMCHANGE,                XPD(0, f1), _("^BGSpectating in ^COUNT"), "") \
-       MSG_CENTER_NOTIF(CENTER_TEAMCHANGE_AUTO,                                0, 1, "",                                       CPID_TEAMCHANGE,                XPD(0, f1), _("^BGChanging team in ^COUNT"), "") \
-       MSG_CENTER_NOTIF(CENTER_TEAMCHANGE_SUICIDE,                             0, 1, "",                                       CPID_TEAMCHANGE,                XPD(0, f1), _("^K1Suicide in ^COUNT"), "") \
-       MSG_CENTER_NOTIF(CENTER_WEAPON_MARBLES_LOST,                    1, 1, "s1 weapon_name",         NO_CPID,                                XPD(0, 0), _("^K1You lost your marbles against ^BG%s^K1 using the ^BG%s!"), "")
+       MSG_CENTER_NOTIF(1, CENTER_ASSAULT_ATTACKING,                           0, 0, "",                               CPID_ASSAULT_ROLE,              XPD(0, 0), _("^BGYou are attacking!"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_ASSAULT_DEFENDING,                           0, 0, "",                               CPID_ASSAULT_ROLE,              XPD(0, 0), _("^BGYou are defending!"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_CTF_CAPTURESHIELD_SHIELDED,          0, 0, "",                               CPID_CTF_CAPSHIELD,             XPD(0, 0), _("^BGYou are now ^F1shielded^BG from the flag\n^BGfor ^F2too many unsuccessful attempts^BG to capture.\n^BGMake some defensive scores before trying again."), "") \
+       MSG_CENTER_NOTIF(1, CENTER_CTF_CAPTURESHIELD_FREE,                      0, 0, "",                               CPID_CTF_CAPSHIELD,             XPD(0, 0), _("^BGYou are now free.\n^BGFeel free to ^F2try to capture^BG the flag again\n^BGif you think you will succeed."), "") \
+       MULTITEAM_CENTER(1, CENTER_CTF_PASS_OTHER_, 2,                          2, 0, "s1 s2",                  CPID_CTF_PASS,                  XPD(0, 0), _("^BG%s^BG passed the ^TC^TT^BG flag to %s"), "") \
+       MULTITEAM_CENTER(1, CENTER_CTF_PASS_SENT_, 2,                           1, 0, "s1",                     CPID_CTF_PASS,                  XPD(0, 0), _("^BGYou passed the ^TC^TT^BG flag to %s"), "") \
+       MULTITEAM_CENTER(1, CENTER_CTF_PASS_RECEIVED_, 2,                       1, 0, "s1",                     CPID_CTF_PASS,                  XPD(0, 0), _("^BGYou received the ^TC^TT^BG flag from %s"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_CTF_PASS_REQUESTING,                         1, 0, "s1",                             CPID_CTF_PASS,                  XPD(0, 0), _("^BGRequesting %s^BG to pass you the flag"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_CTF_PASS_REQUESTED,                          1, 0, "s1 pass_key",    CPID_CTF_PASS,                  XPD(0, 0), _("^BG%s^BG requests you to pass the flag%s"), "") \
+       MULTITEAM_CENTER(1, CENTER_CTF_RETURN_, 2,                                      0, 0, "",                               CPID_CTF_LOWPRIO,               XPD(0, 0), _("^BGYou returned the ^TC^TT^BG flag!"), "") \
+       MULTITEAM_CENTER(1, CENTER_CTF_CAPTURE_, 2,                                     0, 0, "",                               CPID_CTF_LOWPRIO,               XPD(0, 0), _("^BGYou captured the ^TC^TT^BG flag!"), "") \
+       MULTITEAM_CENTER(1, CENTER_CTF_PICKUP_, 2,                                      0, 0, "",                               CPID_CTF_LOWPRIO,               XPD(0, 0), _("^BGYou got the ^TC^TT^BG flag!"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_CTF_PICKUP_TEAM,                                     1, 0, "s1",                             CPID_CTF_LOWPRIO,               XPD(0, 0), _("^BGYour %steam mate^BG got the flag! Protect them!"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_CTF_PICKUP_TEAM_VERBOSE,                     2, 0, "s1 s2 s1",               CPID_CTF_LOWPRIO,               XPD(0, 0), _("^BGYour %steam mate (^BG%s%s)^BG got the flag! Protect them!"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_CTF_PICKUP_ENEMY,                            1, 0, "s1",                             CPID_CTF_LOWPRIO,               XPD(0, 0), _("^BGThe %senemy^BG got your flag! Retrieve it!"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_CTF_PICKUP_ENEMY_VERBOSE,            2, 0, "s1 s2 s1",               CPID_CTF_LOWPRIO,               XPD(0, 0), _("^BGThe %senemy (^BG%s%s)^BG got your flag! Retrieve it!"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_CTF_STALEMATE_CARRIER,                       0, 0, "",                               CPID_STALEMATE,                 XPD(0, 0), _("^BGStalemate! Enemies can now see you on radar!"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_CTF_STALEMATE_OTHER,                         0, 0, "",                               CPID_STALEMATE,                 XPD(0, 0), _("^BGStalemate! Flag carriers can now be seen by enemies on radar!"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_CTF_FLAG_THROW_PUNISH,                       0, 1, "f1",                             CPID_CTF_LOWPRIO,               XPD(0, 0), _("^BGToo many flag throws! Throwing disabled for %s seconds."), "") \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_SELF_CUSTOM,                           2, 0, "s2",                             NO_CPID,                                XPD(0, 0), _("^K1You were %s"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_SELF_GENERIC,                          0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1You killed your own dumb self!"), _("^K1You need to be more careful!")) \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_SELF_VOID,                                     0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1Watch your step!"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_SELF_SUICIDE,                          0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1You committed suicide!"), _("^K1You ended it all!")) \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_SELF_NOAMMO,                           0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1You were killed for running out of ammo..."), _("^K1You are respawning for running out of ammo...")) \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_SELF_ROT,                                      0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1You grew too old without taking your medicine"), _("^K1You need to preserve your health")) \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_SELF_CAMP,                                     0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1Die camper!"), _("^K1Reconsider your tactics, camper!")) \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_SELF_BETRAYAL,                         0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1Don't shoot your team mates!"), _("^K1Don't go against your team mates!")) \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_SELF_TEAMCHANGE,                       0, 1, "death_team",             NO_CPID,                                XPD(0, 0), _("^BGYou are now on: %s"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_SELF_AUTOTEAMCHANGE,           0, 1, "death_team",             NO_CPID,                                XPD(0, 0), _("^BGYou have been moved into a different team\nYou are now on: %s"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_SELF_FALL,                                     0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1You hit the ground with a crunch!"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_SELF_DROWN,                            0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1You couldn't catch your breath in time!"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_SELF_FIRE,                                     0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1You got a little bit too crispy!"), _("^K1You felt a little too hot!")) \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_SELF_LAVA,                                     0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1You couldn't stand the heat!"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_SELF_SLIME,                            0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1You melted away in slime!"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_SELF_SHOOTING_STAR,            0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1You became a shooting star!"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_SELF_SWAMP,                            0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1You got stuck in a swamp!"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_SELF_CHEAT,                            0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1You unfairly eliminated yourself!"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_SELF_TOUCHEXPLODE,                     0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1You died in an accident!"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_SELF_TURRET,                           0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1You were fragged by a turret!"), _("^K1You had an unfortunate run in with a turret!")) \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_SELF_TURRET_EWHEEL,            0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1You were fragged by an eWheel turret!"), _("^K1You had an unfortunate run in with an eWheel turret!")) \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_SELF_TURRET_WALKER,            0, 0, "",                               NO_CPID,                                XPD(0, 0), _("^K1You were fragged by a Walker turret!"), _("^K1You had an unfortunate run in with a Walker turret!")) \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_MURDER_FRAG,                                           1, 1, "spree_cen s1",                           NO_CPID, XPD(0, 0), _("^K3%sYou fragged ^BG%s"), _("^K3%sYou scored against ^BG%s")) \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_MURDER_FRAGGED,                                        1, 0, "s1",                                                     NO_CPID, XPD(0, 0), _("^K1You were fragged by ^BG%s"), _("^K1You were scored against by ^BG%s")) \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_MURDER_TYPEFRAG,                                       1, 1, "spree_cen s1",                           NO_CPID, XPD(0, 0), _("^K1%sYou typefragged ^BG%s"), _("^K1%sYou scored against ^BG%s^K1 while they were typing")) \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_MURDER_TYPEFRAGGED,                            1, 0, "s1",                                                     NO_CPID, XPD(0, 0), _("^K1You were typefragged by ^BG%s"), _("^K1You were scored against by ^BG%s^K1 while typing!")) \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_MURDER_FRAG_FIRST,                                     1, 0, "s1",                                                     NO_CPID, XPD(0, 0), _("^K3First blood! You fragged ^BG%s"), _("^K3First score! You scored against ^BG%s")) \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_MURDER_FRAGGED_FIRST,                          1, 0, "s1",                                                     NO_CPID, XPD(0, 0), _("^K1First victim! You were fragged by ^BG%s"), _("^K1First casualty! You were scored against by ^BG%s")) \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_MURDER_TYPEFRAG_FIRST,                         1, 0, "s1",                                                     NO_CPID, XPD(0, 0), _("^K1First blood! You typefragged ^BG%s"), _("^K1First score! You scored against ^BG%s^K1 while they were typing")) \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_MURDER_TYPEFRAGGED_FIRST,                      1, 0, "s1",                                                     NO_CPID, XPD(0, 0), _("^K1First victim! You were typefragged by ^BG%s"), _("^K1First casualty! You were scored against by ^BG%s^K1 while typing!")) \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_MURDER_FRAG_VERBOSE,                           1, 2, "spree_cen s1 frag_ping",         NO_CPID, XPD(0, 0), _("^K3%sYou fragged ^BG%s^BG%s"), _("^K3%sYou scored against ^BG%s^BG%s")) \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_MURDER_FRAGGED_VERBOSE,                        1, 3, "s1 frag_stats",                          NO_CPID, XPD(0, 0), _("^K1You were fragged by ^BG%s^BG%s"), _("^K1You were scored against by ^BG%s^BG%s")) \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_MURDER_TYPEFRAG_VERBOSE,                       1, 2, "spree_cen s1 frag_ping",         NO_CPID, XPD(0, 0), _("^K1%sYou typefragged ^BG%s^BG%s"), _("^K1%sYou scored against ^BG%s^K1 while they were typing^BG%s")) \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_MURDER_TYPEFRAGGED_VERBOSE,            1, 3, "s1 frag_stats",                          NO_CPID, XPD(0, 0), _("^K1You were typefragged by ^BG%s^BG%s"), _("^K1You were scored against by ^BG%s^K1 while typing^BG%s")) \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_MURDER_FRAG_FIRST_VERBOSE,                     1, 1, "s1",                                                     NO_CPID, XPD(0, 0), _("^K3First blood! You fragged ^BG%s"), _("^K3First score! You scored against ^BG%s")) \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_MURDER_FRAGGED_FIRST_VERBOSE,          1, 3, "s1",                                                     NO_CPID, XPD(0, 0), _("^K1First victim! You were fragged by ^BG%s"), _("^K1First casualty! You were scored against by ^BG%s")) \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_MURDER_TYPEFRAG_FIRST_VERBOSE,         1, 1, "s1",                                                     NO_CPID, XPD(0, 0), _("^K1First blood! You typefragged ^BG%s"), _("^K1First score! You scored against ^BG%s^K1 while they were typing")) \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_MURDER_TYPEFRAGGED_FIRST_VERBOSE,      1, 3, "s1",                                                     NO_CPID, XPD(0, 0), _("^K1First victim! You were typefragged by ^BG%s"), _("^K1First casualty! You were scored against by ^BG%s^K1 while typing!")) \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_TEAMKILL_FRAG,                                         1, 0, "s1",                                                     NO_CPID, XPD(0, 0), _("^K1Moron! You fragged ^BG%s^K1, a team mate!"), _("^K1Moron! You went against ^BG%s^K1, a team mate!")) \
+       MSG_CENTER_NOTIF(1, CENTER_DEATH_TEAMKILL_FRAGGED,                                      1, 0, "s1",                                                     NO_CPID, XPD(0, 0), _("^K1You were fragged by ^BG%s^K1, a team mate"), _("^K1You were scored against by ^BG%s^K1, a team mate")) \
+       MSG_CENTER_NOTIF(1, CENTER_DISCONNECT_IDLING,                           0, 1, "",                                       CPID_IDLING,                    XPD(0, f1), _("^K1Stop idling!\n^BGDisconnecting in ^COUNT..."), "") \
+       MULTITEAM_CENTER(1, CENTER_FREEZETAG_ROUND_WIN_, 4,                     0, 0, "",                                       NO_CPID,                                XPD(0, 0), _("^TC^TT^BG team wins the round, all other teams were frozen"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_FREEZETAG_SPAWN_LATE,                        0, 0, "",                                       NO_CPID,                                XPD(0, 0), _("^K1You spawned after the round started, you'll spawn as frozen"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_FREEZETAG_REVIVE,                            1, 0, "s1",                                     NO_CPID,                                XPD(0, 0), _("^K3You revived ^BG%s"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_FREEZETAG_REVIVED,                           1, 0, "s1",                                     NO_CPID,                                XPD(0, 0), _("^K3You were revived by ^BG%s"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_FREEZETAG_SELF,                                      0, 0, "",                                       NO_CPID,                                XPD(0, 0), _("^K1You froze yourself"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_FREEZETAG_FREEZE,                            1, 0, "s1",                                     NO_CPID,                                XPD(0, 0), _("^K3You froze ^BG%s"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_FREEZETAG_FROZEN,                            1, 0, "s1",                                     NO_CPID,                                XPD(0, 0), _("^K1You were frozen by ^BG%s"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_KEEPAWAY_DROPPED,                            1, 0, "s1",                             CPID_KEEPAWAY,                  XPD(0, 0), _("^BG%s^BG has dropped the ball!"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_KEEPAWAY_PICKUP,                                     1, 0, "s1",                             CPID_KEEPAWAY,                  XPD(0, 0), _("^BG%s^BG has picked up the ball!"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_KEEPAWAY_WARN,                                       0, 0, "",                                       CPID_KA_WARN,                   XPD(0, 0), _("^BGKilling people while you don't have the ball gives no points!"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_LMS_CAMPCHECK,                                       0, 0, "",                                       CPID_LMS_CAMP,                  XPD(0, 0), _("^K1Don't camp!"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_JOIN_NOSPAWNS,                                       0, 0, "",                                       CPID_PREVENT_JOIN,              XPD(0, 0), _("^K1No spawnpoints available!\nHope your team can fix it..."), "") \
+       MSG_CENTER_NOTIF(1, CENTER_JOIN_PREVENT,                                        0, 0, "",                                       CPID_PREVENT_JOIN,              XPD(0, 0), _("^K1You may not join the game at this time.\nThe player limit reached maximum capacity."), "") \
+       MSG_CENTER_NOTIF(1, CENTER_OVERTIME_TIME,                                       0, 1, "f1",                                     CPID_OVERTIME,                  XPD(0, 0), _("^F2Now playing ^F4OVERTIME^F2!\nAdded ^F4%s ^F2minute(s) to the game!"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_OVERTIME_FRAG,                                       0, 0, "",                                       CPID_OVERTIME,                  XPD(0, 0), _("^F2Now playing ^F4OVERTIME^F2!\nKeep fragging until we have a winner!"), _("^F2Now playing ^F4OVERTIME^F2!\nKeep scoring until we have a winner!")) \
+       MSG_CENTER_NOTIF(1, CENTER_RACE_FINISHLAP,                                      0, 0, "",                                       CPID_RACE_FINISHLAP,    XPD(0, 0), _("^F2The race is over, finish your lap!"), "") \
+       MULTITEAM_CENTER(1, CENTER_TEAMCHANGE_, 4,                                      0, 1, "",                                       CPID_TEAMCHANGE,                XPD(0, f1), _("^BGChanging to ^TC^TT^BG in ^COUNT"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_TEAMCHANGE_SPECTATE,                         0, 1, "",                                       CPID_TEAMCHANGE,                XPD(0, f1), _("^BGSpectating in ^COUNT"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_TEAMCHANGE_AUTO,                                     0, 1, "",                                       CPID_TEAMCHANGE,                XPD(0, f1), _("^BGChanging team in ^COUNT"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_TEAMCHANGE_SUICIDE,                          0, 1, "",                                       CPID_TEAMCHANGE,                XPD(0, f1), _("^K1Suicide in ^COUNT"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_WEAPON_MARBLES_LOST,                         1, 1, "s1 weapon_name",         NO_CPID,                                XPD(0, 0), _("^K1You lost your marbles against ^BG%s^K1 using the ^BG%s!"), "")
 
 #define MSG_WEAPON_NOTIFICATIONS \
        /*MSG_WEAPON_NOTIF(WEAPON_EMPTY,                                                NO_MSG,                                                                         NO_MSG)*/ \
-       MSG_WEAPON_NOTIF(WEAPON_THINKING_WITH_PORTALS,                  INFO_WEAPON_THINKING_WITH_PORTALS,                      CENTER_DEATH_SELF_GENERIC) \
-       MSG_WEAPON_NOTIF(WEAPON_CRYLINK_SUICIDE,                                INFO_WEAPON_CRYLINK_SUICIDE,                            CENTER_DEATH_SELF_GENERIC) \
-       MSG_WEAPON_NOTIF(WEAPON_CRYLINK_MURDER,                                 INFO_WEAPON_CRYLINK_MURDER,                             NO_MSG) \
-       MSG_WEAPON_NOTIF(WEAPON_ELECTRO_SUICIDE_ORBS,                   INFO_WEAPON_ELECTRO_SUICIDE_ORBS,                       CENTER_DEATH_SELF_GENERIC) \
-       MSG_WEAPON_NOTIF(WEAPON_ELECTRO_SUICIDE_BOLT,                   INFO_WEAPON_ELECTRO_SUICIDE_BOLT,                       CENTER_DEATH_SELF_GENERIC) \
-       MSG_WEAPON_NOTIF(WEAPON_ELECTRO_MURDER_BOLT,                    INFO_WEAPON_ELECTRO_MURDER_BOLT,                        NO_MSG) \
-       MSG_WEAPON_NOTIF(WEAPON_ELECTRO_MURDER_ORBS,                    INFO_WEAPON_ELECTRO_MURDER_ORBS,                        NO_MSG) \
-       MSG_WEAPON_NOTIF(WEAPON_ELECTRO_MURDER_COMBO,                   INFO_WEAPON_ELECTRO_MURDER_COMBO,                       NO_MSG) \
-       MSG_WEAPON_NOTIF(WEAPON_FIREBALL_SUICIDE_FIREMINE,              INFO_WEAPON_FIREBALL_SUICIDE_FIREMINE,          CENTER_DEATH_SELF_GENERIC) \
-       MSG_WEAPON_NOTIF(WEAPON_FIREBALL_SUICIDE_BLAST,                 INFO_WEAPON_FIREBALL_SUICIDE_BLAST,             CENTER_DEATH_SELF_GENERIC) \
-       MSG_WEAPON_NOTIF(WEAPON_FIREBALL_MURDER_FIREMINE,               INFO_WEAPON_FIREBALL_MURDER_FIREMINE,           NO_MSG) \
-       MSG_WEAPON_NOTIF(WEAPON_FIREBALL_MURDER_BLAST,                  INFO_WEAPON_FIREBALL_MURDER_BLAST,                      NO_MSG) \
-       MSG_WEAPON_NOTIF(WEAPON_MORTAR_SUICIDE_EXPLODE,                 INFO_WEAPON_MORTAR_SUICIDE_EXPLODE,             CENTER_DEATH_SELF_GENERIC) \
-       MSG_WEAPON_NOTIF(WEAPON_MORTAR_SUICIDE_BOUNCE,                  INFO_WEAPON_MORTAR_SUICIDE_BOUNCE,                      CENTER_DEATH_SELF_GENERIC) \
-       MSG_WEAPON_NOTIF(WEAPON_MORTAR_MURDER_EXPLODE,                  INFO_WEAPON_MORTAR_MURDER_EXPLODE,                      NO_MSG) \
-       MSG_WEAPON_NOTIF(WEAPON_MORTAR_MURDER_BOUNCE,                   INFO_WEAPON_MORTAR_MURDER_BOUNCE,                       NO_MSG) \
-       MSG_WEAPON_NOTIF(WEAPON_HAGAR_SUICIDE,                                  INFO_WEAPON_HAGAR_SUICIDE,                                      CENTER_DEATH_SELF_GENERIC) \
-       MSG_WEAPON_NOTIF(WEAPON_HAGAR_MURDER_BURST,                     INFO_WEAPON_HAGAR_MURDER_BURST,                         NO_MSG) \
-       MSG_WEAPON_NOTIF(WEAPON_HAGAR_MURDER_SPRAY,                     INFO_WEAPON_HAGAR_MURDER_SPRAY,                         NO_MSG) \
-       MSG_WEAPON_NOTIF(WEAPON_HLAC_SUICIDE,                                   INFO_WEAPON_HLAC_SUICIDE,                                       CENTER_DEATH_SELF_GENERIC) \
-       MSG_WEAPON_NOTIF(WEAPON_HLAC_MURDER,                                    INFO_WEAPON_HLAC_MURDER,                                        NO_MSG) \
-       MSG_WEAPON_NOTIF(WEAPON_HOOK_MURDER,                                    INFO_WEAPON_HOOK_MURDER,                                        NO_MSG) \
-       MSG_WEAPON_NOTIF(WEAPON_LASER_SUICIDE,                                  INFO_WEAPON_LASER_SUICIDE,                                      CENTER_DEATH_SELF_GENERIC) \
-       MSG_WEAPON_NOTIF(WEAPON_LASER_MURDER,                                   INFO_WEAPON_LASER_MURDER,                                       NO_MSG) \
-       MSG_WEAPON_NOTIF(WEAPON_MINELAYER_SUICIDE,                              INFO_WEAPON_MINELAYER_SUICIDE,                          CENTER_DEATH_SELF_GENERIC) \
-       MSG_WEAPON_NOTIF(WEAPON_MINELAYER_MURDER,                               INFO_WEAPON_MINELAYER_MURDER,                           NO_MSG) \
-       MSG_WEAPON_NOTIF(WEAPON_MINSTANEX_MURDER,                               INFO_WEAPON_MINSTANEX_MURDER,                           NO_MSG) \
-       MSG_WEAPON_NOTIF(WEAPON_NEX_MURDER,                                     INFO_WEAPON_NEX_MURDER,                                         NO_MSG) \
-       MSG_WEAPON_NOTIF(WEAPON_RIFLE_MURDER_HAIL_PIERCING,             INFO_WEAPON_RIFLE_MURDER_HAIL_PIERCING,         NO_MSG) \
-       MSG_WEAPON_NOTIF(WEAPON_RIFLE_MURDER_HAIL,                              INFO_WEAPON_RIFLE_MURDER_HAIL,                          NO_MSG) \
-       MSG_WEAPON_NOTIF(WEAPON_RIFLE_MURDER_PIERCING,                  INFO_WEAPON_RIFLE_MURDER_PIERCING,                      NO_MSG) \
-       MSG_WEAPON_NOTIF(WEAPON_RIFLE_MURDER,                                   INFO_WEAPON_RIFLE_MURDER,                                       NO_MSG) \
-       MSG_WEAPON_NOTIF(WEAPON_RIFLE_MURDER_HEADSHOT,                  INFO_WEAPON_RIFLE_MURDER_HEADSHOT,                      NO_MSG) \
-       MSG_WEAPON_NOTIF(WEAPON_ROCKETLAUNCHER_SUICIDE,                 INFO_WEAPON_ROCKETLAUNCHER_SUICIDE,             CENTER_DEATH_SELF_GENERIC) \
-       MSG_WEAPON_NOTIF(WEAPON_ROCKETLAUNCHER_MURDER_DIRECT,   INFO_WEAPON_ROCKETLAUNCHER_MURDER_DIRECT,       NO_MSG) \
-       MSG_WEAPON_NOTIF(WEAPON_ROCKETLAUNCHER_MURDER_SPLASH,   INFO_WEAPON_ROCKETLAUNCHER_MURDER_SPLASH,       NO_MSG) \
-       MSG_WEAPON_NOTIF(WEAPON_SEEKER_SUICIDE,                                 INFO_WEAPON_SEEKER_SUICIDE,                             CENTER_DEATH_SELF_GENERIC) \
-       MSG_WEAPON_NOTIF(WEAPON_SEEKER_MURDER_TAG,                              INFO_WEAPON_SEEKER_MURDER_TAG,                          NO_MSG) \
-       MSG_WEAPON_NOTIF(WEAPON_SEEKER_MURDER_SPRAY,                    INFO_WEAPON_SEEKER_MURDER_SPRAY,                        NO_MSG) \
-       MSG_WEAPON_NOTIF(WEAPON_SHOTGUN_MURDER_SLAP,                    INFO_WEAPON_SHOTGUN_MURDER_SLAP,                        NO_MSG) \
-       MSG_WEAPON_NOTIF(WEAPON_SHOTGUN_MURDER,                                 INFO_WEAPON_SHOTGUN_MURDER,                             NO_MSG) \
-       MSG_WEAPON_NOTIF(WEAPON_TUBA_SUICIDE,                                   INFO_WEAPON_TUBA_SUICIDE,                                       CENTER_DEATH_SELF_GENERIC) \
-       MSG_WEAPON_NOTIF(WEAPON_TUBA_MURDER,                                    INFO_WEAPON_TUBA_MURDER,                                        NO_MSG) \
-       MSG_WEAPON_NOTIF(WEAPON_ACCORDEON_SUICIDE,                              INFO_WEAPON_ACCORDEON_SUICIDE,                          CENTER_DEATH_SELF_GENERIC) \
-       MSG_WEAPON_NOTIF(WEAPON_ACCORDEON_MURDER,                               INFO_WEAPON_ACCORDEON_MURDER,                           NO_MSG) \
-       MSG_WEAPON_NOTIF(WEAPON_KLEINBOTTLE_SUICIDE,                    INFO_WEAPON_KLEINBOTTLE_SUICIDE,                        CENTER_DEATH_SELF_GENERIC) \
-       MSG_WEAPON_NOTIF(WEAPON_KLEINBOTTLE_MURDER,                     INFO_WEAPON_KLEINBOTTLE_MURDER,                         NO_MSG) \
-       MSG_WEAPON_NOTIF(WEAPON_UZI_MURDER_SNIPE,                               INFO_WEAPON_UZI_MURDER_SNIPE,                           NO_MSG) \
-       MSG_WEAPON_NOTIF(WEAPON_UZI_MURDER_SPRAY,                               INFO_WEAPON_UZI_MURDER_SPRAY,                           NO_MSG) 
+       MSG_WEAPON_NOTIF(1, WEAPON_THINKING_WITH_PORTALS,                       INFO_WEAPON_THINKING_WITH_PORTALS,                      CENTER_DEATH_SELF_GENERIC) \
+       MSG_WEAPON_NOTIF(1, WEAPON_CRYLINK_SUICIDE,                             INFO_WEAPON_CRYLINK_SUICIDE,                            CENTER_DEATH_SELF_GENERIC) \
+       MSG_WEAPON_NOTIF(1, WEAPON_CRYLINK_MURDER,                                      INFO_WEAPON_CRYLINK_MURDER,                             NO_MSG) \
+       MSG_WEAPON_NOTIF(1, WEAPON_ELECTRO_SUICIDE_ORBS,                        INFO_WEAPON_ELECTRO_SUICIDE_ORBS,                       CENTER_DEATH_SELF_GENERIC) \
+       MSG_WEAPON_NOTIF(1, WEAPON_ELECTRO_SUICIDE_BOLT,                        INFO_WEAPON_ELECTRO_SUICIDE_BOLT,                       CENTER_DEATH_SELF_GENERIC) \
+       MSG_WEAPON_NOTIF(1, WEAPON_ELECTRO_MURDER_BOLT,                         INFO_WEAPON_ELECTRO_MURDER_BOLT,                        NO_MSG) \
+       MSG_WEAPON_NOTIF(1, WEAPON_ELECTRO_MURDER_ORBS,                         INFO_WEAPON_ELECTRO_MURDER_ORBS,                        NO_MSG) \
+       MSG_WEAPON_NOTIF(1, WEAPON_ELECTRO_MURDER_COMBO,                        INFO_WEAPON_ELECTRO_MURDER_COMBO,                       NO_MSG) \
+       MSG_WEAPON_NOTIF(1, WEAPON_FIREBALL_SUICIDE_FIREMINE,           INFO_WEAPON_FIREBALL_SUICIDE_FIREMINE,          CENTER_DEATH_SELF_GENERIC) \
+       MSG_WEAPON_NOTIF(1, WEAPON_FIREBALL_SUICIDE_BLAST,                      INFO_WEAPON_FIREBALL_SUICIDE_BLAST,             CENTER_DEATH_SELF_GENERIC) \
+       MSG_WEAPON_NOTIF(1, WEAPON_FIREBALL_MURDER_FIREMINE,            INFO_WEAPON_FIREBALL_MURDER_FIREMINE,           NO_MSG) \
+       MSG_WEAPON_NOTIF(1, WEAPON_FIREBALL_MURDER_BLAST,                       INFO_WEAPON_FIREBALL_MURDER_BLAST,                      NO_MSG) \
+       MSG_WEAPON_NOTIF(1, WEAPON_MORTAR_SUICIDE_EXPLODE,                      INFO_WEAPON_MORTAR_SUICIDE_EXPLODE,             CENTER_DEATH_SELF_GENERIC) \
+       MSG_WEAPON_NOTIF(1, WEAPON_MORTAR_SUICIDE_BOUNCE,                       INFO_WEAPON_MORTAR_SUICIDE_BOUNCE,                      CENTER_DEATH_SELF_GENERIC) \
+       MSG_WEAPON_NOTIF(1, WEAPON_MORTAR_MURDER_EXPLODE,                       INFO_WEAPON_MORTAR_MURDER_EXPLODE,                      NO_MSG) \
+       MSG_WEAPON_NOTIF(1, WEAPON_MORTAR_MURDER_BOUNCE,                        INFO_WEAPON_MORTAR_MURDER_BOUNCE,                       NO_MSG) \
+       MSG_WEAPON_NOTIF(1, WEAPON_HAGAR_SUICIDE,                                       INFO_WEAPON_HAGAR_SUICIDE,                                      CENTER_DEATH_SELF_GENERIC) \
+       MSG_WEAPON_NOTIF(1, WEAPON_HAGAR_MURDER_BURST,                          INFO_WEAPON_HAGAR_MURDER_BURST,                         NO_MSG) \
+       MSG_WEAPON_NOTIF(1, WEAPON_HAGAR_MURDER_SPRAY,                          INFO_WEAPON_HAGAR_MURDER_SPRAY,                         NO_MSG) \
+       MSG_WEAPON_NOTIF(1, WEAPON_HLAC_SUICIDE,                                        INFO_WEAPON_HLAC_SUICIDE,                                       CENTER_DEATH_SELF_GENERIC) \
+       MSG_WEAPON_NOTIF(1, WEAPON_HLAC_MURDER,                                         INFO_WEAPON_HLAC_MURDER,                                        NO_MSG) \
+       MSG_WEAPON_NOTIF(1, WEAPON_HOOK_MURDER,                                         INFO_WEAPON_HOOK_MURDER,                                        NO_MSG) \
+       MSG_WEAPON_NOTIF(1, WEAPON_LASER_SUICIDE,                                       INFO_WEAPON_LASER_SUICIDE,                                      CENTER_DEATH_SELF_GENERIC) \
+       MSG_WEAPON_NOTIF(1, WEAPON_LASER_MURDER,                                        INFO_WEAPON_LASER_MURDER,                                       NO_MSG) \
+       MSG_WEAPON_NOTIF(1, WEAPON_MINELAYER_SUICIDE,                           INFO_WEAPON_MINELAYER_SUICIDE,                          CENTER_DEATH_SELF_GENERIC) \
+       MSG_WEAPON_NOTIF(1, WEAPON_MINELAYER_MURDER,                            INFO_WEAPON_MINELAYER_MURDER,                           NO_MSG) \
+       MSG_WEAPON_NOTIF(1, WEAPON_MINSTANEX_MURDER,                            INFO_WEAPON_MINSTANEX_MURDER,                           NO_MSG) \
+       MSG_WEAPON_NOTIF(1, WEAPON_NEX_MURDER,                                          INFO_WEAPON_NEX_MURDER,                                         NO_MSG) \
+       MSG_WEAPON_NOTIF(1, WEAPON_RIFLE_MURDER_HAIL_PIERCING,          INFO_WEAPON_RIFLE_MURDER_HAIL_PIERCING,         NO_MSG) \
+       MSG_WEAPON_NOTIF(1, WEAPON_RIFLE_MURDER_HAIL,                           INFO_WEAPON_RIFLE_MURDER_HAIL,                          NO_MSG) \
+       MSG_WEAPON_NOTIF(1, WEAPON_RIFLE_MURDER_PIERCING,                       INFO_WEAPON_RIFLE_MURDER_PIERCING,                      NO_MSG) \
+       MSG_WEAPON_NOTIF(1, WEAPON_RIFLE_MURDER,                                        INFO_WEAPON_RIFLE_MURDER,                                       NO_MSG) \
+       MSG_WEAPON_NOTIF(1, WEAPON_RIFLE_MURDER_HEADSHOT,                       INFO_WEAPON_RIFLE_MURDER_HEADSHOT,                      NO_MSG) \
+       MSG_WEAPON_NOTIF(1, WEAPON_ROCKETLAUNCHER_SUICIDE,                      INFO_WEAPON_ROCKETLAUNCHER_SUICIDE,             CENTER_DEATH_SELF_GENERIC) \
+       MSG_WEAPON_NOTIF(1, WEAPON_ROCKETLAUNCHER_MURDER_DIRECT,        INFO_WEAPON_ROCKETLAUNCHER_MURDER_DIRECT,       NO_MSG) \
+       MSG_WEAPON_NOTIF(1, WEAPON_ROCKETLAUNCHER_MURDER_SPLASH,        INFO_WEAPON_ROCKETLAUNCHER_MURDER_SPLASH,       NO_MSG) \
+       MSG_WEAPON_NOTIF(1, WEAPON_SEEKER_SUICIDE,                                      INFO_WEAPON_SEEKER_SUICIDE,                             CENTER_DEATH_SELF_GENERIC) \
+       MSG_WEAPON_NOTIF(1, WEAPON_SEEKER_MURDER_TAG,                           INFO_WEAPON_SEEKER_MURDER_TAG,                          NO_MSG) \
+       MSG_WEAPON_NOTIF(1, WEAPON_SEEKER_MURDER_SPRAY,                         INFO_WEAPON_SEEKER_MURDER_SPRAY,                        NO_MSG) \
+       MSG_WEAPON_NOTIF(1, WEAPON_SHOTGUN_MURDER_SLAP,                         INFO_WEAPON_SHOTGUN_MURDER_SLAP,                        NO_MSG) \
+       MSG_WEAPON_NOTIF(1, WEAPON_SHOTGUN_MURDER,                                      INFO_WEAPON_SHOTGUN_MURDER,                             NO_MSG) \
+       MSG_WEAPON_NOTIF(1, WEAPON_TUBA_SUICIDE,                                        INFO_WEAPON_TUBA_SUICIDE,                                       CENTER_DEATH_SELF_GENERIC) \
+       MSG_WEAPON_NOTIF(1, WEAPON_TUBA_MURDER,                                         INFO_WEAPON_TUBA_MURDER,                                        NO_MSG) \
+       MSG_WEAPON_NOTIF(1, WEAPON_ACCORDEON_SUICIDE,                           INFO_WEAPON_ACCORDEON_SUICIDE,                          CENTER_DEATH_SELF_GENERIC) \
+       MSG_WEAPON_NOTIF(1, WEAPON_ACCORDEON_MURDER,                            INFO_WEAPON_ACCORDEON_MURDER,                           NO_MSG) \
+       MSG_WEAPON_NOTIF(1, WEAPON_KLEINBOTTLE_SUICIDE,                         INFO_WEAPON_KLEINBOTTLE_SUICIDE,                        CENTER_DEATH_SELF_GENERIC) \
+       MSG_WEAPON_NOTIF(1, WEAPON_KLEINBOTTLE_MURDER,                          INFO_WEAPON_KLEINBOTTLE_MURDER,                         NO_MSG) \
+       MSG_WEAPON_NOTIF(1, WEAPON_UZI_MURDER_SNIPE,                            INFO_WEAPON_UZI_MURDER_SNIPE,                           NO_MSG) \
+       MSG_WEAPON_NOTIF(1, WEAPON_UZI_MURDER_SPRAY,                            INFO_WEAPON_UZI_MURDER_SPRAY,                           NO_MSG) 
 
 #define MSG_DEATH_NOTIFICATIONS \
        /*MSG_DEATH_NOTIF(DEATH_EMPTY,                                          NO_MSG,                                                                 NO_MSG)*/ \
-       MSG_DEATH_NOTIF(DEATH_SELF_CUSTOM,                                      INFO_DEATH_SELF_GENERIC,                                CENTER_DEATH_SELF_CUSTOM) \
-       MSG_DEATH_NOTIF(DEATH_SELF_GENERIC,                                     INFO_DEATH_SELF_GENERIC,                                CENTER_DEATH_SELF_GENERIC) \
-       MSG_DEATH_NOTIF(DEATH_SELF_VOID,                                        INFO_DEATH_SELF_VOID,                                   CENTER_DEATH_SELF_VOID) \
-       MSG_DEATH_NOTIF(DEATH_SELF_SUICIDE,                                     INFO_DEATH_SELF_SUICIDE,                                CENTER_DEATH_SELF_SUICIDE) \
-       MSG_DEATH_NOTIF(DEATH_SELF_NOAMMO,                                      INFO_DEATH_SELF_NOAMMO,                                 CENTER_DEATH_SELF_NOAMMO) \
-       MSG_DEATH_NOTIF(DEATH_SELF_ROT,                                         INFO_DEATH_SELF_ROT,                                    CENTER_DEATH_SELF_ROT) \
-       MSG_DEATH_NOTIF(DEATH_SELF_CAMP,                                        INFO_DEATH_SELF_CAMP,                                   CENTER_DEATH_SELF_CAMP) \
-       MSG_DEATH_NOTIF(DEATH_SELF_BETRAYAL,                            INFO_DEATH_SELF_BETRAYAL,                               CENTER_DEATH_SELF_BETRAYAL) \
-       MSG_DEATH_NOTIF(DEATH_SELF_TEAMCHANGE,                          INFO_DEATH_SELF_TEAMCHANGE,                             CENTER_DEATH_SELF_TEAMCHANGE) \
-       MSG_DEATH_NOTIF(DEATH_SELF_AUTOTEAMCHANGE,                      INFO_DEATH_SELF_AUTOTEAMCHANGE,                 CENTER_DEATH_SELF_AUTOTEAMCHANGE) \
-       MSG_DEATH_NOTIF(DEATH_SELF_FALL,                                        INFO_DEATH_SELF_FALL,                                   CENTER_DEATH_SELF_FALL) \
-       MSG_DEATH_NOTIF(DEATH_SELF_DROWN,                                       INFO_DEATH_SELF_DROWN,                                  CENTER_DEATH_SELF_DROWN) \
-       MSG_DEATH_NOTIF(DEATH_SELF_FIRE,                                        INFO_DEATH_SELF_FIRE,                                   CENTER_DEATH_SELF_FIRE) \
-       MSG_DEATH_NOTIF(DEATH_SELF_LAVA,                                        INFO_DEATH_SELF_LAVA,                                   CENTER_DEATH_SELF_LAVA) \
-       MSG_DEATH_NOTIF(DEATH_SELF_SLIME,                                       INFO_DEATH_SELF_SLIME,                                  CENTER_DEATH_SELF_SLIME) \
-       MSG_DEATH_NOTIF(DEATH_SELF_SHOOTING_STAR,                       INFO_DEATH_SELF_SHOOTING_STAR,                  CENTER_DEATH_SELF_SHOOTING_STAR) \
-       MSG_DEATH_NOTIF(DEATH_SELF_SWAMP,                                       INFO_DEATH_SELF_SWAMP,                                  CENTER_DEATH_SELF_SWAMP) \
-       MSG_DEATH_NOTIF(DEATH_SELF_CHEAT,                                       INFO_DEATH_SELF_CHEAT,                                  CENTER_DEATH_SELF_CHEAT) \
-       MSG_DEATH_NOTIF(DEATH_SELF_TOUCHEXPLODE,                        INFO_DEATH_SELF_TOUCHEXPLODE,                   CENTER_DEATH_SELF_TOUCHEXPLODE) \
-       MSG_DEATH_NOTIF(DEATH_SELF_TURRET,                                      INFO_DEATH_SELF_TURRET,                                 CENTER_DEATH_SELF_TURRET) \
-       MSG_DEATH_NOTIF(DEATH_SELF_TURRET_EWHEEL,                       INFO_DEATH_SELF_TURRET_EWHEEL,                  CENTER_DEATH_SELF_TURRET_EWHEEL) \
-       MSG_DEATH_NOTIF(DEATH_SELF_TURRET_FLAC,                         INFO_DEATH_SELF_TURRET_FLAC,                    CENTER_DEATH_SELF_TURRET) \
-       MSG_DEATH_NOTIF(DEATH_SELF_TURRET_MACHINEGUN,           INFO_DEATH_SELF_TURRET_MACHINEGUN,              CENTER_DEATH_SELF_TURRET) \
-       MSG_DEATH_NOTIF(DEATH_SELF_TURRET_WALKER_GUN,           INFO_DEATH_SELF_TURRET_WALKER_GUN,              CENTER_DEATH_SELF_TURRET_WALKER) \
-       MSG_DEATH_NOTIF(DEATH_SELF_TURRET_WALKER_MEELE,         INFO_DEATH_SELF_TURRET_WALKER_MEELE,    CENTER_DEATH_SELF_TURRET_WALKER) \
-       MSG_DEATH_NOTIF(DEATH_SELF_TURRET_WALKER_ROCKET,        INFO_DEATH_SELF_TURRET_WALKER_ROCKET,   CENTER_DEATH_SELF_TURRET_WALKER) \
-       MSG_DEATH_NOTIF(DEATH_SELF_TURRET_HELLION,                      INFO_DEATH_SELF_TURRET_HELLION,                 CENTER_DEATH_SELF_TURRET) \
-       MSG_DEATH_NOTIF(DEATH_SELF_TURRET_HK,                           INFO_DEATH_SELF_TURRET_HK,                              CENTER_DEATH_SELF_TURRET) \
-       MSG_DEATH_NOTIF(DEATH_SELF_TURRET_MLRS,                         INFO_DEATH_SELF_TURRET_MLRS,                    CENTER_DEATH_SELF_TURRET) \
-       MSG_DEATH_NOTIF(DEATH_SELF_TURRET_PLASMA,                       INFO_DEATH_SELF_TURRET_PLASMA,                  CENTER_DEATH_SELF_TURRET) \
-       MSG_DEATH_NOTIF(DEATH_SELF_TURRET_PHASER,                       INFO_DEATH_SELF_TURRET_PHASER,                  CENTER_DEATH_SELF_TURRET) \
-       MSG_DEATH_NOTIF(DEATH_SELF_TURRET_TESLA,                        INFO_DEATH_SELF_TURRET_TESLA,                   CENTER_DEATH_SELF_TURRET) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_TELEFRAG,                          INFO_DEATH_MURDER_TELEFRAG,                             NO_MSG) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_FALL,                                      INFO_DEATH_MURDER_FALL,                                 NO_MSG) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_DROWN,                                     INFO_DEATH_MURDER_DROWN,                                NO_MSG) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_LAVA,                                      INFO_DEATH_MURDER_LAVA,                                 NO_MSG) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_SLIME,                                     INFO_DEATH_MURDER_SLIME,                                NO_MSG) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_SHOOTING_STAR,                     INFO_DEATH_MURDER_SHOOTING_STAR,                NO_MSG) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_SWAMP,                                     INFO_DEATH_MURDER_SWAMP,                                NO_MSG) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_VOID,                                      INFO_DEATH_MURDER_VOID,                                 NO_MSG) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_TOUCHEXPLODE,                      INFO_DEATH_MURDER_TOUCHEXPLODE,                 NO_MSG) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_CHEAT,                                     INFO_DEATH_MURDER_CHEAT,                                NO_MSG) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_FIRE,                                      INFO_DEATH_MURDER_FIRE,                                 NO_MSG) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_VH_CRUSH,                          INFO_DEATH_MURDER_VH_CRUSH,                             NO_MSG) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_VH_SPID_MINIGUN,           INFO_DEATH_MURDER_VH_SPID_MINIGUN,              NO_MSG) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_VH_SPID_ROCKET,            INFO_DEATH_MURDER_VH_SPID_ROCKET,               NO_MSG) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_VH_SPID_DEATH,                     INFO_DEATH_MURDER_VH_SPID_DEATH,                NO_MSG) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_VH_WAKI_GUN,                       INFO_DEATH_MURDER_VH_WAKI_GUN,                  NO_MSG) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_VH_WAKI_ROCKET,            INFO_DEATH_MURDER_VH_WAKI_ROCKET,               NO_MSG) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_VH_WAKI_DEATH,                     INFO_DEATH_MURDER_VH_WAKI_DEATH,                NO_MSG) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_VH_RAPT_CANNON,            INFO_DEATH_MURDER_VH_RAPT_CANNON,               NO_MSG) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_VH_RAPT_BOMB,                      INFO_DEATH_MURDER_VH_RAPT_BOMB,                 NO_MSG) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_VH_RAPT_FRAGMENT,          INFO_DEATH_MURDER_VH_RAPT_FRAGMENT,             NO_MSG) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_VH_RAPT_DEATH,                     INFO_DEATH_MURDER_VH_RAPT_DEATH,                NO_MSG) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_VH_BUMB_GUN,                       INFO_DEATH_MURDER_VH_BUMB_GUN,                  NO_MSG) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_VH_BUMB_RAY,                       INFO_DEATH_MURDER_VH_BUMB_RAY,                  NO_MSG) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_VH_BUMB_RAY_HEAL,          INFO_DEATH_MURDER_VH_BUMB_RAY_HEAL,             NO_MSG) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_VH_BUMB_DEATH,                     INFO_DEATH_MURDER_VH_BUMB_DEATH,                NO_MSG) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_FRAG,                                                      NO_MSG,                                                 CENTER_DEATH_MURDER_FRAG) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_FRAGGED,                                           NO_MSG,                                                 CENTER_DEATH_MURDER_FRAGGED) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_TYPEFRAG,                                          NO_MSG,                                                 CENTER_DEATH_MURDER_TYPEFRAG) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_TYPEFRAGGED,                                       NO_MSG,                                                 CENTER_DEATH_MURDER_TYPEFRAGGED) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_FRAG_FIRST,                                        INFO_DEATH_FIRSTBLOOD,                  CENTER_DEATH_MURDER_FRAG_FIRST) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_FRAGGED_FIRST,                                     NO_MSG,                                                 CENTER_DEATH_MURDER_FRAGGED_FIRST) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_TYPEFRAG_FIRST,                            INFO_DEATH_FIRSTBLOOD,                  CENTER_DEATH_MURDER_TYPEFRAG_FIRST) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_TYPEFRAGGED_FIRST,                         NO_MSG,                                                 CENTER_DEATH_MURDER_TYPEFRAGGED_FIRST) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_FRAG_VERBOSE,                                      NO_MSG,                                                 CENTER_DEATH_MURDER_FRAG_VERBOSE) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_FRAGGED_VERBOSE,                           NO_MSG,                                                 CENTER_DEATH_MURDER_FRAGGED_VERBOSE) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_TYPEFRAG_VERBOSE,                          NO_MSG,                                                 CENTER_DEATH_MURDER_TYPEFRAG_VERBOSE) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_TYPEFRAGGED_VERBOSE,                       NO_MSG,                                                 CENTER_DEATH_MURDER_TYPEFRAGGED_VERBOSE) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_FRAG_FIRST_VERBOSE,                        INFO_DEATH_FIRSTBLOOD,                  CENTER_DEATH_MURDER_FRAG_FIRST_VERBOSE) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_FRAGGED_FIRST_VERBOSE,                     NO_MSG,                                                 CENTER_DEATH_MURDER_FRAGGED_FIRST_VERBOSE) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_TYPEFRAG_FIRST_VERBOSE,            INFO_DEATH_FIRSTBLOOD,                  CENTER_DEATH_MURDER_TYPEFRAG_FIRST_VERBOSE) \
-       MSG_DEATH_NOTIF(DEATH_MURDER_TYPEFRAGGED_FIRST_VERBOSE,         NO_MSG,                                                 CENTER_DEATH_MURDER_TYPEFRAGGED_FIRST_VERBOSE) \
-       MSG_DEATH_NOTIF(DEATH_TEAMKILL_FRAG,                                            NO_MSG,                                                 CENTER_DEATH_TEAMKILL_FRAG) \
-       MSG_DEATH_NOTIF(DEATH_TEAMKILL_FRAGGED,                                         NO_MSG,                                                 CENTER_DEATH_TEAMKILL_FRAGGED)
+       MSG_DEATH_NOTIF(1, DEATH_SELF_CUSTOM,                                   INFO_DEATH_SELF_GENERIC,                                CENTER_DEATH_SELF_CUSTOM) \
+       MSG_DEATH_NOTIF(1, DEATH_SELF_GENERIC,                                  INFO_DEATH_SELF_GENERIC,                                CENTER_DEATH_SELF_GENERIC) \
+       MSG_DEATH_NOTIF(1, DEATH_SELF_VOID,                                             INFO_DEATH_SELF_VOID,                                   CENTER_DEATH_SELF_VOID) \
+       MSG_DEATH_NOTIF(1, DEATH_SELF_SUICIDE,                                  INFO_DEATH_SELF_SUICIDE,                                CENTER_DEATH_SELF_SUICIDE) \
+       MSG_DEATH_NOTIF(1, DEATH_SELF_NOAMMO,                                   INFO_DEATH_SELF_NOAMMO,                                 CENTER_DEATH_SELF_NOAMMO) \
+       MSG_DEATH_NOTIF(1, DEATH_SELF_ROT,                                              INFO_DEATH_SELF_ROT,                                    CENTER_DEATH_SELF_ROT) \
+       MSG_DEATH_NOTIF(1, DEATH_SELF_CAMP,                                             INFO_DEATH_SELF_CAMP,                                   CENTER_DEATH_SELF_CAMP) \
+       MSG_DEATH_NOTIF(1, DEATH_SELF_BETRAYAL,                                 INFO_DEATH_SELF_BETRAYAL,                               CENTER_DEATH_SELF_BETRAYAL) \
+       MSG_DEATH_NOTIF(1, DEATH_SELF_TEAMCHANGE,                               INFO_DEATH_SELF_TEAMCHANGE,                             CENTER_DEATH_SELF_TEAMCHANGE) \
+       MSG_DEATH_NOTIF(1, DEATH_SELF_AUTOTEAMCHANGE,                   INFO_DEATH_SELF_AUTOTEAMCHANGE,                 CENTER_DEATH_SELF_AUTOTEAMCHANGE) \
+       MSG_DEATH_NOTIF(1, DEATH_SELF_FALL,                                             INFO_DEATH_SELF_FALL,                                   CENTER_DEATH_SELF_FALL) \
+       MSG_DEATH_NOTIF(1, DEATH_SELF_DROWN,                                    INFO_DEATH_SELF_DROWN,                                  CENTER_DEATH_SELF_DROWN) \
+       MSG_DEATH_NOTIF(1, DEATH_SELF_FIRE,                                             INFO_DEATH_SELF_FIRE,                                   CENTER_DEATH_SELF_FIRE) \
+       MSG_DEATH_NOTIF(1, DEATH_SELF_LAVA,                                             INFO_DEATH_SELF_LAVA,                                   CENTER_DEATH_SELF_LAVA) \
+       MSG_DEATH_NOTIF(1, DEATH_SELF_SLIME,                                    INFO_DEATH_SELF_SLIME,                                  CENTER_DEATH_SELF_SLIME) \
+       MSG_DEATH_NOTIF(1, DEATH_SELF_SHOOTING_STAR,                    INFO_DEATH_SELF_SHOOTING_STAR,                  CENTER_DEATH_SELF_SHOOTING_STAR) \
+       MSG_DEATH_NOTIF(1, DEATH_SELF_SWAMP,                                    INFO_DEATH_SELF_SWAMP,                                  CENTER_DEATH_SELF_SWAMP) \
+       MSG_DEATH_NOTIF(1, DEATH_SELF_CHEAT,                                    INFO_DEATH_SELF_CHEAT,                                  CENTER_DEATH_SELF_CHEAT) \
+       MSG_DEATH_NOTIF(1, DEATH_SELF_TOUCHEXPLODE,                             INFO_DEATH_SELF_TOUCHEXPLODE,                   CENTER_DEATH_SELF_TOUCHEXPLODE) \
+       MSG_DEATH_NOTIF(1, DEATH_SELF_TURRET,                                   INFO_DEATH_SELF_TURRET,                                 CENTER_DEATH_SELF_TURRET) \
+       MSG_DEATH_NOTIF(1, DEATH_SELF_TURRET_EWHEEL,                    INFO_DEATH_SELF_TURRET_EWHEEL,                  CENTER_DEATH_SELF_TURRET_EWHEEL) \
+       MSG_DEATH_NOTIF(1, DEATH_SELF_TURRET_FLAC,                              INFO_DEATH_SELF_TURRET_FLAC,                    CENTER_DEATH_SELF_TURRET) \
+       MSG_DEATH_NOTIF(1, DEATH_SELF_TURRET_MACHINEGUN,                INFO_DEATH_SELF_TURRET_MACHINEGUN,              CENTER_DEATH_SELF_TURRET) \
+       MSG_DEATH_NOTIF(1, DEATH_SELF_TURRET_WALKER_GUN,                INFO_DEATH_SELF_TURRET_WALKER_GUN,              CENTER_DEATH_SELF_TURRET_WALKER) \
+       MSG_DEATH_NOTIF(1, DEATH_SELF_TURRET_WALKER_MEELE,              INFO_DEATH_SELF_TURRET_WALKER_MEELE,    CENTER_DEATH_SELF_TURRET_WALKER) \
+       MSG_DEATH_NOTIF(1, DEATH_SELF_TURRET_WALKER_ROCKET,             INFO_DEATH_SELF_TURRET_WALKER_ROCKET,   CENTER_DEATH_SELF_TURRET_WALKER) \
+       MSG_DEATH_NOTIF(1, DEATH_SELF_TURRET_HELLION,                   INFO_DEATH_SELF_TURRET_HELLION,                 CENTER_DEATH_SELF_TURRET) \
+       MSG_DEATH_NOTIF(1, DEATH_SELF_TURRET_HK,                                INFO_DEATH_SELF_TURRET_HK,                              CENTER_DEATH_SELF_TURRET) \
+       MSG_DEATH_NOTIF(1, DEATH_SELF_TURRET_MLRS,                              INFO_DEATH_SELF_TURRET_MLRS,                    CENTER_DEATH_SELF_TURRET) \
+       MSG_DEATH_NOTIF(1, DEATH_SELF_TURRET_PLASMA,                    INFO_DEATH_SELF_TURRET_PLASMA,                  CENTER_DEATH_SELF_TURRET) \
+       MSG_DEATH_NOTIF(1, DEATH_SELF_TURRET_PHASER,                    INFO_DEATH_SELF_TURRET_PHASER,                  CENTER_DEATH_SELF_TURRET) \
+       MSG_DEATH_NOTIF(1, DEATH_SELF_TURRET_TESLA,                             INFO_DEATH_SELF_TURRET_TESLA,                   CENTER_DEATH_SELF_TURRET) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_TELEFRAG,                               INFO_DEATH_MURDER_TELEFRAG,                             NO_MSG) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_FALL,                                   INFO_DEATH_MURDER_FALL,                                 NO_MSG) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_DROWN,                                  INFO_DEATH_MURDER_DROWN,                                NO_MSG) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_LAVA,                                   INFO_DEATH_MURDER_LAVA,                                 NO_MSG) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_SLIME,                                  INFO_DEATH_MURDER_SLIME,                                NO_MSG) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_SHOOTING_STAR,                  INFO_DEATH_MURDER_SHOOTING_STAR,                NO_MSG) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_SWAMP,                                  INFO_DEATH_MURDER_SWAMP,                                NO_MSG) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_VOID,                                   INFO_DEATH_MURDER_VOID,                                 NO_MSG) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_TOUCHEXPLODE,                   INFO_DEATH_MURDER_TOUCHEXPLODE,                 NO_MSG) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_CHEAT,                                  INFO_DEATH_MURDER_CHEAT,                                NO_MSG) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_FIRE,                                   INFO_DEATH_MURDER_FIRE,                                 NO_MSG) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_VH_CRUSH,                               INFO_DEATH_MURDER_VH_CRUSH,                             NO_MSG) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_VH_SPID_MINIGUN,                INFO_DEATH_MURDER_VH_SPID_MINIGUN,              NO_MSG) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_VH_SPID_ROCKET,                 INFO_DEATH_MURDER_VH_SPID_ROCKET,               NO_MSG) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_VH_SPID_DEATH,                  INFO_DEATH_MURDER_VH_SPID_DEATH,                NO_MSG) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_VH_WAKI_GUN,                    INFO_DEATH_MURDER_VH_WAKI_GUN,                  NO_MSG) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_VH_WAKI_ROCKET,                 INFO_DEATH_MURDER_VH_WAKI_ROCKET,               NO_MSG) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_VH_WAKI_DEATH,                  INFO_DEATH_MURDER_VH_WAKI_DEATH,                NO_MSG) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_VH_RAPT_CANNON,                 INFO_DEATH_MURDER_VH_RAPT_CANNON,               NO_MSG) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_VH_RAPT_BOMB,                   INFO_DEATH_MURDER_VH_RAPT_BOMB,                 NO_MSG) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_VH_RAPT_FRAGMENT,               INFO_DEATH_MURDER_VH_RAPT_FRAGMENT,             NO_MSG) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_VH_RAPT_DEATH,                  INFO_DEATH_MURDER_VH_RAPT_DEATH,                NO_MSG) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_VH_BUMB_GUN,                    INFO_DEATH_MURDER_VH_BUMB_GUN,                  NO_MSG) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_VH_BUMB_RAY,                    INFO_DEATH_MURDER_VH_BUMB_RAY,                  NO_MSG) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_VH_BUMB_RAY_HEAL,               INFO_DEATH_MURDER_VH_BUMB_RAY_HEAL,             NO_MSG) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_VH_BUMB_DEATH,                  INFO_DEATH_MURDER_VH_BUMB_DEATH,                NO_MSG) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_FRAG,                                                   NO_MSG,                                                 CENTER_DEATH_MURDER_FRAG) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_FRAGGED,                                                NO_MSG,                                                 CENTER_DEATH_MURDER_FRAGGED) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_TYPEFRAG,                                               NO_MSG,                                                 CENTER_DEATH_MURDER_TYPEFRAG) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_TYPEFRAGGED,                                    NO_MSG,                                                 CENTER_DEATH_MURDER_TYPEFRAGGED) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_FRAG_FIRST,                                             INFO_DEATH_FIRSTBLOOD,                  CENTER_DEATH_MURDER_FRAG_FIRST) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_FRAGGED_FIRST,                                  NO_MSG,                                                 CENTER_DEATH_MURDER_FRAGGED_FIRST) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_TYPEFRAG_FIRST,                                 INFO_DEATH_FIRSTBLOOD,                  CENTER_DEATH_MURDER_TYPEFRAG_FIRST) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_TYPEFRAGGED_FIRST,                              NO_MSG,                                                 CENTER_DEATH_MURDER_TYPEFRAGGED_FIRST) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_FRAG_VERBOSE,                                   NO_MSG,                                                 CENTER_DEATH_MURDER_FRAG_VERBOSE) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_FRAGGED_VERBOSE,                                NO_MSG,                                                 CENTER_DEATH_MURDER_FRAGGED_VERBOSE) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_TYPEFRAG_VERBOSE,                               NO_MSG,                                                 CENTER_DEATH_MURDER_TYPEFRAG_VERBOSE) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_TYPEFRAGGED_VERBOSE,                    NO_MSG,                                                 CENTER_DEATH_MURDER_TYPEFRAGGED_VERBOSE) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_FRAG_FIRST_VERBOSE,                             INFO_DEATH_FIRSTBLOOD,                  CENTER_DEATH_MURDER_FRAG_FIRST_VERBOSE) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_FRAGGED_FIRST_VERBOSE,                  NO_MSG,                                                 CENTER_DEATH_MURDER_FRAGGED_FIRST_VERBOSE) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_TYPEFRAG_FIRST_VERBOSE,                 INFO_DEATH_FIRSTBLOOD,                  CENTER_DEATH_MURDER_TYPEFRAG_FIRST_VERBOSE) \
+       MSG_DEATH_NOTIF(1, DEATH_MURDER_TYPEFRAGGED_FIRST_VERBOSE,              NO_MSG,                                                 CENTER_DEATH_MURDER_TYPEFRAGGED_FIRST_VERBOSE) \
+       MSG_DEATH_NOTIF(1, DEATH_TEAMKILL_FRAG,                                                 NO_MSG,                                                 CENTER_DEATH_TEAMKILL_FRAG) \
+       MSG_DEATH_NOTIF(1, DEATH_TEAMKILL_FRAGGED,                                              NO_MSG,                                                 CENTER_DEATH_TEAMKILL_FRAGGED)
 
 
 // ====================================
@@ -612,6 +615,7 @@ entity msg_death_notifs[NOTIF_MAX];
 .string nent_strings[4];
 .float nent_floats[4];
 
+.float nent_default;
 .string nent_name;
 .float nent_id;
 .float nent_enabled; 
@@ -676,11 +680,12 @@ string Process_Notif_Args(float is_hudargs, string args, string notiftype, strin
 }
 #define ADD_AUTOCVAR(name,default) var float autocvar_notification_##name = default;
 
-#define CREATE_NOTIF_ENTITY(type,name,infoname,centername,strnum,flnum,args,hudargs,icon,cpid,durcnt,normal,gentle,check_newline,subcalls) \
+#define CREATE_NOTIF_ENTITY(default,type,name,infoname,centername,strnum,flnum,args,hudargs,icon,cpid,durcnt,normal,gentle,check_newline,subcalls) \
        notif_error = FALSE; \
        entity notif = spawn(); \
        msg_##type##_notifs[name - 1] = notif; \
        notif.classname = "msg_#type#_notification"; \
+       notif.nent_default = default; \
        notif.nent_name = strzone(#name); \
        notif.nent_id = name; \
        notif.nent_enabled = autocvar_notification_##name; \
@@ -723,14 +728,15 @@ string Process_Notif_Args(float is_hudargs, string args, string notiftype, strin
                notif_global_error = TRUE; \
        }
        
-#define MSG_INFO_NOTIF(name,strnum,flnum,args,hudargs,icon,normal,gentle) \
-       ADD_AUTOCVAR(name, TRUE) \
+#define MSG_INFO_NOTIF(default,name,strnum,flnum,args,hudargs,icon,normal,gentle) \
+       ADD_AUTOCVAR(name, default) \
        float name; \
        void RegisterNotification_##name() \
        { \
                SET_FIELD_COUNT(name, NOTIF_FIRST, NOTIF_INFO_COUNT) \
                CHECK_MAX_COUNT(name, NOTIF_MAX, NOTIF_INFO_COUNT, "notifications") \
                CREATE_NOTIF_ENTITY( \
+                       default,        /* default */ \
                        info,           /* type */ \
                        name,           /* name */ \
                        NO_MSG,         /* infoname */ \
@@ -749,8 +755,8 @@ string Process_Notif_Args(float is_hudargs, string args, string notiftype, strin
        } \
        ACCUMULATE_FUNCTION(RegisterNotifications, RegisterNotification_##name)
 
-#define MSG_CENTER_NOTIF(name,strnum,flnum,args,cpid,durcnt,normal,gentle) \
-       ADD_AUTOCVAR(name, TRUE) \
+#define MSG_CENTER_NOTIF(default,name,strnum,flnum,args,cpid,durcnt,normal,gentle) \
+       ADD_AUTOCVAR(name, default) \
        float name; \
        float cpid; \
        void RegisterNotification_##name() \
@@ -759,6 +765,7 @@ string Process_Notif_Args(float is_hudargs, string args, string notiftype, strin
                SET_FIELD_COUNT(cpid, NOTIF_FIRST, NOTIF_CPID_COUNT) \
                CHECK_MAX_COUNT(name, NOTIF_MAX, NOTIF_CENTER_COUNT, "notifications") \
                CREATE_NOTIF_ENTITY( \
+                       default,        /* default */ \
                        center,         /* type */ \
                        name,           /* name */ \
                        NO_MSG,         /* infoname */ \
@@ -777,14 +784,15 @@ string Process_Notif_Args(float is_hudargs, string args, string notiftype, strin
        } \
        ACCUMULATE_FUNCTION(RegisterNotifications, RegisterNotification_##name)
 
-#define MSG_WEAPON_NOTIF(name,infoname,centername) \
-       ADD_AUTOCVAR(name, TRUE) \
+#define MSG_WEAPON_NOTIF(default,name,infoname,centername) \
+       ADD_AUTOCVAR(name, default) \
        float name; \
        void RegisterNotification_##name() \
        { \
                SET_FIELD_COUNT(name, NOTIF_FIRST, NOTIF_WEAPON_COUNT) \
                CHECK_MAX_COUNT(name, NOTIF_MAX, NOTIF_WEAPON_COUNT, "notifications") \
                CREATE_NOTIF_ENTITY( \
+                       default,        /* default */ \
                        weapon,         /* type */ \
                        name,           /* name */ \
                        infoname,       /* infoname */ \
@@ -803,14 +811,15 @@ string Process_Notif_Args(float is_hudargs, string args, string notiftype, strin
        } \
        ACCUMULATE_FUNCTION(RegisterNotifications, RegisterNotification_##name)
 
-#define MSG_DEATH_NOTIF(name,infoname,centername) \
-       ADD_AUTOCVAR(name, TRUE) \
+#define MSG_DEATH_NOTIF(default,name,infoname,centername) \
+       ADD_AUTOCVAR(name, default) \
        float name; \
        void RegisterNotification_##name() \
        { \
                SET_FIELD_COUNT(name, NOTIF_FIRST, NOTIF_DEATH_COUNT) \
                CHECK_MAX_COUNT(name, NOTIF_MAX, NOTIF_DEATH_COUNT, "notifications") \
                CREATE_NOTIF_ENTITY( \
+                       default,        /* default */ \
                        death,          /* type */ \
                        name,           /* name */ \
                        infoname,       /* infoname */ \