[Major] Many `@editable` values cannot be set any more (Scene Graph)

Summary

It looks like v34.30 (maybe even v34.21) has broken the @editable editor fields. The editor presents incorrect UI fields for many cases.

The outlined fields with yellow are incorrect.

The editor presents an asset field. Instead it should be a list of types like in the following screenshot for example.

image

Please select what you are reporting on:

Unreal Editor for Fortnite

What Type of Bug are you experiencing?

Other

Steps to Reproduce

  • Use the vz_anomaly_2 project (see private code below).
  • Add the vz_* prefixed components to the entity
  • Add at least one element to each array

Alternatively here’s a test code:

using { /Verse.org/SceneGraph }
using { /Verse.org/Simulation }

vz_test_abstract_editables_component := class<final><final_super>(component) {
  @editable
  EAbstract: vz_abstract

  @editable
  ESetAbstract: vz_abstract = vz_abstract_impl {}

  @editable
  EOptionalAbstract: ?vz_abstract

  @editable
  ESetOptionalAbstract: ?vz_abstract = false

  @editable
  EAbstractArray: []vz_abstract
}

vz_test_interface_editables_component := class<final><final_super>(component) {
  @editable
  EInterface: vz_interface

  @editable
  ESetInterface: vz_interface = vz_interface_impl {}

  @editable
  EOptionalInterface: ?vz_interface

  @editable
  ESetOptionalInterface: ?vz_interface = false

  @editable
  EInterfaceArray: []vz_interface
}

vz_test_concrete_editables_component := class<final><final_super>(component) {
  @editable
  EConcrete: vz_concrete_class

  @editable
  ESetConcrete: vz_concrete_class = vz_concrete_class {}

  @editable
  EOptionalConcrete: ?vz_concrete_class

  @editable
  ESetOptionalConcrete: ?vz_concrete_class = false

  @editable
  EConcreteArray: []vz_concrete_class
}

vz_test_non_concrete_editables_component := class<final><final_super>(component) {
  @editable
  ENonConcrete: vz_non_concrete_class

  @editable
  ESetNonConcrete: vz_non_concrete_class = vz_non_concrete_class { Number := 42 }

  @editable
  EOptionalNonConcrete: ?vz_non_concrete_class

  @editable
  ESetOptionalNonConcrete: ?vz_non_concrete_class = false

  @editable
  ENonConcreteArray: []vz_non_concrete_class
}

vz_interface := interface {}
vz_interface_impl := class(vz_interface) {}

vz_abstract := class<abstract> {}
vz_abstract_impl := class(vz_abstract) {}

vz_non_concrete_class := class {
  @editable
  Number: int
}

vz_concrete_class := class<concrete> {
  @editable
  Number: int = 42
}

Expected Result

  • EAbstract, EInterface, EConcrete and ENonConcrete should present a field to set a proper verse type instead of a list of project assets.
  • EAbstractArray and EInterfaceArray elements should behave the same way as described in previous bullet point.
  • ESetOptional* fields should say None as the verse value is already set to false.

Source of bugs:

  • ENonConcreteArray Element should not automatically default the Number field to any value at all as it’s not being set in code.
  • No @editable fields that have no default value in code should automatically be set by the editor, ever. This should also apply to types which are concrete. This is a source of bugs as the editor will not remind the user that the value hasn’t been configured to a proper value yet. Instead the editor will silently fallback to a default value, which the user might forget to set manually, which is a big NO NO!

In the following screenshot we explicitly set the EOptionalNonConcrete field, but we haven’t specified the Number field yet.

image

The editor introduced a potential source for a bug here.

Observed Result

  • EAbstract, EInterface, EConcrete and ENonConcrete are impossible to set.
  • EAbstractArray and EInterfaceArray elements are impossible to set.
  • ESetOptional* shows incorrect value in the editor as if it was not set yet. However it is set to false in code, which should be None in the editor and not Set to Value.
  • ENonConcreteArray Element’s Number field should not be set at all.

Platform(s)

UEFN

Island Code

8188-2741-8846

Hey @Velocity_Zero , this should be resolved in 35.00

1 Like

FORT-888537 has been ‘Closed’. We’re unable to reproduce this issue.