Scenegraph: Custom Items and Inventories rarities

Summary

We cannot create our own rarities and exotic and mythic rarities are still hidden (a fix was attempted for this but it’s still missing in the part of the digest we need, still marked epic internal)

Please select what you are reporting on:

Unreal Editor for Fortnite

What Type of Bug are you experiencing?

Scene Graph

Steps to Reproduce

Create your own rarity

NewRarity: rarity = rarity{Color:=NamedColors.Purple}

Creates a rarity with Purple colour but we can’t set the name or anything else.

Try and create a mythic or exotic rarity item

Expected Result

Can create our own rarity names
Can select mythic and exotic

Observed Result

Can’t create our own rarities
Can’t select mythic or exotic (a fix has already been attempted for this but it still hasn’t exposed it here - see screenshot of verse digest)

Platform(s)

All

Upload an image

Hi @TrickTyger, :slight_smile: One of our gameplay programmers sent this over to me. Let me know if you have any other questions. I hope this helps!

Instead of creating a new rarity variable, we can just use the variable exposed at FortniteRarities.Mythic or FortniteRarities.Exotic using the equality operation if we need to check which kind of rarity it is.

  using { /Fortnite.com/Devices }
  using { /Verse.org/Simulation }
  using { /Verse.org/SceneGraph }
  using { /Fortnite.com/Itemization/FortniteRarities }
  rarity_probe_device := class(creative_device):
      # Exactly-Mythic
      ProbeMythic(R:rarity):void =
          if (R = Mythic):
              Print("Mythic identity match SUCCEEDED")
          else:
              Print("Mythic identity match FAILED")
      # What the cast used to give you: Mythic-or-above
      ProbeMythicOrBetter(R:rarity):void =
          if (R = Mythic or R = Exotic):
              Print("Mythic+ match SUCCEEDED")

About adding names to the rarities, they’re supposed to be self-descriptive by its class name, so that’s why we didn’t add a name field on them. You can always create an Utility function like this to do so:

RarityToString<public>(Rarity:rarity)<computes>:string:=
      if (Rarity = Common):
          return "Common"
      else if (Rarity = Uncommon):
          return "Uncommon"
      else if (Rarity = Rare):
          return "Rare"
      else if (Rarity = Epic):
          return "Epic"
      else if (Rarity = Legendary):
          return "Legendary"
      else if (Rarity = Mythic):
          return "Mythic"
      else if (Rarity = Exotic):
          return "Exotic"
      else:
          return "Unknown"

Hmm, but if I want to create a Tyger rarity for example - I can’t do that, I can only use the predefined Fortnite ones. For custom items, I might not want to use the Fortnite standard ones. I can set a new colour, but not name.

It also doesn’t answer the part about the Mythic or Exotic rarities being internal. When i’m creating a custom item, I can’t choose Mythic or Exotic because they’re epic internal.

Epic’s own documentation suggests we should be able to (the comment about it should use has_description)

https://github.com/EpicGames/UnrealEngine/blob/ue6-main/Engine/Plugins/EntityFramework/Source/Entity/Verse/Rarity.native.verse

FORT-1125571 has been ‘Closed’. This is working as intended by design.