I want the player to be able to shoot the IceBolt manually and the IceOrb to automatically shoot the IceBolt ability (with all its upgrades) in a random direction every X seconds. Similar to the Ice Orb from Diablo2 Sorceress.
So far, I got it working such that the IceOrb sends a gameplay event to the actor every X seconds, and a trigger event setup on the IceBolt. Here EndAbility is called immediately after the projectile is spawned.
However, when the IceBolt ability is triggered manually by the player, it plays a montage and only after the montage EndAbility is called. This leads to the issues that the IceOrb stops shooting while the player casts it manually.
Is this behavior even possible with the default GAS implementation?
Thank you for providing the details of your GAS setup.
I have experience working with Unreal Engine’s Gameplay Ability System (GAS), custom ability interactions, gameplay events, projectiles, montages, and cooldown management, and I’d be happy to take a closer look at your implementation.
From your description, it sounds like the IceOrb is attempting to trigger the same IceBolt ability that the player uses manually. Since the ability remains active while the casting montage is playing, the automatic trigger from IceOrb may be blocked by the ability’s active state, causing the orb to stop firing whenever the player casts IceBolt themselves.
I’d like to review how your abilities are configured, particularly the activation policies, instancing settings, gameplay tags, and event flow. There are several possible approaches depending on your design goals, and I’d need to inspect the setup to determine the most appropriate solution.
I’m much more active on Discord than on the forum, so if you’d like a faster discussion, feel free to add me at splendid0001. You can also send screenshots of the ability graphs or a short video demonstrating the behavior, and I’ll be happy to evaluate the issue further.