Overview
Plugin Overview
Easy Dialogue System is a professional-grade dialogue management plugin for Unreal Engine 5. It provides a complete solution through a data-driven architecture for creating, managing, and executing dialogue sequences. The system is fully exposed to Blueprints, enabling designers to create complex dialogue trees without writing code.
Plugin Directory Structure
EasyDialogueSystem/
├── DialogueSystem.uplugin # Plugin descriptor file (JSON)
├── README.md # Plugin overview and documentation
├── Config/ # Plugin configuration files
├── Content/ # Plugin content assets (optional)
├── Docs/ # Documentation directory
│ ├── DialogueSystem_GettingStarted.md # English version documentation
│ └── DialogueSystem_GettingStarted_CN.md # Chinese version documentation (this file)
├── Resources/ # Plugin resources (icons, thumbnails)
├── Binaries/ # Compiled binary files (auto-generated)
│ └── Win64/
│ └── UnrealEditor-DialogueSystemRuntime.dll
├── Intermediate/ # Build intermediate files (auto-generated)
└── Source/ # Source code directory
└── DialogueSystemRuntime/ # Runtime module
├── DialogueSystemRuntime.Build.cs # Module build configuration
├── Public/ # Public interface header files
│ ├── DialogueSystemRuntime.h # Module entry point
│ ├── DialogueSystemTypes.h # Core type definitions
│ ├── DialogueDataAsset.h # Data asset class
│ └── DialogueSystemComponent.h # Runtime component class
└── Private/ # Implementation files
├── DialogueSystemRuntime.cpp # Module implementation
├── DialogueDataAsset.cpp # Data asset implementation
└── DialogueSystemComponent.cpp # Component implementationCore Concepts
Data Asset UDialogueDataAsset
UDialogueDataAssetCentral Data Container, stores:
Dialogue Sequence: A complete dialogue tree including nodes and choices
Speaker Information: Speaker metadata (name, display name, avatar, color)
Global Variables: Runtime variables with default values
Dialogue Structure
FDialogueSequence: Complete dialogue sequence, includes:Unique sequence ID and name
Start node reference
Dialogue node array
Choice node array
Metadata for extension
FDialogueNode: Single dialogue node, supports:Text node: Displays dialogue text with speaker information
Condition node: Conditional branching
Event node: Broadcasts events to external systems
Delay node: Waits for a specified duration
Chained linking via NextNodeID
FDialogueChoiceNode: Choice branch node, includes:Multiple choice options
Single or multiple selection support
Minimum/maximum selection constraints
Timeout handling and fallback node
Availability conditions for each choice
FDialogueCondition: Variable comparison system:Supports integer, float, boolean, string types
Multiple operators: equals, not equals, greater than, less than, contains, etc.
Comparison values based on strings
Runtime Component UDialogueSystemComponent
UDialogueSystemComponentExecution Engine, responsible for:
Loading and managing dialogue data assets
Executing dialogue sequences based on Tick timing
Handling delays, timeouts, and automatic progression
Broadcasting events for UI and external systems
Managing runtime variables
Source Code Structure
Public Header Files
DialogueSystemRuntime.hModule Interface Class
API Macro Definition (
DIALOGUE_SYSTEM_RUNTIME_API)Module Lifecycle Management
DialogueSystemTypes.hCore Type Definitions and Enumerations
EDialogueNodeType: Node type enumeration (Text, Choice, Condition, Event, Delay)EDialogueConditionOperator: Condition operator (Equals, Greater Than, Less Than, Contains, etc.)EDialogueValueType: Value type (Integer, Float, Boolean, String)FDialogueCondition: Variable comparison condition structureFSpeakerInfo: Speaker information structureFDialogueNode: Dialogue node structureFDialogueChoice: Choice option structureFDialogueChoiceNode: Choice branch node structureFDialogueSequence: Complete dialogue sequence container
DialogueDataAsset.hFGlobalVariable: Global variable definitionUDialogueDataAsset: Main data asset classData asset query and validation functions
DialogueSystemComponent.hUDialogueSystemComponent: Runtime execution componentBlueprint-integrated event delegates
Dialogue control functions (Start, Advance, Stop, Submit Choice)
Variable management functions
Private Implementation
DialogueSystemRuntime.cpp: Module startup and shutdownDialogueDataAsset.cpp: Data asset implementation and validationDialogueSystemComponent.cpp: Component logic, Tick processing, and node execution
Running Requirements
Engine: Unreal Engine 5.6 or higher
Module Dependencies:
Core- Core engine functionalityCoreUObject- Object systemEngine- Engine runtimeUMG- UI system (for UI integration examples)Slate- Slate UI frameworkSlateCore- Slate core functionality
Dependencies are automatically configured in DialogueSystemRuntime.Build.cs.
Last updated