


Login Issues
Forgot password?Activate Issues
Account activation email not received? Wrong account activation email used?Other Problems?
Contact Support - Help Center Get help on the UGX Discord. Join it now!


![]() | Benevolent Soul who has our eternal gratitude and exclusive access to betas and the donator section of the forum. |
![]() | Has shown excellence and experience in the area of custom scripting in the UGX-Mods community. |
![]() Oil Rig Beta Access |
Check out the new vid for the effects:
PrecacheShader( "specialty_instakill_zombies" );
PrecacheShader( "MATERIAL_NAME" );
set_zombie_var( "zombie_powerup_drop_max_per_round", 4 );
level.special_ammo_drop[ "shock" ] = false;
level.special_ammo_drop[ "flame" ] = false;
level.special_ammo_drop[ "expl" ] = false;
level.shock_ammo_multiplier = 0.6; // The ammount of damage to ADD to the normal damage ( so putting 1 here, double's the damage )
level.flame_ammo_multiplier = 0.3;
level.expl_ammo_multiplier = 0.8;
level.special_ammo_drop_time = 30; // Lenght of the special ammo drop
add_zombie_powerup( "carpenter", "zombie_carpenter", &"ZOMBIE_POWERUP_MAX_AMMO");
add_zombie_powerup( "special_ammo", "zombie_ammocan", "Special Ammo");
xmodel,zombie_ammocan
if( powerup != "carpenter" )
return powerup;
wait(0.05);
}
if( level.special_ammo_drop[ "shock" ] || level.special_ammo_drop[ "flame" ] || level.special_ammo_drop[ "expl" ])
{
if( powerup == "special_ammo" )
{
while(1)
{
if( level.zombie_powerup_index >= level.zombie_powerup_array.size )
{
level.zombie_powerup_index = 0;
randomize_powerups();
}
powerup = level.zombie_powerup_array[level.zombie_powerup_index];
level.zombie_powerup_index++;
if( powerup != "special_ammo" )
return powerup;
wait(0.05);
}
}
}
if( IsDefined( level.zombie_powerup_grab_func ) )
{
level thread [[level.zombie_powerup_grab_func]]();
}
if( self.powerup_name == "special_ammo" && isdefined( players[i].ammo_powerup_hud[ "drop" ] ) ) // Cannot pick up 2 ammo-drops
{
continue;
}
case "carpenter":
level thread start_carpenter( self.origin );
players[i] thread powerup_vo("carpenter");
break;
case "special_ammo":
players[i] thread powerup_vo("full_ammo");
level thread special_ammo_drop();
break;
special_ammo_drop()
{
rnd = randomintrange(1, 4);
ammo = undefined;
switch( rnd )
{
case 1:
iprintlnbold( "Shock Ammo!" );
ammo = "shock";
break;
case 2:
iprintlnbold( "Incendiary Ammo!" );
ammo = "flame";
break;
case 3:
iprintlnbold( "Explosive Ammo!" );
ammo = "expl";
break;
default:
break;
}
players = get_players();
for(i=0;i<players.size;i++)
{
players[i] thread create_special_ammo_hud( ammo );
players[i] thread special_ammo_tracer( ammo );
}
level.special_ammo_drop[ ammo ] = true;
wait level.special_ammo_drop_time;
level.special_ammo_drop[ ammo ] = false;
for(i=0;i<players.size;i++)
{
players[i] notify( "special_ammo_drop_done" );
players[i].ammo_powerup_hud[ "drop" ] destroy_hud();
players[i].ammo_powerup_hud[ "drop" ] = undefined;
}
}
create_special_ammo_hud( ammo )
{
self endon( "death" );
self endon( "disconect" );
self endon( "special_ammo_drop_done" );
shader = undefined;
switch( ammo )
{
case "shock":
shader = "specialty_juggernaut_zombies";
break;
case "flame":
shader = "specialty_fastreload_zombies";
break;
case "expl":
shader = "specialty_fastreload_zombies";
break;
default:
break;
}
ammo_powerup_hud = create_simple_hud();
ammo_powerup_hud.foreground = true;
ammo_powerup_hud.sort = 2;
ammo_powerup_hud.hidewheninmenu = false;
ammo_powerup_hud.alignX = "center";
ammo_powerup_hud.alignY = "bottom";
ammo_powerup_hud.horzAlign = "center";
ammo_powerup_hud.vertAlign = "bottom";
ammo_powerup_hud.y = ammo_powerup_hud.y - 35;
ammo_powerup_hud.alpha = 1;
ammo_powerup_hud setshader(shader, 32, 32);
self.ammo_powerup_hud[ "drop" ] = ammo_powerup_hud;
shader_moved = false;
time = level.special_ammo_drop_time;
while( time > 0 )
{
if(level.zombie_vars["zombie_powerup_point_doubler_on"] == true && !shader_moved || level.zombie_vars["zombie_powerup_insta_kill_on"] == true && !shader_moved )
{
ammo_powerup_hud.y = ammo_powerup_hud.y - 35;
shader_moved = true;
}
if( level.zombie_vars["zombie_powerup_point_doubler_on"] == false && level.zombie_vars["zombie_powerup_insta_kill_on"] == false && shader_moved )
{
ammo_powerup_hud.y = ammo_powerup_hud.y + 35;
shader_moved = false;
}
if( time < 2 )
{
ammo_powerup_hud.alpha = 0;
time -= 0.1;
wait 0.1;
ammo_powerup_hud.alpha = 1;
time -= 0.1;
wait 0.1;
}
if( time < 8 && time >= 2 )
{
ammo_powerup_hud.alpha = 0;
time -= 0.2;
wait 0.2;
ammo_powerup_hud.alpha = 1;
time -= 0.2;
wait 0.2;
}
if( time >= 8 )
{
time -= 0.5;
wait 0.5;
}
}
}
special_ammo_tracer( ammo )
{
self endon( "disconnect" );
self endon( "death" );
self endon( "special_ammo_drop_done" );
self.tracers_drawn = 0;
fx = undefined;
impact_fx = undefined;
switch( ammo )
{
case "shock":
fx = level._effect["tracer_shock_ammo"];
impact_fx = level._effect["blst_shock_ammo"];
break;
case "flame":
fx = level._effect["tracer_flame_ammo"];
impact_fx = level._effect["character_fire_pain_sm"];
break;
case "expl":
fx = level._effect["tracer_expl_ammo"];
impact_fx = level._effect["blst_expl_ammo"];
break;
default:
break;
}
for( ;; )
{
self waittill( "weapon_fired" );
currentweapon = self GetCurrentWeapon();
if( WeaponType( currentweapon ) == "bullet" && self.tracers_drawn < 10 )
{
self thread special_ammo_shot( fx, impact_fx );
}
}
}
special_ammo_shot( fx, impact_fx )
{
self.tracers_drawn++;
fire_angles = self getPlayerAngles();
fire_angles_forward = anglesToForward( fire_angles );
fire_init = self GetTagOrigin( "j_wristtwist_ri" ) + (0,0,6) ;
fire_pos = fire_init + vectorScale( fire_angles_forward, 100 );
if( self AdsButtonPressed() )
{
fire_init = self GetTagOrigin( "j_wristtwist_ri" ) + ( 0,0,5 );
fire_pos = fire_init + vectorScale( fire_angles_forward, 100 );
}
impact = fire_pos + vectorScale( fire_angles_forward, 10000 );
trace = BulletTrace( fire_pos, impact, false, undefined );
tag_bullet = spawn("script_model", fire_pos);
tag_bullet setmodel("tag_origin");
tag_bullet.angles = fire_angles;
PlayFxOnTag( fx, tag_bullet, "tag_origin" );
tag_bullet moveto( trace["position"], 0.15);
playfx( impact_fx, trace["position"] );
wait 0.15;
tag_bullet delete();
self.tracers_drawn--;
}
include_powerup( "carpenter" );
include_powerup( "special_ammo" );
#include maps\_zombiemode_utility;
#include maps\_zombiemode_net;
#using_animtree( "generic_human" );
zombie_damage( mod, hit_location, hit_origin, player )
{
if( !IsDefined( player ) )
{
return;
}
if( level.special_ammo_drop[ "shock" ] && mod == "MOD_PISTOL_BULLET" || level.special_ammo_drop[ "shock" ] && mod == "MOD_RIFLE_BULLET" )
{
shock_tag = maps\_blst_custom_ammo_drop::hit_tag( hit_location );
if( isdefined( shock_tag ) )
{
network_safe_play_fx_on_tag( "shock_impact_fx", 3, level._effect["blst_shock_ammo"], self, shock_tag );
self playsound( "imp_tesla" );
}
}
if( level.special_ammo_drop[ "flame" ] && mod == "MOD_PISTOL_BULLET" || level.special_ammo_drop[ "flame" ] && mod == "MOD_RIFLE_BULLET" )
{
if( !isdefined( self.flame_ammo_on_fire ) || isdefined( self.flame_ammo_on_fire ) && !self.flame_ammo_on_fire )
{
flame_tag = maps\_blst_custom_ammo_drop::hit_tag( hit_location );
if( isdefined(flame_tag))
{
network_safe_play_fx_on_tag( "flame_impact_fx", 3, level._effect["character_fire_pain_sm"], self, flame_tag );
}
self thread maps\_blst_custom_ammo_drop::blst_flame_ammo( player );
}
}
if( level.special_ammo_drop[ "expl" ] && mod == "MOD_PISTOL_BULLET" || level.special_ammo_drop[ "expl" ] && mod == "MOD_RIFLE_BULLET" )
{
expl_tag = maps\_blst_custom_ammo_drop::hit_tag( hit_location );
if( isdefined( expl_tag))
{
network_safe_play_fx_on_tag( "expl_impact_fx", 3, level._effect["blst_expl_ammo"], self, expl_tag );
}
self maps\_blst_custom_ammo_drop::blst_expl_ammo( hit_location );
}
zombie_damage_ads( mod, hit_location, hit_origin, player )
{
if( !IsDefined( player ) )
{
return;
}
if( level.special_ammo_drop[ "shock" ] && mod == "MOD_PISTOL_BULLET" || level.special_ammo_drop[ "shock" ] && mod == "MOD_RIFLE_BULLET" )
{
shock_tag = maps\_blst_custom_ammo_drop::hit_tag( hit_location );
if( isdefined( shock_tag ) )
{
network_safe_play_fx_on_tag( "shock_impact_fx", 3, level._effect["blst_shock_ammo"], self, shock_tag );
self playsound( "imp_tesla" );
}
}
if( level.special_ammo_drop[ "flame" ] && mod == "MOD_PISTOL_BULLET" || level.special_ammo_drop[ "flame" ] && mod == "MOD_RIFLE_BULLET" )
{
if( !isdefined( self.flame_ammo_on_fire ) || isdefined( self.flame_ammo_on_fire ) && !self.flame_ammo_on_fire )
{
flame_tag = maps\_blst_custom_ammo_drop::hit_tag( hit_location );
if( isdefined(flame_tag))
{
network_safe_play_fx_on_tag( "flame_impact_fx", 3, level._effect["character_fire_pain_sm"], self, flame_tag );
}
self thread maps\_blst_custom_ammo_drop::blst_flame_ammo( player );
}
}
if( level.special_ammo_drop[ "expl" ] && mod == "MOD_PISTOL_BULLET" || level.special_ammo_drop[ "expl" ] && mod == "MOD_RIFLE_BULLET" )
{
expl_tag = maps\_blst_custom_ammo_drop::hit_tag( hit_location );
if( isdefined( expl_tag))
{
network_safe_play_fx_on_tag( "expl_impact_fx", 3, level._effect["blst_expl_ammo"], self, expl_tag );
}
self maps\_blst_custom_ammo_drop::blst_expl_ammo( hit_location );
}
if( !IsDefined( self ) )
{
return;
}
if( level.special_ammo_drop[ "shock" ] && type == "MOD_PISTOL_BULLET" || level.special_ammo_drop[ "shock" ] && type == "MOD_RIFLE_BULLET" )
{
added = level.shock_ammo_multiplier * amount;
added_damage = round_up_to_ten( int( added ) );
self_new_health = self.health - added_damage;
if( self_new_health > 0 )
{
self.health = self_new_health;
}
}
if( level.special_ammo_drop[ "flame" ] && type == "MOD_PISTOL_BULLET" || level.special_ammo_drop[ "flame" ] && type == "MOD_RIFLE_BULLET" )
{
added = level.flame_ammo_multiplier * amount;
added_damage = round_up_to_ten( int( added ) );
self_new_health = self.health - added_damage;
if( self_new_health > 0 )
{
self.health = self_new_health;
}
}
if( level.special_ammo_drop[ "expl" ] && type == "MOD_PISTOL_BULLET" || level.special_ammo_drop[ "expl" ] && type == "MOD_RIFLE_BULLET" )
{
added = level.expl_ammo_multiplier * amount;
added_damage = round_up_to_ten( int( added ) );
self_new_health = self.health - added_damage;
if( self_new_health > 0 )
{
self.health = self_new_health;
}
}
self flamethrower_stop_shoot();
if( level.special_ammo_drop[ "shock" ] && self.damagemod == "MOD_PISTOL_BULLET" || level.special_ammo_drop[ "shock" ] && self.damagemod == "MOD_RIFLE_BULLET" )
{
self.deathanim = random( level._zombie_tesla_death[self.animname] ); // Shock Ammo
Playfxontag (level._effect["tesla_shock_eyes"], self, "J_Eyeball_LE" );
Playfxontag (level._effect["tesla_shock"], self, "J_SpineUpper" );
}
if( level.special_ammo_drop[ "flame" ] && self.damagemod == "MOD_PISTOL_BULLET" || level.special_ammo_drop[ "flame" ] && self.damagemod == "MOD_RIFLE_BULLET" )
{
if( !isdefined( self.is_on_fire ) || isdefined( self.is_on_fire ) && !self.is_on_fire ) // Flame Ammo
{
self thread flame_death_fx();
}
}
if( level.special_ammo_drop[ "expl" ] && self.damagemod == "MOD_PISTOL_BULLET" || level.special_ammo_drop[ "expl" ] && self.damagemod == "MOD_RIFLE_BULLET" )
{
expl_anim = maps\_blst_custom_ammo_drop::death_anim_yaw( self.damageyaw ); // Explosive Ammo
self.deathanim = expl_anim;
}
maps\_zombiemode::main();
maps\_blst_custom_ammo_drop::custom_ammo_precache();
// BluntStuffy's Special-Ammo drop
// Shock Ammo - Flame Ammo - Explosive Ammo
rawfile,maps/_blst_custom_ammo_drop.gsc
fx,maps/zombie/fx_tesla_impact_default
fx,maps/zombie/fx_zombie_tesla_shock
fx,maps/zombie/fx_zombie_tesla_shock_eyes
fx,env/fire/fx_fire_player_sm_1sec
fx,explosions/fx_grenade_flash
fx,weapon/tracer/fx_tracer_pby_30cal_view
fx,blst_custom/tracer_flame_ammo
fx,blst_custom/tracer_shock_ammo
level.shock_ammo_multiplier = 0.6; // The ammount of damage to ADD to the normal damage ( so putting 1 here, double's the damage )
level.flame_ammo_multiplier = 0.3;
level.expl_ammo_multiplier = 0.8;
level.special_ammo_drop_time = 30; // Lenght of the special ammo drop
create_special_ammo_hud( ammo )
{
self endon( "death" );
self endon( "disconect" );
self endon( "special_ammo_drop_done" );
shader = undefined;
switch( ammo )
{
case "shock":
shader = "specialty_juggernaut_zombies"; <=== CHANGE SHADER-NAME HERE
break;
case "flame":
shader = "specialty_fastreload_zombies"; <=== CHANGE SHADER-NAME HERE
break;
case "expl":
shader = "specialty_fastreload_zombies"; <=== CHANGE SHADER-NAME HERE
break;
default:
break;
}
level._effect["tracer_expl_ammo"] = loadfx("weapon/tracer/fx_tracer_pby_30cal_view");
level._effect["tracer_flame_ammo"] = loadfx("blst_custom/tracer_flame_ammo");
level._effect["tracer_shock_ammo"] = loadfx("blst_custom/tracer_shock_ammo");
Shock-ammo:
level._effect["blst_shock_ammo"] = loadfx( "maps/zombie/fx_tesla_impact_default");
Flame-ammo:
level._effect["character_fire_pain_sm"] = loadfx( "env/fire/fx_fire_player_sm_1sec" );
Expl-ammo:
level._effect["blst_expl_ammo"] = loadfx( "explosions/fx_grenade_flash");
![]() | Benevolent Soul who has our eternal gratitude and exclusive access to betas and the donator section of the forum. |
![]() | Benevolent Soul who has our eternal gratitude and exclusive access to betas and the donator section of the forum. |

![]() | Has released one or more maps to the UGX-Mods community. |