Summary of "In Game Level Editor - Custom Property System (Unreal Engine)"

High-level summary

Key concepts and lessons

Detailed step-by-step implementation (create a Boolean is_hidden property for a cube)

  1. Prepare the placeable

    • Open the example level and select the placeable (the presenter renamed a copy of an existing Cube to “HiddenCube”).
    • Locate the component that holds placeable properties (the properties array on the placeable’s interface/component).
  2. Add a property entry to the placeable

    • Add an element to the properties array.
    • Set the property entry fields:
      • Name: e.g., is_hidden
      • Category: optional
      • Options: optional string for custom filtering/options
      • Class: set to your custom property class (created in the next steps)
  3. Create the custom property class

    • Create an object/class that derives from the plugin’s Property Value Object base class.
    • Add a variable to this class to hold the data (in this example add a Boolean variable named Value).
    • Set the property class’s ValueWidgetClass to the custom widget you will create (so the editor knows which widget to draw for editing this property).
  4. Create the custom value widget

    • Make a User Widget that inherits from the plugin’s Property Value Widget base (this base gives you a reference to the property object).
    • Add a Checkbox widget to the User Widget layout.
    • In the widget graph:
      • Use the provided property reference (a pointer to the property object instance).
      • Cast the property object to your custom property class type.
      • On widget initialization/construct: read the property’s boolean value and set the Checkbox IsChecked so the UI reflects current data.
      • Bind to the Checkbox’s OnCheckStateChanged event:
        • Cast the property object to your custom type and set its Value to the new checked state.
        • Call the plugin’s notification node (e.g., TryCallPropertyValueChanged / property value changed caller) to notify the placeable that the property changed.
  5. Hook up the property to the placeable

    • In the HiddenCube’s properties array entry, set Class to the custom property class and set Name to is_hidden.
    • Ensure the property’s ValueWidgetClass is set so the checkbox appears in the editor.
  6. Respond to property changes in the placeable

    • In the placeable (HiddenCube) implement the OnPropertyValueChanged handler (this event is invoked on property change and also when the level loads).
    • In that handler:
      • Check if the changed property name equals is_hidden.
      • If so, get the property by name, cast to your custom property class, read the Boolean Value, and call SetHiddenInGame (or otherwise set visibility) using that Boolean.
    • Because the property change event also fires on level load, you don’t need a separate BeginPlay setup to apply the stored state.
  7. Test and save

    • Use the editor UI to toggle the is_hidden checkbox for the placeable.
    • Save the level, reload the editor (or play), and confirm the property persisted and the cube is hidden/unhidden as expected.

Note: Hiding does not necessarily remove collision — the cube may still block movement unless you change collision settings.

Practical notes, tips, and capabilities

What was demonstrated

Speakers / sources featured

Category ?

Educational


Share this summary


Is the summary off?

If you think the summary is inaccurate, you can reprocess it with the latest model.

Video