{ id = "ability.undying.flesh_golem" name = "#DOTA_Import_Undying_Flesh_Golem" desc = "#DOTA_Import_Undying_Flesh_Golem_Desc" template_group = "#DOTA_Workshop_SubmissionType_Ability" template_subgroup = "#npc_dota_hero_undying" directory = "undying/flesh_golem" game_unit = "npc_dota_hero_undying" workshop_tags = [ "Ability", "Undying", "npc_dota_undying_flesh_golem" ] models = [ { id = "model_undying_flesh_golem" name = "#DOTA_Import_Undying_Flesh_Golem" preview_desc = "#DOTA_Workshop_Preview_Desc_Undying_Flesh_Golem_Item" auto_hitbox_set_name = "default" root_bone_name = "root" default_portrait_model = "models/heroes/undying/undying_flesh_golem.vmdl" lod_list = [ { id = "mesh_portrait" name = "#DOTA_Workshop_LOD0Title" desc = "#DOTA_Workshop_LOD0Desc" max_polygons = 10000 max_bones = 62 optional = true }, { id = "mesh_world" name = "#DOTA_Workshop_LOD1Title" desc = "#DOTA_Workshop_Undying_Flesh_Golem_Mesh_Lod1_Desc" max_polygons = 4000 max_bones = 62 }, ] material_list = [ { id = "material_flesh_golem" name = "#DOTA_Import_Mat0Title_Generic" desc = "#DOTA_Import_Mat0Desc_Generic" template_vmat = "materials/models/heroes/undying/undying_golem.vmat" max_tex_width = 1024 max_tex_height = 1024 }, ] anim_list = [ { id = "animation_spawn" name = "#DOTA_ItemTest_Animation_Spawn" desc = "#DOTA_ItemTest_Animation_Spawn_Desc" suffix = "_anim_spawn" sequence_name = "spawn" activity_name = "ACT_DOTA_SPAWN" default = "scripts/workshop_import_templates/default_content/undying/flesh_golem_cast.dmx" always_use_default_anim = true }, { id = "animation_spawn_injured" name = "#DOTA_ItemTest_Animation_Spawn_Injured" desc = "#DOTA_ItemTest_Animation_Spawn_Injured_Desc" suffix = "_anim_spawn_injured" sequence_name = "spawn_injured" activity_name = "ACT_DOTA_SPAWN" modifiers = [ { modifier_name = "injured" } ] default = "scripts/workshop_import_templates/default_content/undying/flesh_golem_spawn_injured.dmx" always_use_default_anim = true }, { id = "animation_attack" name = "#DOTA_Workshop_Animation_Attack" desc = "#DOTA_Workshop_Animation_Attack_Desc" suffix = "_anim_attack" sequence_name = "attack" activity_name = "ACT_DOTA_ATTACK" has_attack_point= true anim_length = 1.0 default = "scripts/workshop_import_templates/default_content/undying/flesh_golem_attack.dmx" always_use_default_anim = true }, { id = "animation_attack2" name = "#DOTA_Workshop_Animation_Attack2" desc = "#DOTA_Workshop_Animation_Attack2_Desc" suffix = "_anim_attack2" sequence_name = "attack2" activity_name = "ACT_DOTA_ATTACK" has_attack_point= true anim_length = 1.0 default = "scripts/workshop_import_templates/default_content/undying/flesh_golem_attack2.dmx" always_use_default_anim = true }, { id = "animation_die" name = "#DOTA_Workshop_Animation_Die" suffix = "_anim_die" sequence_name = "die" activity_name = "ACT_DOTA_DIE" default = "scripts/workshop_import_templates/default_content/undying/flesh_golem_death.dmx" always_use_default_anim = true }, { id = "animation_disabled" name = "#DOTA_Workshop_Animation_Disabled" suffix = "_anim_stun" sequence_name = "stun" activity_name = "ACT_DOTA_DISABLED" default = "scripts/workshop_import_templates/default_content/undying/flesh_golem_stun.dmx" always_use_default_anim = true }, { id = "animation_flail" name = "#DOTA_Workshop_Animation_Flail" desc = "#DOTA_Workshop_Animation_Flail_Desc" suffix = "_anim_flail" sequence_name = "flail" activity_name = "ACT_DOTA_FLAIL" default = "scripts/workshop_import_templates/default_content/undying/flesh_golem_flail.dmx" always_use_default_anim = true }, { id = "animation_attack_injured" name = "#DOTA_ItemTest_Animation_AttackInjured" suffix = "_anim_attack_injured" sequence_name = "attack_injured" activity_name = "ACT_DOTA_ATTACK" modifiers = [ { modifier_name = "injured" } ] has_attack_point= true anim_length = 1 default = "scripts/workshop_import_templates/default_content/undying/flesh_golem_attack_inijured.dmx"// typo matches default content always_use_default_anim = true }, { id = "animation_attack2_injured" name = "#DOTA_ItemTest_Animation_Attack2Injured" suffix = "_anim_attack2_injured" sequence_name = "attack2_injured" activity_name = "ACT_DOTA_ATTACK" modifiers = [ { modifier_name = "injured" } ] has_attack2_point= true anim_length = 1 default = "scripts/workshop_import_templates/default_content/undying/flesh_golem_attack2.dmx" always_use_default_anim = true }, { id = "animation_victory" name = "#DOTA_Workshop_Animation_Victory" suffix = "_anim_victory" sequence_name = "victory" activity_name = "ACT_DOTA_VICTORY" looping = true optional = true default = "scripts/workshop_import_templates/default_content/undying/flesh_golem_victory.dmx" always_use_default_anim = true }, { id = "animation_defeat" name = "#DOTA_Workshop_Animation_Defeat" suffix = "_anim_defeat" sequence_name = "defeat" activity_name = "ACT_DOTA_DEFEAT" looping = true optional = true default = "scripts/workshop_import_templates/default_content/undying/flesh_golem_defeat.dmx" always_use_default_anim = true }, { id = "animation_decay" name = "#DOTA_WorkshopAnim_FleshGolem_Decay" suffix = "_anim_decay" sequence_name = "decay" activity_name = "ACT_DOTA_UNDYING_DECAY" default = "scripts/workshop_import_templates/default_content/undying/flesh_golem_cast1_decay.dmx" always_use_default_anim = true }, { id = "animation_decay_injured" name = "#DOTA_WorkshopAnim_FleshGolem_Decay_Injured" suffix = "_anim_decay_injured" sequence_name = "decay_injured" activity_name = "ACT_DOTA_UNDYING_DECAY" modifiers = [ { modifier_name = "injured" } ] default = "scripts/workshop_import_templates/default_content/undying/flesh_golem_cast1_decay_injured.dmx" always_use_default_anim = true }, { id = "animation_soul_rip" name = "#DOTA_WorkshopAnim_FleshGolem_SoulRip" suffix = "_anim_soul_rip" sequence_name = "soul_rip" activity_name = "ACT_DOTA_UNDYING_SOUL_RIP" default = "scripts/workshop_import_templates/default_content/undying/flesh_golem_cast2_soul_rip.dmx" always_use_default_anim = true }, { id = "animation_soul_rip_injured" name = "#DOTA_WorkshopAnim_FleshGolem_SoulRip_Injured" suffix = "_anim_soul_rip_injured" sequence_name = "soul_rip_injured" activity_name = "ACT_DOTA_UNDYING_SOUL_RIP" modifiers = [ { modifier_name = "injured" } ] default = "scripts/workshop_import_templates/default_content/undying/flesh_golem_cast2_soul_rip_injured.dmx" always_use_default_anim = true }, { id = "animation_tombstone" name = "#DOTA_WorkshopAnim_FleshGolem_Tombstone" suffix = "_anim_tombstone" sequence_name = "tombstone" activity_name = "ACT_DOTA_UNDYING_TOMBSTONE" default = "scripts/workshop_import_templates/default_content/undying/flesh_golem_cast3_tombstone.dmx" always_use_default_anim = true }, { id = "animation_tombstone_injured" name = "#DOTA_WorkshopAnim_FleshGolem_Tombstone_Injured" suffix = "_anim_tombstone_injured" sequence_name = "tombstone_injured" activity_name = "ACT_DOTA_UNDYING_TOMBSTONE" modifiers = [ { modifier_name = "injured" } ] default = "scripts/workshop_import_templates/default_content/undying/flesh_golem_cast3_tombstone_injured.dmx" always_use_default_anim = true }, { id = "animation_forcestaff_end" name = "#DOTA_WorkshopAnim_ForcestaffEnd" suffix = "_anim_forcestaff_end" sequence_name = "forcestaff_end" activity_name = "ACT_DOTA_FORCESTAFF_END" default = "scripts/workshop_import_templates/default_content/undying/flesh_golem_forcestaff_end.dmx" always_use_default_anim = true }, { id = "animation_forcestaff_end_injured" name = "#DOTA_WorkshopAnim_ForcestaffEnd_Injured" suffix = "_anim_forcestaff_end_injured" sequence_name = "forcestaff_end_injured" activity_name = "ACT_DOTA_FORCESTAFF_END" modifiers = [ { modifier_name = "injured" } ] default = "scripts/workshop_import_templates/default_content/undying/flesh_golem_forcestaff_end_injured.dmx" always_use_default_anim = true }, { id = "animation_forcestaff_enemy" name = "#DOTA_WorkshopAnim_ForcestaffEnemy" suffix = "_anim_forcestaff_enemy" sequence_name = "forcestaff_enemy" activity_name = "ACT_DOTA_FLAIL" modifiers = [ { modifier_name = "forcestaff_enemy" } ] default = "scripts/workshop_import_templates/default_content/undying/flesh_golem_forcestaff_enemy.dmx" always_use_default_anim = true }, { id = "animation_forcestaff_friendly" name = "#DOTA_WorkshopAnim_ForcestaffFriendly" suffix = "_anim_forcestaff_friendly" sequence_name = "forcestaff_friendly" activity_name = "ACT_DOTA_FLAIL" modifiers = [ { modifier_name = "forcestaff_friendly" } ] default = "scripts/workshop_import_templates/default_content/undying/flesh_golem_forcestaff_friendly.dmx" always_use_default_anim = true }, { id = "animation_teleport" name = "#DOTA_WorkshopAnim_Teleport" suffix = "_anim_teleport" sequence_name = "teleport" activity_name = "ACT_DOTA_TELEPORT" optional = true default = "scripts/workshop_import_templates/default_content/undying/flesh_golem_teleport.dmx" always_use_default_anim = true }, { id = "animation_teleport_end" name = "#DOTA_WorkshopAnim_Teleport_End" suffix = "_anim_teleport_end" sequence_name = "teleport_end" activity_name = "ACT_DOTA_TELEPORT_END" optional = true default = "scripts/workshop_import_templates/default_content/undying/flesh_golem_teleport_end.dmx" always_use_default_anim = true }, { id = "animation_taunt_walk_of_dead" name = "#DOTA_WorkshopAnim_Taunt_Walk_Dead" suffix = "_anim_taunt_walk_dead" sequence_name = "taunt_walk_of_dead" activity_name = "ACT_DOTA_TAUNT" modifiers = [ { modifier_name = "walk_gesture" } ] default = "scripts/workshop_import_templates/default_content/undying/flesh_golem_taunt_walk_dead.dmx" always_use_default_anim = true anim_events = [ { event_name = "AE_CL_CREATE_PARTICLE_EFFECT_CFG" frame_num = 0 event_data_legacy = "particles/units/heroes/hero_undying/undying_tnt_wlk_golem.vpcf stop_on_layer_seq_change_instantly always_run absorigin_follow" event_kv3 = { name = "particles/units/heroes/hero_undying/undying_tnt_wlk_golem.vpcf" stop_immediately = true use_layer_sequence = true always_run = true config = "absorigin_follow" } }, { event_name = "AE_CL_CREATE_PARTICLE_EFFECT_CFG" frame_num = 130 event_data_legacy = "particles/generic_gameplay/dust_impact.vpcf always_run absorigin" event_kv3 = { name = "particles/generic_gameplay/dust_impact.vpcf" always_run = true config = "absorigin" } }, { event_name = "AE_CL_PLAYSOUND" frame_num = 0 event_data_legacy = "stop_on_layer_seq_change Hero_Undying.Taunt.Golem" event_kv3 = { name = "Hero_Undying.Taunt.Golem" stop_on_seq_change = true use_layer_sequence = true } }, ] }, ] anim_bundle_list = [ { id = "idle_anims" name = "#DOTA_Workshop_Animation_Idle" bundle_type = "loop_and_rare" anim_list = [ { id = "passive_anim_loop" name = "#DOTA_Workshop_Animation_Idle" desc = "#DOTA_Workshop_Animation_Idle_Desc" suffix = "_anim_idle" sequence_name = "idle" activity_name = "ACT_DOTA_IDLE" looping = true default = "scripts/workshop_import_templates/default_content/undying/flesh_golem_idle.dmx" always_use_default_anim = true }, ] }, { id = "loadout_anims" name = "#DOTA_Workshop_Animation_Loadout_Idle" bundle_type = "loop_and_rare" fallback_bundles = [ "idle_anims" ] optional = true anim_list = [ { id = "passive_anim_loop" name = "#DOTA_Workshop_Animation_Loadout_Idle" desc = "#DOTA_Workshop_Animation_Loadout_Idle_Desc" suffix = "_loadout_idle" sequence_name = "loadout_idle" activity_name = "ACT_DOTA_LOADOUT" looping = true default = "scripts/workshop_import_templates/default_content/undying/flesh_golem_loadout_idle.dmx" always_use_default_anim = true }, { id = "passive_anim_rare" name = "#DOTA_Workshop_Animation_Loadout_IdleRare" desc = "#DOTA_Workshop_Animation_Loadout_IdleRare_Desc" suffix = "_anim_loadout_idlerare" sequence_name = "loadout_idlerare" activity_name = "ACT_DOTA_LOADOUT_RARE" modifiers = [ { modifier_name = "loadout" } ] default = "scripts/workshop_import_templates/default_content/undying/flesh_golem_loadout_idle_rare.dmx" always_use_default_anim = true }, ] }, { id = "portrait_anims" name = "#DOTA_Workshop_Animation_PortraitIdle" bundle_type = "loop_and_rare" fallback_bundles = [ "idle_anims" ] optional = true anim_list = [ { id = "passive_anim_loop" name = "#DOTA_Workshop_Animation_PortraitIdle" suffix = "_portrait_idle" sequence_name = "portrait_idle" activity_name = "ACT_DOTA_CAPTURE" looping = true default = "scripts/workshop_import_templates/default_content/undying/flesh_golem_portrait.dmx" always_use_default_anim = true }, { id = "passive_anim_rare" name = "#DOTA_Workshop_Animation_PortraitRare" suffix = "_portrait_idle_alt" sequence_name = "portrait_idle_alt" activity_name = "ACT_DOTA_CAPTURE_RARE" optional = true default = "scripts/workshop_import_templates/default_content/undying/flesh_golem_portrait_head_turn.dmx" always_use_default_anim = true }, ] }, { id = "run_anims" name = "#DOTA_Workshop_Animation_Run" bundle_type = "run_anim_bundle" compound_sequence_name = "turns" anim_list = [ { id = "run_anim_base" name = "#DOTA_Workshop_Animation_Run" desc = "#DOTA_Workshop_Animation_HeroSummons_Run_Desc" suffix = "_run" sequence_name = "run" activity_name = "ACT_DOTA_RUN" looping = true default = "scripts/workshop_import_templates/default_content/undying/flesh_golem_run.dmx" always_use_default_anim = true }, { id = "run_anim_base2" name = "#DOTA_Workshop_Animation_RunInjured" suffix = "_run_injured" sequence_name = "run_injured" activity_name = "ACT_DOTA_RUN" modifiers = [ { modifier_name = "injured" modifier_weight = 1 } ] looping = true default = "scripts/workshop_import_templates/default_content/undying/flesh_golem_run_injured.dmx" always_use_default_anim = true }, { id = "run_anim_base3" name = "#DOTA_Workshop_Animation_RunHaste" suffix = "_run_haste" sequence_name = "run_haste" activity_name = "ACT_DOTA_RUN" modifiers = [ { modifier_name = "haste" modifier_weight = 1 } ] looping = true optional = true default = "scripts/workshop_import_templates/default_content/undying/flesh_golem_run_haste.dmx" always_use_default_anim = true }, { id = "run_anim_turnpose_center" name = "#DOTA_Workshop_Animation_TurnPoseCenter" desc = "#DOTA_Workshop_Animation_TurnPoseCenter_Desc" suffix = "_turn_center" sequence_name = "turn_center" default = "scripts/workshop_import_templates/default_content/undying/flesh_golem_turn_center.dmx" always_use_default_anim = true optional = true }, { id = "run_anim_turnpose_left" name = "#DOTA_Workshop_Animation_TurnPoseLeft" desc = "#DOTA_Workshop_Animation_TurnPoseLeft_Desc" suffix = "_turn_left" sequence_name = "turn_left" default = "scripts/workshop_import_templates/default_content/undying/flesh_golem_turn_left.dmx" always_use_default_anim = true optional = true }, { id = "run_anim_turnpose_right" name = "#DOTA_Workshop_Animation_TurnPoseRight" desc = "#DOTA_Workshop_Animation_TurnPoseRight_Desc" suffix = "_turn_right" sequence_name = "turn_right" default = "scripts/workshop_import_templates/default_content/undying/flesh_golem_turn_right.dmx" always_use_default_anim = true optional = true }, ] }, ] attach_list = [ { id = "attachment_hitlocation" name = "#DOTA_Workshop_Attachment_HitLocation" desc = "#DOTA_Workshop_Attachment_HitLocation_Autofill_Default_Desc" attach_name = "attach_hitloc" attach_joint = "spine2" }, { id = "attachment_attack" name = "#DOTA_Workshop_Attachment_AttackPoint" desc = "#DOTA_Workshop_Attachment_AttackPoint_Autofill_Default_Desc" attach_name = "attach_attack1" attach_joint = "wrist_R" }, { id = "attachment_attack2" name = "#DOTA_Workshop_Attachment_AttackPoint2" desc = "#DOTA_Workshop_Attachment_AttackPoint2_Autofill_Default_Desc" attach_name = "attach_attack2" attach_joint = "wrist_L" }, ] hitbox_list = [ { set_name = "select_low" box_name = "root" bone_name = "root" min_bounds = [ -89.792, -99.035, -148.516 ] max_bounds = [ 84.6249, 99.7007, 128.269 ] }, { set_name = "select_high" box_name = "root" bone_name = "root" min_bounds = [ -52.799, -41.5196, -146.345 ] max_bounds = [ 32.114, 42.1853, 100.448 ] }, { set_name = "hands" box_name = "wrist_R" bone_name = "wrist_R" min_bounds = [ -38.237, -30.66, -14.4209 ] max_bounds = [ 3.92386, 10.6767, 17.4809 ] }, { set_name = "hands" box_name = "wrist_L" bone_name = "wrist_L" min_bounds = [ -0.905529, -4.48685, -17.2223 ] max_bounds = [ 38.261, 30.3676, 11.6727 ] }, { set_name = "head" box_name = "head" bone_name = "head" min_bounds = [ -8.81839, -30.4859, -34.24 ] max_bounds = [ 29.4261, 31.6595, 25.9488 ] }, { set_name = "feet" box_name = "ankle_R" bone_name = "ankle_R" min_bounds = [ -41.7837, -12.0272, -16.5275 ] max_bounds = [ 4.87239, 18.1182, 15.2673 ] }, { set_name = "feet" box_name = "ankle_L" bone_name = "ankle_L" min_bounds = [ -0.802134, -17.8219, -15.3004 ] max_bounds = [ 42.0062, 12.0227, 16.4351 ] }, ] } ] item_defs = [ { hero_name = "npc_dota_hero_undying" loadout_slot = "ability4" prefab_type = "wearable" localization_prefix = "UNDYING_" localization_suffix = "_FLESH_GOLEM" item_type_name = "Flesh Golem" has_portrait = true visuals = [ { type = "hero_model_change" asset_expr = "models/heroes/undying/undying_flesh_golem.vmdl" modifier_expr = "$(model_undying_flesh_golem:vmdl_name)" } ] } ] }