Edit

CustomForm Class

A customizable data driven (DDUI) form that lets you add buttons, labels, toggles, dropdowns, sliders, text fields, and more. The form layout is built by calling methods to add components before calling show(). Any Observable values bound to form components will automatically update the UI when their values change.

Methods

constructor

new CustomForm(player: minecraftserver.Player, title: ObservableString | ObservableUIRawMessage | string | UIRawMessage)

Creates a new CustomForm for the specified player with the given title.

Parameters

Returns CustomForm

Notes:

button

button(label: ObservableString | ObservableUIRawMessage | string | UIRawMessage, onClick: () => void, options?: ButtonOptions): CustomForm

Adds a clickable button to the form layout. Returns the form instance to allow method chaining.

Parameters

  • label: ObservableString | ObservableUIRawMessage | string | UIRawMessage

    The text label to display on the button.

  • onClick: () => void

    A callback function that is invoked when the player clicks the button.

  • options?: ButtonOptions = null

    Optional configuration for the button, such as a tooltip, disabled state, or visibility.

Returns CustomForm

Notes:

close

close(): void

Closes the form if it is currently being shown to the player. Throws a FormVisibilityError if the form is not currently open.

Notes:

closeButton

closeButton(): CustomForm

Adds a close button to the form at the bottom and as an 'X' in the corner. Returns the form instance to allow method chaining.

Returns CustomForm

Notes:

divider

divider(options?: DividerOptions): CustomForm

Adds a horizontal divider line to the form layout. Useful for visually separating sections of the form. Returns the form instance to allow method chaining.

Parameters

  • options?: DividerOptions = null

    Optional configuration for the divider, such as visibility.

Returns CustomForm

Notes:

dropdown(label: ObservableString | ObservableUIRawMessage | string | UIRawMessage, value: ObservableNumber, items: DropdownItemData[], options?: DropdownOptions): CustomForm

Adds a dropdown selection control to the form layout. The current selection is tracked via an ObservableNumber and will update when the player changes the selection. Returns the form instance to allow method chaining.

Parameters

Returns CustomForm

Notes:

header(text: ObservableString | ObservableUIRawMessage | string | UIRawMessage, options?: TextOptions): CustomForm

Adds a header text component to the form layout. Headers are displayed in a larger or bolder style than regular labels, and are suitable for section titles. Returns the form instance to allow method chaining.

Parameters

Returns CustomForm

Notes:

isShowing

isShowing(): boolean

Returns true if the form is currently being shown to the player, false otherwise.

Returns boolean

Notes:

  • This function can't be called in restricted-execution mode.

label

label(text: ObservableString | ObservableUIRawMessage | string | UIRawMessage, options?: TextOptions): CustomForm

Adds a read-only text label to the form layout. Returns the form instance to allow method chaining.

Parameters

Returns CustomForm

Notes:

show

show(): Promise<DataDrivenScreenClosedReason>

Shows the form to the player. Returns a promise that resolves with a DataDrivenScreenClosedReason indicating how the form was closed.

Returns Promise<DataDrivenScreenClosedReason>

Notes:

slider

slider(label: ObservableString | ObservableUIRawMessage | string | UIRawMessage, value: ObservableNumber, min: number | ObservableNumber, max: number | ObservableNumber, options?: SliderOptions): CustomForm

Adds a numeric slider control to the form layout. The current value is tracked via an ObservableNumber and will update as the player moves the slider. Returns the form instance to allow method chaining.

Parameters

Returns CustomForm

Notes:

spacer

spacer(options?: SpacingOptions): CustomForm

Adds a vertical spacer component to the form layout. Useful for adding empty space between form components. Returns the form instance to allow method chaining.

Parameters

  • options?: SpacingOptions = null

    Optional configuration for the spacer, such as visibility.

Returns CustomForm

Notes:

textField

textField(label: ObservableString | ObservableUIRawMessage | string | UIRawMessage, text: ObservableString, options?: TextFieldOptions): CustomForm

Adds a text input field to the form layout. The current text value is tracked via an ObservableString and will update as the player types. Returns the form instance to allow method chaining.

Parameters

Returns CustomForm

Notes:

toggle

toggle(label: ObservableString | ObservableUIRawMessage | string | UIRawMessage, toggled: ObservableBoolean, options?: ToggleOptions): CustomForm

Adds a toggle (on/off switch) control to the form layout. The current state is tracked via an ObservableBoolean and will update when the player toggles it. Returns the form instance to allow method chaining.

Parameters

Returns CustomForm

Notes: