

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 effort and knowledge in the area of scripting while being a part of the UGX-Mods community. |
xmodel,bo2_zombie_vending_tombstone
xmodel,bo2_zombie_vending_tombstone_on
xmodel,bo2_t6_wpn_zmb_perk_bottle_tombstone_view
xmodel,bo2_t6_wpn_zmb_perk_bottle_tombstone_world
xmodel,bo2_ch_tombstone1
weapon,sp/zombie_perk_bottle_tombstone
#include maps\_utility;
#include common_scripts\utility;
#include maps\_zombiemode_utility;
#include maps\_hud_util;
init()
{
vending_triggers = GetEntArray( "vending_trigger_tombstone", "targetname" );
if( vending_triggers.size < 1 )
{
return;
}
PrecacheItem( "zombie_perk_bottle_tombstone" );
PrecacheShader( "tombstone_vending_zombies" );
PrecacheModel( "bo2_zombie_vending_tombstone_on" );
PrecacheModel( "bo2_ch_tombstone1" );
level._effect["tombstone_light"] = loadfx("misc/fx_zombie_cola_on");
array_thread( vending_triggers, ::vending_trigger_think );
array_thread( vending_triggers, maps\_zombiemode_perks::electric_perks_dialog );
level thread turn_tombstone_on();
level thread machine_watcher();
level.tombstone_jingle = 0;
thread player_init();
}
player_init()
{
flag_wait( "all_players_connected" );
players = get_players();
for( i = 0; i < players.size; i++ )
{
players[i] thread tombstone();
}
}
turn_tombstone_on()
{
machine = getentarray("vending_tombstone", "targetname");
flag_wait( "all_players_connected" );
if( get_players().size == 1 )
{
for( i = 0; i < machine.size; i++ )
{
machine[i] delete();
}
return;
}
level waittill("juggernog_on");
for( i = 0; i < machine.size; i++ )
{
machine[i] setmodel("bo2_zombie_vending_tombstone_on");
machine[i] vibrate((0,-100,0), 0.3, 0.4, 3);
machine[i] playsound("perks_power_on");
machine[i] thread maps\_zombiemode_perks::perk_fx( "tombstone_light" );
}
level notify( "specialty_reconnaissance_power_on" );
}
vending_trigger_think()
{
flag_wait( "all_players_connected" );
if( get_players().size == 1 )
{
self delete();
return;
}
self SetHintString( &"ZOMBIE_FLAMES_UNAVAILABLE" );
self SetCursorHint( "HINT_NOICON" );
self UseTriggerRequireLookAt();
level waittill( "specialty_reconnaissance_power_on" );
perk_hum = spawn("script_origin", self.origin);
perk_hum playloopsound("perks_machine_loop");
self thread maps\_zombiemode_perks::check_player_has_perk( "specialty_reconnaissance" );
self setHintString( "Press & hold &&1 to buy Tombstone Soda [Cost: 2000]" );
for( ;; )
{
self waittill( "trigger", player );
index = maps\_zombiemode_weapons::get_player_index(player);
cost = 2000;
if (player maps\_laststand::player_is_in_laststand() )
{
continue;
}
if(player in_revive_trigger())
{
continue;
}
if( player isThrowingGrenade() )
{
wait( 0.1 );
continue;
}
if( player isSwitchingWeapons() )
{
wait(0.1);
continue;
}
if ( player HasPerk( "specialty_reconnaissance" ) )
{
self playsound("deny");
player thread maps\_zombiemode_perks::play_no_money_perk_dialog();
continue;
}
if ( player.score < cost )
{
self playsound("deny");
player thread maps\_zombiemode_perks::play_no_money_perk_dialog();
continue;
}
sound = "bottle_dispense3d";
player achievement_notify( "perk_used" );
playsoundatposition(sound, self.origin);
player maps\_zombiemode_score::minus_to_player_score( cost );
self thread play_vendor_stings();
gun = player perk_give_bottle_begin();
player.is_drinking = 1;
player waittill_any( "fake_death", "death", "player_downed", "weapon_change_complete" );
player perk_give_bottle_end( gun );
player.is_drinking = undefined;
if ( player maps\_laststand::player_is_in_laststand() )
{
continue;
}
player SetPerk( "specialty_reconnaissance" );
player thread perk_vo();
player setblur( 4, 0.1 );
wait(0.1);
player setblur(0, 0.1);
player perk_hud_create();
player.stats["perks"]++;
bbPrint( "zombie_uses: playername %s playerscore %d round %d cost %d name %s x %f y %f z %f type perk", player.playername, player.score, level.round_number, cost, "specialty_reconnaissance", self.origin );
player thread maps\_zombiemode_perks::perk_think( "specialty_reconnaissance" );
}
}
perk_hud_create()
{
if ( !IsDefined( self.perk_hud ) )
{
self.perk_hud = [];
}
hud = create_simple_hud( self );
hud.foreground = true;
hud.sort = 1;
hud.hidewheninmenu = false;
hud.alignX = "left";
hud.alignY = "bottom";
hud.horzAlign = "left";
hud.vertAlign = "bottom";
hud.x = self.perk_hud.size * 30;
hud.y = hud.y - 70;
hud.alpha = 1;
hud SetShader( "tombstone_vending_zombies", 24, 24 );
self.perk_hud[ "specialty_reconnaissance" ] = hud;
}
perk_give_bottle_begin()
{
self DisableOffhandWeapons();
self DisableWeaponCycling();
self AllowLean( false );
self AllowAds( false );
self AllowSprint( false );
self AllowProne( false );
self AllowMelee( false );
wait( 0.05 );
if ( self GetStance() == "prone" )
{
self SetStance( "crouch" );
}
gun = self GetCurrentWeapon();
self GiveWeapon( "zombie_perk_bottle_tombstone" );
self SwitchToWeapon( "zombie_perk_bottle_tombstone" );
return gun;
}
perk_give_bottle_end( gun )
{
assert( gun != "zombie_perk_bottle_doubletap" );
assert( gun != "zombie_perk_bottle_revive" );
assert( gun != "zombie_perk_bottle_jugg" );
assert( gun != "zombie_perk_bottle_sleight" );
assert( gun != "zombie_perk_bottle_tombstone" );
assert( gun != "syrette" );
self EnableOffhandWeapons();
self EnableWeaponCycling();
self AllowLean( true );
self AllowAds( true );
self AllowSprint( true );
self AllowProne( true );
self AllowMelee( true );
if ( self maps\_laststand::player_is_in_laststand() )
{
self TakeWeapon("zombie_perk_bottle_tombstone");
return;
}
if ( gun != "none" && gun != "mine_bouncing_betty" )
{
self SwitchToWeapon( gun );
}
else
{
primaryWeapons = self GetWeaponsListPrimaries();
if( IsDefined( primaryWeapons ) && primaryWeapons.size > 0 )
{
self SwitchToWeapon( primaryWeapons[0] );
}
}
self TakeWeapon("zombie_perk_bottle_tombstone");
}
perk_vo()
{
self endon("death");
self endon("disconnect");
index = maps\_zombiemode_weapons::get_player_index(self);
if(!isdefined (level.player_is_speaking))
{
level.player_is_speaking = 0;
}
player_index = "plr_" + index + "_";
wait(1.0);
self maps\_zombiemode_spawner::do_player_playdialog(player_index, "vox_perk_jugga_0", 0.25);
}
machine_watcher()
{
level thread machine_watcher_factory();
}
machine_watcher_factory()
{
level waittill("specialty_reconnaissance_power_on");
temp_machines = getstructarray("perksacola", "targetname");
for (x = 0; x < temp_machines.size; x++)
{
if (temp_machines[x].script_sound == "mx_tombstone_jingle")
{
temp_machines[x] thread perks_a_cola_jingle();
}
}
}
play_vendor_stings()
{
if(!IsDefined (level.tombstone_jingle))
{
level.tombstone_jingle = 0;
}
if(!IsDefined (level.eggs))
{
level.eggs = 0;
}
if (level.eggs == 0)
{
if(level.tombstone_jingle == 0 )
{
level.tombstone_jingle = 1;
temp_org_tombstone_s = spawn("script_origin", self.origin);
temp_org_tombstone_s playsound ("mx_tombstone_sting", "sound_done");
temp_org_tombstone_s waittill("sound_done");
level.tombstone_jingle = 0;
temp_org_tombstone_s delete();
}
}
}
perks_a_cola_jingle()
{
self thread maps\_zombiemode_perks::play_random_broken_sounds();
if(!IsDefined(self.perk_jingle_playing))
{
self.perk_jingle_playing = 0;
}
if (!IsDefined (level.eggs))
{
level.eggs = 0;
}
while(1)
{
wait(randomfloatrange(31,45));
if(randomint(100) < 15 && level.eggs == 0)
{
level notify ("jingle_playing");
playsoundatposition ("electrical_surge", self.origin);
if(level.tombstone_jingle == 0)
{
level.tombstone_jingle = 1;
temp_org_tombstone = spawn("script_origin", self.origin);
wait(0.05);
temp_org_tombstone playsound (self.script_sound, "sound_done");
temp_org_tombstone waittill("sound_done");
level.tombstone_jingle = 0;
temp_org_tombstone delete();
}
self thread maps\_zombiemode_perks::play_random_broken_sounds();
}
}
}
tombstone()
{
if( get_players().size == 1 )
{
return;
}
has_tombstone = false;
savePerks = undefined;
while(1)
{
if( !self maps\_laststand::player_is_in_laststand() )
{
if( self hasPerk( "specialty_reconnaissance" ) )
{
has_tombstone = true;
savePerks = get_savable_perks();
}
else
{
has_tombstone = false;
savePerks = undefined;
}
}
else
{
if( has_tombstone )
{
stock = self get_player_stock( savePerks );
self tombstone_process( self.origin, stock );
has_tombstone = false;
savePerks = undefined;
}
}
wait 0.5;
}
}
get_savable_perks()
{
perks = [];
perks[0] = "specialty_armorvest";
perks[1] = "specialty_fastreload";
perks[2] = "specialty_rof";
perks[3] = "specialty_quickrevive";
perks[4] = "specialty_detectexplosive";
perks[5] = "specialty_longersprint";
perks[6] = "specialty_bulletaccuracy";
perks[7] = "specialty_extraammo";
perks[8] = "specialty_shades";
perks[9] = "specialty_boost";
perks[10] = "specialty_ordinance";
SavePerks = [];
for( p = 0; p < perks.size; p++ )
{
SavePerks[perks[p]] = false;
if (self hasPerk(perks[p]))
{
SavePerks[perks[p]] = true;
}
}
return SavePerks;
}
get_player_stock( savePerks )
{
stuff = [];
stuff[ "weap_list" ] = self.weaponInventory;
stuff[ "last_weap" ] = self.lastActiveWeapon;
stuff[ "weap_ammo" ] = self.weaponAmmo;
stuff[ "save_perk" ] = savePerks;
return stuff;
}
tombstone_process( origin, stock )
{
powerup = maps\_zombiemode_net::network_safe_spawn( "powerup", 1, "script_model", origin + ( 0, 0, 40 ) );
powerup setModel( "bo2_ch_tombstone1" );
powerup.tombstone_stock = stock;
powerup.owner = self;
playsoundatposition( "spawn_powerup", powerup.origin );
powerup PlayLoopSound( "spawn_powerup_loop" );
powerup thread powerup_wobble();
self thread early_bleedout_button();
result = self waittill_any_return( "player_revived", "zombified" );
if( result == "player_revived" )
{
powerup StopLoopSound();
powerup notify( "powerup_timedout" );
powerup delete();
}
else if( result == "zombified" )
{
powerup thread powerup_timeout();
powerup thread powerup_grab();
}
}
powerup_wobble()
{
self endon( "powerup_grabbed" );
self endon( "powerup_timedout" );
if( isdefined( self ) )
{
playfxontag( level._effect[ "powerup_on" ], self, "tag_origin" );
}
while( isdefined( self ) )
{
self rotateYaw( 360, 4 );
wait 4;
}
}
early_bleedout_button()
{
self endon( "player_revived" );
self endon( "disconnect" );
self endon( "zombified" );
screen_text = create_simple_hud( self );
screen_text.sort = 1;
screen_text.alignX = "center";
screen_text.alignY = "middle";
screen_text.horzAlign = "center";
screen_text.vertAlign = "bottom";
screen_text.y = -150;
screen_text.foreground = true;
screen_text.font = "default";
screen_text.fontScale = 1.5;
screen_text.alpha = 1;
screen_text.color = ( 1.0, 1.0, 1.0 );
screen_text setText( "Press ^3[{+activate}]^7 [Please don't feed the zombies]" );
self thread cleanup_screentext( screen_text );
dropped = false;
while( isdefined( self ) && self maps\_laststand::player_is_in_laststand() && self.sessionstate != "spectator" )
{
if( self UseButtonPressed() && !dropped && self maps\_laststand::player_is_in_laststand() && self.sessionstate != "spectator" )
{
t = 0;
self.tombstoneProgressBar = maps\_hud_util::createPrimaryProgressBar();
self.tombstoneProgressBar maps\_hud_util::updateBar( 0.01, 1 );
self.tombstoneTextHud = newclientHudElem( self );
self.tombstoneTextHud.alignX = "center";
self.tombstoneTextHud.alignY = "middle";
self.tombstoneTextHud.horzAlign = "center";
self.tombstoneTextHud.vertAlign = "bottom";
self.tombstoneTextHud.y = -148;
self.tombstoneTextHud.foreground = true;
self.tombstoneTextHud.font = "default";
self.tombstoneTextHud.fontScale = 1.8;
self.tombstoneTextHud.alpha = 1;
self.tombstoneTextHud.color = ( 1.0, 1.0, 1.0 );
self.tombstoneTextHud setText( "Don't feed the zombies" );
screen_text.alpha = 0;
while( self UseButtonPressed() && t < 1 && self maps\_laststand::player_is_in_laststand() && self.sessionstate != "spectator" )
{
t += .05;
wait .05;
}
self.tombstoneProgressBar maps\_hud_util::destroyElem();
self.tombstoneTextHud destroy();
if( t >= 1 )
{
self.bleedout_time = 1;
dropped = true;
break;
}
else
{
screen_text.alpha = 1;
}
}
wait .15;
}
screen_text notify( "nevermind" );
screen_text destroy_hud();
if( isDefined( self.tombstoneTextHud ) )
{
self.tombstoneTextHud destroy();
}
if( isDefined( self.tombstoneProgressBar ) )
{
self.tombstoneProgressBar maps\_hud_util::destroyElem();
}
}
cleanup_screentext( hud )
{
hud endon( "nevermind" );
self waittill_any( "player_revived", "disconnect", "zombified" );
hud destroy_hud();
if( isDefined( self.tombstoneTextHud ) )
{
self.tombstoneTextHud destroy();
}
if( isDefined( self.tombstoneProgressBar ) )
{
self.tombstoneProgressBar maps\_hud_util::destroyElem();
}
}
powerup_timeout()
{
self endon( "powerup_grabbed" );
self.owner waittill_any( "fake_death", "death", "player_downed", "whoswho_death" );
self notify( "powerup_timedout" );
self delete();
}
powerup_grab()
{
self endon( "powerup_timedout" );
self endon( "powerup_grabbed" );
while( isdefined( self ) )
{
players = get_players();
for( i = 0; i < players.size; i++ )
{
if( distance( players[i].origin, self.origin ) < 64 && players[i] == self.owner )
{
playfx( level._effect["powerup_grabbed"], self.origin );
playfx( level._effect["powerup_grabbed_wave"], self.origin );
players[i] thread give_back_stock( self.tombstone_stock );
wait( 0.1 );
playsoundatposition( "powerup_grabbed", self.origin );
self stoploopsound();
self delete();
self notify( "powerup_grabbed" );
}
}
wait 0.1;
}
}
give_back_stock( stuff )
{
self.weaponInventory = stuff[ "weap_list" ];
self.lastActiveWeapon = stuff[ "last_weap" ];
self.weaponAmmo = stuff[ "weap_ammo" ];
self maps\_laststand::laststand_giveback_player_weapons();
savePerks = stuff[ "save_perk" ];
perks = GetArrayKeys( SavePerks );
for( p = 0; p < perks.size; p++ )
{
if( SavePerks[perks[p]] )
{
self give_perk( perks[p] );
}
}
}
give_perk( perk )
{
if( self hasPerk( perk ) )
{
return;
}
switch( perk )
{
case "specialty_armorvest":
self setPerk( "specialty_armorvest" );
self maps\_zombiemode_perks::perk_hud_create( "specialty_armorvest" );
self thread maps\_zombiemode_perks::perk_think( "specialty_armorvest" );
self.maxhealth = 285;
self.health = 285;
break;
case "specialty_fastreload":
self setPerk( "specialty_fastreload" );
self maps\_zombiemode_perks::perk_hud_create( "specialty_fastreload" );
self thread maps\_zombiemode_perks::perk_think( "specialty_fastreload" );
break;
case "specialty_rof":
self setPerk( "specialty_rof" );
self maps\_zombiemode_perks::perk_hud_create( "specialty_rof" );
self thread maps\_zombiemode_perks::perk_think( "specialty_rof" );
break;
case "specialty_quickrevive":
self setPerk( "specialty_quickrevive" );
self maps\_zombiemode_perks::perk_hud_create( "specialty_quickrevive" );
self thread maps\_zombiemode_perks::perk_think( "specialty_quickrevive" );
break;
default:
break;
}
}
perks = [];
perks[0] = "specialty_armorvest";
perks[1] = "specialty_fastreload";
perks[2] = "specialty_rof";
perks[3] = "specialty_quickrevive";
perks[4] = "specialty_detectexplosive";
perks[5] = "specialty_longersprint";
perks[6] = "specialty_bulletaccuracy";
perks[7] = "specialty_extraammo";
perks[8] = "specialty_shades";
perks[9] = "specialty_boost";
perks[10] = "specialty_ordinance";
switch( perk )
{
case "specialty_armorvest":
self setPerk( "specialty_armorvest" );
self maps\_zombiemode_perks::perk_hud_create( "specialty_armorvest" );
self thread maps\_zombiemode_perks::perk_think( "specialty_armorvest" );
self.maxhealth = 285;
self.health = 285;
break;
case "specialty_fastreload":
self setPerk( "specialty_fastreload" );
self maps\_zombiemode_perks::perk_hud_create( "specialty_fastreload" );
self thread maps\_zombiemode_perks::perk_think( "specialty_fastreload" );
break;
case "specialty_rof":
self setPerk( "specialty_rof" );
self maps\_zombiemode_perks::perk_hud_create( "specialty_rof" );
self thread maps\_zombiemode_perks::perk_think( "specialty_rof" );
break;
case "specialty_quickrevive":
self setPerk( "specialty_quickrevive" );
self maps\_zombiemode_perks::perk_hud_create( "specialty_quickrevive" );
self thread maps\_zombiemode_perks::perk_think( "specialty_quickrevive" );
break;
default:
break;
}
maps\_zombiemode_blockers_new::init();
maps\_zombiemode_spawner::init();
maps\_zombiemode_powerups::init();
maps\_zombiemode_radio::init();
maps\_zombiemode_perks::init();
maps\_zombiemode_tesla::init();
maps\_zombiemode_bowie::bowie_init();
maps\_zombiemode_cymbal_monkey::init();
maps\_zombiemode_betty::init();
maps\_zombiemode_timer::init();
maps\_zombiemode_auto_turret::init();
maps\_zombiemode_perks_limit::init();
maps\_zombiemode_auto_turret::init();


Im pretty sure the tombstone doesn't appear until after you bleed out, but other than that this seems promising!
Im pretty sure the tombstone doesn't appear until after you bleed out, but other than that this seems promising!
if i remember in tranzit it appears right when you get down cause there was times that i picked the tombstone while still down(not a good idea lol)
![]() | Benevolent Soul who has our eternal gratitude and exclusive access to betas and the donator section of the forum. |
![]() UGX V.I.P. | |
![]() | Has released one or more maps to the UGX-Mods community. |
![]() BO3 Modtools Alpha | This user has access to the Black Ops 3 Modtools Alpha |
Well how it works is you go down and you have to hold a certain key/button to set the tombstone and it will be there the next round and you get all of your stuff back exept tombstone.

They didnt ask how it works though

![]() | Benevolent Soul who has our eternal gratitude and exclusive access to betas and the donator section of the forum. |
![]() | Has shown effort and knowledge in the area of scripting while being a part of the UGX-Mods community. |
![]() | Benevolent Soul who has our eternal gratitude and exclusive access to betas and the donator section of the forum. |