---
# System prepended metadata

title: Dialog Plugin Requirements
tags: [plugin]

---

---
tags: plugin
---

# Dialog Plugin Requirements

List of all the requirements, features and nice-to-haves for the Dialog Plugin. Will help drive development of plugin.

## Tab - Nodes 

### Pure Conversation Nodes

#### Start Node: Initiates conversation, no fields.

#### Dialog Node: Simple dialog node, that when reached continues the conversation.
- Fields: 
    - Dialog Lines: List of texts to be read by the same character, with optional audio that accompanies each line of text;
    - Character: Auto-completes from the variables with the 'character' type assigned;
    - Time: Defaults to 0, if specified, amount of time that line will take before skipping to the next line.

#### Requirements Node: Checks to see if dialogue branch can follow that path.
- Fields: 
    - Variable requirements: if operation is true, like "correctAnswers == 3", then requirement is met;
    - Boolean requirements: checks to see if boolean variable is in a certain state;
    - Event requirement: checks to see if event has or not been triggered;
     
On hover, the requirement description will be shown. Only auto-completes known events on the Variables Tab.

#### Consequences Node: Node that when passed, will update the game's internal variables.
- Fields:
    - Similar to requirements node, only this sets the variables instead of checking them;

#### Transition Node: When this node is hit, it transitions to a new scene. 

- Fields: 
    - Next scene: Name of the next scene to be used. Auto-completes to existing known scenes, if the name is new, a new one is created automatically;
    - Next converstion: Name of the next conversation to be used;
    - Transition Animation (optional): Name of the transition animation that will be triggered to connect two different scenes;

#### Choice Node: Node that outlines player's choices.

- Fields: 
    - List of choices. Each 

#### Timed Silence node: 
- Fields: 
    - Time: Amount of time of silence;
    - Stops Music: Boolean, that tells whether music stops or not;

### Art Nodes (TO BE DETERMINED, investigate animation sequences in Godot)

#### Music Start Node:
- Fields:
    - Source: The music asset's name;
    - Volume: Defaults to 100, can be tuned to better fit a specific ambiance;

#### Animation Node: Prompt to start a quick animation for a specific moment.
- Fields: 
    - Line: The name of the line to be read.

## Tab - Variables:
- List that compiles all the variables from the game, alongside a description. Each variable must contain a description, so that it can assist the hover feature. This tab will group together variables based on their type, which can be **character**, **event**, **number**, **boolean**.:
- **Character**: A character of the game;
- **Event**: An event that needs to be tracked. Can be a consequence for the dialogue, or a requirement;
- **Number**: A statistic to be tracked, requirement can perform quick math check to see if it is met;
- **Boolean**: Simple variable that can either be true or false;

# Features:
- Auto-complete de variables inteligente;
- Can select folder from which to load conversations from;
- Can select folder to which it will output JSON;
- Generate a single script file containing all the information for the game;
- Store settings persistingly, project-wide;
- Save positioning of each node persistently;