TaleDialogues v1.0.0

Interactive branching NPC dialogues, typewriter UI, portraits, conditions, in game editor.
TaleDialogues.png
TaleDialogues
Branching NPC Dialogues for Hytale

Typewriter UI | Custom Portraits | Conditions & Placeholders | In Game Editor | Developer API
Built in & PlaceholderAPI Placeholders | Works With Any Plugin | TaleQuests Integration
TaleDialogues is a configuration first dialogue framework for Hytale servers.
A clean native dialogue box with a typewriter effect, circular NPC portraits, and clickable branching responses, all driven by simple YAML or a full in game editor.
Build talking NPCs, quest givers, lore keepers, and shop greeters that react to permissions, placeholders, and player choices.​

Overview​

TaleDialogues turns plain text into living conversations:
  • Branching Dialogues: Every response can open another dialogue, run a command, or close the conversation. Chain dialogues into full trees with no limit on depth.
  • Conditions: Show, grey out, or hide responses based on permissions and placeholders, with comparison operators and AND / OR logic.
  • Custom Portraits: Drop a PNG in a folder and your NPC has a face. Hot reloaded live, shown in a clean circular frame.
  • In Game Editor: Create and edit dialogues, responses, conditions, actions, and NPCs from a full GUI. No YAML required.
  • Developer API: Open dialogues for players from your own plugin, register custom placeholders, and build dialogues in code.
Trigger a dialogue with a single command and any NPC plugin: point your NPC's click command at /td <id> <player> and the conversation begins.
pjbx63i.gif


Key Features

Cinematic Dialogue UI​

A polished, bottom centered dialogue box designed to feel native:
  • Typewriter effect: Text reveals character by character with a soft typing sound and subtle pitch variation.
  • Click to skip: Click anywhere to instantly reveal the full text, then the responses appear.
  • Circular NPC portrait: Each NPC shows a custom portrait in a clean framed avatar.
  • NPC name plate: The speaker's name sits above the text in a styled header.
  • Clickable responses: Up to a full column of response buttons, each one a branch in the conversation.
  • One conversation at a time: Per player sessions with automatic cleanup, safe across many players at once.

rikvr0l.png


Branching & Actions​

Every response runs a list of actions, top to bottom:
  • open: Jump to another dialogue, building branching trees and questlines.
  • close: End the conversation.
  • command: Run any command, as console or as the player. Short form for console, long form to choose the executor.
Combine actions freely: run a command, then open a follow up dialogue, then close. Command strings support placeholders like {player_name}, so a response can open a shop, start a quest, give a reward, or broadcast a message.

360glea.png


Conditions​

Make dialogues react to the player. Conditions apply per response (and per dialogue):
  • Permission: Show a response only to players with a permission node.
  • Placeholder: Compare a placeholder value with an operator: > >= < <= == != =
  • AND / OR: Nest conditions into composite logic of any depth.
Unmet responses are handled your way with show_unmet:
  • true: the response shows as greyed out and unclickable (the player sees it exists)
  • false: the response is hidden entirely

3aiegwm.png
6m8hc1f.png


Placeholders​

Use placeholders in dialogue text, response text, conditions, and command actions.
Built in (no extra plugin needed):
  • {player_name} {player_uuid}
  • {npc_name} {npc_id} {dialog_id}
  • {permission:NODE} = resolves to true or false
  • {random:1-100} = a random number in a range
  • {session_seconds} = seconds the player has been in this dialogue
PlaceholderAPI (optional, auto detected): with HelpChat PlaceholderAPI installed, both the percent form (%player_level%) and the brace form ({player_level}) resolve, so you can use any registered placeholder from any plugin. WiFlow PlaceholderAPI is supported as a fallback.

Custom Portraits​

  • Drop and go: Put a .png in the portraits folder and reference it in npcs.yml.
  • Live hot reload: New or changed portraits are picked up while the server runs, no restart needed.
  • Circular frame: Portraits render in a clean avatar frame. Square images work best.
  • Bundled examples: Ships with a ready made cast so you can see it working out of the box.
  • Safe fallback: A missing portrait falls back to a default image instead of breaking.

tv7jd9i.png


In Game Editor​

Build entire dialogue trees without touching a file. Open with /td editor:
  • Dialogue editor: Edit the NPC, the text, and the full list of responses.
  • Response editor: Add responses, set their text, reorder them, and attach actions.
  • Action rows: Add open / command / close actions and pick the command executor.
  • Condition builder: Add permission and placeholder conditions with the operator and value split into clean fields.
  • Portrait picker: Choose an NPC portrait from a visual grid of every PNG in your folder.
  • NPC and dialogue pickers: Searchable modal lists, no need to memorize IDs.
  • Save and continue: Saving is careful and explicit, with no data loss when you move between pages.

ooo5e1d.png

Typewriter & Sound​

Tune the feel of every conversation in config:
  • Speed: Milliseconds per character (ms_per_char).
  • Sound: A bundled custom typing SoundEvent, or any Hytale sound id, or silence.
  • Texture of sound: Play every N characters, with randomized pitch for an organic feel.
  • Volume: Independent volume control for the typing sound.
The plugin ships its own typing SoundEvent and sample, so it sounds right the moment you install it.

Integrations​

All optional, detected automatically. If a plugin is not present, the related feature is simply skipped.
  • Any NPC plugin: TaleDialogues does not include an NPC creator by design. Point any NPC's click command at /td <id> <player> and it just works.
  • Any command plugin: Response command actions can run anything, so a dialogue can open a shop, start a quest, grant a kit, or run your own commands.
  • TaleQuests: With TaleDialogues installed, TaleQuests delivers NPC quest messages as real dialogue boxes with the NPC name and portrait, instead of plain chat.
  • HelpChat PlaceholderAPI and WiFlow PlaceholderAPI: Resolve any registered placeholder inside dialogues.

Commands & Permissions​

Permission: taledialogues.admin (server operators have it by default)
  • /td <dialogueId> <player> = Open a dialogue for a player. (aliases: /taledialogues, /dialogue)
  • /td editor = Open the in game dialogue editor
  • /td reload = Reload config, NPCs, and all dialogues from disk
  • /td cancel <player> = Force close a player's active dialogue
Tab completion suggests every registered dialogue id, updated live after a reload or an edit.

Developer API​

TaleDialogues exposes a clean public API so other plugins can integrate:
  • Open dialogues: Open a registry dialogue or an in memory, ad hoc dialogue for any player from your plugin.
  • Dialogue builder: Build dialogues and responses in code with a fluent builder, no YAML needed.
  • On close hook: Run your own logic when a dialogue ends (any close path), safe to open another page from it.
  • Custom placeholders: Register your own placeholder provider and use your tokens anywhere in dialogues.
GitHub: github.com/catzalli/TaleDialogues

Configuration​

Code:
settings:
  # Verbose logging for dialogue loading and action execution.
  debug: false

typewriter:
  # Milliseconds between each character. Lower is faster.
  ms_per_char: 45
  # A bundled custom SoundEvent. Use any Hytale sound id, or "" to disable sound.
  sound_id: "SFX_Tale_Typewriter"
  # Play the typing sound every N rendered characters.
  sound_every_n_chars: 1
  sound_volume: 0.5
  # Random pitch range so the typing feels organic.
  sound_pitch_min: 0.85
  sound_pitch_max: 1.15

responses:
  # How to treat a response whose condition is not met.
  #   true  -> shown greyed out and unclickable
  #   false -> hidden entirely
  show_unmet: true
Code:
wizard_elric:
  name: "Wizard Elric"
  portrait: "wizard_elric.png"

old_sage:
  name: "Mother Wren"
  portrait: "old_sage.png"

# Fallback used when a dialogue points at an unknown npc. Keep this entry.
_default:
  name: "Stranger"
  portrait: "default.png"
Code:
id: elric_intro
npc: wizard_elric

text: |
  Ah, {player_name}. The tower has been quiet without a visitor.
  Tell me, what brings you to my door?

responses:
  - text: "I came to learn. Teach me something."
    actions:
      - open: elric_lesson

  - text: "Open the vault. I have earned it."
    condition:
      and:
        - permission: taledialogues.scholar
        - placeholder: "{random:1-100} >= 50"
    actions:
      - command:
          as: console
          run: "broadcast {player_name} has entered the wizard's vault."
      - open: elric_vault

  - text: "Just passing through."
    actions:
      - close


Buy a license now
$9.99
EULA
Standard EULA
Use on any projects you own with attribution
Support
Standard
Includes:
Download the resource
Access new updates
Support from the creator
Support duration
Lifetime
244 Views
2 Purchases
3 Downloads
Jun 26, 2026 Published
N/A Updated
Not yet rated
925.3 KB File size
Open source
  1. No
DRM-free
  1. Yes
Unobfuscated
  1. No
Type
  1. GUI
  1. Fun
Game mode
  1. Survival
  1. Skyblock
  1. Roleplay
Supported languages
  1. English
Creators
Support
Host a lag-free Minecraft or Hytale server in minutes.
Get 25% off your first order with our link.
Recommended for you
A fully customizable plugin for creating interactive dialogs
5.00 star(s) 25 ratings
478 purchases
5.00 star(s) 2 ratings
55 purchases
Customizable & Clean Tab and Scoreboard Configuration
5.00 star(s) 5 ratings
40 purchases
Animated 3D wing cosmetics for Minecraft servers. Includes Demon, Angel and Tree wings.
Not yet rated
28 purchases
5.00 star(s) 1 ratings
27 purchases
244 Views
2 Purchases
3 Downloads
Jun 26, 2026 Published
N/A Updated
Not yet rated
925.3 KB File size
Open source
  1. No
DRM-free
  1. Yes
Unobfuscated
  1. No
Type
  1. GUI
  1. Fun
Game mode
  1. Survival
  1. Skyblock
  1. Roleplay
Supported languages
  1. English
Creators
Support
Host a lag-free Minecraft or Hytale server in minutes.
Get 25% off your first order with our link.
Recommended for you
A fully customizable plugin for creating interactive dialogs
5.00 star(s) 25 ratings
478 purchases
5.00 star(s) 2 ratings
55 purchases
Customizable & Clean Tab and Scoreboard Configuration
5.00 star(s) 5 ratings
40 purchases
Animated 3D wing cosmetics for Minecraft servers. Includes Demon, Angel and Tree wings.
Not yet rated
28 purchases
5.00 star(s) 1 ratings
27 purchases
Top