Apply Radial Damage NOT WORKING

Hey guys, recently I have came across unique issue with ApplyRadialDamage.

I’m using interfaces for applying Radial Damage to AI and Players. The issue is that it working in one level and not working in other levels which have Landscapes.

How to solve this issue?

Thanks!

Spawn an invisible sphere and have it apply damage to each actor on overlap? That’s how I run a few of my AOE abilities

Hi , thanks for your reply. I have two types of AI. one is Animal and Other Character. They both are derived from parent class.

When I apply Radial damage it is working fine for Animal. It’s not working for Character AI when they are in groups.

It’s working fine when there are at-most of 2 Character-Ai.

How to solve this?

Thanks!

How are you tracking your health/damage? GAS or your own system? You may need to ensure both classes have their own instance of this system

Did you try the spawning an invisible sphere method?

Hi, I’m using interfaces for apply these damages. The base class handles everything related to Damage and Health.

I tried by adding Sphere collision and tried Multi-Sphere Trace by channel still no use.

I have interface which AppliesRadial Damage. This function is getting called. But the ApplyDamage is not getting called. Don’t know what’s the issue here.

Thanks!

can you post your BP?

Id highly reccomend basing your health/damage/stats systems in c++ using GAS

Hi, trying to implement GAS… this is the blueprint

this is the C++ implementation of this function…

Couple things, the target plugin on the apply explosive damage plugin, appears to be an actor objects reference? But you r got an array going into it you’d want to run a for each loop, and the self reference is going into what looks like should be an array per the c++ code

Checkout Alamars dev domain on YouTube, had some great tutorials on c++ and GAS, the way it sets up health and damage is easily replicatable and implemented usibg gameplay attributes and effects

I have tried by running in for each loop yet no use. This is what i found from debugging…

For Successful case which is working in one level… After Applying radial damage it is calling TakeDamage…which is correct… this is how damage applies to player/AI…

LogTemp: ABaseEnemy::ApplyExplosionDamage_Implementation
LogTemp: ABaseEnemy::Take Damage
MissionPoK: ABaseEnemy::AddKillRecord()
LogTemp: ABaseEnemy::Take Damage

For Failure Case: When the level consists of LANDSCAPE(Maybe this is not an issue)…
LogTemp: ABaseEnemy::ApplyExplosionDamage_Implementation
LogTemp: Error: ABaseEnemy::ApplyRadialDamage is 0

ApplyRadialDamage is returning 0…it’s not applying damage to any actor.

Thanks!

almost sounds like a collision issue with the landscape, like maybe its overlapping the landscape and trying to damage it

1 Like

Yes it was landscape which is causing issue. Apply Radial damage prevents damage on Visibility Channel by default. The Landscape blocks every channel. When I changed the Collision response of landscape to ignore Visibility channel its working.

Thanks for helping me out.!

1 Like

Glad you got it worked out, in the future one thing that helps is setting up a custom channel for things like damage or attacks

1 Like