• If you have a mod, tool or prefab, please use the Resources section. Click Mods at the top of the forums.

I Need Help with My Screamer

scm1893

New member
https://steamcommunity.com/sharedfiles/filedetails/?id=2066221089

My skill level is cut and paste. Borrowing heavily from Snufkin, Robeloto, Guppycur, JaxTeller718, KhaineGB and War3zuk, I modded the screamer.

Basic Screamer - transparent - flies - scream has AoE

Feral Screamer - add electric energy to appearance - add shock buff to melee attack

Radiated Screamer - add electrical projectile attack

However crude the code is, most of it works. She looks good. She flies. She screams and her AoE works but...

She won't target me unless I injure her. She never uses the projectile attack. And, when spawned from the heat map, her scream isn't calling any zombies.

Here's some (rough) code to look at. Any help or pointers to clean up the code will be appreciated.

==== entities =====

<entity_class name="zombieScreamer" extends="zombieTemplateMale">

<property name="Tags" value="entity,zombie,walker"/>

<property name="Mesh" value="Zombies/zombieStandardScreamerRagdoll"/>

<!-- change appearance -->

<property name="ReplaceMaterial0" value="particleeffects/models/materials/p_glass"/>

<!-- add ability to fly -->

<property name="Class" value="EntityVulture"/>

<property name="SoundRandom" value="Enemies/Base_Zombie_Female/zombiefemalescoutroam"/>

<property name="SoundAlert" value="Enemies/Scout_Zombie/zombiefemalescoutalert"/>

<property name="SoundAttack" value="Enemies/Base_Zombie_Female/zombiefemalescoutattack"/>

<property name="SoundHurt" value="Enemies/Base_Zombie_Female/zombiefemalescoutpain"/>

<property name="SoundDeath" value="Enemies/Base_Zombie_Female/zombiefemalescoutdeath"/>

<property name="SoundSense" value="Enemies/Base_Zombie_Female/zombiefemalescoutsense"/>

<property name="AvatarController" value="AvatarZombie01Controller"/>

<!-- alter hit box to compensate for insubstantiality of body -->

<property name="Mass" value="50"/>

<property name="ModelType" value="Standard"/>

<property name="SizeScale" value=".6"/>

<!-- remove walk type -->

<property name="RootMotion" value="true"/>

<property name="HasDeathAnim" value="true"/>

<property name="AIPathCostScale" value=".5, .6"/>

<!-- Gameplay -->

<property name="HandItem" value="meleeHandZombieScreamer"/>

<!-- change movement speed -->

<property name="MaxTurnSpeed" value="150"/>

<property name="MoveSpeed" value=".7"/>

<property name="MoveSpeedAggro" value="1, 1.5"/>

<property name="MoveSpeedPanic" value="1.5"/>

<property name="CanClimbLadders" value="false"/>

<property name="JumpMaxDistance" value="0"/>

<property name="ExperienceGain" value="2000"/>

<effect_group name="Base Effects">

<passive_effect name="HealthMax" operation="base_set" value="125"/>

<passive_effect name="HealthMax" operation="perc_set" value="1"/> <!-- Zombie HP scale -->

<!-- add AoE buff -->

<triggered_effect trigger="onSelfFirstSpawn" action="AddBuff" target="self" buff="buffBansheeScream"/>

</effect_group>

</entity_class>

<entity_class name="zombieScreamerFeral" extends="zombieScreamer">

<property name="Tags" value="entity,zombie,walker,feral"/>

<!-- Gameplay -->

<property name="DismemberMultiplierHead" value=".7"/><property name="DismemberMultiplierArms" value=".7"/><property name="DismemberMultiplierLegs" value=".7"/><!-- Feral -->

<property name="PainResistPerHit" value=".25"/><!-- Feral -->

<property name="MoveSpeedAggro" value="1.5, 1.75"/>

<!-- add shock buff to attack -->

<property name="HandItem" value="meleeHandZombieFeral"/>

<property name="ExperienceGain" value="2750"/> <!-- XP grunt feral -->

<property name="LootDropProb" value=".03"/> <!-- Feral -->

<effect_group name="Base Effects">

<passive_effect name="HealthMax" operation="base_set" value="190"/>

<passive_effect name="HealthMax" operation="perc_set" value="1"/> <!-- Zombie HP scale -->

<passive_effect name="EntityDamage" operation="perc_add" value="0"/> <!-- Feral damage -->

<!-- add electric energy to appearance -->

<triggered_effect trigger="onSelfFirstSpawn" action="AddBuff" target="self" buff="buffIsFeralScreamer"/>

</effect_group>

</entity_class>

<entity_class name="zombieScreamerRadiated" extends="zombieScreamerFeral">

<property name="Tags" value="entity,zombie,walker,feral,radiated"/>

<!-- Gameplay -->

<property name="DismemberMultiplierHead" value=".4"/><property name="DismemberMultiplierArms" value=".4"/><property name="DismemberMultiplierLegs" value=".4"/><!-- Radiated -->

<property name="PainResistPerHit" value=".5"/><!-- Radiated -->

<property name="MoveSpeedAggro" value="2, 2"/>

<!-- add projectile attack -->

<property name="HandItem" value="meleeHandZombieScreamerRadiated"/>

<property name="ExperienceGain" value="3500"/> <!-- XP grunt radiated -->

<property name="LootDropProb" value=".03"/> <!-- Radiated -->

<effect_group name="Base Effects">

<passive_effect name="HealthMax" operation="base_set" value="270"/>

<passive_effect name="HealthMax" operation="perc_set" value="1"/> <!-- Zombie HP scale -->

<passive_effect name="EntityDamage" operation="perc_add" value="0"/> <!-- Feral damage -->

<triggered_effect trigger="onOtherDamagedSelf" action="ModifyCVar" target="self" cvar="RadiatedRegenAmount" operation="set" value="2.5"/>

<triggered_effect trigger="onOtherDamagedSelf" action="AddBuff" target="self" buff="buffRadiatedRegen"/>

</effect_group>

</entity_class>

==== items =====

<!-- not intended to be a brawler - her forte is hindering the player until the other zombies arrive -->

<item name="meleeHandZombieScreamer">

<property name="Extends" value="meleeHandMaster"/>

<property name="CreativeMode" value="None"/>

<property name="Degradation" value="99999" param1="true"/>

<property class="Action0">

<property name="Range" value="0.85"/>

<property name="DamageEntity" value="8"/>

<property name="DamageBlock" value="5"/>

<property name="Buff" value="buffInjuryBleedingZombie,buffInfectionCatch ,buffInjuryStunned01"/>

<property name="Buff_chance" value=".2,.2,.25"/>

</property>

<effect_group name="meleeHandZombieScreamer" tiered="false">

<triggered_effect trigger="onSelfDamagedOther" action="ModifyCVar" target="other" cvar="infectionZombieHit" operation="set" value="30"/><!--InfectionRegular-->

</effect_group>

</item>

<item name="meleeHandZombieScreamerFeral">

<property name="Extends" value="meleeHandZombieScreamer"/>

<property name="CreativeMode" value="None"/>

<property name="Degradation" value="99999" param1="true"/>

<property class="Action0">

<property name="Range" value="0.9"/>

<property name="DamageEntity" value="12"/>

<property name="DamageBlock" value="6"/>

<!-- add shock buff - replaced buffStunned -->

<property name="Buff" value="buffInjuryBleedingZombie,buffInfectionCatch ,buffShocked"/>

<property name="Buff_chance" value=".3,.3,.65"/>

</property>

<effect_group name="meleeHandZombieScreamer" tiered="false">

<triggered_effect trigger="onSelfDamagedOther" action="ModifyCVar" target="other" cvar="infectionZombieHit" operation="set" value="30"/><!--InfectionRegular-->

</effect_group>

</item>

<item name="meleeHandZombieScreamerRadiated">

<property name="Extends" value="meleeHandZombieScreamerFeral"/>

<property name="CreativeMode" value="None"/>

<property class="Action0">

<property name="Delay" value=".7"/>

<!-- obsolete if rounds per minute exists -->

<property name="DamageEntity" value="18"/>

<property name="DamageBlock" value="8"/>

</property>

<!-- add projectile attack -->

<property class="Action1">

<property name="Class" value="Vomit"/>

<property name="Hitmask_override" value="Arrow"/>

<property name="Delay" value=".5"/>

<property name="Infinite_ammo" value="true"/>

<property name="Magazine_items" value="ammoProjectileScreamerRadiated"/>

<property name="Sound_warning" value=""/>

<property name="Sound_start" value=""/>

<property name="Sound_repeat" value=""/>

<property name="Sound_end" value=""/>

<property name="Sound_empty" value=""/>

<property name="Sound_reload" value=""/>

<property name="Buff" value="buffShocked"/></property>

<effect_group name="meleeHandZombieScreamer" tiered="false">

<passive_effect name="ModSlots" operation="base_set" value="0"/>

<!--<passive_effect name="AttacksPerMinute" operation="base_set" value="55"/> A16 .7, 50=1.2 -->

<passive_effect name="MagazineSize" operation="base_set" value="1"/>

<passive_effect name="BurstRoundCount" operation="base_set" value="6"/>

<passive_effect name="SpreadDegreesVertical" operation="base_set" value="6"/>

<passive_effect name="SpreadDegreesHorizontal" operation="base_set" value="15"/>

<passive_effect name="SpreadMultiplierIdle" operation="base_set" value="1"/>

<passive_effect name="DamageFalloffRange" operation="base_set" value="50"/>

<passive_effect name="MaxRange" operation="base_set" value="50"/>

</effect_group>

</item>

<item name="ammoProjectileScreamerRadiated">

<property name="Meshfile" value="particleeffects/p_electric_shock"/>

<property name="Material" value="Morganic"/>

<property name="CreativeMode" value="None"/>

<property class="Action1">

<property name="Class" value="Projectile"/>

<property name="DamageEntity" value="15"/>

<property name="DamageBlock" value="12"/>

<property name="Explosion.ParticleIndex" value="12"/>

<property name="Explosion.RadiusEntities" value="2"/> <!-- damage radius for entities -->

<property name="Velocity" value="13"/>

<property name="FlyTime" value="6"/>

<property name="LifeTime" value="8"/>

<property name="CollisionRadius" value=".5"/>

<property name="Buff" value="buffShocked"/>

</property>

<effect_group name="ammoProjectileScreamerRadiated" tiered="false">

<passive_effect name="DamageModifier" operation="perc_set" value="0" tags="earth"/>

<passive_effect name="DamageModifier" operation="perc_set" value="0.5" tags="stone"/>

<passive_effect name="DamageModifier" operation="perc_add" value="1.2" tags="metal"/>

<passive_effect name="BuffProcChance" operation="base_set" value=".20" tags="buffInfectionCatch"/>

<passive_effect name="BuffProcChance" operation="base_set" value="0.90" tags="buffShocked"/>

<triggered_effect trigger="onSelfDamagedOther" action="ModifyCVar" target="other" cvar="infectionZombieHit" operation="set" value="60"/><!--InfectionRadiated-->

</effect_group>

</item>

==== buffs =====

<buff name="buffIsFeralScreamer" name_key="buffRadiatedRegenDesc" description_key="buffRadiatedRegenDesc" tooltip_key="buffRadiatedRegenDesc" icon="ui_game_symbol_radiation" icon_color="255,0,0">

<stack_type value="ignore"/>

<duration value="2000000000"/>

<update_rate value="2.5"/>

<effect_group>

<passive_effect name="BuffResistance" operation="base_add" value="1" tags="buffShocked,buffInjuryShocked01,"/>

<triggered_effect trigger="onSelfBuffStart" action="AttachParticleEffectToEntity" particle="p_electric_shock" local_offset="0,0.75,0"/>

<triggered_effect trigger="onSelfBuffUpdate" action="AttachParticleEffectToEntity" particle="p_electric_shock" local_offset="0,0.75,0"/>

<triggered_effect trigger="onSelfDied" action="RemoveParticleEffectFromEntity" particle="p_electric_shock"/>

</effect_group>

</buff>

<buff name="buffBansheeScream" hidden="true">

<update_rate value="12"/>

<effect_group>

<triggered_effect trigger="onSelfBuffUpdate" action="PlaySound" sound="bansheebuff0"/>

<triggered_effect trigger="onSelfBuffUpdate" action="AddBuff" target="positionAOE" range="12" buff="buffBanshee"/>

</effect_group>

</buff>

<buff name="buffBanshee" hidden="true">

<stack_type value="replace"/>

<duration value="6"/>

<effect_group>

<passive_effect name="RunSpeed" operation="perc_subtract" value="0.8,.2" duration="0,4">

<requirement name="EntityTagCompare" tags="player"/>

</passive_effect>

<passive_effect name="WalkSpeed" operation="perc_subtract" value="0.8,.2" duration="0,4">

<requirement name="EntityTagCompare" tags="player"/>

</passive_effect>

<passive_effect name="CrouchSpeed" operation="perc_subtract" value="0.8,.2" duration="0,4">

<requirement name="EntityTagCompare" tags="player"/>

</passive_effect>

<passive_effect name="JumpStrength" operation="perc_subtract" value="0.8,.2" duration="0,4">

<requirement name="EntityTagCompare" tags="player"/>

</passive_effect>

<triggered_effect trigger="onSelfBuffStart" action="ModifyScreenEffect" intensity="2" fade="1" effect_name="Blur"/>

<triggered_effect trigger="onSelfBuffStart" action="ModifyScreenEffect" intensity=".5" fade="1" effect_name="Radiation" />

<triggered_effect trigger="onSelfBuffStart" action="ModifyScreenEffect" intensity="1" effect_name="Drunk" fade="1"/>

<triggered_effect trigger="onSelfBuffRemove" action="ModifyScreenEffect" intensity="0" fade="1" effect_name="Blur"/>

<triggered_effect trigger="onSelfBuffRemove" action="ModifyScreenEffect" intensity="0" fade="1" effect_name="Radiation" />

<triggered_effect trigger="onSelfBuffRemove" action="ModifyScreenEffect" intensity="0" effect_name="Drunk" fade="1"/>

<triggered_effect trigger="onSelfDied" action="ModifyScreenEffect" intensity="0" fade="1" effect_name="Blur"/>

<triggered_effect trigger="onSelfDied" action="ModifyScreenEffect" intensity="0" fade="1" effect_name="Radiation" />

<triggered_effect trigger="onSelfDied" action="ModifyScreenEffect" intensity="0" effect_name="Drunk" fade="1"/>

<triggered_effect trigger="onSelfBuffStart" action="PlaySound" sound="bansheebuff0" play_in_head="true">

<requirement name="EntityTagCompare" tags="player"/>

</triggered_effect>

<triggered_effect trigger="onSelfBuffStart" action="PlaySound" sound="bansheebuff1" play_in_head="true">

<requirement name="EntityTagCompare" tags="player"/>

</triggered_effect>

</effect_group>

</buff>

==== sounds =====

<SoundDataNode name="bansheescream">

<AudioSource name="Sounds/AudioSource_Screamer"/>

<AudioClip ClipName="Sounds/Enemies/Scout_Zombie/zombiefemalescoutalert3"/>

<Channel name="Mouth"/>

<Priority name="3"/>

<maxVoicesPerEntity value="10"/>

<LowestPitch name="0.95"/>

<HighestPitch name="1.05"/>

<LocalCrouchVolumeScale value="1.0"/>

<CrouchNoiseScale value="0.5"/>

<NoiseScale value="1"/>

<MaxVoices value="10"/>

<MaxRepeatRate value="0.01"/>

</SoundDataNode>

<SoundDataNode name="bansheebuff0">

<AudioSource name="Sounds/AudioSource_Notifications"/>

<AudioClip ClipName="Sounds/Enemies/Scout_Zombie/zombiefemalescoutalert2"/>

<LocalCrouchVolumeScale value="1.0"/>

<CrouchNoiseScale value="0.5"/>

<NoiseScale value="1"/>

<MaxVoices value="10"/>

<MaxRepeatRate value="0.01"/>

</SoundDataNode>

<SoundDataNode name="bansheebuff1">

<AudioSource name="Sounds/AudioSource_Notifications"/>

<AudioClip ClipName="Sounds/Ambient_Oneshots/a_horde_oneshot2"/>

<LocalCrouchVolumeScale value="1.0"/>

<CrouchNoiseScale value="0.5"/>

<NoiseScale value="1"/>

<MaxVoices value="10"/>

<MaxRepeatRate value="0.01"/>

</SoundDataNode>
 
First of all, I'm sure your wife has a name. ;)

I don't remember if AITasks extend or not, so you may want to add those in to her entry.

 
Hi TSBX,

I tried inserting AI tasks/targets from the vulture and other sources I knew were working. I tried eliminating all but the ones that targeted the player/entity but it didn't change.

Lol. It took me a couple of minutes to make the wife connection. I was thinking I'd left a comment about her somewhere in the notes.

 
Your using the vulture class on the entity. The vulture class ignores AI tasks. If you want it to fly and attack on sight, use the hornet class.

The vulture and hornet classes send parameters to the unity controller embedded in the entity. Not sure what strangeness might happen with a flying class talking to the standard zombie controller.

You wont get the screaming generating a horde unless this new creature is in the scoutgroup of entitygroups.

 
Thanks xyth,

I'll make the switch. Now, she behaves just like a vulture, flying around the map and screaming once in awhile.

The scout group and the entity have the same name, zombieScreamer. I only got her to spawn from the heat map once, for sure. I'll try again.

EDIT: hornet class made the difference for targeting. she attacks on site now. she still doesn't use the projectile attack. It looks like she positions herself for it, but nothing happens. I spawned 2 in from the heat map but their screams didn't summon any zombies. But, she is the pest I wanted her to be.

 
Last edited by a moderator:
Cool. The hornet class likely wont support vomiting, as its the parent class of the vulture class and I think that vomit ability is in the vulture class. Since your mixing classes you can expect some things not to work as expected.

 
Yeah, one can't have everything. It doesn't look like her scream is calling zombies, anyway. I'm thinking I'll return the screamer to vanilla and change the name on this one. I'm gonna to try and spawn them from cemetery POIs.

 
Back
Top