TaleDialogues v1.0.2

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
730 Views
6 Purchases
8 Downloads
Jun 26, 2026 Published
Jul 11, 2026 Updated
Not yet rated
930.1 KB File size
Open source
  1. No
DRM-free
  1. Yes
Unobfuscated
  1. No
AI use in marketing
No
AI Content Disclosure
In game placeholder NPC icons and default dialogue branches generated with AI
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
491 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
29 purchases
New generation crates! Make your server more polished!
5.00 star(s) 2 ratings
17 purchases
730 Views
6 Purchases
8 Downloads
Jun 26, 2026 Published
Jul 11, 2026 Updated
Not yet rated
930.1 KB File size
Open source
  1. No
DRM-free
  1. Yes
Unobfuscated
  1. No
AI use in marketing
No
AI Content Disclosure
In game placeholder NPC icons and default dialogue branches generated with AI
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
491 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
29 purchases
New generation crates! Make your server more polished!
5.00 star(s) 2 ratings
17 purchases
Top