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 skiponBeforeBlock, 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. YouronBeforeBlockhandler should readblock.nativeProperties.delayand callresolve()after the delay.portPerCharacter: Creates one output port per character in
metadata.characters. The DIALOG handler must callcontext.resolveCharacterPort(character.uuid)to pick which port to follow.
See
- DialogBlock for portPerCharacter usage
- BeforeBlockArgs for delay handling
Properties
debug?
optionaldebug?:boolean
Defined in: types.ts:152
Enable debug mode for this block (editor use).
delay?
optionaldelay?:number
Defined in: types.ts:148
Delay in seconds before the block is executed. Applied by the onBeforeBlock handler.
enableDispatcher?
optionalenableDispatcher?: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?
optionalisAsync?:boolean
Defined in: types.ts:146
Execute this block on a separate async track running in parallel with the main flow.
portPerCharacter?
optionalportPerCharacter?: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?
optionalskipIfMissingActor?:boolean
Defined in: types.ts:156
Skip this block entirely if the assigned actor/character is missing at runtime.
timeout?
optionaltimeout?:number
Defined in: types.ts:150
Timeout in seconds for block execution.
waitForBlocks?
optionalwaitForBlocks?: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?
optionalwaitInput?: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.
