[CRITICAL][STABILITY][PERFORMANCE] Mass-editing verse tags for n props creates numerous tagged objects (n * n)

Please select what you are reporting on:

Unreal Editor for Fortnite

What Type of Bug are you experiencing?

UI/Tools

Summary

Editing verse tags for multiple objects inserts a lot of tags and creates n*n tagged objects.

Moreover, the editor UI does not display them all, only one tag is visible in the details page. You can only know this if you iterate in verse and print obj locations or if you copy the verse tag node (Ctrl + C) and paste in the Notepad (same tag is repeated)

Steps to Reproduce

  1. Create a tag in verse.
  2. Add Verse Tag Markup with empty tag to 80 props.
  3. Select all props, right-click and select to edit verse tags.
  4. Select your tag in the drop-down to apply to all props and save.

Note: if you check the tag contents in the details page for any prop, it will display just one tag as expected, but if you copy it, you will see there isn’t just one tag.

  1. Get all tagged props in verse, iterate and debug-draw them.

Note: Game will crash as it cannot draw 6000+ objects

Expected Result

  1. Add a unit test to cover this scenario before fixing this bug.
  2. Only insert one tag (When mass-editing verse tags, only one verse tag is added to each prop if only one tag is selected in the drop-down)

Observed Result

For each of 80 objects, same verse tag is added 80 times

Platform(s)

Windows

Additional Notes

WORKAROUND:

Add tags manually for each individual prop (can also be done when editing multiple verse tags, each individual prop can be selected on the left)

How come there were zero bot/human replies for a month.

The status of UCB-1272 incident has been moved from ‘Awaiting Validation’ to ‘Needs Triage’.

Editor still adds 60 tags for each of 60 objects opened for mass-editing. Please fix it.

Still happening in 29.40

So. this only happends if you try to change the tags to a big ammount of objects at the same time?

Nope. It adds n*n tags instead of n.

And it is not obvious until you try to find objects by tag.

So if you have 3 tagged objects and want to hide random two thirds each round, you would actually find 9 objects by tags and might end up showing previously hidden object and vice versa.

If you do have a lot of objects to tag it will crash the game for example if you need to debug draw each.

this is such a bittersweet moment

thanks to this thread i finally found a way to add tags to many objects in one go

but then to try it and find out that it’s broken and adds too many tags

i added a tag to 5 objects but when i run my project and GetCreativeObjectsWithTag reports that there are 25 objects marked with this tag

so sad right now

as suggested, if you right-click copy the object and then paste into notepad you can see the multiple identical tags

            InternalTags=(InternalTags=((InternalTag="/Script/Solaris.VerseClass'/MyLandscape2/_Verse/character_tag_a.character_tag_a'"),(InternalTag="/Script/Solaris.VerseClass'/MyLandscape2/_Verse/character_tag_a.character_tag_a'"),(InternalTag="/Script/Solaris.VerseClass'/MyLandscape2/_Verse/character_tag_a.character_tag_a'"),(InternalTag="/Script/Solaris.VerseClass'/MyLandscape2/_Verse/character_tag_a.character_tag_a'"),(InternalTag="/Script/Solaris.VerseClass'/MyLandscape2/_Verse/character_tag_a.character_tag_a'")))

If you use tag_search_criteria then you will get the correct number of objects (in my case 5) but fundamentally this needs to be fixed because the overhead of all these tags is too much and increases exponentially for each object included in the tagging process

        myTaggedList := GetCreativeObjectsWithTags(
            tag_search_criteria:
                RequiredTags := array{character_tag_a{}}
        )

this is still an issue in 30.20

i suspect there is a cartesian product (aka “cross join”) in the SQL statement for the SELECT/INSERT

Possibly just needs an additional where clause predicate

1 Like