Editable field needs to be optional to work

Please select what you are reporting on:

Creative

What Type of Bug are you experiencing?

Assets

Summary

I have a device that references other devices (different class), it seems that if the reference is not optional, it will keep the link to the empty some_other_device{} that’s created in the constructor

Really hard to know why, the script was working fine before the 28.10 update (the optional editables one)

Steps to Reproduce

Idk, here’s the snippet : (if you get rid of the crashable_device_config and reference the device directly it will work though)

using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }

crashable_device_config := class<concrete>:
    # Needs to be optional for some reason (will keep a link to another empty crashable_device{} otherwise)
    @editable
    Device : crashable_device = crashable_device{}
    # Device : ?crashable_device = false # <-- Solution

crashable_device := class(creative_device):
    var IsReady<private> : logic = false

    OnBegin<override><final>()<suspends>:void=
        _CrashableReady()

    OnCrashableDeviceBegin<public>()<suspends>:void={}

    _CrashableReady<private>():void=
        set IsReady = true
        Print("set IsReady=true")

    _CrashableAwaitReady<internal>()<suspends>:void=
        if(not IsReady?):
            Print("NOT READY")

verse_crash_detector := class(creative_device):

    @editable
    CrashableConfigs : []crashable_device_config = array{}

    OnBegin<override>()<suspends>:void=
        Sleep(1.0) # So we're sure that IsReady is set before
        for(Config : CrashableConfigs, Device := Config.Device):
            Device._CrashableAwaitReady()

Expected Result

References should be kept

Observed Result

References seem to be lost

Platform(s)

PC

The status of UCB-1247 incident has been moved from ‘Awaiting Validation’ to ‘Needs Triage’.

The issue is that both print are executed, in this order “set IsReady=true” => “NOT READY” which should not happen