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 › Assets
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

Seedable Random Number Generator

Module — 4 files
These files compile together (same module folder).
file_1.verse
SeedableRandom<public> := module:
    LeftShift(Value : int, Shift : int)<transacts><decides>:int=
        var Output : int = 0

        for (Index := 0..(31 - Shift)):
            Shifted := RightShift[Value, Index]

            Bit := Mod[Shifted, 2]

            if (Bit = 1):
                set Output += Floor[Pow(2.0, (Index + Shift) * 1.0)]

        return Output

    RightShift(Value : int, Shift : int)<transacts><decides>:int=
        return Floor[(Value * 1.0) / (Pow(2.0, Shift * 1.0))]

    XOR(A : int, B : int)<transacts><decides>:int=
        var Output : int = 0

        var ShiftedA : int = A
        var ShiftedB : int = B

        for (Index := 0..63, ShiftedA <> 0 or ShiftedB <> 0):
            BitA := Mod[ShiftedA, 2]
            BitB := Mod[ShiftedB, 2]

            if ((BitA = 1 and BitB = 0) or (BitA = 0 and BitB = 1)):
                set Output = Output + LeftShift[1, Index]

            set ShiftedA = RightShift[ShiftedA, 1]
            set ShiftedB = RightShift[ShiftedB, 1]

        return Output

    OR(A : int, B : int)<transacts><decides>:int=
        var Output : int = 0

        var ShiftedA : int = A
        var ShiftedB : int = B

        for (Index := 0..63, ShiftedA <> 0 or ShiftedB <> 0):
            BitA := Mod[ShiftedA, 2]
            BitB := Mod[ShiftedB, 2]

            if (BitA = 1 or BitB = 1):
                set Output = Output + LeftShift[1, Index]

            set ShiftedA = RightShift[ShiftedA, 1]
            set ShiftedB = RightShift[ShiftedB, 1]

        return Output

    UInt32(Value : int)<transacts><decides>:int=
        var Output : int = 0

        if (Value > 4294967295):
            for (Index := 0..31):
                Shifted := RightShift[Value, Index]

                Bit := Mod[Shifted, 2]

                if (Bit = 1):
                    set Output += LeftShift[1, Index]
        else if (Value < 0):
            for (Index := 0..31):
                Shifted := RightShift[-Value, Index]
        
                Bit := Mod[Shifted, 2]
        
                if (Bit = 0):
                    set Output += LeftShift[1, Index]
        
            set Output += 1
        else:
            set Output = Value

        return Output

    UInt16(Value : int)<transacts><decides>:int=
        var Output : int = 0

        if (Value > 65535):
            for (Index := 0..15):
                Shifted := RightShift[Value, Index]

                Bit := Mod[Shifted, 2]

                if (Bit = 1):
                    set Output += LeftShift[1, Index]
        else if (Value < 0):
            for (Index := 0..15):
                Shifted := RightShift[-Value, Index]
        
                Bit := Mod[Shifted, 2]
        
                if (Bit = 0):
                    set Output += LeftShift[1, Index]
        
            set Output += 1
        else:
            set Output = Value

        return Output

    Int32(Value : int)<transacts><decides>:int=
        var Output : int = 0

        if (Value > 2147483647):
            TopBit := Mod[RightShift[Value, 31], 2]

            set Output = -LeftShift[TopBit, 31]

            for (Index := 0..30):
                Shifted := RightShift[Value, Index]

                Bit := Mod[Shifted, 2]

                if (Bit = 1):
                    set Output += LeftShift[1, Index]
        else:
            set Output = Value

        return Output

    IMul(A : int, B : int)<transacts><decides>:int=
        CastA := UInt32[A]
        CastB := UInt32[B]

        HighA := UInt16[RightShift[CastA, 16]]
        LowA := UInt16[CastA]

        HighB := UInt16[RightShift[CastB, 16]]
        LowB := UInt16[CastB]

        return Int32[LowA * LowB + UInt32[LeftShift[HighA * LowB + LowA * HighB, 16]]]

    CharCodes : [char]int = map{
        '\t' => 9,
        '\n' => 10,
        '\r' => 13,
        ' ' => 32,
        '!' => 33,
        '"' => 34,
        '#' => 35,
        '$' => 36,
        '%' => 37,
        '&' => 38,
        '\'' => 39,
        '(' => 40,
        ')' => 41,
        '*' => 42,
        '+' => 43,
        ',' => 44,
        '-' => 45,
        '.' => 46,
        '/' => 47,
        '0' => 48,
        '1' => 49,
        '2' => 50,
        '3' => 51,
        '4' => 52,
        '5' => 53,
        '6' => 54,
        '7' => 55,
        '8' => 56,
        '9' => 57,
        ':' => 58,
        ';' => 59,
        '<' => 60,
        '=' => 61,
        '>' => 62,
        '?' => 63,
        '@' => 64,
        'A' => 65,
        'B' => 66,
        'C' => 67,
        'D' => 68,
        'E' => 69,
        'F' => 70,
        'G' => 71,
        'H' => 72,
        'I' => 73,
        'J' => 74,
        'K' => 75,
        'L' => 76,
        'M' => 77,
        'N' => 78,
        'O' => 79,
        'P' => 80,
        'Q' => 81,
        'R' => 82,
        'S' => 83,
        'T' => 84,
        'U' => 85,
        'V' => 86,
        'W' => 87,
        'X' => 88,
        'Y' => 89,
        'Z' => 90,
        '[' => 91,
        '\' => 92,
        ']' => 93,
        '^' => 94,
        '_' => 95,
        '`' => 96,
        'a' => 97,
        'b' => 98,
        'c' => 99,
        'd' => 100,
        'e' => 101,
        'f' => 102,
        'g' => 103,
        'h' => 104,
        'i' => 105,
        'j' => 106,
        'k' => 107,
        'l' => 108,
        'm' => 109,
        'n' => 110,
        'o' => 111,
        'p' => 112,
        'q' => 113,
        'r' => 114,
        's' => 115,
        't' => 116,
        'u' => 117,
        'v' => 118,
        'w' => 119,
        'x' => 120,
        'y' => 121,
        'z' => 122,
        '{' => 123,
        '|' => 124,
        '}' => 125,
        '~' => 126
    }

    Murmur3Hash<public> := class:
        var H : int = 2166136261

        Init<public>(Seed : string)<transacts><decides>:void=
            set H = UInt32[2166136261]

            for (I := 0..Seed.Length - 1):
                C := CharCodes[Seed[I]]

                var K : int = IMul[C, 3432918353]
                set K = OR[LeftShift[K, 15], RightShift[UInt32[K], 17]]
                set H = XOR[H, IMul[K, 461845907]]
                set H = OR[LeftShift[H, 13], RightShift[UInt32[H], 19]]
                set H = Int32[IMul[H, 5] + 3864292196]

            set H = XOR[H, Seed.Length]

        Gen<public>()<transacts><decides>:int=
            set H = XOR[H, RightShift[UInt32[H], 16]]
            set H = IMul[H, 2246822507]
            
            set H = XOR[H, RightShift[UInt32[H], 13]]
            set H = IMul[H, 3266489909]
            
            set H = XOR[H, RightShift[UInt32[H], 16]]

            return UInt32[H]

    SFC32<public> := class:
        var A : int = 0x9E3779B9 # phi
        var B : int = 0x243F6A88 # pi
        var C : int = 0xB7E15162 # e
        var D : int = 0

        Init<public>(Seed : string)<transacts><decides>:int=
            Murmur3HashInstance := Murmur3Hash{}
            Murmur3HashInstance.Init[Seed]

            set A = Murmur3HashInstance.Gen[]
            set B = Murmur3HashInstance.Gen[]
            set C = Murmur3HashInstance.Gen[]
            set D = Murmur3HashInstance.Gen[]

        Gen<public>()<transacts><decides>:int=
            set A = UInt32[A]
            set B = UInt32[B]
            set C = UInt32[C]
            set D = UInt32[D]

            var T : int = UInt32[UInt32[A + B] + D]
            set A = XOR[B, RightShift[B, 9]]
            set B = UInt32[C + LeftShift[C, 3]]
            set C = OR[LeftShift[C, 21], RightShift[C, 11]]
            set C = UInt32[C + T]
            set D = UInt32[D + 1]

            return UInt32[T]

        GetRandomFloat<public>(Minimum : float, Maximum : float)<transacts><decides>:float=
            Random := (1.0 * Gen[]) / 4294967296.0

            return Random * (Maximum - Minimum) + Minimum

        GetRandomInt<public>(Minimum : int, Maximum : int)<transacts><decides>:int=
            return Floor[GetRandomFloat[1.0 * Minimum, 1.0 * Maximum]]
seedable_rng_device.verse
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }

using { SeedableRandom }

seedable_rng_device := class(creative_device):

    @editable
    Seed : string = "TKB"

    var SFC32Instance : SFC32 = SFC32{}

    OnBegin<override>()<suspends>:void=
        if (SFC32Instance.Init[Seed]):
        else:
            Err("Error initializing seedable RNG.")

    GetRandomFloat(Minimum : float, Maximum : float)<transacts><decides>:float=
        return SFC32Instance.GetRandomFloat[Minimum, Maximum]

    GetRandomInt(Minimum : int, Maximum : int)<transacts><decides>:int=
        return SFC32Instance.GetRandomInt[Minimum, Maximum]
seedable_rng_test_device.verse
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }

using { SeedableRandom }

UEFNSeeds : []int = array{
    4145128657,
    715738149,
    1682962001,
    4273401301,
    370020918,
    1340182114,
    3411930669,
    1908218821,
    3992107615,
    1615585197
}

UEFNValues : []int = array{
    544333515,
    2957160242,
    3302321141,
    1405448341,
    1602569328,
    2950178210,
    1977322906,
    650593606,
    23229357,
    2212673890
}

WenegadeWaiderSeeds : []int = array{
    939380909,
    4189835253,
    3034901883,
    733325655,
    2295014037,
    357617677,
    1925413902,
    630340578,
    950301612,
    2264653970
}

WenegadeWaiderValues : []int = array{
    1567574521,
    2173244605,
    4226622494,
    2525296742,
    2791714766,
    480760615,
    963025894,
    166042036,
    264134641,
    4159508694
}

seedable_rng_test_device := class(creative_device):

    OnBegin<override>()<suspends>:void=
        Murmur3HashInstance := Murmur3Hash{}

        Print("\"UEFN\" Seed Generator Test")

        if (Murmur3HashInstance.Init["UEFN"]):
            for (ActualValue : UEFNSeeds):
                if (Value := Murmur3HashInstance.Gen[]):
                    Print("{ActualValue} = {Value}")
                else:
                    Err("Seedable RNG test seed mismatch.")
        else:
            Err("Seedable RNG hash initialization error.")

        Print("\"Wenegade Waider\" Seed Generator Test")

        if (Murmur3HashInstance.Init["Wenegade Waider"]):
            for (ActualValue : WenegadeWaiderSeeds):
                if (Value := Murmur3HashInstance.Gen[]):
                    Print("{ActualValue} = {Value}")
                else:
                    Err("Seedable RNG test seed mismatch.")
        else:
            Err("Seedable RNG hash initialization error.")

        SFC32Instance := SFC32{}

        Print("\"UEFN\" Random Number Generator Test")

        if (SFC32Instance.Init["UEFN"]):
            for (ActualValue : UEFNValues):
                if (Value := SFC32Instance.Gen[]):
                    Print("{ActualValue} = {Value}")
                else:
                    Err("Seedable RNG test value mismatch.")
        else:
            Err("Seedable RNG instance initialization error.")

        Print("\"Wenegade Waider\" Random Number Generator Test")

        if (SFC32Instance.Init["Wenegade Waider"]):
            for (ActualValue : WenegadeWaiderValues):
                if (Value := SFC32Instance.Gen[]):
                    Print("{ActualValue} = {Value}")
                else:
                    Err("Seedable RNG test value mismatch.")
        else:
            Err("Seedable RNG instance initialization error.")
seedable_rng_comparison_device.verse
using { /Fortnite.com/Devices }
using { /UnrealEngine.com/Temporary/SpatialMath }
using { /UnrealEngine.com/Temporary/UI }
using { /Verse.org/Colors }
using { /Verse.org/Random }
using { /Verse.org/Simulation }

comparison_widgets := class<unique>:

    Canvas : canvas
    ColorBlocks : []color_block

    Update(Counts : []int):void=
        var Sum : int = 0

        for (Count : Counts):
            set Sum += Count

        var MaxNormalizedCount : float = 0.0

        NormalizedCounts := for:
            Count : Counts
            NormalizedCount := (1.0 * Count) / (1.0 * Sum)
        do:
            if (NormalizedCount > MaxNormalizedCount):
                set MaxNormalizedCount = NormalizedCount

            NormalizedCount

        for (Index -> NormalizedCount : NormalizedCounts, ColorBlock := ColorBlocks[Index]):
            ColorBlock.SetDesiredSize(vector2{X := ColorBlock.GetDesiredSize().X, Y := 400.0 * NormalizedCount / MaxNormalizedCount})

    AddToUI(Player : player):void=
        if (PlayerUI := GetPlayerUI[Player]):
            PlayerUI.AddWidget(Canvas)

seedable_rng_comparison_device := class(creative_device):

    @editable
    SeedableRNG : seedable_rng_device = seedable_rng_device{}

    OnBegin<override>()<suspends>:void=
        Sleep(5.0) # in lieu of making seedable_rng_device extend awaitable_creative_device which would allow SeedableRNG.AwaitBegin()

        if (Player := Self.GetPlayspace().GetPlayers()[0]):
            spawn{RunComparison(Player)}

    RunComparison(Player : player)<suspends>:void=
        DefaultRNGWidgets := CreateComparisonWidgets(-250.0)
        SeedableRNGWidgets := CreateComparisonWidgets(250.0)

        DefaultRNGWidgets.AddToUI(Player)
        SeedableRNGWidgets.AddToUI(Player)

        var DefaultCounts : []int = for:
            Index := 0..12
        do:
            0

        var SeedableCounts : []int = for:
            Index := 0..12
        do:
            0

        loop:
            for (Index := 0..12):
                DefaultValue := GetRandomInt(0, 12)

                if (set DefaultCounts[DefaultValue] += 1):
                else:
                    Print("Failed to update default counts array.")

                if (SeedableValue := SeedableRNG.GetRandomInt[0, 12]):
                    if (set SeedableCounts[SeedableValue] += 1):
                    else:
                        Print("Failed to update seedable counts array.")
                else:
                    Err("Failed to get random integer from seedable RNG.")

            DefaultRNGWidgets.Update(DefaultCounts)
            SeedableRNGWidgets.Update(SeedableCounts)

            Sleep(0.0)

    CreateComparisonWidgets(LeftOffset : float):comparison_widgets=
        ColorBlocks := for:
            Index := 0..12
        do:
            color_block:
                DefaultColor := MakeColorFromHex("ffffff")
                DefaultDesiredSize := vector2{X := 400.0 / 12.0, Y := 0.0}

        Canvas := canvas:
            Slots := array:
                canvas_slot:
                    Anchors := anchors{Minimum := vector2{X := 0.5, Y := 0.5}, Maximum := vector2{X := 0.5, Y := 0.5}}
                    Offsets := margin{Top := 0.0, Left := LeftOffset, Bottom := 0.0, Right := 0.0}
                    SizeToContent := true
                    Alignment := vector2{X := 0.5, Y := 1.0}
                    Widget := stack_box:
                        Orientation := orientation.Horizontal
                        Slots := for:
                            ColorBlock : ColorBlocks
                        do:
                            stack_box_slot:
                                HorizontalAlignment := horizontal_alignment.Center
                                VerticalAlignment := vertical_alignment.Bottom
                                Widget := ColorBlock

        ComparisonWidgets := comparison_widgets:
            Canvas := Canvas
            ColorBlocks := ColorBlocks

        return ComparisonWidgets
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
    @Orientation
    Epic Games Community
    @Orientation

    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 (4 files)
    Build failed · 30 errors

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

    Keep exploring
    More in Verse Language · 42 of 106
    Prev
    fortnite generic events
    Next
    fortnite remove key from map
    Related topics
    • Design A Creature Rush Game In Fortnite Creative Npcs & Ai
    • random Verse Language
    • Storm Wars In Fortnite Creative General
    • Storm Wars In Fortnite Creative General
    • Random Sentry Fight In Fortnite Creative General

    Related

    Open in graph →

    Related topics

    • Design A Creature Rush Game In Fortnite Creative
    • random
    • Storm Wars In Fortnite Creative
    • Storm Wars In Fortnite Creative
    • Random Sentry Fight In Fortnite Creative
    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