All Projects → ejnij → Godot-DialogGraphPlugin

ejnij / Godot-DialogGraphPlugin

Licence: GPL-3.0 License
A simple Godot plugin for dialog graph creation.

Programming Languages

GDScript
375 projects

Projects that are alternatives of or similar to Godot-DialogGraphPlugin

MySQL Module
MySQL connector to Godot Engine.
Stars: ✭ 30 (-48.28%)
Mutual labels:  godot, godot-engine, godot3
godot-android-plugin-firebase
Godot 3.2.2 Android plugin for Firebase
Stars: ✭ 41 (-29.31%)
Mutual labels:  godot, godot-engine, godot3
liblast
A libre multiplayer FPS game created in Godot Engine
Stars: ✭ 92 (+58.62%)
Mutual labels:  godot, godot-engine, godot3
Project-Map
No description or website provided.
Stars: ✭ 52 (-10.34%)
Mutual labels:  godot, godot-engine, godot3
godot-practice-shaders
Some practice shaders in Godot
Stars: ✭ 79 (+36.21%)
Mutual labels:  godot, godot-engine, godot3
gdinv
More or less universal inventory system plugin for Godot Engine (3.3+). Data-driven.
Stars: ✭ 69 (+18.97%)
Mutual labels:  godot, godot-engine, godot3
godot-size-benchmarks
Benchmarks to compare Godot binary sizes with different build-time options
Stars: ✭ 36 (-37.93%)
Mutual labels:  godot, godot-engine
godot-lod-demo
Demonstration project for the Level of Detail (LOD) Godot 3.x add-on
Stars: ✭ 34 (-41.38%)
Mutual labels:  godot, godot-engine
triple-triad-godot
Re-implementation of Triple Triad from Final Fantasy VIII. Made with Godot 3
Stars: ✭ 61 (+5.17%)
Mutual labels:  godot, godot3
GodotDiscordSDK
A Discord Game SDK wrapper for Godot, written in C.
Stars: ✭ 40 (-31.03%)
Mutual labels:  godot, godot-engine
godot-ci
Docker image to export Godot Engine games. Templates for Gitlab CI and GitHub Actions to deploy to GitLab Pages/GitHub Pages/Itch.io.
Stars: ✭ 316 (+444.83%)
Mutual labels:  godot, godot-engine
godot-uuid
Unique identifier generation v4 for Godot Engine
Stars: ✭ 96 (+65.52%)
Mutual labels:  godot, godot-engine
godot-unirest
Unirest in GDScript: Simplified, lightweight HTTP client library.
Stars: ✭ 32 (-44.83%)
Mutual labels:  godot, godot-engine
-godot-gj-api
GameJolt API plugin for Godot Engine
Stars: ✭ 45 (-22.41%)
Mutual labels:  godot, godot-engine
OpMon-Godot
An open source Pokemon-inspired game, now with Godot
Stars: ✭ 50 (-13.79%)
Mutual labels:  godot, godot-engine
Logic-Circuit-Simulator
A free and open-source Logic Circuit Simulator built in Godot Engine.
Stars: ✭ 23 (-60.34%)
Mutual labels:  godot, godot-engine
Fake-Interior-Shader-for-GodotEngine
Interior Mapping shader for the Godot Game Engine 3.x that works with both GLES3 and GLES2.
Stars: ✭ 40 (-31.03%)
Mutual labels:  godot, godot-engine
godot-polygon2d-fracture
A simple script for fracturing polygons. Also adds nice helper functions for polygons like calculateArea, triangulate, getRandomPointsInPolygon, getBoundingRect)
Stars: ✭ 148 (+155.17%)
Mutual labels:  godot, godot-engine
BrainfuckIDE
A Brainfuck IDE/debugger designed to be intuitive, featureful and visually appealing
Stars: ✭ 77 (+32.76%)
Mutual labels:  godot, godot-engine
godot card tools
Framework for making card-games in Godot
Stars: ✭ 30 (-48.28%)
Mutual labels:  godot, godot-engine

Plugin icon Dialog Graph Plugin for Godot

I needed an easy way to create dialogs for my game. What I needed wasn't that complex, but I did a bit extra for future-proofing. This is the result - a simple plugin that lets you create dialog graphs.

*Note: This plugin doesn't provide any functionality to display the dialog in-game. This is something you should do yourself! I might add some basic example for reference if need be.

[EDIT 16.10.20] Haven't touched this in a while, I'm planning on doing some work soon(ish)! [EDIT 25.9.21] Covid be wild eh? 😅😬

Installation

  1. Place the 'addons' folder in your project folder.
  2. In the editor - Project -> Project Settings -> Plugins -> Change the status to 'Active'.

*Note: the Graph Editor is on the bottom of Godot's editor, next to the Animation tab. It appears when a Manager node is selected.

Usage

The plugin has two parts, the editor and the manager, but before that is explained, lets go over the different nodes.

Dialog Nodes

Nodes

Conversation

Conversation is the starting point of a dialog graph. You can have multiple Conversations in a single file, but each of them has to have its own unique name. In every file there's only one Conversation that's set as the default one. This means it would be the default dialog graph that would start in that specific file, unless the Manager node is provided with a name of a different Conversation.

Speech

Speech is your NPCs' 'voice'. This is what they'd say in your dialog. If you use Godot's translations, you can press Enter once you enter a key code to display that line's translation in the box below. Sadly, this only works if you run the Editor as a scene, due to Godot's current implementation of translations.

Choice

Choice is where your player replies. It lets you have multiple answers, with each being able to branch according to the response.

Condition

Condition is used when you want a branching point to depend on a variable. It uses the following format - "path/property", where path can be relative, or absolute. When you use a relative path, it is relative to the PARENT of the manager node. To use a parent's property, the path should be ".". (This is exactly how it works with get_node())

Mux

Mux is used as a many-to-one converter. Because the plugin doesn't allow multiple connections to the same slot, this is the solution when you want to route multiple routes to the same outcome.

Jump

Jump allows you to 'jump' to another Conversion, within the same file. This is used to simplify the graph, and lets you set different 'checkpoints' you can return to, or start from, using Conversations.

These are all the available nodes for now!

Editor

Editor The editor is used for designing dialog graphs which can then be exported and used by the manager node. The buttons on the left create graph nodes. The buttons on the right let you load/save the dialog graph, export it for the Manager node, or clear the view.

*Clarification: Save and Load use a different file format from Export. The former holds the visual data for the Editor, and the latter holds less information and is used by the Manager node.

Manager node

Manager

The manager node is used to manage and communicate with the dialog graph you exported, while your game is running. You can choose the exported dialog you created in the Manager node's view. It has signals for when it reaches a Speech node or a Choice node. Each providing the relevant dialog data as an Array of Strings. To inform it when a choice was chosen, you can use choice_picked(choice_index).

Bugs / Issues

  1. Translation being entered doesn't automatically scale the nodes. It does update when you Load though.
  2. The code for the Manager node is pretty hack-y and not OO-y. Might change that later.
  3. Graph validity isn't reinforced, so some stuff you can get away with while exporting, that would crash the Manager node.
  4. File dialogs require pressing the "Save/Load" button at the end. Adding ".json" is also needed, and there might be an overwrite message for no reason as well.

Fixed

  1. Editor tab doesn't align with other tabs, and starts at 0 height.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].