EquinoxDialogue
An intuitive dialogue tree builder.
Install / Use
/learn @nlaha/EquinoxDialogueREADME
Please Note! This repository has been archived. I have been contracted to write a proprietary version of this and thus do not plan on updating this repository for the forseable future. That said, if anyone wants to fork it, please feel free to do so.

Try it here! https://nlaha.github.io/EquinoxDialogue/
Equinox dialogue is a web-based dialogue tree builder for EquinoxEngine. It is built using React, please read the instructions below if you are a contributor.
What is "Equinox Engine"? It's something I'm working on that isn't quite ready to be open sourced yet!
Screenshots

Usage
Build dialogue trees, when done click save or export. Save will serialize the entire tree + metadata whereas export will only export data needed by a game engine. This is tool is designed to work on a one NPC per tree system, so for each NPC you'll have a dedicated .dlg file. It does not currently support multiple NPCs in a single conversation.
Keybinds
Limited copy/paste support is available through: CTRL-C CTRL-V
Delete nodes or connections with: DEL
Select multiple nodes by holding SHIFT and dragging with the left mouse button
Roadmap
- Support for metadata conditionals (if quest completed -> unlocks dialogue subtree)
- Support for metadata
- Support for multiple NPCs in one conversation
- Autosaving
- ~~Electron app~~
- Exit node
- ~~Jump node and visible node IDs~~
Building from source
I recommend using yarn but npm run works as well
To start a development server run...
yarn start
To build static files for production run...
yarn build
Electron
To start the electron app in development mode run...
yarn electron:start
To package the electron app as an executable run...
yarn electron:package:<mac,win,linux>
Replacing <mac,win,linux> with your OS
Sample Output
The following is sample JSON from an exported dialogue tree
{
"id": "node_0",
"npc_name": "AI Character",
"type": "dialogue_entry",
"responses": [
{
"type": "none",
"next": {
"id": "node_1",
"type": "gameplay_event",
"responses": [
{
"type": "pass",
"next_node": {
"id": "node_2",
"type": "dialogue_event",
"responses": [
{
"type": "end_response",
"text": "Yes"
},
{
"type": "choice_response",
"text": "No",
"next_node": {
"id": "node_3",
"type": "jump_node",
"responses": [
{
"type": "end_response",
"text": "Exit"
}
],
"jump_to": "node_1"
}
},
{
"type": "choice_response",
"text": "Other Response",
"next_node": {
"id": "node_4",
"type": "gameplay_event",
"responses": [
{
"type": "end_response",
"text": "Exit"
}
],
"event": "test_gameplay_event_2"
}
}
],
"npc_text": "This is a test dialogue node"
}
}
],
"event": "test_gameplay_event_1"
}
}
],
"gameplay_events": [
"test_gameplay_event_1",
"test_gameplay_event_2"
]
}
Related Skills
bluebubbles
350.8kUse when you need to send or manage iMessages via BlueBubbles (recommended iMessage integration). Calls go through the generic message tool with channel="bluebubbles".
node-connect
350.8kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
slack
350.8kUse when you need to control Slack from OpenClaw via the slack tool, including reacting to messages or pinning/unpinning items in Slack channels or DMs.
frontend-design
110.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
