Need help with plugins or servers? Join our Discord

Modding Database

Up to date with Steam · checked 30s ago· Viewing build 6698 (Sep 17 2026), not the latest

upgrade_express_shot

Express Shotupgrade_express_shotOpen the ability page

33 keys · inherits from weapon_upgrade_t3

What it inherits is already merged in: this is the entry as the game compiled it.

upgrade_express_shot = {
_class = "upgrade_express_shot"
_editor = {
folder_name = "Weapon"
}
_multibase = [
]
flShotDelay = 0.2
m_iItemTier = "EModTier_3"
m_WeaponInfo = {
m_flBulletSpeed = 10000
}
m_eAbilityType = "EAbilityType_Item"
m_eShopFilters = "EShopFilterWeaponDamage"
m_ReadyParticle = "particles/upgrades/express_shot_ready.vpcf"
m_bStartTrained = true
m_eItemSlotType = "EItemSlotType_WeaponMod"
m_nUpgradeSlotCost = 1
m_strAG2SourceName = "item"
m_strShopIconLarge = "file://{images}/items/weapon/express_shot.psd"
m_flBossDamageScale = 1
m_vecComponentItems = [
]
m_eAbilityActivation = "CITADEL_ABILITY_ACTIVATION_PASSIVE"
m_vecAbilityUpgrades = [
0{
m_vecPropertyUpgrades = [
0{
m_strBonus = "75"
m_strPropertyName = "ProcBaseAttackDamagePercent"
}
1{
m_strBonus = "25"
m_strPropertyName = "ProcBaseAttackDamagePercentAltFire"
}
2{
m_strBonus = "45"
m_strPropertyName = "BonusBulletSpeedPercent"
}
3{
m_strBonus = "15"
m_strPropertyName = "BaseAttackDamagePercent"
}
]
}
]
m_PreviewPathParticle = "particles/generic/generic_arc.vpcf"
m_strOffCooldownSound = "Mods.Weapon.Express.Shot.Ready"
m_mapAbilityProperties = {
TechPower = { // Spirit Power
m_strValue = "0"
m_strDisableValue = "0"
m_bCanSetTokenOverride = true
m_eProvidedPropertyType = "MODIFIER_VALUE_TECH_POWER"
}
WeaponPower = { // Weapon Damage
m_strValue = "0"
m_strDisableValue = "0"
m_bCanSetTokenOverride = true
m_eProvidedPropertyType = "MODIFIER_VALUE_WEAPON_POWER"
}
AbilityCharges = { // Charges
m_strValue = "0"
m_strCSSClass = "cast"
m_strDisableValue = "-1"
m_bCanSetTokenOverride = true
m_subclassScaleFunction = {
_class = "scale_function_ability_charges"
_my_subclass_name = "AbilityCharges_scale_function"
}
}
AbilityCooldown = { // Cooldown
m_strValue = "8"
m_strCSSClass = "cooldown"
m_strDisableValue = "0"
m_bCanSetTokenOverride = true
m_subclassScaleFunction = {
_class = "scale_function_single_stat"
_my_subclass_name = "AbilityCooldown_scale_function"
m_eSpecificStatScaleType = "EItemCooldown"
}
}
AbilityDuration = { // Duration
m_strValue = "0"
m_strCSSClass = "duration"
m_strDisableValue = "0"
m_bCanSetTokenOverride = true
m_subclassScaleFunction = {
_class = "scale_function_single_stat"
_my_subclass_name = "AbilityDuration_scale_function"
m_eSpecificStatScaleType = "ETechDuration"
}
}
AbilityCastDelay = { // Cast Delay
m_strValue = "0"
m_strCSSClass = "cast"
m_strDisableValue = "0"
m_bCanSetTokenOverride = true
}
AbilityCastRange = { // Cast Range
m_strValue = "0"
m_strCSSClass = "range"
m_eDisplayUnits = "EDisplayUnit_Meters"
m_bCanSetTokenOverride = true
m_subclassScaleFunction = {
_class = "scale_function_single_stat"
_my_subclass_name = "AbilityCastRange_scale_function"
m_eSpecificStatScaleType = "ETechRange"
}
}
ChannelMoveSpeed = {
m_strValue = "-1"
m_strCSSClass = "move_speed"
m_eDisplayUnits = "EDisplayUnit_MetersPerSecond"
m_bCanSetTokenOverride = true
}
ProcAmmoConsumed = { // Extra Ammo Consumed
m_strValue = "2"
m_bIsNegativeAttribute = true
}
AbilityChannelTime = { // Channel Duration
m_strValue = "0"
m_strCSSClass = "cast"
m_strDisableValue = "0"
m_bCanSetTokenOverride = true
m_subclassScaleFunction = {
_class = "scale_function_multi_stats"
_my_subclass_name = "scale_duration"
m_vecScalingStats = [
0"EChannelDuration"
1"ETechDuration"
]
}
}
ProcBulletVelocity = {
m_strValue = "100"
m_strCSSClass = "bullet_damage"
m_eStatsUsageFlags = "ConditionallyApplied"
m_strLocTokenOverride = "BonusBulletSpeedPercent"
m_eProvidedPropertyType = "MODIFIER_VALUE_BONUS_BULLET_SPEED_PERCENT"
}
AbilityResourceCost = {
m_strValue = "0"
m_strCSSClass = "cast"
m_strDisableValue = "0"
m_bCanSetTokenOverride = true
}
AbilityUnitTargetLimit = {
m_strValue = "1"
m_bCanSetTokenOverride = true
}
AbilityPostCastDuration = {
m_strValue = "0"
m_strDisableValue = "0"
}
BaseAttackDamagePercent = { // Weapon Damage
m_strValue = "8"
m_strCSSClass = "bullet_damage"
m_eDisplayType = "EBaseWeaponDamageIncrease"
m_eDisplayUnits = "EDisplayUnit_Normal"
m_eStatsUsageFlags = ""
m_eProvidedPropertyType = "MODIFIER_VALUE_WEAPON_DAMAGE_INCREASE"
}
BonusBulletSpeedPercent = { // Bullet Velocity
m_strValue = "60"
m_strCSSClass = "bullet_damage"
m_eDisplayType = "EBulletSpeedIncrease"
m_eStatsUsageFlags = ""
m_eProvidedPropertyType = "MODIFIER_VALUE_BONUS_BULLET_SPEED_PERCENT"
}
ProcBaseAttackDamagePercent = {
m_strValue = "125"
m_strCSSClass = "bullet_damage"
m_eDisplayType = "EBaseWeaponDamageIncrease"
m_eDisplayUnits = "EDisplayUnit_Normal"
m_eStatsUsageFlags = "ConditionallyApplied"
m_strLocTokenOverride = "BaseAttackDamagePercent"
m_eProvidedPropertyType = "MODIFIER_VALUE_WEAPON_DAMAGE_INCREASE"
m_subclassScaleFunction = {
_class = "scale_function_single_stat"
m_flStatScale = 2
_my_subclass_name = "Damage_scale_function"
m_eSpecificStatScaleType = "ELevelUpBoons"
}
}
AbilityCooldownBetweenCharge = { // Charge Delay
m_strValue = "-1.0"
m_strCSSClass = "charge_cooldown"
m_strDisableValue = "-2"
m_bCanSetTokenOverride = true
m_subclassScaleFunction = {
_class = "scale_function_ability_recharge_time"
_my_subclass_name = "scale_function_ability_recharge_time"
}
}
ProcBaseAttackDamagePercentAltFire = {
m_strValue = "40"
m_strCSSClass = "bullet_damage"
m_eDisplayType = "EBaseWeaponDamageIncrease"
m_eDisplayUnits = "EDisplayUnit_Normal"
m_eStatsUsageFlags = "ConditionallyApplied"
m_strLocTokenOverride = "BaseAttackDamagePercentAltFire"
m_eProvidedPropertyType = "MODIFIER_VALUE_WEAPON_DAMAGE_INCREASE"
m_subclassScaleFunction = {
_class = "scale_function_single_stat"
m_flStatScale = 1.3
_my_subclass_name = "SecondaryDamage_scale_function"
m_eSpecificStatScaleType = "ELevelUpBoons"
}
}
}
m_strCastAnimGraphParam = "e_GenericCast"
m_vecTooltipSectionInfo = [
0{
m_eAbilitySectionType = "EArea_Innate"
m_vecSectionAttributes = [
0{
m_vecAbilityProperties = [
0"BaseAttackDamagePercent"
]
m_vecElevatedAbilityProperties = [
0"BonusBulletSpeedPercent"
]
}
]
}
1{
m_eAbilitySectionType = "EArea_Passive"
m_vecSectionAttributes = [
0{
m_strLocString = "#upgrade_express_shot_desc" // Your next attack will <span class="highlight">fire twice</span> in quick succession with <span class="highlight">increased damage</span> and velocity. This attack consumes extra ammo.
m_vecAbilityProperties = [
0"ProcBulletVelocity"
1"ProcAmmoConsumed"
2"AbilityCooldown"
]
m_vecImportantAbilityProperties = [
0{
m_strImportantProperty = "ProcBaseAttackDamagePercent"
}
1{
m_strImportantProperty = "ProcBaseAttackDamagePercentAltFire"
}
]
}
]
}
]
m_AutoIntrinsicModifiers = [
0{
_class = "modifier_intrinsic_base"
m_bIsHidden = true
_my_subclass_name = "express_shot_stats"
m_vecAutoRegisterModifierValueFromAbilityPropertyName = [
0"BonusBulletSpeedPercent"
1"BaseAttackDamagePercent"
]
}
]
m_TracerAdditionParticle = "particles/upgrades/express_shot_projectile.vpcf"
m_bShowInPassiveItemsArea = true
m_strCastAnimSequenceName = "ability_generic_cast"
m_ProcNotificationModifier = {
_class = "modifier_citadel_ui_ability_hud_notification"
m_sStartSound = "Mods.Weapon.Express.Shot.Sweetener"
_my_subclass_name = "notification"
}
m_strSelectionNameOverride = "item"
m_eAbilityTargetingLocation = "CITADEL_ABILITY_TARGETING_LOCATION_SELF"
m_bitsChannelEnabledStateMask = "MODIFIER_STATE_BUSY_WITH_ACTION"
m_bitsPreCastEnabledStateMask = "MODIFIER_STATE_BUSY_WITH_ACTION"
m_bitsPostCastEnabledStateMask = "MODIFIER_STATE_BUSY_WITH_ACTION"
}

History

  1. 6722–6745changed
    • +m_nShopVersion0
    • +m_mapWeaponInfos
      { 1 key }
      {
      	primary = 
      	{
      		m_flBulletSpeed = 10000
      	}
      }
    • +m_CorruptedItemInfo
      { 1 key }
      {
      	m_Upgrade = 
      	{
      		m_vecPropertyUpgrades = 
      		[
      			{
      				m_strBonus = "22"
      				m_strPropertyName = "BaseAttackDamagePercent"
      			},
      			{
      				m_strBonus = "60"
      				m_strPropertyName = "BonusBulletSpeedPercent"
      			},
      			{
      				m_strBonus = "105"
      				m_strPropertyName = "ProcBaseAttackDamagePercent"
      			},
      			{
      				m_strBonus = "30"
      				m_strPropertyName = "ProcBaseAttackDamagePercentAltFire"
      			},
      			{
      				m_strBonus = "50"
      				m_strPropertyName = "ProcBulletVelocity"
      			},
      			{
      				m_strBonus = "-4"
      				m_strPropertyName = "AbilityCooldown"
      			},
      		]
      	}
      }
    • +m_sCustomStackLabel#CurrentStacks_label
    • +m_vecDisabledOnHeroes[]
    • +m_strDisableItemTarget""
    • +m_eAdditionalShopFilters""
    • −m_WeaponInfo
      { 1 key }
      {
      	m_flBulletSpeed = 10000
      }
    • −m_eShopFiltersEShopFilterWeaponDamage
    • −m_nUpgradeSlotCost1
    • −m_strCastAnimGraphParame_GenericCast
    • −m_strCastAnimSequenceNameability_generic_cast
  2. 6696–6701first dumped