Summary
The new trailing ID of entities should make all entities unique, however that does not seem to apply to prefab child entities. Their ids remain the same across all placed prefab instances, which makes it partly impossible to distill them when picking the correct entity reference.
Please select what you are reporting on:
Unreal Editor for Fortnite
What Type of Bug are you experiencing?
UI/Tools
Steps to Reproduce
- Create a prefab with multiple child entities
- Place multiple instances of that prefab into the main level
Additional example:
vz_test_entity_id_component := class<final_super>(component) {
@editable
ETarget: entity
}
Expected Result
All entities should get unique ids after being placed, all references (even when connected inside a prefab graph itself) should be updated to the new and unique reference. Right now this is still an issue: Scene Graph - Prefab referenced entities still remain unique when placed into the main level
Observed Result
- Prefab graph does not handle IDs correctly, they are all remain white and are not grayed out and can still be edited.
- When placing multiple instances of the same prefab, IDs of child entities are not updated, all remain the same.
- Picking the right entity by the same becomes tricky as even all ids of prefab child entities remain the same and therefore look like duplicates.
Platform(s)
PC / UEFN
FORT-901745 has been âClosedâ. This is working as intended by design.
Quick breakdown of why this was marked as âby designâ.
The names of the entities inside a prefab arenât GUIDs, theyâre the names of the fields that will eventually be generated into the prefab Verse class. So you can imagine that you have each sub-entity in the prefab looking like this some day in the future:
my_prefab := class(entity):
# components and sub-entities also nested added inside the entities
SubEntity_nfiwhriakt3jb3:entity = entity{}
SubEntity_j23kj52h3tlkj2:entity = entity{}
When you instance the prefab into the world or another prefab, the sub-entities wonât get new names, as those are just the names of the fields on your prefab class. Theyâre named by default with the additional guidy looking part to avoid collisions when multiple users are creating entities in the same prefab. Thatâs all leading to enabling OFPE (one file per entity) workflows, which will be coming in the near future.
You can choose to rename the entities inside your prefab definition to more logical/readable names. Eventually with multi-user workflows with OFPE using too simple of names increases the potential for name/file collisions, though the tools wonât stop you from choosing whatever names you want if you like. Naming sub-entities inside a prefab to simpler names is still a good choice readability and coding wise, assuming you donât have multiple authors trying to change one prefab at the same time.
To recap, what youâre seeing in the editor is an instance of a big class. You cannot change the field names on a class on a per-instance basis.
1 Like