The object filter in the blueprint debugger can be used to filter breakpoints to a specific instance of an object. This is important for multiplayer because there will be multiple versions of the same blueprint and the user may want to step through a specific one. By default the object filter is set to none so the breakpoints happen for every copy of the blueprint.

The UGameplayAbility::UGameplayAbility constructor has special code (starting from "Autoregister abilities with the blueprint debugger in the editor") that calls SetObjectBeingDebugged in the editor, which means that whatever ability instance was last created overrides the object filter. This is confusing behavior because it means that only one random copy of the ability will be debugged. This code was intentionally added but does not work well in multiplayer or other advanced setups and is unnecessary in simple setups

Steps to Reproduce
  1. Compile and load Lyra in the editor
  2. Open the L_Expanse map using the common map toolbar
  3. Open the GA_Hero_Death ability, and add a breakpoint to ExecuteGameplayCueWithParams On Owner
  4. In the play settings, set it to 2 players, net mode listen, then click new Editor window to start a 2 player game
  5. Look at the GA_Hero_Death ability in the editor and note the object filter has been set to a random instance (client, Spawned for me) which is wrong
  6. If you try pressing k to die on both players, only one of them will hit the break point because the object filter is set

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-161493 in the post.

Login to Vote

ComponentUE - Gameplay - Gameplay Ability System
Affects Versions5.05.1
Target Fix5.1
Fix Commit21516169
Main Commit21525368
CreatedAug 19, 2022
ResolvedAug 23, 2022
UpdatedSep 10, 2022
View Jira Issue