Get a tag given a device/creative_prop

I know that we can get devices/props for a tag using GetCreativeObjectsWithTag(), but is it possible to get the Tag(s) off of a device/prop? I want to try and get a Tag off of a creative_prop in order to find a list of objects that have the same Tag (using GetCreativeObjectsWithTag())

1 Like

No, we don’t allow retrieving the full tag list from the prop as some of the tags may not be visible to your game/plugin.
You can however, call GetTags() on the prop to get a tag_view and then call Has/HasAny/HasAll on the tag_view to see if it contains the specific tags you are interested in.
See the following methods from the API digests:

# Module import path: /Fortnite.com/Devices
Devices<public> := module:

    # Returns an array containing all creative objects which have been marked with the specified `Tag`.
    GetCreativeObjectsWithTag<native><public>(Tag:tag):[]creative_object_interface

    # Returns an array containing creative objects which have tag(s) matching the specified `SearchCriteria`.
    GetCreativeObjectsWithTags<native><public>(SearchCriteria:tag_search_criteria):[]creative_object_interface

    # Returns a queryable `tag_view` which can be used to query the tags on `CreativeObject`.
    (CreativeObject:creative_object_interface).GetTags<native><public>():tag_view

Simulation<public> := module:
    # Module import path: /Verse.org/Simulation/Tags
    Tags<public> := module:

        # A queryable collection of gameplay tags.
        tag_view<native><public> := interface<epic_internal>:
            # Determine if TagToCheck is present in this container, also checking against parent tags {"A.1"}.Has("A") will return True, {"A"}.Has("A.1") will return False If TagToCheck is not Valid it will always return False.
            Has<public>(TagToCheck:tag)<transacts><decides>:void

            # Checks if this container contains ANY of the tags in the specified container, also checks against parent tags {"A.1"}.HasAny({"A","B"}) will return True, {"A"}.HasAny({"A.1","B"}) will return False If InTags is empty/invalid it will always return False.
            HasAny<public>(InTags:[]tag)<transacts><decides>:void

            # Checks if this container contains ALL of the tags in the specified container, also checks against parent tags {"A.1","B.1"}.HasAll({"A","B"}) will return True, {"A","B"}.HasAll({"A.1","B.1"}) will return False If InTags is empty/invalid it will always return True, because there were no failed checks.
            HasAll<public>(InTags:[]tag)<transacts><decides>:void
6 Likes