Talkit
Non-Linear Game Dialogue Editor
Install / Use
/learn @ajboni/TalkitREADME
Advertisement
Hello! I'm currently working on a similar but more powerful app which supports multiple dialogues with built in scripting, gdds, quest, etc. https://drafft.dev
Talkit
Web Based, Non-Linear Game Dialogue Editor.
Talkit is a fork of etodd's wonderful The Poor Man's Dialogue Tree which is currently part of Lemma project.
Description
Talkit is a Non-linear, node based, game dialog editor.
It runs on jointJS. It exports to JSON with game ready content.

Nodes
Text
Display a message from the specified actor. Actor: Specify the actor who will say the speech. Speech: The text the actor will say.
Choice
Intended to populate the players choices for responses. Title: The title of the choice. This is useful for cases when the buttons the player would have to chose from will differ from the actual speech he will say. Speech: The text the actor will say.
Set
Sets a variable to a value. Can link to one Text, Node, Set, or Branch.
Branch
Takes one of several paths based on the value of a variable. Each port can link to one Text, Node, Set, or Branch.
Node
Does nothing. Can link to one Text, Node, Set, or Branch, or to one or more Choices.
Usage
Fire up the HTML, make your dialog and export. You can add ?load="file.json" to the URL to load a graph saved on cache. Example Output:
[
{
type: "Text",
id: "227b6f95-2759-4bda-8364-3bcbcb2cbf4d",
actor: "Detective",
name: "Now tell me Victor.\nWhere were you last night?",
choices: [
"b24806af-4923-4881-84c8-93426cbe3c19",
"69261cd7-1cfe-4088-8c7c-99f19bc5fb25",
],
},
{
type: "Choice",
id: "69261cd7-1cfe-4088-8c7c-99f19bc5fb25",
title: "Honest Answer",
name: "I was at her house.\nBut I dind't saw anything strange.",
next: "6e9f9c69-3efc-447b-ac3a-ade28635b106",
},
{
type: "Choice",
id: "b24806af-4923-4881-84c8-93426cbe3c19",
title: "Lie",
name: "",
next: "fe9c4ac5-3f5a-4df1-91fe-e45b523017d7",
},
{
type: "Set",
id: "6e9f9c69-3efc-447b-ac3a-ade28635b106",
variable: "Honest",
value: "true",
next: "fd3067f6-2afc-42e8-a697-2bb5739a8438",
},
{
type: "Set",
id: "fe9c4ac5-3f5a-4df1-91fe-e45b523017d7",
variable: "Honest",
value: "false",
next: "fd3067f6-2afc-42e8-a697-2bb5739a8438",
},
{
type: "Text",
id: "fd3067f6-2afc-42e8-a697-2bb5739a8438",
actor: "Detective",
name: "That will be all for now.",
next: null,
},
];
Not Implemented Yet - TODO:
- Add ?import="file.json" to import a graph from disk.
- Add the ability to make a node a starting node.
- Display the Id of the node on each node.
Related Skills
node-connect
351.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
110.6kCreate 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.
openai-whisper-api
351.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
351.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
