Help with code!

I got this code from Zmackattack I believe, long time ago for replacing fiends with different animations, used to work. Just needs some reformatting as I get this error here:

image

I am not a verse coder. Can someone who knows verse reformat this code here so it works with the current version of verse while keeping it mostly the same? Thank you.

Here is the code:

https://codeshare.io/5zqXNW

I had to use codeshare as it wouldn’t paste properly here

Here is the code, without errors. You would need to check if it does what you expect

using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /Fortnite.com/Characters }
using { /UnrealEngine.com/Temporary/SpatialMath }
using { /Fortnite.com/AI }
using { /Verse.org/Random }
# See https://dev.epicgames.com/documentation/en-us/uefn/create-your-own-device-in-verse for how to create a verse device.
MovementState := enum{Idle, Walking, Attacking}
enemy_info_class := class<concrete>:
    @editable IdleAsset : creative_prop_asset = DefaultCreativePropAsset
    @editable WalkAsset : creative_prop_asset = DefaultCreativePropAsset
    @editable AttackAsset : creative_prop_asset = DefaultCreativePropAsset
    @editable Health : float = 1.0
    @editable Damage : float = 0.0
    @editable AttackWindupTime : float = 0.5
    @editable AttackCooldownTime : float = 0.5
 
# A Verse-authored creative device that can be placed in a level
custom_enemies_device := class(creative_device):
    @editable Spawners : []creature_spawner_device = array{}
    @editable EnableTrigger : trigger_device = trigger_device{}
    @editable DisableTrigger : trigger_device = trigger_device{}
    @editable var Enabled : logic = true
    @editable var EnemyArray : []enemy_info_class = array{}
    @editable DiedAsset : creative_prop_asset = DefaultCreativePropAsset
    @editable TimeToDespawnDied : float = 5.0
 
    # Runs when the device is started in a running game
    OnBegin<override>()<suspends>:void=
        EnableTrigger.TriggeredEvent.Subscribe(Enable)
        DisableTrigger.TriggeredEvent.Subscribe(Disable)
        for (Spawner : Spawners):
            Spawner.SpawnedEvent.Subscribe(CreatureSpawned)  
 
 
    CreatureSpawned(Agent : agent): void =
        if (Enabled = true):
            if (FortChar := Agent.GetFortCharacter[],Enemy := EnemyArray[GetRandomInt(0,EnemyArray.Length-1)]):
                FortChar.Hide()
                spawn{EnemyLoop(FortChar,Enemy)}
 
 
    EnemyLoop(FortChar : fort_character,EnemyInfo : enemy_info_class)<suspends>: void =
        var LastTransform : transform = FortChar.GetTransform()
        MaybeProp := SpawnProp(EnemyInfo.IdleAsset,LastTransform.Translation,LastTransform.Rotation)(0)
 
 
 
 
 
        var CurrentProp : creative_prop = creative_prop{}
        var CurrentState : MovementState = MovementState.Idle
        var LastState : MovementState = MovementState.Idle
 
        var WalkSpeed : float = 10.0
 
        if ( PropExists := MaybeProp?):
            set CurrentProp = PropExists
            loop:
                if (not FortChar.IsActive[]):
                    CurrentProp.Dispose()
                    PropSpawned :=SpawnProp(DiedAsset, LastTransform)
                    Sleep(TimeToDespawnDied)
                    if(PropThatNeedToDelete := PropSpawned(0)?){
                        PropThatNeedToDelete.Dispose()
                    }
                    break
                if (Distance(FortChar.GetTransform().Translation, LastTransform.Translation) = 0.0):
                    PlaySpace := GetPlayspace()
                    var PlayerNearby : logic = false
                    for (Player : PlaySpace.GetPlayers()):
                        if (LoopFortChar := Player.GetFortCharacter[]):
                            if (Distance(FortChar.GetTransform().Translation, LoopFortChar.GetTransform().Translation) < 120.0):
                                if (LoopFortChar.IsActive[]):
                                    set PlayerNearby = true
 
                    if (PlayerNearby = true):
 
                        set CurrentState = MovementState.Attacking
 
                        CurrentProp.Dispose()
                        MaybeAttackProp := SpawnProp(EnemyInfo.AttackAsset,FortChar.GetTransform().Translation,FortChar.GetTransform().Rotation)(0)
                        if ( AttackProp := MaybeAttackProp?):
                             set CurrentProp = AttackProp
 
 
                        Sleep(EnemyInfo.AttackWindupTime)
                        for (Player : PlaySpace.GetPlayers()):
                            if (LoopFortChar := Player.GetFortCharacter[]):
                                if (Distance(FortChar.GetTransform().Translation, LoopFortChar.GetTransform().Translation) < 120.0):
                    else:
                        if (not CurrentState = MovementState.Idle):
 
                            set CurrentState = MovementState.Idle
 
 
                            CurrentProp.Dispose()
                            MaybeIdleProp := SpawnProp(EnemyInfo.IdleAsset,FortChar.GetTransform().Translation,FortChar.GetTransform().Rotation)(0)
                            if ( IdleProp := MaybeIdleProp?):
                                set CurrentProp = IdleProp
 
 
                else:
                    if (not CurrentState = MovementState.Walking):
                        set CurrentState = MovementState.Walking
 
 
                        CurrentProp.Dispose()
                        MaybeWalkProp := SpawnProp(EnemyInfo.WalkAsset,FortChar.GetTransform().Translation,FortChar.GetTransform().Rotation)(0)
                        if (WalkProp := MaybeWalkProp?):
                            set CurrentProp = WalkProp 
 
 
 
                set LastTransform = FortChar.GetTransform()
                CurrentProp.MoveTo(FortChar.GetTransform().Translation,FortChar.GetTransform().Rotation,0.1)
 
 
 
    (InProp : creative_prop).SwapProp(OutProp : creative_prop)<suspends>: void =
        TempTransform := OutProp.GetTransform()
        if (OutProp.TeleportTo[InProp.GetTransform().Translation,InProp.GetTransform().Rotation]):
        Sleep(0.0)
        if (InProp.TeleportTo[TempTransform.Translation,TempTransform.Rotation]){}
 
 
 
    Enable(MaybeAgent : ?agent): void =
        set Enabled = true
 
    Disable(MaybeAgent : ?agent): void =
        set Enabled = false