Skip to main content
Local Properties are dynamic variables defined by an element’s template. They allow template authors to expose configurable behavior without writing scripts. Access this menu from the Element Properties panel → Variables.

Property Types

Editing Properties

  1. Open the Element Properties panel (V)
  2. Click Variables to open the Local Properties menu
  3. Each property shows:
    • Name — The property identifier (localized)
    • Description — Explanation of what the property does (localized)
    • Input — Text field or dropdown depending on type
  4. Changes are applied immediately

Property Lifecycle

When a property value changes:
  1. The ElementPropertiesManager updates the stored value
  2. The OnPropertyValueChangeInEditor callback fires on the element’s template
  3. The level is marked as having unsaved changes
  4. The visual preview may update (depending on template implementation)

Builder System

The Local Properties menu uses a builder pattern:
  • EditorProperty.Builder creates property UI elements from the template’s property definitions
  • Input fields are used for Integer, Float, and String types
  • Dropdowns are used for Boolean and Enum types
  • Deprecated properties are filtered out automatically

Template-Defined Properties

Properties are defined by each template and vary between element types. Common examples:
  • Enemy speed — How fast the enemy moves
  • Item value — Score value of the item
  • Decoration color — Visual color variant
  • Block durability — How many hits the block can take
Local Properties are not the same as Lua Script Variables. Local Properties are defined by the template and have typed inputs. Script Variables are user-defined key-value pairs for Lua scripts.