Log inGet started

editorPanel

Updated 5 September 2026
local edui = require("@builtin::editor.edui.framework")

return {
    title = "My Tab",        -- the tab's label
    order = 60,              -- sort position in the Window menu
    dock = "bottom",         -- seed area: left | right | bottom | center
    startClosed = true,      -- registered closed; opened from the Window menu
    build = function()       -- the tab's body, rebuilt on the shell's cadence
        return edui.panel{ body = edui.text{ text = "hello" } }
    end,
}

The tab id defaults to the folder stem (myTab.editorPanel -> myTab); an explicit id overrides it. An init may return a LIST of specs when one asset carries several tabs.

The type's onRegister lifecycle registers every instance into the editor shell: live on asset.create, in the world-load sweep for the open world's panels, and from the boot prelude for the built-in library's. Adding a tab to a project is authoring one of these folders under /source/editorPanels/; saving it makes the tab appear, editing it re-registers it, deleting it removes it. Nothing registers panels by name anywhere.

  • asset-type
  • reference