Randomly Spawn Props In A Specific Area Of Island

Thanks @Astrotronic! Here is the code!

Summary

using { /Fortnite.com/Devices }
using { /Fortnite.com/Characters }
using { /Verse.org/Simulation }
using { /Verse.org/Random }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /UnrealEngine.com/Temporary/SpatialMath }
# See https://dev.epicgames.com/documentation/en-us/uefn/create-your-own-device-in-verse for how to create a verse device.

# A Verse-authored creative device that can be placed in a level
test_code := class(creative_device):

    # Commented out because I don't think I need to have this.
    #@editable var TreeProp : creative_prop = creative_prop{}

    @editable TreeAsset : creative_prop_asset = DefaultCreativePropAsset

    # This is where you enter the size of game area
    @editable var MinimumPositions : vector3 = vector3{}
    @editable var MaximumPositions : vector3 = vector3{}

    # In Editor you can adjust the Minimum and Maximum range for the Assets to be placed at OnBegin()
    @editable var MinAssets : int = 0  #Set to 0 In Editor
    @editable var MaxAssets : int = 0  #Set to 10 In Editor

    @editable var NewScale : vector3 = vector3{}
    
    # This works however... I would like to randomize NewPosition, NewRotation which affect all props, and I would like to beable to @editable the Scale for each Prop of all the differetnt types of Props Individually if I choose
    # NewPosition : vector3 = vector3 { X := 250.0, Y := -1250.0, Z := 0.0}
    # NewRotation : rotation = IdentityRotation()
    # NewScale : vector3 = vector3 {X := 1.0, Y :=1.0, Z := 1.0}

    # Runs when the device is started in a running game
    # OnBegin<override>()<suspends>:void=
    #     # SpawnTree()
    #     SpawnProp(TreeAsset, transform{Translation := NewPosition, Rotation := NewRotation, Scale := NewScale})
    #     block:
    
    RandomAsset() : void =
        # Getting random number to know how many of each asset to spawn
        AssetCount := GetRandomInt(MinAssets, MaxAssets)

    # NewPosition() : void =
    #     # Getting RandomFloat to randomly place Assets
    #     RandX := GetRandomFloat(MinimumPositions.X, MaximumPositions.X)
    #     RandY := GetRandomFloat(MinimumPositions.Y, MaximumPositions.Y)
    #     RandZ := GetRandomFloat(MinimumPositions.Z, MaximumPositions.Z)
    #     NewPosition := vector3{X := RandX, Y:= RandY, Z :=RandZ }

    # NewRotation() :void =
    #     RandomRotation := GetRandomFloat(0.0, 360.0) # Trying to get a random Number between 0 and 360 degrees.  Should it start at 1?
    #     NewRotation : rotation = RandomRotation
    #     Print("RandomRotation Value: {NewRotation}")

    <# 
    I want to have an @editable option for each type of prop so i can adjust the scale to exact value but also the option to put a range so it will randomly scale when an individual prop is spawned 
    NewScale() : void =
        NewScale : vector3 = vector3 {X := 1.0, Y := 1.0, Z:=1.0} 
    #>

    # This is an example of Spawning a tree and I would like to use this as a template for each type of prop I want to spawn.  I want to check the random Asset count so if it is greater than 0 I want to continue calculating the location and rotation of the prop otherwise if it is zero I would like to skip to the next prop.

    # SpawnTree() : void =
    #     loop:
    #         if (AssetCount > 0):
    #         # I commented this out because of the errors
    #         SpawnProp(TreeAsset, transform{Translation := NewPosition, Rotation := NewRotation, Scale := NewScale})
    #         else:
    #             return


    #####
    # HELP - Is this possible??
    #####

    # I would like to create a Play Area volume which is connected to the player that randomly moves around the island at the start of every game.  Within the volume I would randomly spawn the props and any animals. Then after the round I would like all props to stay in their spawned spot until the game is over just in case you randomly move close by and see part of the area you were just playing in.