


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!// THIS FILE IS AUTOGENERATED, DO NOT MODIFY
main()
{
self setModel("spider1");
self.voice = "german";
}
precache()
{
precacheModel("spider1");
}



![]() | 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 |
#include maps\_utility;
#include common_scripts\utility;
#include maps\_zombiemode_utility;
#include animscripts\Utility;
init()
{
thread spider_enabled();
init_spider_zombie_anims();
level.spider_spawners = GetEntArray( "spider_zombie_spawner", "script_noteworthy" );
array_thread( level.spider_spawners, ::add_spawn_function, maps\_zombiemode_ai_spider::spider_prespawn );
}
spider_enabled()
{
level.spider = false;
// flag_wait("electricity_on");
level.spider = true;
}
#using_animtree( "generic_human" );
spider_prespawn()
{
if( level.spider == false )
{
iprintln( "level spider false or count higher than 10" );
self DetachAll();
character\char_zombie_spider::main();
self.animname = "zombie";
self maps\_zombiemode_spawner::zombie_spawn_init( true );
return;
}
else
self.animname = "spider_zombie";
self.spider = true;
iprintln( "spider_zombie spawned" );
self.custom_idle_setup = maps\_zombiemode_ai_spider::spider_zombie_idle_setup;
self.a.idleAnimOverrideArray = [];
self.a.idleAnimOverrideArray["stand"] = [];
self.a.idleAnimOverrideArray["stand"] = [];
self.a.idleAnimOverrideArray["stand"][0][0] = %ai_zombie_spider_idle;
self.a.idleAnimOverrideWeights["stand"][0][0] = 10;
self.no_eye_glow = true;
self maps\_zombiemode_spawner::zombie_spawn_init( true );
self.maxhealth = int( self.maxhealth * 0.75 );
self.health = self.maxhealth;
self.meleeDamage = 45;
self playsound( "zmb_quad_spawn" );
self.death_explo_radius_zomb = 96;
self.death_explo_radius_plr = 96;
self.death_explo_damage_zomb = 0.75;
self.death_gas_radius = 125;
self.death_gas_time = 7;
self.deathanimscript = ::spider_post_death;
//self.actor_killed_override = ::quad_killed_override;
//self set_default_attack_properties();
self.thundergun_disintegrate_func = ::quad_thundergun_disintegrate;
self.thundergun_knockdown_func = ::quad_thundergun_knockdown;
self.can_explode = false;
if ( isdefined( level.quad_explode ) && level.quad_explode == true )
{
self.can_explode = true;
}
self.exploded = false;
self thread quad_trail();
self thread quad_vox();
if ( isdefined( level.quad_traverse_death_fx ) )
{
self thread [[ level.quad_traverse_death_fx ]]();
}
}
spider_zombie_idle_setup()
{
self.a.array["turn_left_45"] = %exposed_tracking_turn45L;
self.a.array["turn_left_90"] = %exposed_tracking_turn90L;
self.a.array["turn_left_135"] = %exposed_tracking_turn135L;
self.a.array["turn_left_180"] = %exposed_tracking_turn180L;
self.a.array["turn_right_45"] = %exposed_tracking_turn45R;
self.a.array["turn_right_90"] = %exposed_tracking_turn90R;
self.a.array["turn_right_135"] = %exposed_tracking_turn135R;
self.a.array["turn_right_180"] = %exposed_tracking_turn180L;
self.a.array["exposed_idle"] = array( %ai_zombie_spider_idle, %ai_zombie_spider_idle_2 );
self.a.array["straight_level"] = %ai_zombie_spider_idle;
self.a.array["stand_2_crouch"] = %ai_zombie_shot_leg_right_2_crawl;
}
init_spider_zombie_anims()
{
// deaths
level.scr_anim["spider_zombie"]["death1"] = %ai_zombie_spider_death;
// run cycles
level.scr_anim["spider_zombie"]["walk1"] = %ai_zombie_spider_walk;
level.scr_anim["spider_zombie"]["run1"] = %ai_zombie_spider_run;
level.scr_anim["spider_zombie"]["sprint1"] = %ai_zombie_spider_run;
// run cycles in prone
level.scr_anim["spider_zombie"]["crawl1"] = %ai_zombie_spider_walk;
level.scr_anim["spider_zombie"]["crawl2"] = %ai_zombie_spider_walk;
level.scr_anim["spider_zombie"]["crawl3"] = %ai_zombie_spider_walk;
level.scr_anim["spider_zombie"]["crawl4"] = %ai_zombie_spider_walk;
level.scr_anim["spider_zombie"]["crawl5"] = %ai_zombie_spider_walk;
level.scr_anim["spider_zombie"]["crawl6"] = %ai_zombie_spider_walk;
level.scr_anim["spider_zombie"]["crawl_hand_1"] = %ai_zombie_spider_walk;
level.scr_anim["spider_zombie"]["crawl_hand_2"] = %ai_zombie_spider_walk;
level.scr_anim["spider_zombie"]["crawl_sprint1"] = %ai_zombie_spider_walk;
level.scr_anim["spider_zombie"]["crawl_sprint2"] = %ai_zombie_spider_walk;
level.scr_anim["spider_zombie"]["crawl_sprint3"] = %ai_zombie_spider_walk;
if( !isDefined( level._zombie_melee ) )
{
level._zombie_melee = [];
}
if( !isDefined( level._zombie_walk_melee ) )
{
level._zombie_walk_melee = [];
}
if( !isDefined( level._zombie_run_melee ) )
{
level._zombie_run_melee = [];
}
level._zombie_melee["spider_zombie"] = [];
level._zombie_walk_melee["spider_zombie"] = [];
level._zombie_run_melee["spider_zombie"] = [];
level._zombie_melee["spider_zombie"][0] = %ai_zombie_spider_attack_melee;
level._zombie_melee["spider_zombie"][1] = %ai_zombie_spider_attack_melee;
level._zombie_melee["spider_zombie"][2] = %ai_zombie_spider_attack_melee;
level._zombie_melee["spider_zombie"][3] = %ai_zombie_spider_attack_melee;
level._zombie_melee["spider_zombie"][4] = %ai_zombie_spider_attack_melee;
level._zombie_melee["spider_zombie"][5] = %ai_zombie_spider_attack_melee;
level._zombie_melee["spider_zombie"][6] = %ai_zombie_spider_attack_melee;
level._zombie_melee["spider_zombie"][7] = %ai_zombie_spider_attack_melee;
level._zombie_melee["spider_zombie"][8] = %ai_zombie_spider_attack_melee;
level._zombie_melee["spider_zombie"][9] = %ai_zombie_spider_attack_melee;
level._zombie_melee["spider_zombie"][10] = %ai_zombie_spider_attack_melee;
level._zombie_melee["spider_zombie"][11] = %ai_zombie_spider_attack_melee;
if( isDefined( level.spider_zombie_anim_override ) )
{
[[ level.spider_zombie_anim_override ]]();
}
// melee in crawl
if( !isDefined( level._zombie_melee_crawl ) )
{
level._zombie_melee_crawl = [];
}
level._zombie_melee_crawl["spider_zombie"] = [];
level._zombie_melee_crawl["spider_zombie"][0] = %ai_zombie_attack_crawl;
level._zombie_melee_crawl["spider_zombie"][1] = %ai_zombie_attack_crawl_lunge;
if( !isDefined( level._zombie_stumpy_melee ) )
{
level._zombie_stumpy_melee = [];
}
level._zombie_stumpy_melee["spider_zombie"] = [];
level._zombie_stumpy_melee["spider_zombie"][0] = %ai_zombie_walk_on_hands_shot_a;
level._zombie_stumpy_melee["spider_zombie"][1] = %ai_zombie_walk_on_hands_shot_b;
// tesla deaths
if( !isDefined( level._zombie_tesla_death ) )
{
level._zombie_tesla_death = [];
}
level._zombie_tesla_death["spider_zombie"] = [];
level._zombie_tesla_death["spider_zombie"][0] = %ai_zombie_quad_death_tesla;
level._zombie_tesla_death["spider_zombie"][1] = %ai_zombie_quad_death_tesla_2;
level._zombie_tesla_death["spider_zombie"][2] = %ai_zombie_quad_death_tesla_3;
level._zombie_tesla_death["spider_zombie"][3] = %ai_zombie_quad_death_tesla_4;
if( !isDefined( level._zombie_tesla_crawl_death ) )
{
level._zombie_tesla_crawl_death = [];
}
level._zombie_tesla_crawl_death["spider_zombie"] = [];
level._zombie_tesla_crawl_death["spider_zombie"][0] = %ai_zombie_tesla_crawl_death_a;
level._zombie_tesla_crawl_death["spider_zombie"][1] = %ai_zombie_tesla_crawl_death_b;
// deaths
if( !isDefined( level._zombie_deaths ) )
{
level._zombie_deaths = [];
}
level._zombie_deaths["spider_zombie"] = [];
level._zombie_deaths["spider_zombie"][0] = %ai_zombie_quad_death;
level._zombie_deaths["spider_zombie"][1] = %ai_zombie_quad_death_2;
level._zombie_deaths["spider_zombie"][2] = %ai_zombie_quad_death_3;
level._zombie_deaths["spider_zombie"][3] = %ai_zombie_quad_death_4;
/*
ground crawl
*/
if( !isDefined( level._zombie_rise_anims ) )
{
level._zombie_rise_anims = [];
}
// set up the arrays
level._zombie_rise_anims["spider_zombie"] = [];
level._zombie_rise_anims["spider_zombie"][1]["walk"][0] = %ai_zombie_traverse_ground_v1_crawl;
level._zombie_rise_anims["spider_zombie"][1]["run"][0] = %ai_zombie_traverse_ground_v1_crawlfast;
level._zombie_rise_anims["spider_zombie"][1]["sprint"][0] = %ai_zombie_traverse_ground_v1_crawlfast;
level._zombie_rise_anims["spider_zombie"][2]["walk"][0] = %ai_zombie_traverse_ground_v1_crawl;
// ground crawl death
if( !isDefined( level._zombie_rise_death_anims ) )
{
level._zombie_rise_death_anims = [];
}
level._zombie_rise_death_anims["spider_zombie"] = [];
level._zombie_rise_death_anims["spider_zombie"][1]["in"][0] = %ai_zombie_traverse_ground_v1_deathinside;
level._zombie_rise_death_anims["spider_zombie"][1]["in"][1] = %ai_zombie_traverse_ground_v1_deathinside_alt;
level._zombie_rise_death_anims["spider_zombie"][1]["out"][0] = %ai_zombie_traverse_ground_v1_deathoutside;
level._zombie_rise_death_anims["spider_zombie"][1]["out"][1] = %ai_zombie_traverse_ground_v1_deathoutside_alt;
level._zombie_rise_death_anims["spider_zombie"][2]["in"][0] = %ai_zombie_traverse_ground_v2_death_low;
level._zombie_rise_death_anims["spider_zombie"][2]["in"][1] = %ai_zombie_traverse_ground_v2_death_low_alt;
level._zombie_rise_death_anims["spider_zombie"][2]["out"][0] = %ai_zombie_traverse_ground_v2_death_high;
level._zombie_rise_death_anims["spider_zombie"][2]["out"][1] = %ai_zombie_traverse_ground_v2_death_high_alt;
//taunts
if( !isDefined( level._zombie_run_taunt ) )
{
level._zombie_run_taunt = [];
}
if( !isDefined( level._zombie_board_taunt ) )
{
level._zombie_board_taunt = [];
}
level._zombie_run_taunt["spider_zombie"] = [];
level._zombie_board_taunt["spider_zombie"] = [];
level._zombie_board_taunt["spider_zombie"][0] = %ai_zombie_quad_taunt;
level._zombie_board_taunt["spider_zombie"][1] = %ai_zombie_quad_taunt_2;
level._zombie_board_taunt["spider_zombie"][2] = %ai_zombie_quad_taunt_3;
level._zombie_board_taunt["spider_zombie"][3] = %ai_zombie_quad_taunt_4;
level._zombie_board_taunt["spider_zombie"][4] = %ai_zombie_quad_taunt_5;
level._zombie_board_taunt["spider_zombie"][5] = %ai_zombie_quad_taunt_6;
level._effect[ "spider_explotion" ] = LoadFX( "custom/fx_zombie_spider" );
level._effect[ "quad_trail" ] = Loadfx( "custom/fx_zombie_quad_trail" );
}
quad_thundergun_disintegrate( player )
{
self endon( "death" );
self DoDamage( self.health + 666, player.origin, player );
}
quad_thundergun_knockdown( player, gib )
{
self endon( "death" );
damage = int( self.maxhealth * 0.5 );
self DoDamage( damage, player.origin, player );
}
quad_trail()
{
self endon( "death" );
//self waittill( "quad_end_traverse_anim" );
self.fx_quad_trail = Spawn( "script_model", self GetTagOrigin( "tag_origin" ) );
self.fx_quad_trail.angles = self GetTagAngles( "tag_origin" );
self.fx_quad_trail SetModel( "tag_origin" );
self.fx_quad_trail LinkTo( self, "tag_origin" );
maps\_zombiemode_net::network_safe_play_fx_on_tag( "quad_fx", 2, level._effect[ "quad_trail" ], self.fx_quad_trail, "tag_origin" );
}
spider_post_death()
{
if( self.can_explode == true )
{
if ( isdefined( self.fx_quad_trail ) )
{
self.fx_quad_trail unlink();
self.fx_quad_trail delete();
}
mod = self.damagemod;
if ( mod == "MOD_PISTOL_BULLET" || mod == "MOD_RIFLE_BULLET" )
{
self thread quad_gas_explo_death();
}
}
}
quad_gas_explo_death()
{
death_vars = [];
death_vars["explo_radius_zomb"] = self.death_explo_radius_zomb;
death_vars["explo_radius_plr"] = self.death_explo_radius_plr;
death_vars["explo_damage_zomb"] = self.death_explo_damage_zomb;
death_vars["gas_radius"] = self.death_gas_radius;
death_vars["gas_time"] = self.death_gas_time;
self thread quad_death_explo( self.origin, death_vars );
level thread quad_gas_area_of_effect( self.origin, death_vars );
self Delete();
}
quad_death_explo( origin, death_vars )
{
playsoundatposition( "zmb_quad_explo", origin );
PlayFx( level._effect["dog_gib"], origin );
players = get_players();
zombies = GetAIArray( "axis" );
for(i = 0; i < zombies.size; i++)
{
if( Distance( origin, zombies[i].origin ) <= death_vars["explo_radius_zomb"] )
{
if( zombies[i].animname != "spider_zombie" )
{
if( zombies[i].animname != "boss_zombie1" )
{
zombies[i] DoDamage( zombies[i].maxhealth * death_vars["explo_damage_zomb"], origin );
}
}
}
}
for(i = 0; i < players.size; i++)
{
if( Distance( origin, players[i].origin ) <= death_vars["explo_radius_plr"] )
{
players[i] ShellShock( "explosion", 2.5 );
RadiusDamage( players[i].origin, death_vars["explo_radius_zomb"], 15, 10, self, "MOD_EXPLOSIVE" );
}
}
self.exploded = true;
//self RadiusDamage( origin, death_vars["explo_radius_zomb"], level.zombie_health, level.zombie_health, self, "MOD_EXPLOSIVE" );
}
quad_gas_area_of_effect( origin, death_vars )
{
effectArea = spawn( "trigger_radius", origin, 0, death_vars["gas_radius"], 100 );
PlayFX( level._effect[ "spider_explotion" ], origin );
gas_time = 0;
while( gas_time <= death_vars["gas_time"] )
{
players = get_players();
for(i = 0; i < players.size; i++)
{
if( players[i] IsTouching( effectArea ))
{
players[i] setblur( 4, .1 );
}
else
{
players[i] setblur( 0, .5 );
}
}
wait(1);
gas_time = gas_time + 1;
}
players = get_players();
for ( i = 0; i < players.size; i++ )
{
players[i] setblur( 0, .5 );
}
effectArea Delete();
}
quad_killed_override( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, psOffsetTime )
{
if ( sMeansOfDeath == "MOD_PISTOL_BULLET" || sMeansOfDeath == "MOD_RIFLE_BULLET" )
{
self.can_explode = true;
}
else
{
self.can_explode = false;
if ( isdefined( self.fx_quad_trail ) )
{
self.fx_quad_trail unlink();
self.fx_quad_trail delete();
}
}
}
quad_vox()
{
self endon( "death" );
wait( 5 );
quad_wait = 5;
while(1)
{
players = getplayers();
for(i=0;i<players.size;i++)
{
if(DistanceSquared(self.origin, players[i].origin) > 1200 * 1200)
{
self playsound( "quad_amb" );
quad_wait = 8;
}
else if(DistanceSquared(self.origin, players[i].origin) > 200 * 200)
{
self playsound( "quad_vox" );
quad_wait = 6;
}
else if(DistanceSquared(self.origin, players[i].origin) < 150 * 150)
{
self playsound( "quad_close" );
quad_wait = 3;
}
}
wait randomfloatrange( 1, quad_wait );
}
}
quad_close()
{
self endon( "death" );
while(1)
{
players = getplayers();
for(i=0;i<players.size;i++)
{
if ( is_player_valid( players[i], true ) )
{
if(DistanceSquared(self.origin, players[i].origin) < 150 * 150)
{
self playsound( "quad_close" );
wait randomfloatrange( 1, 2 );
}
}
}
wait_network_frame();
}
}



paypal.me/F3ARxReaper666![]() | Has released one or more maps to the UGX-Mods community. |
![]() | Has shown effort and knowledge in the area of scripting while being a part of the UGX-Mods community. |
your HitBoxModel is not set up right, the one you chose is for a default player sized model
![]() | Has released one or more maps to the UGX-Mods community. |
![]() | Has shown effort and knowledge in the area of scripting while being a part of the UGX-Mods community. |
should be the same as the spider model you made
![]() | 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 |
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY
/*QUAKED actor_zombie_fireman (1.0 0.25 0.0) (-16 -16 0) (16 16 32) SPAWNER FORCESPAWN UNDELETABLE ENEMYINFO
defaultmdl="char_ger_wrmcht_fullbody1"
"count" -- max AI to ever spawn from this spawner
SPAWNER -- makes this a spawner instead of a guy
FORCESPAWN -- will try to delete an AI if spawning fails from too many AI
UNDELETABLE -- this AI (or AI spawned from here) cannot be deleted to make room for FORCESPAWN guys
ENEMYINFO -- this AI when spawned will get a snapshot of perfect info about all enemies
*/
main()
{
self.animTree = "";
self.team = "axis";
self.type = "human";
self.accuracy = 0.2;
self.health = 150;
self.weapon = "kar98k";
self.secondaryweapon = "";
self.sidearm = "walther";
self.grenadeWeapon = "Stielhandgranate";
self.grenadeAmmo = 3;
self setEngagementMinDist( 256.000000, 0.000000 );
self setEngagementMaxDist( 768.000000, 1024.000000 );
character\char_zombie_fireman::main();
}
spawner()
{
self setspawnerteam("axis");
}
precache()
{
character\char_zombie_fireman::precache();
}
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY
/*QUAKED actor_zombie_spider (1.0 0.25 0.0) (-16 -16 0) (16 16 72) SPAWNER FORCESPAWN UNDELETABLE ENEMYINFO
defaultmdl="spider1"
"count" -- max AI to ever spawn from this spawner
SPAWNER -- makes this a spawner instead of a guy
FORCESPAWN -- will try to delete an AI if spawning fails from too many AI
UNDELETABLE -- this AI (or AI spawned from here) cannot be deleted to make room for FORCESPAWN guys
ENEMYINFO -- this AI when spawned will get a snapshot of perfect info about all enemies
*/
main()
{
self.animTree = "";
self.team = "axis";
self.type = "human";
self.accuracy = 0.2;
self.health = 150;
self.weapon = ""; // spider_weapon ----- I work on it later
self.secondaryweapon = "";
self.sidearm = "walther";
self.grenadeWeapon = "Stielhandgranate";
self.grenadeAmmo = 3;
self setEngagementMinDist( 256.000000, 0.000000 );
self setEngagementMaxDist( 768.000000, 1024.000000 );
character\char_zombie_spider::main();
}
spawner()
{
self setspawnerteam("axis");
}
precache()
{
character\char_zombie_spider::precache();
precacheItem("");
precacheItem("walther");
precacheItem("Stielhandgranate");
}
![]() | 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 |
Then it's prob the hitbox.. I believe it get generatedfor your model as long as they have the correct hierarchy, bone-names etc. Obv that's not going to happen for your spider model vs the roebuck-hitbox.
Think if you use the xmodel as hitbox it could work, as long as you have a collision-lod on your .xmodel ( i've had problems with this as well, but it's been a while. Cant remember everything exactly. )

![]() | 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. |
Does your model have tag_origin and j_ joint names?
If you included it in gdt as a "model" and then change it to an "animated model" you might need to delete
raw/xmodel/spider ect then reconvert.
the bo3 spider is a vehicle, not a normal ai