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())
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
Thank you!