Skip to content

LSDE Dialog Engine / NativeProperties

Interface: NativeProperties

Defined in: types.ts:144

LSDE native execution properties controlling how a block is dispatched by the engine.

Remarks

These properties affect the engine's execution flow, not the block's content:

  • Async tracks: When isAsync = true, the block runs on a parallel track independent of the main flow. Async tracks skip onBeforeBlock, follow only one connection, and are automatically cancelled when the scene ends.

  • waitForBlocks: When set, the block defers its advance until ALL listed block UUIDs have been visited in the scene. This enables precise synchronization between parallel async branches (e.g. a character waits for another to finish before reacting).

  • delay: Consumed by onBeforeBlock — the engine does not enforce it automatically. Your onBeforeBlock handler should read block.nativeProperties.delay and call resolve() after the delay.

  • portPerCharacter: Creates one output port per character in metadata.characters. The DIALOG handler must call context.resolveCharacterPort(character.uuid) to pick which port to follow.

See

Properties

debug?

optional debug?: boolean

Defined in: types.ts:152

Enable debug mode for this block (editor use).


delay?

optional delay?: number

Defined in: types.ts:148

Delay in seconds before the block is executed. Applied by the onBeforeBlock handler.


enableDispatcher?

optional enableDispatcher?: boolean

Defined in: types.ts:178

Dispatcher mode for CONDITION blocks. When true, all condition groups are evaluated and every matching group fires its port as an async track. The default/false port becomes the main continuation track (always executed). When false or absent, the standard switch behavior applies: first matching group wins.


isAsync?

optional isAsync?: boolean

Defined in: types.ts:146

Execute this block on a separate async track running in parallel with the main flow.


portPerCharacter?

optional portPerCharacter?: boolean

Defined in: types.ts:154

One output port per character in metadata.characters. The handler calls resolveCharacterPort() to pick which port to follow.


skipIfMissingActor?

optional skipIfMissingActor?: boolean

Defined in: types.ts:156

Skip this block entirely if the assigned actor/character is missing at runtime.


timeout?

optional timeout?: number

Defined in: types.ts:150

Timeout in seconds for block execution.


waitForBlocks?

optional waitForBlocks?: string[]

Defined in: types.ts:164

UUIDs of blocks that must have been visited before this block can progress. When next() is called and not all listed blocks are in visitedBlocks, the block defers its advance. Once the last required block is visited anywhere in the scene (main or async track), the deferred advance fires. Enables precise synchronization of parallel async branches.


waitInput?

optional waitInput?: boolean

Defined in: types.ts:171

Passive flag indicating this block should wait for explicit player input or an engine-specific signal before proceeding. The engine does NOT interpret this flag — it is exposed as-is to game handlers. Use case: second player controller, custom input events, etc.