block config
{
	//mod you want to use
	es_xset mod_effect "3" "1-regular ; 2-random ; 3-team effects"
	
	//regular effect
	es_set spawn_effect "8"
	
	//insert wich random effects effects you want separated by ;
	es_set random_effect "1;4;10;15;22"
	
	//effect for each team
	es_set team_ct_effect "8" "CT_chosen_effect"
	es_set team_t_effect "5" "T_chosen_effect"
	
	//turn push enemy players on
	es_xset push_players_away "1" "turn 1/0 to use push players away from spawn+ points" 
	
	//minimum safe distance to push enemy players at spawn
	es_xset minimum_distance "200"
	//how much should it push
	es_xset push_it "300" 

	// Config variables
	//You got 20 effects you can choose from
	es_xset number "5" "Type of effect choosen from 1 to 25"
	es_xset player_spawn_time "0.1" "time it takes for effect to show up on spawn"
	es_xset effect_spawn_time "5" "time effect works"

	//defaut colors
	es_xset redargs "20"
	es_xset greenargs "20"
	es_xset blueargs "255"

	//turn to 1 to set player color and transparency turn to 2 to use separate blue for ct and red for t colors
	es_xset playercolor "2" 

	//time it will take taking him back to normal
	//you can use a diferent set by putting it
	//es_xset colortime "5" in wick 5 is the amount of seconds it will take
	es_set colortime "5" "time of colored player"
	
	es_xset transparency "50" "used on both teams also"
	
	es_xset redplayer "20"
	es_xset greenplayer "0"
	es_xset blueplayer "255"
	

}

//////////AFTER THIS DO NOT TOUCH UNLESS YOU KNOW WHAT YOU ARE DOING!!!////////////////

block load
{
	// Declare variables
	es_xset se_format 0
	es_xsetinfo player_x 0
	es_xsetinfo player_y 0
	es_xsetinfo player_z 0
	es_xsetinfo player_x2 0
	es_xsetinfo player_y2 0
	es_xsetinfo player_z2 0
	es_set effect_spawn_effect 0
	es_set terror 0
	es_set cterror 0

	// Make public
	es_xsetinfo se_version "2.0"
	es_xmakepublic se_version

	// Announce load
	echo [Spawn Effect] Loaded
	es_doblock spawn_effect/config
	es_doblock spawn_effect/color_set
	
	
	//say !modfx 1-3
	clientcmd create say !modfx spawn_effect/modfx "Change_mod" #admin
	clientcmd create console !modfx spawn_effect/modfx "Change_mod" #admin
	
	//say !seffects number
	clientcmd create say !sf spawn_effect/seffects "Change_spawn_effect" #admin
	clientcmd create console !sf spawn_effect/seffects "Change_spawn_effect" #admin

	//say colors
	clientcmd create say !blue spawn_effect/blue "change_blue" #admin
	clientcmd create console !blue spawn_effect/blue "create_blue" #admin

	clientcmd create say !red spawn_effect/red "change_red" #admin
	clientcmd create console !red spawn_effect/red "create_red" #admin

	clientcmd create say !green spawn_effect/green "change_green" #admin
	clientcmd create console !green spawn_effect/green "create_green" #admin
}

block unload
{
	// Announce unload
	echo [Spawn Effect] Unloaded
}

block color_set
{
	//Color Restrict
	if (server_var(redargs) < 0) then es_xset redargs 0
	if (server_var(greenargs) < 0) then es_xset greenargs 0
	if (server_var(blueargs) < 0) then es_xset blueargs 0
	if (server_var(redargs) > 255) then es_xset redargs 255
	if (server_var(greenargs) > 255) then es_xset greenargs 255
	if (server_var(blueargs) > 255) then es_xset blueargs 255
}

block modfx
{
	es_getargs mod_effect
	es_formatv mod_effect "%1" mod_effect
	//server_var(mod_effect)
}

block seffects
{
	es_getargs spawn_effect
	es_formatv effect_spawn_effect "%1" spawn_effect
	//server_var(effect_spawn_effect)
}

block blue
{
	es_set blueargs 0
	es_getargs blueargs
	es_formatv blueargs "%1" blueargs
	//server_var(blueargs)
}

block red
{
	es_set redargs 0
	es_getargs redargs
	es_formatv redargs "%1" redargs
	//server_var(redargs)
}

block green
{
	es_set greenargs 0
	es_getargs greenargs
	es_formatv greenargs "%1" greenargs
	//server_var(greenargs)
}

event player_spawn
{

	//this is for some effects that need coordinates
	es_getplayerlocation player_x player_y player_z event_var(userid)
	es_getplayerlocation player_x2 player_y2 player_z2 event_var(userid)

	//player that spawns
	es_delayed server_var(player_spawn_time) es_doblock spawn_effect/effects
	es_delayed server_var(player_spawn_time) es_doblock spawn_effect/type_effect
	es_delayed server_var(player_spawn_time) es_doblock spawn_effect/playercolor
	es_set se_userid event_var(userid)
	
	//mod effect
	if (server_var(mod_effect) = 1) do
	{
		//mod normal
		es_xcopy spawn_effect effect_spawn_effect
	}

	if (server_var(mod_effect) = 2) do
	{
		//mod random
		es_xset numbers 0
		es_rand numbers 1 25
		es_token numbers server_var(random_effect) server_var(numbers) ";"
		es_xcopy effect_spawn_effect numbers
	}
	if (server_var(mod_effect) = 3) do
	{
		 //mod each player 
         if (event_var(es_userteam) = 2) do 
         { 
               //es_delayed server_var(player_spawn_time) es_set effect_spawn_effect server_var(team_t_effect)
				es_delayed 0 es_xcopy effect_spawn_effect team_t_effect
         } 
         if (event_var(es_userteam) = 3) do 
         { 
               //es_delayed server_var(player_spawn_time) es_set effect_spawn_effect server_var(team_ct_effect)
				es_delayed 0 es_xcopy effect_spawn_effect team_ct_effect
         }
	}
	if (server_var(push_players_away) = 1) do
	{	
		//to T players
		if (event_var(es_userteam) = 2) do 
		{
			//es est_near cterror #c 240 event_var(userid) "es est_PhysPush server_var(cterror) 300 300 300"
			es nearcoord cterror #ct server_var(player_x) server_var(player_y) server_var(player_z) server_var(minimum_distance) server_var(minimum_distance) server_var(minimum_distance) "es est_PhysPush server_var(cterror) server_var(push_it) server_var(push_it) server_var(push_it); es_tell server_var(cterror) #lightgreen Dont be near enemy spawn points!"
			
		}
		//to CT players
		if (event_var(es_userteam) = 3) do 
		{
			//es est_near terror #t 240 event_var(userid) "es est_PhysPush server_var(cterror) 300 300 300"
			es nearcoord terror #t server_var(player_x) server_var(player_y) server_var(player_z) server_var(minimum_distance) server_var(minimum_distance) server_var(minimum_distance) "es est_PhysPush server_var(terror) server_var(push_it) server_var(push_it) server_var(push_it); es_tell server_var(terror) #lightgreen Dont be near enemy spawn points!"
		}
	}
	
	//player colors
	if (server_var(playercolor) = 1) do
	{
		// Changes the color and alpha levels
		es est_SetPlayerColor server_var(se_userid) server_var(redplayer) server_var(greenplayer) server_var(blueplayer) server_var(transparency) 1
		// Change the color back to normal
		es_delayed server_var(color_time) es est_SetPlayerColor server_var(se_userid) 255 255 255 255 0
	}
	if (server_var(playercolor) = 2) do
	{
		if (event_var(es_userteam) = 2) do
		{
			//terror color
			es est_SetPlayerColor server_var(se_userid) 255 0 0 server_var(transparency) 1
			es es_delayed server_var(color_time) es est_SetPlayerColor server_var(se_userid) 255 255 255 255 0
		}
		//to CT players
		if (event_var(es_userteam) = 3) do
		{
			es est_SetPlayerColor server_var(se_userid) 0 0 255 server_var(transparency) 1
			es es_delayed server_var(color_time) es est_SetPlayerColor server_var(se_userid) 255 255 255 255 0
		}
	}
}

block effects
{
	// Pick effect type
	if (server_var(effect_spawn_effect) = 1) do
	{
		es_xset effect_max 80
		es_xset diameter 10
		es while "server_var(diameter) < server_var(effect_max)" "es_xmath diameter + 10; es est_effect 8 #a server_var(player_spawn_time) sprites/smoke.vmt server_var(player_x) server_var(player_y) server_var(player_z) 10 server_var(diameter) 5 server_var(effect_spawn_time) 10 5 5 server_var(redargs) server_var(greenargs) server_var(blueargs) 50 10"
	}
	if (server_var(effect_spawn_effect) = 2) do
	{
		//sparks
		es ma_effect 3 server_var(player_x) server_var(player_y) server_var(player_z) 500 60
	}
	if (server_var(effect_spawn_effect) = 3) do
	{
		//rings
		es_xsetinfo effect_max 16
		es while "server_var(player_z) < server_var(effect_max)" "es_xmath player_z + 2; es ma_effect 10 A server_var(player_spawn_time) server_var(player_x) server_var(player_y) server_var(player_z) 16 100 lightning NULL 0 10 server_var(effect_spawn_time) 15 10 1 server_var(redargs) server_var(greenargs) server_var(blueargs) 255 0 0"
	}
	if (server_var(effect_spawn_effect) = 4) do
	{
		//Light halo
		es ma_effect 11 A server_var(player_spawn_time) server_var(player_x) server_var(player_y) server_var(player_z) server_var(redargs) server_var(greenargs) server_var(blueargs) 15 100 server_var(effect_spawn_time) 5
	}
	if (server_var(effect_spawn_effect) = 5) do
	{
		//Explosion
		es ma_effect 12 A server_var(player_spawn_time) server_var(player_x) server_var(player_y) server_var(player_z) matrix 50 10 32 300 300
	}
	if (server_var(effect_spawn_effect) = 6) do
	{
		//Glows
		es_xsetinfo effect_max 30
		es while "server_var(player_z) < server_var(effect_max)" "es_math player_z + 5; es ma_effect 13 A server_var(player_spawn_time) server_var(player_x) server_var(player_y) server_var(player_z) blueglow server_var(effect_spawn_time) 5 255"
	}
	if (server_var(effect_spawn_effect) = 7) do
	{
		//est effect
		es_xsetinfo effect_max 100
		es while "server_var(player_z2) < server_var(effect_max)" "es_xmath player_z2 + 20; es est_effect 10 #a 0 sprites/xfireball3.vmt server_var(player_x2) server_var(player_y2) server_var(player_z2) 1 100 server_var(effect_spawn_time) 10 20 50 server_var(redargs) server_var(greenargs) server_var(blueargs) 200 10"

	}
	if (server_var(effect_spawn_effect) = 8) do
	{
		//SParks
		es ma_effect 18 A server_var(player_spawn_time) server_var(player_x) server_var(player_y) server_var(player_z) 200 5
		es_xsetinfo effect_max 100
		es while "server_var(player_z) < server_var(effect_max)" "es_xmath player_z + 15; es est_Effect 10 #a server_var(player_spawn_time) sprites/xfireball3.vmt server_var(player_x) server_var(player_y) server_var(player_z) 20 100 server_var(effect_spawn_time) 10 20 60 250 0 20 200 100"
	}
	if (server_var(effect_spawn_effect) = 9) do
	{
		//Sprite
		es ma_effect 19 A server_var(player_spawn_time) server_var(player_x) server_var(player_y) server_var(player_z) smoke 10 64
	}
	if (server_var(effect_spawn_effect) = 10) do
	{
		//Sprite
		es ma_effect 17 A server_var(player_spawn_time) server_var(player_x) server_var(player_y) server_var(player_z) smoke 100 4
	}
	if (server_var(effect_spawn_effect) = 11) do
	{
		//Yellow Beam Rings
		es_forcevalue sv_cheats 1
		es_sexec server_var(se_userid) te server_var(effect_spawn_time) "BeamRingPoint"
		es_forcevalue sv_cheats 0
	}
	if (server_var(effect_spawn_effect) = 12) do
	{
		//env_explosion
		es_give server_var(se_userid) env_explosion
		es_give server_var(se_userid) env_explosion addoutput "imagnitude 300"
		//es_give server_var(se_userid) env_explosion "imagnitude 400" "iradiusoverride 500"
		es_fire server_var(se_userid) env_explosion addoutput iradiusoverride 500
		es_give origin server_var(player_x) server_var(player_y) server_var(player_z)
		es_fire server_var(se_userid) env_explosion explode
	}
	if (server_var(effect_spawn_effect) = 13) do
	{
		//Bubbles
		es_forcevalue sv_cheats 1
		es_sexec server_var(se_userid) te server_var(effect_spawn_time) "Bubbles"
		es_forcevalue sv_cheats 0
	}
	if (server_var(effect_spawn_effect) = 14) do
	{
		//Energy Splash
		es_forcevalue sv_cheats 1
		es_sexec server_var(se_userid) te server_var(effect_spawn_time) "Energy Splash"
		es_forcevalue sv_cheats 0
	}
	if (server_var(effect_spawn_effect) = 15) do
	{
		//GlowSprite
		es_forcevalue sv_cheats 1
		es_sexec server_var(se_userid) te server_var(effect_spawn_time) "GlowSprite"
		es_forcevalue sv_cheats 0
	}
	if (server_var(effect_spawn_effect) = 16) do
	{
		//PhysicsProp
		es_forcevalue sv_cheats 1
		es_sexec server_var(se_userid) te server_var(effect_spawn_time) "PhysicsProp"
		es_forcevalue sv_cheats 0
		es_give server_var(se_userid) env_explosion
		es_give server_var(se_userid) env_explosion addoutput "imagnitude 400"
		es_fire server_var(se_userid) env_explosion addoutput "iradiusoverride 500"
		es_give origin server_var(player_x) server_var(player_y) server_var(player_z)
		es_delayed  1 es_fire server_var(se_userid) env_explosion explode
	}
	if (server_var(effect_spawn_effect) = 17) do
	{
		//smoke
		es ma_effect 2 server_var(player_x) server_var(player_y) server_var(player_z) smoke 200 10
		//breakmodel
		es_forcevalue sv_cheats 1
		es_sexec server_var(se_userid) te server_var(effect_spawn_time) "breakmodel"
		es_forcevalue sv_cheats 0
	}
	if (server_var(effect_spawn_effect) = 18) do
	{
		es_xmath player_z + 15
		es est_effect 11 #a 0 sprites/xfireball3.vmt server_var(player_x) server_var(player_y) server_var(player_z) 4 2 255
	}
	if (server_var(effect_spawn_effect) = 19) do
	{
		//Sprite
		es_forcevalue sv_cheats 1
		es_sexec server_var(se_userid) te server_var(effect_spawn_time) "Sprite"
		es_forcevalue sv_cheats 0
	}
	if (server_var(effect_spawn_effect) = 20) do
	{
		//Small smoke
		es_forcevalue sv_cheats 1
		es_sexec server_var(se_userid) te server_var(effect_spawn_time) "Smoke"
		es_forcevalue sv_cheats 0
	}
	if (server_var(effect_spawn_effect) = 21) do
	{
		//Est Beam Follow
		es est_effect 4 #a 0 sprites/steam1.vmt server_var(se_userid) 0.8 10 5 1 server_var(redargs) server_var(greenargs) server_var(blueargs) 200
	}
	if (server_var(effect_spawn_effect) = 22) do
	{
		//Est Beam Rings
		es_set diameter 5
		es_xsetinfo effect_max 40
		es while "server_var(diameter) < server_var(effect_max)" "es_xmath diameter + 10; es_xmath player_z + 2; es est_effect 10 #a 0 sprites/lgtning.vmt server_var(player_x) server_var(player_y) server_var(player_z) 30 server_var(diameter) server_var(effect_spawn_time) 5 0 2 server_var(redargs) server_var(greenargs) server_var(blueargs) 128 10"

	}
	if (server_var(effect_spawn_effect) = 23) do
	{
		//Est Beam Points
		es_xmath player_z2 + 100
		es est_effect 3 #a 0 sprites/lgtning.vmt server_var(player_x) server_var(player_y) server_var(player_z) server_var(player_x2) server_var(player_y2) server_var(player_z2) 2 40 10 server_var(redargs) server_var(greenargs) server_var(blueargs) 255
	}
	if (server_var(effect_spawn_effect) = 24) do
	{
		es_xmathparse player_z2 "player_z2+40"
		es est_effect 10 #a 0 "sprites/lgtning.vmt" server_var(player_x2) server_var(player_y2) server_var(player_z2) 1 100 server_var(effect_spawn_time) 10 20 server_var(redargs) server_var(greenargs) server_var(blueargs) 255 30
		es_xmath player_z + 50
		es_xmath player_z2 + 50
		es est_effect 3 #a 0 effects/tp_eyefx/tpeye3.vmt server_var(player_x) server_var(player_y) server_var(player_z) server_var(player_x2) server_var(player_y2) server_var(player_z2) 5 7 3 25 25 25 255
		es est_setplayercolor server_Var(se_userid) 25 25 25 255 1
		es es_delayed 1 est_setplayercolor server_Var(se_userid) 255 255 255 255 1
		es_xmath player_z2 - 10
		es est_effect 10 #a 0 effects/tp_eyefx/tpeye3.vmt server_var(player_x2) server_var(player_y2) server_var(player_z2) 9 0 2 66 1 0 255 255 255 255 1
	}
	if (server_var(effect_spawn_effect) = 25) do
	{
		es_xmath player_z2 + 100
		es ma_effect 4 A server_var(player_spawn_time) 0 server_var(player_x) server_var(player_y) server_var(player_z) 0 server_var(player_x2) server_var(player_y2) server_var(player_z2) crystalbeam NULL 0 100 server_var(effect_spawn_time) 60 60 5 30 0 server_var(redargs) server_var(greenargs) server_var(blueargs) 4
	}