Godot Dialogue Manager - VS Code Extension
A VS Code extension providing complete development support for Godot 4.x Dialogue Manager
Made by hakubox, translated by Loy_Dizak
GitHub •
Report an issue •
Download
Contents
- Features 1
- Quick start 2
- Configuration 3
- FAQ 4
Features
Quick Start
1. Install the extension
Method A: Install from the VS Code Marketplace
- Open VS Code
- Press
Ctrl+Shift+X to open the Extensions view
- Search for
Godot Dialogue Manager
- Click Install
Method B: Install manually from a .vsix
- Download the latest
.vsix file from GitHub Releases 8
- Press
Ctrl+Shift+P in VS Code
- Enter
Extensions: Install from VSIX...
- Select the downloaded
.vsix file
2. Open a Godot project
Make sure your project includes the Dialogue Manager plugin and contains .dialogue files.
3. Start writing dialogue
Create or open a .dialogue file and enter the following to test the extension:
~ start
# This is a test title
NPC: Hello! [#happy]
Player: Hello, may I ask...
- I want to buy something => shop
- I want to leave => END
~ shop
do! ShopManager.open_shop()
=> END
Configuration
Complete configuration example
{
// ========== Global class configuration ==========
"dialogue.diagnostics.globalClasses": [
"PlayerState",
"AudioManager",
"SaveManager"
],
// ========== Global variable configuration ==========
"dialogue.diagnostics.globalVariables": {
"playerName": {
"type": "String",
"comment": "Player name"
},
"playerStats": {
"type": "Dictionary",
"schema": {
"hp": { "type": "int" },
"mp": { "type": "int" }
}
}
},
// ========== Custom tag configuration ==========
"dialogue.diagnostics.customTags": {
"happy": {
"description": "Happy expression",
"category": "face",
"alias": ["joyful"]
}
},
// ========== Tag category configuration ==========
"dialogue.diagnostics.metadataCategories": {
"face": {
"icon": "😊",
"description": "Expression"
}
},
// ========== Other options ==========
"dialogue.diagnostics.enableCustomTags": true,
"dialogue.diagnostics.strictMode": false
}
FAQ
Q1: Why is my class missing from the completion list?
A: Make sure your class uses a class_name declaration:
# ✅ Correct
class_name PlayerState
extends Node
# ❌ Incorrect
extends Node
Alternatively, register the class globally, then restart VS Code or wait for the class cache to refresh.
Q2: Why is cross-file title completion not working?
A: Make sure that:
- The
import statement is correct and uses a res:// path
- The imported
.dialogue file has been opened to trigger scanning
- The imported file contains a
~ xxx title definition
Q3: How can I disable specific checks?
A: Set the option in settings.json:
{
"dialogue.diagnostics.strictMode": false // Disable strict mode
}
Q4: Why are private members (starting with _) not displayed?
A: This is expected and follows GDScript visibility rules. To access a private member, enter its full name manually; it will not be completed automatically.
Q5: Why is completion slow when opening a project for the first time?
A: The extension scans all GDScript files to build the class cache, which usually takes 2-5 seconds. Wait for ✅ Class cache initialization complete in the console before using completion.
License
MIT License - See the LICENSE 9 file for details
Acknowledgements
- Godot Engine 10
- Dialogue Manager Plugin 11 by Nathan Hoad
- VSCode Extension API 12
- GitHub Issues: Submit an issue 13
- Author: hakubox
- Email: hakubox@outlook.com