VerseIsland
Feed Learn Leaderboard Guides Reference Explore Search Docs Verse Library
Sign in
Feed Learn 📖 Codex Leaderboard Guides Reference Explore Search Docs Verse Library
Verse Library › Scene Graph
Browse Verse Library

Library

Devices 634
  • Devices171
  • Triggers & Logic118
  • UI & HUD40
  • Audio39
  • Items & Inventory29
  • Events27
  • Scoring & Objectives25
  • Spawning19
  • Classes & Interfaces18
  • Game Modes17
  • Props & Meshes14
  • Variables & Mutability12
  • Player Management11
  • Modules & Structure10
  • Round Flow8
  • Animation6
  • Concurrency6
  • Functions6
  • Getting Started6
  • Teams & Classes6
  • NPCs & AI5
  • Tutorials5
  • VFX & Particles5
  • Arrays & Maps4
  • Cameras4
  • Debugging4
  • Control Flow3
  • Cinematics2
  • Other2
  • Persistence2
  • Scene Graph2
  • Structs & Enums2
  • Building1
  • Physics1
  • Publishing & Islands1
  • Syntax & Types1
  • Vehicles1
  • Weapons1
Verse Language 257
  • Control Flow35
  • Functions26
  • Arrays & Maps25
  • Classes & Interfaces22
  • Variables & Mutability22
  • Concurrency21
  • Syntax & Types18
  • Modules & Structure12
  • Debugging8
  • Devices8
  • Events7
  • Player Management6
  • Structs & Enums6
  • Triggers & Logic6
  • Game Modes5
  • Failure & Options4
  • Scene Graph4
  • UI & HUD4
  • Getting Started3
  • Round Flow3
  • Spawning3
  • VFX & Particles3
  • Reference2
  • Animation1
  • Best Practices1
  • Other1
  • Props & Meshes1
Materials/VFX 154
  • Triggers & Logic27
  • UI & HUD17
  • Devices16
  • VFX & Particles14
  • Props & Meshes11
  • Scoring & Objectives9
  • Game Modes7
  • Items & Inventory7
  • Functions6
  • Arrays & Maps5
  • Animation3
  • Cinematics3
  • Classes & Interfaces3
  • Control Flow3
  • Events3
  • Modules & Structure3
  • Round Flow3
  • Spawning3
  • Getting Started2
  • Scene Graph2
  • Variables & Mutability2
  • Concurrency1
  • Persistence1
  • Player Management1
  • Structs & Enums1
  • Syntax & Types1
General 153
  • Devices22
  • Events20
  • Triggers & Logic20
  • Classes & Interfaces10
  • Variables & Mutability8
  • Round Flow6
  • Scoring & Objectives6
  • UI & HUD6
  • Functions5
  • Player Management5
  • Game Modes4
  • Getting Started4
  • Props & Meshes4
  • Control Flow3
  • Syntax & Types3
  • VFX & Particles3
  • Arrays & Maps2
  • Best Practices2
  • NPCs & AI2
  • Other2
  • Physics2
  • Scene Graph2
  • Spawning2
  • Structs & Enums2
  • Tutorials2
  • Building1
  • Cameras1
  • Cinematics1
  • Failure & Options1
  • Items & Inventory1
  • Teams & Classes1
Player 133
  • Player Management22
  • Teams & Classes19
  • Classes & Interfaces12
  • Devices11
  • Events9
  • Persistence7
  • Triggers & Logic7
  • Arrays & Maps6
  • Functions4
  • Game Modes4
  • Items & Inventory4
  • Round Flow4
  • Debugging3
  • Getting Started3
  • Modules & Structure3
  • Concurrency2
  • Control Flow2
  • Scoring & Objectives2
  • Spawning2
  • Structs & Enums2
  • Physics1
  • Props & Meshes1
  • UI & HUD1
  • Variables & Mutability1
  • Weapons1
Building & Props 131
  • Variables & Mutability15
  • Props & Meshes14
  • Triggers & Logic12
  • Classes & Interfaces10
  • Devices10
  • UI & HUD10
  • Events7
  • Teams & Classes7
  • Animation5
  • Building5
  • Functions5
  • VFX & Particles5
  • Structs & Enums4
  • Control Flow3
  • Game Modes3
  • Items & Inventory3
  • Round Flow3
  • Scene Graph3
  • Arrays & Maps2
  • Concurrency2
  • Reference2
  • Modules & Structure1
NPCs & AI 76
  • NPCs & AI35
  • Spawning7
  • Animation5
  • Variables & Mutability5
  • Classes & Interfaces3
  • Debugging3
  • UI & HUD3
  • Audio2
  • Concurrency2
  • Game Modes2
  • Props & Meshes2
  • Triggers & Logic2
  • Devices1
  • Functions1
  • Getting Started1
  • Reference1
  • VFX & Particles1
Spawning 73
  • Spawning31
  • Events7
  • Concurrency6
  • Player Management6
  • Vehicles5
  • Props & Meshes4
  • Devices3
  • Scene Graph3
  • Items & Inventory2
  • Teams & Classes2
  • Control Flow1
  • Publishing & Islands1
  • Reference1
  • Scoring & Objectives1
Cinematics 71
  • Cameras19
  • Cinematics15
  • Devices11
  • Audio5
  • Animation4
  • Triggers & Logic4
  • Functions2
  • Game Modes2
  • UI & HUD2
  • Classes & Interfaces1
  • Concurrency1
  • Control Flow1
  • Items & Inventory1
  • Modules & Structure1
  • Scene Graph1
  • Templates1
UI 57
  • UI & HUD35
  • Devices5
  • Scoring & Objectives4
  • Classes & Interfaces3
  • Round Flow2
  • Scene Graph2
  • Arrays & Maps1
  • Props & Meshes1
  • Structs & Enums1
  • Templates1
  • Triggers & Logic1
  • Variables & Mutability1
Scene Graph 40
  • Scene Graph9
  • Items & Inventory8
  • Classes & Interfaces3
  • Events3
  • Props & Meshes3
  • Functions2
  • Arrays & Maps1
  • Building1
  • Control Flow1
  • Debugging1
  • Modules & Structure1
  • Player Management1
  • Reference1
  • Structs & Enums1
  • Syntax & Types1
  • Triggers & Logic1
  • UI & HUD1
  • VFX & Particles1
Vehicles 38
  • Spawning11
  • Devices7
  • Vehicles7
  • Props & Meshes4
  • Functions2
  • Game Modes2
  • Failure & Options1
  • Items & Inventory1
  • Reference1
  • Teams & Classes1
  • Tutorials1
Tutorials 37
  • Game Modes6
  • Triggers & Logic5
  • Classes & Interfaces4
  • Events4
  • Props & Meshes3
  • Building2
  • Devices2
  • Items & Inventory2
  • Scoring & Objectives2
  • Animation1
  • Arrays & Maps1
  • Cameras1
  • Concurrency1
  • Physics1
  • Player Management1
  • Structs & Enums1
Weapons 30
  • Game Modes6
  • Weapons6
  • Devices5
  • Items & Inventory3
  • Scoring & Objectives3
  • Spawning2
  • Teams & Classes2
  • Best Practices1
  • Functions1
  • Triggers & Logic1
Items 28
  • Items & Inventory23
  • Devices2
  • Triggers & Logic2
  • Spawning1
Assets 20
  • Modules & Structure6
  • Arrays & Maps3
  • Functions3
  • Scene Graph2
  • Best Practices1
  • Devices1
  • Events1
  • Failure & Options1
  • Physics1
  • Variables & Mutability1
Animation 19
  • Animation10
  • Variables & Mutability4
  • Devices1
  • Player Management1
  • Props & Meshes1
  • Scene Graph1
  • Syntax & Types1
Release Notes 17
  • Classes & Interfaces5
  • Modules & Structure3
  • Concurrency2
  • Control Flow2
  • Variables & Mutability2
  • Debugging1
  • Devices1
  • Items & Inventory1
Input & Controls 16
  • Functions4
  • UI & HUD3
  • Control Flow2
  • Animation1
  • Arrays & Maps1
  • Cinematics1
  • Debugging1
  • Devices1
  • Events1
  • Items & Inventory1
Publishing 8
  • Control Flow5
  • Arrays & Maps1
  • Devices1
  • Syntax & Types1
Audio 7
  • Audio5
  • UI & HUD2
Landscape 7
  • Other4
  • VFX & Particles2
  • Scene Graph1
Persistence 6
  • Structs & Enums2
  • Items & Inventory1
  • Persistence1
  • Publishing & Islands1
  • Variables & Mutability1
Physics 5
  • Functions2
  • Classes & Interfaces1
  • Devices1
  • Syntax & Types1
Creator Economy 3
  • Publishing & Islands2
  • Modules & Structure1
Discovery 3
  • Devices1
  • NPCs & AI1
  • Structs & Enums1
Editor & Project 3
  • Other1
  • Props & Meshes1
  • Tutorials1

Advanced Item and Pickup Components

Module — 2 files
These files compile together (same module folder).
file_1.verse
using { /UnrealEngine.com/Itemization }
using { /UnrealEngine.com/JSON }
using { /Verse.org/Simulation }
using { /Verse.org/SceneGraph }
using { /Fortnite.com/Itemization/FortniteRarities }
using { /Fortnite.com/Items }
using { /Verse.org/Presentation }
using { /Verse.org/Assets }
using { /Fortnite.com/Game }

DefaultItemNameMessage<localizes><public>: message = "Item Name"
DefaultItemDescriptionMessage<localizes><public>: message = "Item Description"
DefaultItemShortDescriptionMessage<localizes><public>: message = "Item Short Description"

item_rarities_enum<public>:= enum:
    Rarity_Common,
    Rarity_Uncommon,
    Rarity_Rare,
    Rarity_Epic,
    Rarity_Legendary,
    Rarity_Mythic,
    Rarity_Exotic

item_details_definition<public>:= class(has_description):

advanced_item_component<public>:= class<final_super>(item_component):
    
    @editable
    var ItemRarity<public>: item_rarities_enum = item_rarities_enum.Rarity_Epic

    @editable
    var ItemDetails<public>: item_details_definition = item_details_definition{Name:=DefaultItemNameMessage, Description:=DefaultItemDescriptionMessage, ShortDescription:=DefaultItemShortDescriptionMessage}    

    @editable
    var ItemIcon<public>: ?texture = false

    var _ItemRarity<private>: rarity = Epic    
    var MaybeItemOwner<private>: ?agent = false
    var SubscriptionEvents<private> : []cancelable = array{}

    EnumRarityToRarity<public>(EnumRarity:item_rarities_enum):rarity=
        case(EnumRarity):
            item_rarities_enum.Rarity_Common => Common
            item_rarities_enum.Rarity_Uncommon => Uncommon
            item_rarities_enum.Rarity_Rare => Rare
            item_rarities_enum.Rarity_Epic => Epic
            item_rarities_enum.Rarity_Legendary => Legendary

            item_rarities_enum.Rarity_Mythic => 
                if(MythicRarity := MythicGoldfish_BR_CH2S1_Mythic{}.GetComponent[rarity_component].Rarity):
                    MythicRarity
                else:
                    Legendary
            item_rarities_enum.Rarity_Exotic =>
                if(ExoticRarity := RiftPointDevice_Ballistic_V1_Exotic{}.GetComponent[rarity_component].Rarity):
                    ExoticRarity
                else:
                    Legendary

    SetItemIcon<public>(NewIcon : ?texture):void=
        set ItemIcon = NewIcon
        UpdateIcon()

    SetItemName<public>(NewName : message):void=
        set ItemDetails.Name = NewName
        UpdateDetails()

    SetItemDescription<public>(NewDescription : message):void=
        set ItemDetails.Description = NewDescription
        UpdateDetails()

    UpdateIcon<private>():void=
        if(Icon := ItemIcon?):
            if(IconComp := Entity.GetComponent[icon_component]):
                set IconComp.Icon = Icon
            else:
                NewIconComp : icon_component = icon_component:
                    Entity:=Entity
                    Icon:=Icon
                Entity.AddComponent(NewIconComp)    

    UpdateDetails<private>():void=
        if(DescriptionComp := Entity.GetComponent[description_component]):
            set DescriptionComp.Name = ItemDetails.Name
            set DescriptionComp.Description = ItemDetails.Description
            set DescriptionComp.ShortDescription = ItemDetails.ShortDescription
        else:
            NewDescriptionComp : description_component = description_component:
                Entity:=Entity
                Name:=ItemDetails.Name
                Description:=ItemDetails.Description
                ShortDescription:=ItemDetails.ShortDescription
            Entity.AddComponent(NewDescriptionComp)      

    SetRarity<public>(TargetRarity:item_rarities_enum):void=
        SetRarity(EnumRarityToRarity(ItemRarity))

    SetRarity<public>(TargetRarity:rarity):void=
        set _ItemRarity = TargetRarity
        if(RarityComp := Entity.GetComponent[rarity_component]):
            set RarityComp.Rarity = TargetRarity
        else:
            NewRarityComp : rarity_component = rarity_component:
                Entity:=Entity
                Rarity:=TargetRarity
            Entity.AddComponent(NewRarityComp)    
            
    GetItemRarity<public>():rarity=
        _ItemRarity

    GetItemNameAsString<public>():string=
        Localize(ItemDetails.Name)

    GetItemDescriptionAsString<public>():string=
        Localize(ItemDetails.Description)

    GetItemName<public>():message=
        ItemDetails.Name

    GetItemDescription<public>():message=
        ItemDetails.Description

    GetItemIcon<public>():texture=
        if(Icon := ItemIcon?):
            return Icon
        else:
            if(IconComp := Entity.GetComponent[icon_component]):
                return IconComp.Icon
            else:
                NewIconComp : icon_component = icon_component:
                    Entity:=Entity
                return NewIconComp.Icon

    GetItemOwner<public>()<decides><reads>:agent=
        MaybeItemOwner?

    OnEquipChanges<private>(Result:change_equipped_result):void=
        if(Result.IsItemEquipped?):
            OnEquipped()
        else:
            OnUnequipped()

    OnEquipped<public>():void=
        Print("[{GetItemNameAsString()}] Equipped!")

    OnUnequipped<public>():void=
        Print("[{GetItemNameAsString()}] Unequipped!")

    OnInventoryChanges<private>(Result:change_inventory_result):void=
        if(GetParentInventory[]):
            if(ItemOwner := Entity.FindItemOwnerAgent[]):
                OnItemAdded(ItemOwner)
                set MaybeItemOwner = option{ItemOwner}
        else:
            if(OldOwner := MaybeItemOwner?):
                OnItemRemoved(OldOwner)
                set MaybeItemOwner = false

    OnItemRemoved<public>(Agent:agent):void=
        Print("[{GetItemNameAsString()}] Item Removed!")

    OnItemAdded<public>(Agent:agent):void=
        Print("[{GetItemNameAsString()}] Item Added!")

    CancelOldEvents<private>():void=
        for(OldEvent : SubscriptionEvents):
            OldEvent.Cancel()

    OnBeginSimulation<override>():void=
        (super:)OnBeginSimulation()

        SetRarity(ItemRarity)
        UpdateIcon()
        UpdateDetails()

        CancelOldEvents()

        if(RoundManager := Entity.GetFortRoundManager[]):
            RoundEndEvent := RoundManager.SubscribeRoundEnded(CancelOldEvents)
            set SubscriptionEvents += array{RoundEndEvent}

        InventoryEvent :=ChangeInventoryEvent.Subscribe(OnInventoryChanges)
        EquippedEvent := ChangeEquippedEvent.Subscribe(OnEquipChanges)

        set SubscriptionEvents += array{EquippedEvent, InventoryEvent}

(InEntity:entity).AddComponent<public>(TargetComp:component):void=
    InEntity.AddComponents(array{TargetComp})

(Entity:entity).FindItemOwnerAgent<public>()<decides><transacts>:agent=
    if:
        Agent := agent[Entity]
    then:
        Agent
    else:
        Entity.GetParent[].FindItemOwnerAgent[]
advanced_item_pickup_component.verse
using { /Verse.org/SceneGraph }
using { /UnrealEngine.com/JSON }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Itemization }

MakePickupMessage<public><localizes>(ItemName:message): message = "Pickup {ItemName}"

advanced_item_pickup_component := class(basic_interactable_component):

    @editable
    EquipItemOnPickup<public>: logic = false

    var SubscriptionEvents<private> : []cancelable = array{}

    CancelOldEvents<private>():void=
        for(OldEvent : SubscriptionEvents):
            OldEvent.Cancel()

    TryPickupItem<private>(Agent:agent):void=
        if(ItemComp := Entity.GetComponent[advanced_item_component]):
            if(Inv := Agent.FindInventory[]):
                PickupResult := Inv.AddItemDistribute(Entity)
                if(PickupResult.GetSuccess[]):
                    OnItemPickupSuccess(Agent)
                    if(EquipItemOnPickup?):
                        ItemComp.Equip()
                else:
                    OnItemPickupFails(Agent)

    OnItemPickupSuccess<public>(Agent : agent):void=
        if(ItemComp := Entity.GetComponent[advanced_item_component]):
            Print("[{ItemComp.GetItemNameAsString()}] Successfully picked up!")

    OnItemPickupFails<public>(Agent : agent):void=
        if(ItemComp := Entity.GetComponent[advanced_item_component]):
            Print("[{ItemComp.GetItemNameAsString()}] Failed to pick up!")
            
    OnBeginSimulation<override>():void=
        (super:)OnBeginSimulation()

        CancelOldEvents()
        InteractionSuccessEvent := SucceededEvent.Subscribe(TryPickupItem)
        set SubscriptionEvents += array{InteractionSuccessEvent}

        if(ItemComp := Entity.GetComponent[advanced_item_component]):
            set CanInteractMessage = MakePickupMessage(ItemComp.GetItemName())

(Agent:agent).FindInventory<public>()<transacts><decides>:inventory_component=
    FoundedInventories := for(InventoryComponent : Agent.FindDescendantComponents(inventory_component)):
        InventoryComponent
    FoundedInventories[0]
Sign in to download module

Copy-paste each file above is always free.

Comments

    Sign in to vote, comment, or suggest an edit. Sign in
    📄
    Source
    Epic Games Community

    Created by a member of the Epic Games community. Rights remain with the original author, under Epic's community content terms. Terms ↗

    View original Sources & licensing
    Request removal
    Last updated Jun 23, 2026
    Verse module (2 files)
    Compiles · verified Jun 24, 2026

    Download the full module (zip) from the code panel above.

    Keep exploring
    Related topics
    • Fortnite Input Item Component Input & Controls
    • itemization Items
    • fortniteogitems Items
    • items Items
    • items Items

    Related

    Open in graph →

    Related topics

    • Fortnite Input Item Component
    • itemization
    • fortniteogitems
    • items
    • items
    VerseIsland · an archipelago of Verse & UEFN knowledge
    🗺️ Island atlas Learn Guides History About & Press Sources & Licensing Status

    Not affiliated with Epic Games. Fortnite, UEFN, Unreal Engine, and Verse are trademarks of Epic Games, Inc. Content is attributed to its source — see Sources & Licensing.

    🦜

    Scout · your island guide

    The Isle of Verse