AI Perception component changes not updating in placed instance

I’ve been testing some behavior with the AI Perception component in Blueprint, and I noticed some inconsistent updates in placed actors.

Here’s what I observed:

  1. When I added the AI Perception component to the Blueprint, the placed NPC in the level updated correctly — the component appeared on the actor in the scene.
  2. When I added the first sense to that AI Perception component, it also updated correctly in the placed instance.
  3. However, when I added a second sense to the AI Perception component in the Blueprint, the placed NPC in the level didn’t update — it still only shows the first sense, while the Blueprint now has two.

So it seems like after the first sense is added, further edits to the AI Perception component don’t propagate to existing instances in the level.

Question:

Is this expected behavior, or a bug?

Do I need to re-place the actor or manually refresh something to make the new senses appear in the existing instance?

Steps to Reproduce

1) Create a new Blueprint Actor

2) Add an AI Perception Component to it.

3)Place one instance of this Blueprint in the level.

4)Compile and save the Blueprint — verify that the placed actor now has the AI 5)Perception component. :white_check_mark:

6)Open the Blueprint again and add one Sense to the AI Perception component (e.g. Sight).

7)Compile and save. Check the placed instance → it correctly updates and now shows one sense. :white_check_mark:

8)Reopen the Blueprint and add another Sense (e.g. Hearing).

9)Compile and save again.

10)Check the placed instance in the level → it still only shows one Sense, even though the Blueprint now has two. :cross_mark:

Hello [mention removed]​,

The SensesConfig array property of UAIPerceptionComponent is marked as EditDefaultsOnly in the engine source, which means it’s only editable and visible in the Blueprint defaults. The array is not exposed for viewing or editing on the actor placed in the level. This behavior has been consistent since the introduction of UE5 and remains the same in the latest source build from the Main stream (CL 48009848).

[Image Removed]Could you please confirm whether you’re actually seeing the Senses Config array in the Details panel of the placed actor? Additionally, please confirm whether you’re using the 5.7 launcher build of the editor or a custom source build.

It would also be helpful if you could share additionail details like a recording or screenshot of the behavior you’re seeing or a minimal repro project so I can test this on my end.

Best,

Francisco

Hello [Francisco [Content removed]

Yes Senses Config is not visible on NPCs on level. But you can view it through “Edit Components in the Property Matrix”

1) place 2 NPCs to the level, same blueprint

2) select first NPC, hold ctrl and select second NPC

3) go for right-click on the any selected NPC

4) select this in dropdown [Image Removed] now you see something like this

[Image Removed] here you are able to observe changes of the instances, if senses are overwriten

So whole updated repro:

1) Create a new Blueprint Actor

2) Add an AI Perception Component to it.

3) Place one instance of this Blueprint actor in the level.

4) Place second instance if this Blueprint actor in the level.

5) Compile and save the Blueprint — verify (use Property Matrix view) that the placed actors now has the AI Perception component. :white_check_mark:

6) Open the Blueprint again and add one Sense to the AI Perception component (e.g. Sight).

7) Compile and save. Check the placed instance → it correctly updates and now shows one sense. :white_check_mark:

8) Reopen the Blueprint and add another Sense (e.g. Hearing).

9) Compile and save again.

10) Check the placed instance in the level (use Property Matrix view) → it still only shows one Sense, even though the Blueprint now has two. :cross_mark:

Hello [mention removed]​,

Thanks for the additional details, I was able to reproduce the issue in 5.7 when adding a new sense in the Blueprint defaults and the Property Matrix for the placed instances doesn’t reflect the new entries. A ‘None’ value appears in the new entry of the SensesConfig array.

I’ve noticed that after adding a new element to the array, you can click the Reset property arrow next to the element showing ‘None’ in the Property Matrix. Doing so resets the entry to the value defined in the BP defaults.

[Image Removed]However, after saving all assets in the editor, this results in an immediate crash.

Once the editor is restarted, the value appears as expected.

[Image Removed]You can try resetting the property this way as a temporary workaround but the crash is not expected and appears to be an engine bug.

Please let me know if you are able to reset the property as mentioned and encounter the same problem (crash). I’ll continue performing additional tests in the meantime regarding this issue.

Best,

Francisco

Hello [mention removed]​,

Thanks again for the report. I was able to narrow this down further and confirm that the behavior is not related to UAIPerceptionComponent specifically. It also reproduces with a simple custom UActorComponent containing an EditDefaultsOnly, Instanced array of UObject types, so the root cause appears to be a more general editor-side issue with resetting Instanced array elements through the Property Matrix on placed actors. This behavior occurred consistently in UE 5.6, 5.7, and a recent source build from Main (CL 48526824).

I’ve submitted an internal bug report for this and you’ll be able to follow its status once the issue becomes public at the following link: https://issues.unrealengine.com/issue/UE-355006

As a temporary workaround, you can still use Reset Property in the Property Matrix, but make sure to close the Property Matrix window before clicking Save All. Once the window is closed, saving will no longer trigger the crash, and if you reopen the Property Matrix you’ll see that the reset value was applied correctly.

Please let me know if the workaround works for you and if you need anything else on this casse. Otherwise, I’ll proceed with closing the case.

Best,

Francisco