Skip to content
Dominik Morse edited this page Jun 1, 2024 · 5 revisions

Welcome to the MounteaDialogueSystem wiki!

About

Mountea Dialogue System is an advanced C++ based plugin providing Unreal developers tools to create and manage in-game dialogues in a data-driven way. The whole system is created using abstract interfaces system combined with pre-defined components, giving developers options to either plug-n-play or use the foundations to make custom implementations.

Mountea Dialogue System was inspired by Witcher 3 and their amazing dialogue system, which is both visually simple and understandable yet very versatile so it can fit any situation.

Mountea Dialogue System is and will be always free, expanding its abilities over time, including but not limited to:

  • Dialogue Node Editor
  • Dialogue Data Validations
  • Dynamic Dialogue Events
  • Switching dialogues in runtime

To start with Mountea Dialogue System go to Getting Started page which covers (not just) the basic setup and most use-cases.
If looking for simple answers, go to FAQ.

Flowgraph

graph TD
    A[BeginPlay] --> B[OnDialogueInitialized]
    B --> C[OnDialogueContextUpdated]
    B --> D[OnDialogueStarted]
    D --> E[OnDialogueNodeSelected]
    E --> F[OnDialogueNodeStarted]
    F --> G[StartExecuteDialogueRow]
    G --> H[OnDialogueRowStarted]
    H --> I[OnDialogueVoiceStartRequest]
    I --> J[FinishedExecuteDialogueRow]
    J --> K[OnDialogueRowFinished]
    J --> L[OnDialogueNodeFinished]
    L --> M[OnDialogueClosed]

    C -->|Updates| C1[Dialogue Context]
    F -->|Processes| N[Dialogue Node]
    E -->|Handles| E1[Node Selection]

    subgraph Dialogue Lifecycle
        A -->|Initialize| B
        B -->|Start| D
        D -->|Select Node| E
        E -->|Start Node| F
        F -->|Execute Row| G
        G -->|Voice Start| I
        I -->|Finish Row| J
        J -->|Finish Node| L
        L -->|Close Dialogue| M
    end

    subgraph UI Management
        A -->|Invoke UI| P[InvokeDialogueUI]
        P -->|Update UI| Q[UpdateDialogueUI]
        Q -->|Close UI| R[CloseDialogueUI]
    end

    subgraph Replication
        A -->|Setup| S[GetLifetimeReplicatedProps]
        S -->|Replicate| T[ReplicateSubobjects]
    end

    subgraph Event Handlers
        B -->|Initialized| U[OnDialogueInitializedEvent_Internal]
        C -->|Context Updated| V[OnDialogueContextUpdatedEvent_Internal]
        P -->|UI Changed| W[OnDialogueUserInterfaceChangedEvent_Internal]
        D -->|Started| X[OnDialogueStartedEvent_Internal]
        M -->|Closed| Y[OnDialogueClosedEvent_Internal]
        E -->|Node Selected| Z[OnDialogueNodeSelectedEvent_Internal]
        F -->|Node Started| AA[OnDialogueNodeStartedEvent_Internal]
        L -->|Node Finished| AB[OnDialogueNodeFinishedEvent_Internal]
        H -->|Row Started| AC[OnDialogueRowStartedEvent_Internal]
        K -->|Row Finished| AD[OnDialogueRowFinishedEvent_Internal]
        I -->|Voice Start Request| AE[OnDialogueVoiceStartRequestEvent_Internal]
        J -->|Voice Skip Request| AF[OnDialogueVoiceSkipRequestEvent_Internal]
    end
Loading