Need help with plugins or servers? Join our Discord

Modding Database

Up to date with Steam · checked 14s ago· Viewing build 6701 (Sep 25 2026), not the latest

ability_familiar_helpinghands

Lil Helpersability

class ability_familiar_helpinghands · Rem Signature 3 · inherits from signature_base

Deadworks (C#)
pawn.AddAbility("ability_familiar_helpinghands", (ushort)EAbilitySlot.Signature3);
pawn.RemoveAbility("ability_familiar_helpinghands");

Properties

Ability values, by the name modifiers and AddModifier overrides use. Tier columns are what each upgrade adds; "scaling" is how much more the value grows with spirit power or another stat.

PropertyEnglish labelValueTier 1Tier 2Tier 3Provides
DPSDamage Per Second0
DamageDamage20
ArmTimeArm Time0.1
TickRate0.2
TechPowerSpirit Power0TECH_POWER
AuraRadiusAura Radius10m
InfestHealTrooper Heal8
HelperCount1+1+1+1
WeaponPowerWeapon Damage0WEAPON_POWER
DPSPerSprite1
TechArmorGain12+15TECH_RESIST
AbilityChargesCharges0
AuraSoftRadius10m
BonusMoveSpeedMove Speed3.0m+1.5mMOVEMENT_SPEED_MAX
AbilityCooldownCooldown0
AbilityDurationDuration0
AbilityCastDelayCast Delay0.1
AbilityCastRangeCast Range45m
AuraAttackHeight10m
ChannelMoveSpeed-1
HelpersPerPatrol4
NPCInfestDuration50
AbilityChannelTimeChannel Duration0
InfestHealInterval2.0
AbilityResourceCost0
AllowObjectiveAttach0
PatrolDamageCooldown10
PlayerInfestDurationDuration8
AbilityUnitTargetLimit1
HelperDowntimeDuration15.1
AbilityPostCastDuration0
InfestBurstHealthPercent75
InfestDamageTakenPercent30+15
HelperChoreCooldownDuration5
AbilityCooldownBetweenChargeCharge Delay-1.0

Modifiers

Defined inside this ability. AddModifier finds each by its scoped name.

Name for AddModifierClassReads ability values
ability_familiar_helpinghands/aiaggromodifier_neutral_aggro
ability_familiar_helpinghands/aiphysicsmodifier_familiar_ai_physics
ability_familiar_helpinghands/familiar_helper_invis_watchermodifier_familiar_helper_invis_watcher
ability_familiar_helpinghands/infestcitadel_modifier_familiar_infested
ability_familiar_helpinghands/infestwaitingmodifier_base

VData

_class"ability_familiar_helpinghands"
_editor
1 key
{
  "folder_name": "Hero Familiar"
}
_multibase
1 item
[
  "signature_base"
]
m_iMaxLevel1
m_WeaponInfo
11 keys
{
  "m_flBulletSpeed": 1100,
  "m_flBulletRadius": 2.5,
  "m_flVerticalAimBias": 6,
  "m_flBulletGravityScale": 1.2,
  "m_strBulletImpactSound": "",
  "m_eAttachmentSourceType": "EAttachmentSource_WeaponMuzzles",
  "m_flBulletRadiusVsWorld": 2.5,
  "m_strBulletLoopingSound": "Familiar.HelpingHands.Projectile.Lp",
  "m_strWeaponImpactEffect": "particles/abilities/familiar/familiar_helpinghand_cast_projectile_impact.vpcf",
  "m_szMuzzleFlashEffectName": "particles/weapon_fx/familiar/familiar_muzzle_flash.vpcf",
  "m_szBulletTravelTracerParticle": "particles/abilities/familiar/familiar_helpinghand_cast_projectile.vpcf"
}
m_iUpdateTime0
m_HealParticle"particles/abilities/familiar/familiar_helpinghand_heal.vpcf"
m_eAbilityType"EAbilityType_Signature"
m_flHomingBias1000
m_strCastSound"Familiar.HelpingHands.Cast"
m_EmoteParticle"particles/abilities/familiar/familiar_helpinghand_emote.vpcf"
m_bStartTrainedfalse
m_DamageParticle"particles/abilities/familiar/familiar_helpinghand_damage.vpcf"
m_HelperParticle""
m_InfestModifier
8 keys
{
  "_class": "citadel_modifier_familiar_infested",
  "m_sStartSound": "",
  "_my_subclass_name": "infest",
  "m_eDrawOverheadStatus": "OVERHEAD_DRAW_FOR_CASTER_ONLY",
  "m_eHudDisplayLocation": "DISPLAY_HUD_NONE",
  "m_sAmbientLoopingSound": "Familiar.HelpingHands.Buff.Lp",
  "m_strParticleStatusEffect": "",
  "m_eModifierDisplayLocaiton": "MODIFIER_DISPLAY_HEALTHBAR"
}
m_ScaredParticle"particles/abilities/familiar/familiar_helpinghand_emote_scare.vpcf"
m_deploymentInfo
0 keys
{}
m_flHealInterval1
m_flLaunchBiasUp300
m_projectileInfo
12 keys
{
  "m_flSpeed": 800,
  "m_flUpSpeed": 100,
  "m_nBehaviors": "PBF_OnlyTouchWorld",
  "m_flGravityScale": 0.1,
  "m_flPhysicsRadius": 1,
  "m_flTriggerRadius": 3,
  "m_eProjectileShape": "Sphere",
  "m_flMaxLinearRange": 1000,
  "m_flTrackingStartTime": 1,
  "m_bHideWarningParticle": true,
  "m_flProjectileModelScale": 1,
  "m_flTrackingDampingCoefficient": 0.5
}
m_AIAggroModifier
3 keys
{
  "_class": "modifier_neutral_aggro",
  "m_bIsHidden": true,
  "_my_subclass_name": "aiaggro"
}
m_EmoteSpinByTime
4 keys
{
  "m_spline": [
    {
      "x": 0,
      "y": 0,
      "m_flSlopeIncoming": 62.410473,
      "m_flSlopeOutgoing": 62.410473
    },
    {
      "x": 0.368528,
      "y": 23,
      "m_flSlopeIncoming": 45.306351,
      "m_flSlopeOutgoing": 45.306351
    },
    {
      "x": 0.507655,
      "y": 23,
      "m_flSlopeIncoming": -50.836708,
      "m_flSlopeOutgoing": -50.836708
    },
    {
      "x": 0.820957,
      "y": 0,
      "m_flSlopeIncoming": -73.411644,
      "m_flSlopeOutgoing": -73.411644
    }
  ],
  "m_tangents": [
    {
      "m_nIncomingTangent": "CURVE_TANGENT_SPLINE",
      "m_nOutgoingTangent": "CURVE_TANGENT_SPLINE"
    },
    {
      "m_nIncomingTangent": "CURVE_TANGENT_SPLINE",
      "m_nOutgoingTangent": "CURVE_TANGENT_SPLINE"
    },
    {
      "m_nIncomingTangent": "CURVE_TANGENT_SPLINE",
      "m_nOutgoingTangent": "CURVE_TANGENT_SPLINE"
    },
    {
      "m_nIncomingTangent": "CURVE_TANGENT_SPLINE",
      "m_nOutgoingTangent": "CURVE_TANGENT_SPLINE"
    }
  ],
  "m_vDomainMaxs": [
    1,
    23
  ],
  "m_vDomainMins": [
    0,
    0
  ]
}
m_flCollisionSize50
m_previewParticle"particles/abilities/familiar/familiar_helpinghand_preview.vpcf"
m_strAbilityImage"file://{images}/hud/abilities/familiar/familiar_helpers.psd"
m_InfestedParticle"particles/abilities/familiar/familiar_helpinghand_infest_buff.vpcf"
m_flLaunchMaxSpeed2000
m_strSelectedSound"Familiar.HelpingHands.Select"
m_AIPhysicsModifier
2 keys
{
  "_class": "modifier_familiar_ai_physics",
  "_my_subclass_name": "aiphysics"
}
m_flBossDamageScale1
m_flCollisionHeight100
m_flLaunchSpeedMult550
m_eAbilityActivation"CITADEL_ABILITY_ACTIVATION_PRESS"
m_flSpawnLaunchForce250
m_nAbilityPointsCost0
m_strHelperBuffSound"Familiar.HelpingHands.Buff.Start"
m_strUnselectedSound"Familiar.HelpingHands.Deselect"
m_PreviewPathParticle"particles/generic/generic_arc.vpcf"
m_eTargettingLOSCheck"ELOSCheck_Bounds_IgnoreObscureBlockers"
m_flSpawnLaunchUpBias50
m_nAbilityTargetFlags"CITADEL_UNIT_TARGET_FLAG_PENETRATE_INVULNERABLE | CITADEL_UNIT_TARGET_FLAG_ALLOW_BREAKABLES"
m_nAbilityTargetTypes"CITADEL_UNIT_TARGET_TROOPER_FRIENDLY | CITADEL_UNIT_TARGET_HERO_FRIENDLY | CITADEL_UNIT_TARGET_MINION_FRIENDLY | CITADEL_UNIT_TARGET_NEUTRAL | CITADEL_UNIT_TARGET_BREAKABLE_PROP | CITADEL_UNIT_TARGET_PROP | CITADEL_UNIT_TARGET_TROPHY"
m_strAG2CastingAction"helping_cast"
m_strHelperEmoteSound"Familiar.HelpingHands.Emote"
m_strHelperShootSound"Familiar.HelpingHands.Shoot"
m_strHelperSpawnSound"Familiar.HelpingHands.Emote"
m_AbilityBehaviorsBits"CITADEL_ABILITY_BEHAVIOR_CAN_SET_QUICK_CAST | CITADEL_ABILITY_BEHAVIOR_DONT_INTERRUPT_SPRINT | CITADEL_ABILITY_BEHAVIOR_ALLOW_SELF_CAST | CITADEL_ABILITY_BEHAVIOR_DAMAGE_DOESNT_WAKE_FROM_SLEEP | CITADEL_ABILITY_BEHAVIOR_DISPLAYS_DAMAGE_IMPACT | CITADEL_ABILITY_BEHAVIOR_DO_NOT_ALLOW_SPAM_PROC | CITADEL_ABILITY_BEHAVIOR_DONT_INTERRUPT_SLIDE_ON_CAST | CITADEL_ABILITY_BEHAVIOR_USE_INSTANT_CAST_UNIT_TARGET_UI"
m_AuraInactiveParticle"particles/abilities/familiar/familiar_helpinghand_ground_inactive.vpcf"
m_EmoteVelocityZByTime
4 keys
{
  "m_spline": [
    {
      "x": 0,
      "y": 0,
      "m_flSlopeIncoming": 724.295471,
      "m_flSlopeOutgoing": 724.295471
    },
    {
      "x": 0.138065,
      "y": 100,
      "m_flSlopeIncoming": 367.806305,
      "m_flSlopeOutgoing": 367.806305
    },
    {
      "x": 0.271882,
      "y": 100,
      "m_flSlopeIncoming": -270.570221,
      "m_flSlopeOutgoing": -270.570221
    },
    {
      "x": 0.507655,
      "y": 0,
      "m_flSlopeIncoming": -137.340424,
      "m_flSlopeOutgoing": -137.340424
    },
    {
      "x": 1,
      "y": 0,
      "m_flSlopeIncoming": 0,
      "m_flSlopeOutgoing": 0
    }
  ],
  "m_tangents": [
    {
      "m_nIncomingTangent": "CURVE_TANGENT_SPLINE",
      "m_nOutgoingTangent": "CURVE_TANGENT_SPLINE"
    },
    {
      "m_nIncomingTangent": "CURVE_TANGENT_SPLINE",
      "m_nOutgoingTangent": "CURVE_TANGENT_SPLINE"
    },
    {
      "m_nIncomingTangent": "CURVE_TANGENT_SPLINE",
      "m_nOutgoingTangent": "CURVE_TANGENT_SPLINE"
    },
    {
      "m_nIncomingTangent": "CURVE_TANGENT_SPLINE",
      "m_nOutgoingTangent": "CURVE_TANGENT_SPLINE"
    },
    {
      "m_nIncomingTangent": "CURVE_TANGENT_SPLINE",
      "m_nOutgoingTangent": "CURVE_TANGENT_SPLINE"
    }
  ],
  "m_vDomainMaxs": [
    1,
    100
  ],
  "m_vDomainMins": [
    0,
    0
  ]
}
m_HelperCreateParticle"particles/abilities/familiar/familiar_helpinghand_create.vpcf"
m_InfestedHeroParticle"particles/abilities/familiar/familiar_helpinghand_infest_herobuff.vpcf"
m_InvisWatcherModifier
3 keys
{
  "_class": "modifier_familiar_helper_invis_watcher",
  "m_bIsHidden": true,
  "_my_subclass_name": "familiar_helper_invis_watcher"
}
m_flTargetingConeAngle35
m_nAbillityUnlocksCost1
m_strHelperScaredSound"Familiar.HelpingHands.Emote.Scared"
m_strSelectedLoopSound"Familiar.HelpingHands.Select.Lp"
m_strSubCastUICSSClass"subcast_familiar"
m_AbilityTooltipDetails
1 key
{
  "m_vecAbilityInfoSections": [
    {
      "m_strLocString": "#ability_familiar_helpinghands_desc",
      "m_vecBasicProperties": [],
      "m_vecAbilityPropertiesBlock": []
    },
    {
      "m_strLocString": "",
      "m_vecAbilityPropertiesBlock": [
        {
          "m_vecAbilityProperties": [
            {
              "m_strImportantProperty": "TechArmorGain"
            },
            {
              "m_strImportantProperty": "BonusMoveSpeed"
            },
            {
              "m_strImportantProperty": "PlayerInfestDuration"
            }
          ],
          "m_strPropertiesTitleLocString": "#ability_header_helpinghands_ally"
        }
      ]
    },
    {
      "m_strLocString": "",
      "m_vecAbilityPropertiesBlock": [
        {
          "m_vecAbilityProperties": [
            {
              "m_strImportantProperty": "InfestDamageTakenPercent"
            },
            {
              "m_strImportantProperty": "InfestHeal"
            },
            {
              "m_strImportantProperty": "NPCInfestDuration"
            }
          ],
          "m_strPropertiesTitleLocString": "#ability_header_helpinghands_trooper"
        }
      ]
    }
  ]
}
m_AuraIndicatorParticle"particles/abilities/familiar/familiar_helpinghand_ground.vpcf"
m_HelperDestroyParticle"particles/abilities/familiar/familiar_helpinghand_destroy.vpcf"
m_HelperStunnedParticle"particles/modifiers/stunned_orbit_node.vpcf"
m_InfestWaitingModifier
4 keys
{
  "_class": "modifier_base",
  "m_bIsHidden": true,
  "_my_subclass_name": "infestwaiting",
  "m_nEnabledStateMask": "MODIFIER_STATE_FAMILIAR_INFEST_WAITING"
}
m_flDamageCollisonScale1.75
m_skillshotMissParticle"particles/abilities/skillshot_default_miss_owner.vpcf"
m_DamageAttachedParticle"particles/abilities/familiar/familiar_helpinghand_damage_attached.vpcf"
m_HelperAttachedParticle"particles/abilities/familiar/familiar_helpinghand_debuff.vpcf"
m_HelperSleepingParticle"particles/abilities/familiar/familiar_helpinghand_zzz.vpcf"
m_bitsInterruptingStates"MODIFIER_STATE_STUNNED"
m_eAbilityTargetingShape"CITADEL_ABILITY_TARGETING_SHAPE_CONE"
m_flMoveTolerance_Meters0.5
m_flNewlySpawnedWaitTime0.5
m_strAG2ChannelingAction"helping_channeling"
m_HelperAttackingParticle"particles/abilities/familiar/familiar_helpinghand_heal_body.vpcf"
m_flInfestedNPCModelScale1.15
m_strHelperHealTroopSound"Familiar.HelpingHands.Heal.Troop"
m_HelperChargingUpParticle"particles/abilities/familiar/familiar_helpinghand_chargeup.vpcf"
m_HelperTeleportInParticle"particles/abilities/nano/nano_cat_cast.vpcf"
m_flTargetingConeHalfWidth40
m_strAltCastButtonLocToken"#AbilityButtonHint_CastOnHost"
m_strHelperFoundEnemySound"Familiar.HelpingHands.Emote.Attack"
m_HelperTeleportOutParticle"particles/abilities/nano/nano_cat_cast.vpcf"
m_eAbilityTargetingLocation"CITADEL_ABILITY_TARGETING_LOCATION_UNIT"
m_strAG2CastCompletedAction"helping_cast_completed"
m_PatrolTravelTimeByDistance
4 keys
{
  "m_spline": [
    {
      "x": 0,
      "y": 1,
      "m_flSlopeIncoming": 0.0015,
      "m_flSlopeOutgoing": 0.0015
    },
    {
      "x": 1000.000122,
      "y": 2,
      "m_flSlopeIncoming": 0.0015,
      "m_flSlopeOutgoing": 0.0015
    },
    {
      "x": 1000.000244,
      "y": 3,
      "m_flSlopeIncoming": 0,
      "m_flSlopeOutgoing": 0
    }
  ],
  "m_tangents": [
    {
      "m_nIncomingTangent": "CURVE_TANGENT_SPLINE",
      "m_nOutgoingTangent": "CURVE_TANGENT_SPLINE"
    },
    {
      "m_nIncomingTangent": "CURVE_TANGENT_SPLINE",
      "m_nOutgoingTangent": "CURVE_TANGENT_SPLINE"
    },
    {
      "m_nIncomingTangent": "CURVE_TANGENT_SPLINE",
      "m_nOutgoingTangent": "CURVE_TANGENT_SPLINE"
    }
  ],
  "m_vDomainMaxs": [
    1000,
    3
  ],
  "m_vDomainMins": [
    0,
    1.5
  ]
}
m_strAbilityChargeReadySound""
m_strAbilityOffCooldownSound""
m_CastRegionIndicatorParticle"particles/abilities/familiar/familiar_helpinghand_range.vpcf"
m_bitsChannelEnabledStateMask"MODIFIER_STATE_BUSY_WITH_ACTION"
m_bitsPreCastEnabledStateMask"MODIFIER_STATE_BUSY_WITH_ACTION"
m_HelperTargetIndicateParticle"particles/abilities/familiar/familiar_helpinhands_targetindicator.vpcf"
m_bitsPostCastEnabledStateMask"MODIFIER_STATE_BUSY_WITH_ACTION"
m_strPreviewParticleEffectConfig"target"
m_flTolerance_CloseToPlayer_Meters4
m_flTolerance_FarFromPlayer_Meters60
m_bShowTargetingPreviewWhileCastingtrue
m_flMoveTolerance_UnitTarget_Meters7

History

  1. 6722–6745changed
    • +m_mapWeaponInfos
      { 1 key }
      {
      	primary = 
      	{
      		m_flBulletSpeed = 1100
      		m_flBulletRadius = 2.5
      		m_flVerticalAimBias = 6
      		m_flBulletGravityScale = 1.2
      		m_strBulletImpactSound = ""
      		m_eAttachmentSourceType = "EAttachmentSource_WeaponMuzzles"
      		m_flBulletRadiusVsWorld = 2.5
      		m_strBulletLoopingSound = "Familiar.HelpingHands.Projectile.Lp"
      		m_strWeaponImpactEffect = "particles/abilities/familiar/familiar_helpinghand_cast_projectile_impact.vpcf"
      		m_szMuzzleFlashEffectName = "particles/weapon_fx/familiar/familiar_muzzle_flash.vpcf"
      		m_szBulletTravelTracerParticle = "particles/abilities/familiar/familiar_helpinghand_cast_projectile.vpcf"
      	}
      }
    • +m_sCustomStackLabel#CurrentBonus_label
    • ~m_eTargettingLOSCheckELOSCheck_Bounds_IgnoreObscureBlockers→Bounds_IgnoreObscureBlockers
    • −m_WeaponInfo
      { 11 keys }
      {
      	m_flBulletSpeed = 1100
      	m_flBulletRadius = 2.5
      	m_flVerticalAimBias = 6
      	m_flBulletGravityScale = 1.2
      	m_strBulletImpactSound = ""
      	m_eAttachmentSourceType = "EAttachmentSource_WeaponMuzzles"
      	m_flBulletRadiusVsWorld = 2.5
      	m_strBulletLoopingSound = "Familiar.HelpingHands.Projectile.Lp"
      	m_strWeaponImpactEffect = "particles/abilities/familiar/familiar_helpinghand_cast_projectile_impact.vpcf"
      	m_szMuzzleFlashEffectName = "particles/weapon_fx/familiar/familiar_muzzle_flash.vpcf"
      	m_szBulletTravelTracerParticle = "particles/abilities/familiar/familiar_helpinghand_cast_projectile.vpcf"
      }
  2. 6696–6701first dumped