diff --git a/AntiNoob/scripting/AntiNoob.sp b/AntiNoob/scripting/AntiNoob.sp
index 0a7ed51f..cce868fa 100644
--- a/AntiNoob/scripting/AntiNoob.sp
+++ b/AntiNoob/scripting/AntiNoob.sp
@@ -4,6 +4,7 @@
 #include <sdktools>
 #include <zombiereloaded>
 #include <cstrike>
+#include <multicolors>
 
 int g_iHighRatio;
 int g_iMediumRatio;
@@ -17,59 +18,159 @@ int g_iHumanScore;
 int g_iZombieScore;
 int g_iOldZombieScore;
 
+float g_fKnockbackLowBoost;
+float g_fKnockbackMediumBoost;
+float g_fKnockbackHighBoost;
+
+float g_fNapalmLowReduction;
+float g_fNapalmMediumReduction;
+float g_fNapalmHighReduction;
+
 int g_iZombieStreak;
 
 bool g_bLowPopulation;
 int g_iMaxPopulation;
-float g_fKnockbackBoost;
+float g_fKnockbackPopulationBoost;
+float g_fNapalmPopulationReduction;
 
-ConVar g_cvNapalmScale;
-float g_fNapalmScale;
+int g_iAntiNoob;
+char g_cAntiNoobHelp[64];
+char g_cAntiNoobPopulation[32];
 
 public Plugin myinfo =
 {
 	name = "AntiNoob",
 	author = "Dogan",
 	description = "Provide help when the server is doing bad on a map",
-	version = "2.0.0",
+	version = "3.0.0",
 	url = ""
 }
 
 public void OnPluginStart()
 {
-	g_iHighRatio = 7;
-	g_iMediumRatio = 5;
-	g_iLowRatio = 3;
-
-	g_iHighStreak = 6;
-	g_iMediumStreak = 4;
-	g_iLowStreak = 2;
-
 	HookEvent("round_start", OnRoundStart);
 
 	ConVar cvar;
+	HookConVarChange((cvar = CreateConVar("sm_an_help", "1", "1 = AntiNoob performs help, 0 = AntiNoob is disabled", FCVAR_NONE, true, 0.0, true, 1.0)), g_cvAntiNoob);
+	g_iAntiNoob = cvar.IntValue;
 	HookConVarChange((cvar = CreateConVar("sm_an_maxplayers", "40", "max active players until the kb should be increased")), g_cvMaxPopulation);
 	g_iMaxPopulation = cvar.IntValue;
-	HookConVarChange((cvar = CreateConVar("sm_an_kb", "5.0", "knockback boost during low population in procent")), g_cvKnockbackBoost);
-	g_fKnockbackBoost = cvar.FloatValue / 100.0;
-	delete cvar;
+	HookConVarChange((cvar = CreateConVar("sm_an_kb_population", "5.0", "knockback boost during low population in procent (stacks with the helps)")), g_cvKnockbackPopulationBoost);
+	g_fKnockbackPopulationBoost = cvar.FloatValue / 100.0;
+	HookConVarChange((cvar = CreateConVar("sm_an_napalm_population", "2.0", "napalm damage reduction needed during low population for full burn from nades (stacks with the helps)")), g_cvNapalmPopulationReduction);
+	g_fNapalmPopulationReduction = cvar.FloatValue;
+	HookConVarChange((cvar = CreateConVar("sm_an_lowratio", "3", "human:zombie ratio to perform low help")), g_cvLowRatio);
+	g_iLowRatio = cvar.IntValue;
+	HookConVarChange((cvar = CreateConVar("sm_an_mediumratio", "5", "human:zombie ratio to perform medium help")), g_cvMediumRatio);
+	g_iMediumRatio = cvar.IntValue;
+	HookConVarChange((cvar = CreateConVar("sm_an_highratio", "7", "human:zombie ratio to perform high help")), g_cvHighRatio);
+	g_iHighRatio = cvar.IntValue;
+	HookConVarChange((cvar = CreateConVar("sm_an_lowstreak", "2", "zombie win streaks to perfom low help")), g_cvLowStreak);
+	g_iLowStreak = cvar.IntValue;
+	HookConVarChange((cvar = CreateConVar("sm_an_mediumstreak", "4", "zombie win streaks to perfom medium help")), g_cvMediumStreak);
+	g_iMediumStreak = cvar.IntValue;
+	HookConVarChange((cvar = CreateConVar("sm_an_highstreak", "6", "zombie win streaks to perfom high help")), g_cvHighStreak);
+	g_iHighStreak = cvar.IntValue;
+	HookConVarChange((cvar = CreateConVar("sm_an_kb_lowhelp", "5.0", "knockback boost in procent when low help is performed (stacks with low population boost)")), g_cvKnockbackLowBoost);
+	g_fKnockbackLowBoost = cvar.FloatValue / 100.0;
+	HookConVarChange((cvar = CreateConVar("sm_an_kb_mediumhelp", "10.0", "knockback boost in procent when medium help is performed (stacks with low population boost)")), g_cvKnockbackMediumBoost);
+	g_fKnockbackMediumBoost = cvar.FloatValue / 100.0;
+	HookConVarChange((cvar = CreateConVar("sm_an_kb_highhelp", "15.0", "knockback boost in procent when high help is performed (stacks with low population boost)")), g_cvKnockbackHighBoost);
+	g_fKnockbackHighBoost = cvar.FloatValue / 100.0;
+	HookConVarChange((cvar = CreateConVar("sm_an_napalm_lowhelp", "2.0", "napalm damage reduction needed when low help is perfomed for full burn from nades (stacks with low population reduction)")), g_cvNapalmLowReduction);
+	g_fNapalmLowReduction = cvar.FloatValue;
+	HookConVarChange((cvar = CreateConVar("sm_an_napalm_mediumhelp", "4.0", "napalm damage reduction needed when medium help is performed for full burn from nades (stacks with low population reduction)")), g_cvNapalmMediumReduction);
+	g_fNapalmMediumReduction = cvar.FloatValue;
+	HookConVarChange((cvar = CreateConVar("sm_an_napalm_highhelp", "6.0", "napalm damage reduction needed when high help is perfomed for full burn from nades (stacks with low population reduction)")), g_cvNapalmHighReduction);
+	g_fNapalmHighReduction = cvar.FloatValue;
+	CloseHandle(cvar);
+
+	g_cAntiNoobHelp = "{cyan}[AntiNoob]{white} Plugin still loading";
+	g_cAntiNoobPopulation = "{white}.";
+
+	RegAdminCmd("sm_antinoob", Command_AntiNoob, ADMFLAG_RCON, "returns the current helps or boosts for this round");
 
 	AutoExecConfig(true, "plugin.AntiNoob");
 }
 
+public void g_cvAntiNoob(ConVar convar, const char[] oldValue, const char[] newValue)
+{
+	g_iAntiNoob = convar.IntValue;
+}
+
 public void g_cvMaxPopulation(ConVar convar, const char[] oldValue, const char[] newValue)
 {
 	g_iMaxPopulation = convar.IntValue;
 }
 
-public void g_cvKnockbackBoost(ConVar convar, const char[] oldValue, const char[] newValue)
+public void g_cvKnockbackPopulationBoost(ConVar convar, const char[] oldValue, const char[] newValue)
 {
-	g_fKnockbackBoost = convar.FloatValue / 100.0;
+	g_fKnockbackPopulationBoost = convar.FloatValue / 100.0;
 }
 
-public void OnAllPluginsLoaded()
+public void g_cvNapalmPopulationReduction(ConVar convar, const char[] oldValue, const char[] newValue)
 {
-	g_cvNapalmScale = FindConVar("zr_napalm_time_scale");
+	g_fNapalmPopulationReduction = convar.FloatValue;
+}
+
+public void g_cvLowRatio(ConVar convar, const char[] oldValue, const char[] newValue)
+{
+	g_iLowRatio = convar.IntValue;
+}
+
+public void g_cvMediumRatio(ConVar convar, const char[] oldValue, const char[] newValue)
+{
+	g_iMediumRatio = convar.IntValue;
+}
+
+public void g_cvHighRatio(ConVar convar, const char[] oldValue, const char[] newValue)
+{
+	g_iHighRatio = convar.IntValue;
+}
+
+public void g_cvLowStreak(ConVar convar, const char[] oldValue, const char[] newValue)
+{
+	g_iLowStreak = convar.IntValue;
+}
+
+public void g_cvMediumStreak(ConVar convar, const char[] oldValue, const char[] newValue)
+{
+	g_iMediumStreak = convar.IntValue;
+}
+
+public void g_cvHighStreak(ConVar convar, const char[] oldValue, const char[] newValue)
+{
+	g_iHighStreak = convar.IntValue;
+}
+
+public void g_cvKnockbackLowBoost(ConVar convar, const char[] oldValue, const char[] newValue)
+{
+	g_fKnockbackLowBoost = convar.FloatValue / 100.0;
+}
+
+public void g_cvKnockbackMediumBoost(ConVar convar, const char[] oldValue, const char[] newValue)
+{
+	g_fKnockbackMediumBoost = convar.FloatValue / 100.0;
+}
+
+public void g_cvKnockbackHighBoost(ConVar convar, const char[] oldValue, const char[] newValue)
+{
+	g_fKnockbackHighBoost = convar.FloatValue / 100.0;
+}
+
+public void g_cvNapalmLowReduction(ConVar convar, const char[] oldValue, const char[] newValue)
+{
+	g_fNapalmLowReduction = convar.FloatValue;
+}
+
+public void g_cvNapalmMediumReduction(ConVar convar, const char[] oldValue, const char[] newValue)
+{
+	g_fNapalmMediumReduction = convar.FloatValue;
+}
+
+public void g_cvNapalmHighReduction(ConVar convar, const char[] oldValue, const char[] newValue)
+{
+	g_fNapalmHighReduction = convar.FloatValue;
 }
 
 public void OnMapStart()
@@ -80,9 +181,11 @@ public void OnMapStart()
 	g_iZombieStreak = 0;
 }
 
-public void OnConfigsExecuted()
+public Action Command_AntiNoob(int client, int args)
 {
-    g_fNapalmScale = g_cvNapalmScale.FloatValue;
+	CPrintToChat(client, "%s%s", g_cAntiNoobHelp, g_cAntiNoobPopulation);
+
+	return Plugin_Handled;
 }
 
 public void OnRoundStart(Event hEvent, const char[] sEvent, bool bDontBroadcast)
@@ -115,44 +218,70 @@ public void OnRoundStart(Event hEvent, const char[] sEvent, bool bDontBroadcast)
 		}
 	}
 
+	if(g_iAntiNoob == 0)
+	{
+		g_cAntiNoobHelp = "{cyan}[AntiNoob]{white} Currently disabled";
+		g_cAntiNoobPopulation = "{white}.";
+		PerformReset();
+		for(int i = 1; i <= MaxClients; i++)
+		{
+			if(IsRootAdmin(i))
+				CPrintToChat(i,"%s%s", g_cAntiNoobHelp, g_cAntiNoobPopulation);
+		}
+
+		return;
+	}
+
 	if(ActivePlayers <= g_iMaxPopulation)
 	{
 		g_bLowPopulation = true;
+		g_cAntiNoobPopulation = "{white} + Low Population Boost.";
 	}
 	else
 	{
 		g_bLowPopulation = false;
+		g_cAntiNoobPopulation = "{white}.";
 	}
 
 	if(g_iZombieScore / g_iHumanScore >= g_iHighRatio || g_iZombieStreak >= g_iHighStreak)
 	{
+		g_cAntiNoobHelp = "{cyan}[AntiNoob]{white} Currently perfoming High Help";
 		PerformHighHelp();
 	}
 	else if(g_iZombieScore / g_iHumanScore >= g_iMediumRatio || g_iZombieStreak >= g_iMediumStreak)
 	{
+		g_cAntiNoobHelp = "{cyan}[AntiNoob]{white} Currently perfoming Medium Help";
 		PerformMediumHelp();
 	}
 	else if(g_iZombieScore / g_iHumanScore >= g_iLowRatio || g_iZombieStreak >= g_iLowStreak)
 	{
+		g_cAntiNoobHelp = "{cyan}[AntiNoob]{white} Currently perfoming Low Help";
 		PerformLowHelp();
 	}
 	else
 	{
+		g_cAntiNoobHelp = "{cyan}[AntiNoob]{white} Currently perfoming No Help";
 		PerformReset();
 	}
+
+	for(int i = 1; i <= MaxClients; i++)
+	{
+		if(IsRootAdmin(i))
+			CPrintToChat(i,"%s%s", g_cAntiNoobHelp, g_cAntiNoobPopulation);
+	}
 }
 
 public void PerformHighHelp()
 {
 	if(g_bLowPopulation)
 	{
-		ServerCommand("zr_class_set_multiplier zombies knockback %f", 1.15 + g_fKnockbackBoost);
-		ServerCommand("zr_napalm_time_scale %f", g_fNapalmScale - 8.0);
+		ServerCommand("zr_class_set_multiplier zombies knockback %f", 1.0 + g_fKnockbackHighBoost + g_fKnockbackPopulationBoost);
+		ServerCommand("zr_napalm_time_scale %f", 50.0 - g_fNapalmHighReduction - g_fNapalmPopulationReduction);
 	}
 	else
 	{
-		ServerCommand("zr_class_set_multiplier zombies knockback 1.15");
-		ServerCommand("zr_napalm_time_scale %f", g_fNapalmScale - 6.0);
+		ServerCommand("zr_class_set_multiplier zombies knockback %f", 1.0 + g_fKnockbackHighBoost);
+		ServerCommand("zr_napalm_time_scale %f", 50.0 - g_fNapalmHighReduction);
 	}
 }
 
@@ -160,13 +289,13 @@ public void PerformMediumHelp()
 {
 	if(g_bLowPopulation)
 	{
-		ServerCommand("zr_class_set_multiplier zombies knockback %f", 1.1 + g_fKnockbackBoost);
-		ServerCommand("zr_napalm_time_scale %f", g_fNapalmScale - 6.0);
+		ServerCommand("zr_class_set_multiplier zombies knockback %f", 1.0 + g_fKnockbackMediumBoost + g_fKnockbackPopulationBoost);
+		ServerCommand("zr_napalm_time_scale %f", 50.0 - g_fNapalmMediumReduction - g_fNapalmPopulationReduction);
 	}
 	else
 	{
-		ServerCommand("zr_class_set_multiplier zombies knockback 1.1");
-		ServerCommand("zr_napalm_time_scale %f", g_fNapalmScale - 4.0);
+		ServerCommand("zr_class_set_multiplier zombies knockback %f", 1.0 + g_fKnockbackMediumBoost);
+		ServerCommand("zr_napalm_time_scale %f", 50.0 - g_fNapalmMediumReduction);
 	}
 }
 
@@ -174,26 +303,34 @@ public void PerformLowHelp()
 {
 	if(g_bLowPopulation)
 	{
-		ServerCommand("zr_class_set_multiplier zombies knockback %f", 1.05 + g_fKnockbackBoost);
-		ServerCommand("zr_napalm_time_scale %f", g_fNapalmScale - 4.0);
+		ServerCommand("zr_class_set_multiplier zombies knockback %f", 1.0 + g_fKnockbackLowBoost + g_fKnockbackPopulationBoost);
+		ServerCommand("zr_napalm_time_scale %f", 50.0 - g_fNapalmLowReduction - g_fNapalmPopulationReduction);
 	}
 	else
 	{
-		ServerCommand("zr_class_set_multiplier zombies knockback 1.05");
-		ServerCommand("zr_napalm_time_scale %f", g_fNapalmScale - 2.0);
+		ServerCommand("zr_class_set_multiplier zombies knockback %f", 1.0 + g_fKnockbackLowBoost);
+		ServerCommand("zr_napalm_time_scale %f", 50.0 - g_fNapalmLowReduction);
 	}
 }
 
 public void PerformReset()
 {
-	if(g_bLowPopulation)
+	if(g_bLowPopulation && g_iAntiNoob != 0)
 	{
-		ServerCommand("zr_class_set_multiplier zombies knockback %f", 1.0 + g_fKnockbackBoost);
-		ServerCommand("zr_napalm_time_scale %f", g_fNapalmScale - 2.0);
+		ServerCommand("zr_class_set_multiplier zombies knockback %f", 1.0 + g_fKnockbackPopulationBoost);
+		ServerCommand("zr_napalm_time_scale %f", 50.0 - g_fNapalmPopulationReduction);
 	}
 	else
 	{
 		ServerCommand("zr_class_set_multiplier zombies knockback 1.0");
-		ServerCommand("zr_napalm_time_scale %f", g_fNapalmScale);
+		ServerCommand("zr_napalm_time_scale 50.0");
 	}
+}
+
+static stock bool IsRootAdmin(int client)
+{
+	if (client > 0 && client <= MaxClients && IsClientInGame(client) && CheckCommandAccess(client, "", ADMFLAG_RCON))
+		return true;
+	else
+		return false;
 }
\ No newline at end of file