Skip to main content

Strikes-Dialogues

Level Up Your Server’s Storytelling! Tired of flat, boring chat messages for quests, tutorials, or NPC interactions? Strikes-Dialogues transforms how you communicate with players, replacing static text with captivating, animated dialogues presented dynamically right on their screen!

What Can Strikes-Dialogues Do?

Imagine guiding new players with an animated tutorial, delivering quest information through immersive character speech, or creating interactive narratives – all without clogging the chat. Strikes-Dialogues makes it possible by presenting text line-by-line, across multiple pages, using a unique on-screen visual system. It’s perfect for:
  • 📜 Dynamic Storytelling & Quests: Bring your server’s lore and adventures to life.
  • 🎓 Interactive Tutorials: Guide players through server features visually.
  • 🗣️ Engaging NPC Interactions: Give your non-player characters a real voice.
  • 📢 Important Announcements: Display key information in an unmissable way.

Unleash Your Creativity: Key Features

Strikes-Dialogues packs a punch with features designed for flexibility and immersion:
  • Dynamic Animated Text: Watch text appear character-by-character for a cinematic feel.
  • 📚 Complex Dialogue Structures: Build dialogues with multiple lines showing at once and sequences spanning multiple pages.
  • 🎨 Full Visual Control: Customize everything! Use MiniMessage & legacy codes for text colors, gradients, and styles. Choose display colors and visual styles per dialogue or globally.
  • 🔊 Immersive Sound Design: Add unique typing sounds and distinct sounds when dialogues begin.
  • Automated Post-Dialogue Actions: Trigger console commands, player commands, messages, server-wide broadcasts, or sounds automatically when a dialogue ends.
  • 🔗 PlaceholderAPI Integration: Seamlessly pull in player stats, server info, and more directly into your dialogues and actions.
  • 🔒 Enhanced Immersion Controls: (Optional) Keep players focused by restricting movement, adding a subtle zoom effect, or even locking their camera view during dialogues (requires ProtocolLib).
  • ⚙️ Simple Yet Powerful Configuration: Define everything – dialogues, defaults, messages – in a well-structured config.yml.
  • 🚀 Easy In-Game Triggering: Use simple commands to start dialogues, including a custom command for quick, on-the-fly messages.

Dive Deeper!

Ready to transform your server’s interactions? Explore the documentation using the sidebar to learn about:
  • Configuration: Mastering the config.yml.
  • Commands & Permissions: Putting the plugin into action.
  • Creating Dialogues: Craft your own narratives.
  • Text Formatting Guide: Style your dialogues.
  • Advanced Features: Unlock powerful capabilities.
Make your server communication more impactful and memorable with Strikes-Dialogues!

Required Dependencies

Optional Dependencies

Commands & Permissions

This page lists the commands provided by Strikes-Dialogues and the permissions required to use them.

Commands

  • /sd <dialogueId> [player]
    • Alias: /startdialogue <dialogueId> [player]
    • Description: Starts a pre-defined dialogue (specified by <dialogueId>) for yourself or optionally for another [player].
    • Usage:
      • To start for yourself: /sd <dialogueId>
      • To start for another player: /sd <dialogueId> <playerName>
  • /sd custom <line1>,[line2],...
    • Description: Displays a quick, temporary dialogue to yourself using the provided text lines. Lines are separated by commas. Maximum lines are defined in config.yml.
    • Usage: /sd custom Hello %player_name%!,Welcome to the server.
    • (Note: This command can only be run by a player)
  • /sdreload
    • Alias: /dialoguereload
    • Description: Reloads the plugin’s config.yml file.
    • Usage: /sdreload

Permissions

  • strikesdialogues.start.others
    • Description: Allows a player to start pre-defined dialogues for other online players using /sd <dialogueId> [player].
  • strikesdialogues.custom
    • Description: Allows a player to use the /sd custom ... command.
  • strikesdialogues.reload
    • Description: Allows a user (player or console) to reload the plugin’s configuration using /sdreload.

Configuration

Strikes-Dialogues | Full Configuration Guide Welcome to the full configuration guide for Strikes-Dialogues! 🌟 Here, we’ll cover every setting in your config.yml file, providing you with detailed descriptions and tips on how to customize the plugin to your exact needs.

Table of Contents

  • General Dialogue Settings
  • Predefined Dialogues
  • Plugin Messages

General Dialogue Settings

This section contains global settings for all dialogues. These configurations control how dialogues are presented and behave on your server.
  • persistent-background-line
    • Type: String
    • Default: &f
    • Defines the background line displayed throughout dialogues. This is useful for adding a visual effect behind the dialogue text, enhancing the player experience. You can change this to any symbol or character you prefer. 🖼️
  • default-animation-delay-ticks
    • Type: Long
    • Default: 2
    • Controls the delay between the animation of each line, measured in Minecraft ticks. Increasing this value will slow down the dialogue’s appearance, giving players more time to read each line. ⏳
  • default-bar-color
    • Type: BarColor
    • Default: BLUE
    • Uses the invisible boss bar from your resource pack (Do not change if not important)
  • default-bar-style
    • Type: BarStyle
    • Default: SOLID
    • Uses the invisible boss bar from your resource pack (Do not change if not important)
  • default-hold-time-ticks
    • Type: Long
    • Default: 40
    • This setting determines how long the dialogue will hold on a page before moving to the next one. If you want the dialogue to last longer, increase the value. 🕒
  • default-typing-sound
    • Type: String
    • Default: "ui.button.click"
    • The sound that plays when the dialogue text is being typed. You can change it to any Minecraft sound to match the atmosphere. 🎧
  • default-typing-volume
    • Type: Float
    • Default: 0.3
    • Controls the volume of the typing sound. You can lower or raise this depending on how audible you want the typing sound to be. 🎵
  • default-typing-pitch
    • Type: Float
    • Default: 1.8
    • Adjusts the pitch of the typing sound. A higher pitch makes the sound more pronounced, while a lower pitch makes it subtler. 🔊
  • enable-movement-restriction
    • Type: Boolean
    • Default: true
    • When enabled, players will be restricted from moving while a dialogue is active. This ensures that players focus on the dialogue and prevents them from moving away. 🚶‍♂️🚫
  • custom-command-max-lines
    • Type: Integer
    • Default: 4
    • Limits the number of lines a custom command dialogue can contain. If you try to exceed this number, the dialogue will be cut off. 📝
  • custom-command-background-char
    • Type: String
    • Default: &f
    • Defines the background character for custom commands. Similar to persistent-background-line, this creates a background for custom command dialogues. 🖋️
  • placeholderapi-enabled
    • Type: Boolean
    • Default: true
    • Enables PlaceholderAPI integration for dynamic placeholders. This allows you to insert things like the player’s name, balance, world, etc. in your dialogues. 🌐
  • end-action-delay-ticks
    • Type: Long
    • Default: 0
    • Defines the delay before executing end actions after a dialogue ends. If you want a pause before actions trigger, adjust this value. ⏲️
  • lock-perspective
    • Type: Boolean
    • Default: true
    • Locks the player’s perspective during the dialogue. This prevents them from looking away, keeping their focus on the dialogue. 👁️
  • debug-logging
    • Type: Boolean
    • Default: false
    • When enabled, this will print debug information to the console. It’s useful for developers or testers who need to troubleshoot. 💻

Predefined Dialogues

This section contains the premade dialogues that come with Strikes-Dialogues. These dialogues can be easily customized or replaced.
  • welcome_intro
    • This is a welcoming dialogue for players joining your server. It can display the player’s name, balance, and other custom messages.
    • Settings:
      • animation-delay-ticks: Adjusts how quickly the text is animated.
      • typing-sound: No typing sound in this dialogue (set to "").
      • start-sound: No start sound (set to "").
    • Pages:
      • This dialogue includes two pages:
        • Page 1:
          • Hello %player_name%!
          • Welcome to the world of unknown.
          • Balance: %vault_eco_balance_fixed%
        • Page 2:
          • SECOND PAGE <3 %player_name%!
          • Support PlaceholdersAPI %player_world%
    • End Actions:
      • Console: say Player %player_name% finished welcome_intro
      • Message: &aDialogue complete!
  • hardsample
    • This dialogue shows off more advanced features, such as placeholders and gradient text.
    • Settings:
      • persistent-background-line: "<#FFFFFF>"
      • animation-delay-ticks: 1
      • typing-sound: "ui.button.click"
      • start-sound: "hardsample"
    • Pages:
      • This dialogue includes a few pages:
        • Page 1:
          • &9This dialogue showcases various features.
          • &6&lPlaceholderAPI Supported &8| &2Current World: %player_world%
        • Page 2:
          • Server Performance: %server_tps% TPS
          • Location: X:%player_x% Y:%player_y% Z:%player_z%
          • Gamemode: %player_gamemode%
    • End Actions:
      • Console: say Dialogue Finished!
      • Message: &aDialogue Finished! Hope you learned something!
      • Player Action: me Is impressed by the dialogue features!
      • Broadcast: &e[Server] %player_name% just experienced the enhanced dialogue system!
      • Sound: entity.player.levelup volume:0.8 pitch:1.2
      • [CONSOLE] : Execute as console
      • [PLAYER] : Execute as player
      • [BROADCAST] : Broadcast to all players (Act as message)
      • [SOUND] : Play sound after dialogue is finished
      • [MESSAGE] : Send message to player
  • no_background_dialogue
    • This is a basic dialogue with no persistent background.
    • Settings:
      • persistent-background-line: "" (No background line)
    • Pages:
      • Page 1: &aThis dialogue has no persistent background.

Plugin Messages

This section defines all the messages used by the plugin for interactions with players and admins.
  • no-permission
    • Message: &cYou don't have permission for that.
    • Shown when a player tries to use a command they don’t have permission for.
  • player-only
    • Message: &cThis command can only be run by a player.
    • Displayed when a command can only be executed by a player.
  • dialogue-not-found
    • Message: &cDialogue '{id}' could not be found.
    • This message is shown when the requested dialogue doesn’t exist.
  • custom-line-limit
    • Message: &cYou can only use up to {limit} lines for custom dialogues.
    • Displayed when the player exceeds the maximum line limit for custom dialogues.
  • reload-success
    • Message: <#00AA00>Strikes-Dialogues configuration reloaded successfully.
    • This message confirms that the plugin’s configuration has been successfully reloaded.
  • reload-fail
    • Message: &cConfiguration reload failed. Check console for errors.
    • Displayed when an error occurs during the reload process.
  • must-be-on-ground
    • Message: &cYou must be standing firmly on the ground to start a dialogue!
    • This message appears when a player is not on the ground but attempts to start a dialogue.

Default config.yml

# ----------------------------------------
#    STRIKES-DIALOGUES | CONFIG V1.0
# ----------------------------------------
# Discord: https://discord.gg/uxplima (Replace with actual UXPLIMA discord if different)
# Website: https://uxplima.com
# ----------------------------------------

dialogue-settings:
  # The character(s) displayed as the background for dialogues. Use "" for no background.
  # Supports MiniMessage & Legacy color codes.
  persistent-background-line: "&f"

  # Default delay in ticks between each character animation when text appears.
  default-animation-delay-ticks: 2

  # Default color of the boss bar used for dialogue display. (Requires Resource Pack)
  default-bar-color: BLUE

  # Default style of the boss bar. (Requires Resource Pack)
  default-bar-style: SOLID

  # Default time in ticks a dialogue page stays visible before automatically proceeding (if applicable).
  default-hold-time-ticks: 40

  # Default sound played for each character typed. Use "" for no sound. (Minecraft sound keys)
  default-typing-sound: "ui.button.click"

  # Default volume for the typing sound (0.0 to 1.0+).
  default-typing-volume: 0.3

  # Default pitch for the typing sound (0.5 to 2.0).
  default-typing-pitch: 1.8

  # Restrict player movement while a dialogue is active.
  enable-movement-restriction: true

  # Enable a subtle zoom effect during dialogues (Requires ProtocolLib).
  enable-zoom-effect: true

  # Adjust player walk speed during zoom effect. Negative values slow down.
  zoom-walk-speed: -0.15

  # Maximum number of lines allowed for the '/sd custom' command.
  custom-command-max-lines: 4

  # Background character used specifically for '/sd custom' command.
  custom-command-background-char: "&f"

  # Enable PlaceholderAPI support for dialogues and end actions.
  placeholderapi-enabled: true

  # Delay in ticks before executing end-actions after a dialogue finishes.
  end-action-delay-ticks: 20

  # Lock the player's camera perspective during dialogues (Requires ProtocolLib).
  lock-perspective: true

  # Enable detailed console logs for debugging purposes.
  debug-logging: false

dialogues:
  # Example Dialogue ID: 'welcome_intro'
  welcome_intro:
    settings:
      # Override default animation speed for this specific dialogue.
      animation-delay-ticks: 1
      # No typing sound for this dialogue.
      typing-sound: ""
      # No sound when this dialogue starts.
      start-sound: ""
    pages:
      # Page 1: A list of lines. Each string is one line.
      - - "<#00FF00>Hello <#FFFF00>%player_name%<#00FF00>!"
        - "<#FFFFFF>Welcome to the world of unknown."
        - "<#FFFFFF>Balance: <#F32AFF>%vault_eco_balance_fixed%"
        - "<gradient:#FFAA00:#FF0000>Seek the truth!</gradient>"
      # Page 2
      - - "<#00FF00>SECOND PAGE <3 <#FFFF00>%player_name%<#00FF00>!"
        - "<#FFFFFF>More text here for second page"
        - "<#FFFFFF>Support PlaceholdersAPI <#F32AFF>%player_world%"
        - "<gradient:#00AAAA:#00FFAA>Keep going!</gradient>"
    # Actions executed after the dialogue finishes.
    end-actions:
      - "[CONSOLE] say Player %player_name% finished welcome_intro"
      - "[MESSAGE] &aDialogue complete!"

  # Another Example Dialogue ID: 'hardsample'
  hardsample:
    settings:
      persistent-background-line: "<#FFFFFF>"
      animation-delay-ticks: 1
      typing-sound: "ui.button.click"
      # Custom sound key (likely requires a resource pack).
      start-sound: "hardsample"
    pages:
      - - "<gradient:#00C1FF:#33FF57>&lWelcome, %player_name%</gradient>!"
        - "&9This dialogue showcases various features."
        - "&6&lPlaceholderAPI Supported&r &8| &2Current World: &b%player_world%"
        - "<gradient:#FDF5E6:#FFD700>Various End-Actions [CONSOLE], [PLAYER], [SOUND], [BROADCAST] & many more!</gradient>"
      - - "<#41E8FA>Server Performance: <yellow>%server_tps% TPS"
        - "<#40E0D0>Location:</#40E0D0> <#98FB98>X:%player_x% Y:%player_y% Z:%player_z%"
        - "Gamemode: <gold>%player_gamemode%"
        - "<gradient:#B3FB08:#FF0000>&lGRADIENT SUPPORT</gradient>"
        - "Vault Balance: <#C0C0C0>%vault_eco_balance_formatted%"
        - "&6&lSUPPORT FORMATTING BUT NOT UNDERLINE AND STRIKETHROUGH, SORRY"
    end-actions:
      - "[MESSAGE] &aDialogue Finished! Hope you learned something, %player_name%!"
      - "[PLAYER] me Is impressed by the dialogue features!"
      - "[BROADCAST] &e[Server] &f%player_name% just experienced the enhanced dialogue system!"
      # Play sound 'entity.player.levelup' with volume 0.8 and pitch 1.2
      - "[SOUND] entity.player.levelup volume:0.8 pitch:1.2"
      - "[MESSAGE] &aDialogue Finished! and executed these commands!"
      - "[MESSAGE] &8&l========================================"
      - "[MESSAGE] &4&lThe voice/sound you heard is actually from the resource pack!"
      - "[MESSAGE] &8&l========================================"

  # Dialogue with no background line.
  no_background_dialogue:
    settings:
      persistent-background-line: ""
    pages:
      - - "&aThis dialogue has no persistent background."

# Messages used by the plugin. Supports MiniMessage & Legacy codes.
messages:
  no-permission: "&cYou don't have permission for that."
  player-only: "&cThis command can only be run by a player."
  dialogue-not-found: "&cDialogue '{id}' could not be found."
  custom-line-limit: "&cYou can only use up to {limit} lines for custom dialogues."
  reload-success: "<#00AA00>Strikes-Dialogues configuration reloaded successfully."
  reload-fail: "&cConfiguration reload failed. Check console for errors."
  must-be-on-ground: "&cYou must be standing firmly on the ground to start a dialogue!"

## Creating Dialogues

Welcome to the "Creating a Dialogue" section! 🎉 This is where the magic happens, and you can create immersive, interactive experiences for your players. In this guide, we’ll walk you through the process of creating a new dialogue from scratch. By the end, you’ll have the knowledge to craft your own engaging dialogues using the Strikes-Dialogues plugin! 🧙‍♂️✨

### Table of Contents

-   Creating Your First Dialogue
-   Setting Up Dialogue Pages
-   Using Placeholders
-   Adding Actions
-   Advanced Features

### Creating Your First Dialogue

To start creating a dialogue, you need to add an entry to the `dialogues` section of your `config.yml`. Here’s a simple template to begin:

```yaml
dialogues:
  your_dialogue_id: # Unique ID for your dialogue
    settings: # Optional: Override global settings here
      animation-delay-ticks: 2
      typing-sound: "ui.button.click"
      start-sound: "start_dialogue" # Custom sound key
    pages: # List of pages
      - # Page 1
        - "<#FF6347>Hello %player_name%!" # Line 1
        - "Welcome to this awesome world!" # Line 2
        - "You have <#FFFF00>%vault_eco_balance_formatted% balance." # Line 3
    end-actions: # List of actions after dialogue ends
      - "[MESSAGE] &aDialogue Complete!"
  • your_dialogue_id: This is the unique ID for your dialogue. Make sure it’s descriptive and easy to remember. Used in /sd your_dialogue_id.
  • settings: This section allows you to customize how the dialogue behaves, overriding global defaults. You can set animation delays, sounds, and more.
  • pages: The dialogue text is split into pages. Each page is a list (-) of lines (-). Lines are shown sequentially with animation.
  • end-actions: This is where you define the actions that happen after the dialogue is finished, like sending messages or executing commands.

Setting Up Dialogue Pages

Each dialogue consists of pages that contain multiple lines of text. The text will be shown one line at a time, with animations and sound effects. Here’s a breakdown of how to structure the pages:
pages:
  - # Page 1
    - "Line 1: This is the first line of the dialogue."
    - "Line 2: The second line continues the conversation."
    - "Line 3: You can add as many lines as you want!"
  - # Page 2
    - "This is the first line of the second page."
    - "More content here."
Tips for Dialogue Pages:
  • Multiple Lines: Each page (-) can have multiple lines (-), allowing for rich content.
  • Line Breaks: Each string in the list represents a new line displayed. To create a visual break, use separate lines.
  • Customization: You can apply formatting (like colors, gradients, etc.) to make the dialogue more visually appealing. Example: <#FF6347>Welcome!</#FF6347> or &cImportant!. Refer to the Text Formatting Guide for more details.
For example, a basic page might look like this:
pages:
  - - "<#FF6347>Hello %player_name%!"
    - "Welcome to this awesome world!"
    - "You have <#FFFF00>%vault_eco_balance_formatted% balance."
Customizing Text Format:
  • Color: Use hex color codes like <#FF6347> or predefined color names (red, blue, etc.) or legacy codes like &c.
  • Gradient: Add color gradients to text, like this: <gradient:#FF6347:#FFFF00>Gradient Text</gradient>.

Using Placeholders

Strikes-Dialogues supports PlaceholderAPI, which allows you to dynamically insert player-specific information into the dialogue text and end actions. Ensure placeholderapi-enabled is true in config.yml. Common Placeholders:
  • %player_name% – The name of the player.
  • %vault_eco_balance_formatted% – The player’s balance (if using Vault).
  • %player_world% – The world the player is currently in.
  • %server_tps% – The current server TPS (ticks per second).
  • %player_x%, %player_y%, %player_z% – The player’s location coordinates.
  • (Any other PlaceholderAPI placeholder)
Example with Placeholders:
pages:
  - - "Hello %player_name%!"
    - "You are currently in the world: %player_world%."
    - "Your balance is: %vault_eco_balance_formatted%."
Placeholders make your dialogues interactive and dynamic, ensuring that no two dialogues feel the same! 🔄

Adding Actions

Once your dialogue is finished, you might want to add end actions that occur after the dialogue ends (and after the end-action-delay-ticks). These actions could be things like sending a message to the player, executing a command, or broadcasting a message to the server. Example of End Actions:
end-actions:
  - "[CONSOLE] say Player %player_name% finished the dialogue."
  - "[MESSAGE] &aThanks for joining, %player_name%!"
  - "[PLAYER] me This player just completed a dialogue!"
  - "[SOUND] entity.player.levelup volume:0.8 pitch:1.2" # Corrected volume and pitch syntax
  - "[BROADCAST] &e%player_name% just completed a dialogue!"
Available End Actions:
  • [CONSOLE] <command>: Executes a command in the console.
  • [PLAYER] <command>: Executes a command as the player.
  • [MESSAGE] <message>: Sends a message to the player.
  • [SOUND] <sound_key> [volume:<vol>] [pitch:<pitch>]: Plays a sound for the player.
  • [BROADCAST] <message>: Broadcasts a message to the whole server.
  • [TELEPORT] <world> <x> <y> <z> [yaw] [pitch]: Teleports the player (syntax might vary, check plugin specifics).
  • (Check for others if available)
You can chain multiple actions together, allowing for complex interactions after the dialogue ends.

Advanced Features

Strikes-Dialogues also supports some advanced features to make your dialogues even more immersive:
  • Persistent Background: Keep the background line visible across all pages. Set persistent-background-line in the dialogue’s settings.
  • Locking Perspective: Prevent players from looking around during dialogue. Set lock-perspective: true in settings (requires ProtocolLib).
  • Zoom Effect: Apply a zoom effect during dialogue. Set enable-zoom-effect: true and optionally zoom-walk-speed in settings (requires ProtocolLib).
Refer to the Advanced Features section for more details.

Wrapping It Up!

Now that you’ve learned how to create a custom dialogue, you can mix and match different settings, pages, actions, and placeholders to create a truly dynamic experience for your players! 🎮 The possibilities are endless with Strikes-Dialogues, so go ahead and create immersive, engaging, and interactive dialogues for your Minecraft server! ✨ Happy Configuring! 🎉

Text Formatting Guide

Welcome to the Text Formatting Guide! 🎨 This section is dedicated to teaching you all the cool formatting tricks you can use to enhance the text in your dialogues using MiniMessage and Legacy codes. Whether you’re aiming for colorful text or special effects, we’ve got you covered! 🌈 In this guide, you’ll learn how to use colors, gradients, and other basic formatting techniques to create stunning dialogues that stand out.

Table of Contents

  • Legacy Color Codes
  • MiniMessage Formatting (Recommended)
    • Colors
    • Gradients
    • Styles (Bold, Italic, etc.)
    • Click/Hover Events (Advanced)

Legacy Color Codes

You can use Minecraft’s built-in color codes (& followed by a character) for basic formatting. Color Codes:
  • &0 Black, &1 Dark Blue, &2 Dark Green, &3 Dark Aqua, &4 Dark Red, &5 Dark Purple, &6 Gold, &7 Gray, &8 Dark Gray, &9 Blue
  • &a Green, &b Aqua, &c Red, &d Light Purple, &e Yellow, &f White
Style Codes:
  • &l Bold
  • &o Italic
  • &n Underlined
  • &m Strikethrough
  • &k Obfuscated
  • &r Reset (Removes previous formatting)
Example with Legacy Codes:
pages:
  - - "&eWelcome &l%player_name%&e!"
    - "&c&oWarning: Be careful!"
    - "&aTask completed.&r &7(Reset formatting)"
MiniMessage offers a more powerful and flexible way to format text, including gradients, hex colors, click/hover events, and more. It uses tags like <tag> and <tag:value>. Colors:
  • Named Colors: <red>, <blue>, <gold>, etc.
  • Hex Colors: <#FF0000> (Red), <#34ebdb> (Aqua)
Gradients:
  • Create smooth transitions between colors.
  • Syntax: <gradient:color1:color2[:color3...]>Text</gradient>
  • Example: <gradient:#FF6347:#FFFF00>This text fades from orange to yellow</gradient>
  • Example of Gradient Text:
    pages:
      - - "<gradient:#FF6347:#FFFF00>Gradient Text</gradient>"
        - "<gradient:#0000FF:#00FF00>Another Gradient!</gradient>"
    
Styles:
  • <bold> or <b> for Bold
  • <italic> or <i> for Italic
  • <underlined> or <u> for Underlined
  • <strikethrough> or <st> for Strikethrough
  • <obfuscated> or <obf> for Obfuscated
  • <reset> to remove previous formatting.
  • Tags automatically close at the end of the string or when another tag of the same type starts, or use closing tags like </bold>.
Example with MiniMessage:
pages:
  - - "<green>Hello <yellow><bold>%player_name%</bold></yellow>!"
    - "<!italic><red>Important message here.</red>" # <!italic> negates italic
    - "<gradient:#00C1FF:#33FF57>This is a cool gradient!</gradient>"
    - "<#FF5733>Custom Hex Color!</#FF5733>" # Closing tag optional here
Click/Hover Events (Advanced): MiniMessage allows adding actions when text is clicked or hovered over.
  • Click Event: <click:run_command:/say hello>Click me!</click>
  • Hover Event: <hover:show_text:'<red>Tooltip!'>Hover over me!</hover>
Example with Click/Hover:
pages:
  - - "Click <click:suggest_command:/help><aqua><u>here</aqua></click> for help."
    - "Hover <hover:show_text:'<gold>More Info!'><yellow>[?]</yellow></hover> for details."

Wrapping It Up

Text formatting is a powerful tool in Strikes-Dialogues. MiniMessage is highly recommended for its flexibility, especially with gradients and hex colors. Experiment with different styles to make your dialogues visually appealing and engaging! ✨ Now you have all the tools to start creating exciting and formatted dialogues that grab your players’ attention. Enjoy experimenting with different styles and have fun customizing your server dialogues! 🚀 Happy Formatting! 🎉

Advanced Features

Welcome to the Advanced Features guide! 🚀 This section dives into some of the more powerful functionalities of the Strikes-Dialogues plugin, helping you to create a more dynamic and interactive experience for your players. Whether you’re looking to implement advanced effects, execute custom commands, or control specific player interactions, these features will allow you to take your dialogues to the next level! ✨

Table of Contents

  • Persistent Background Line
  • Locking Player’s Perspective (ProtocolLib)
  • Zoom Effect (ProtocolLib) (Temporarily Removed - Will be added back soon)
  • Custom End Actions
  • Placeholders and Dynamic Content

Persistent Background Line

The persistent background line allows you to add a background element (like a character or symbol) that remains visible throughout all pages of a specific dialogue, rather than potentially changing or disappearing if different pages had different background settings (though typically the background is consistent). This can create a more cohesive visual experience for players. How to Use: Define it in the settings section of a specific dialogue in config.yml to override the global default, or rely on the global dialogue-settings.persistent-background-line.
# Global setting
dialogue-settings:
  persistent-background-line: "&f"

# Per-dialogue setting
dialogues:
  your_dialogue_id:
    settings:
      persistent-background-line: "<#FFFFFF>" # Example for this specific dialogue
    pages:
      - - "Welcome %player_name%!"
        - "This is your introduction page."
      - - "Here's your second page!"
        - "The background line persists across both pages."
In this example:
  • The &f character (or <#FFFFFF> for the specific dialogue) will remain as the background line for the entire duration of the dialogue.

Locking Player’s Perspective (ProtocolLib Required)

This feature restricts the player’s ability to look around (change their camera pitch/yaw) during the dialogue, forcing focus. This can be useful for immersive experiences, like guiding players through important instructions or roleplay scenarios. How to Use: Enable it globally in dialogue-settings or per-dialogue in its settings. Requires ProtocolLib to be installed.
# Global setting in config.yml
dialogue-settings:
  lock-perspective: true

# Or per-dialogue override
dialogues:
  immersive_intro:
    settings:
      lock-perspective: true # Force focus for this tutorial step
    pages:
      - - "You can only see the dialogue."
        - "You cannot move or look around until the dialogue ends."
This ensures that while the dialogue is active, players will be unable to shift their view.

Zoom Effect (ProtocolLib Required)

Apply a subtle zoom effect (adjusting the player’s FOV) during dialogues for added immersion or intensity. You can also modify walk speed during the zoom. (Note: The prompt mentioned this feature might be temporarily removed/re-added later. Check the latest plugin version for availability.) How to Use: Enable and configure globally or per-dialogue. Requires ProtocolLib.
# Global settings in config.yml
dialogue-settings:
  enable-zoom-effect: true
  zoom-walk-speed: -0.15 # Slow player down slightly during zoom

# Or per-dialogue override
dialogues:
  zoomed_intro: # Renamed from dramatic_moment for clarity with prompt
    settings:
      enable-zoom-effect: true
      zoom-walk-speed: -0.2 # Example from prompt
      lock-perspective: true # Combine with locked view
    pages:
      - - "You are now zoomed in!"
        - "Feel the intensity as you read this text."
      - - "The effect will be released after this page."
By adjusting the zoom-walk-speed, you can control how fast or slow the player moves while the zoom effect is applied. Negative values slow them down.

Custom End Actions

One of the most powerful features of Strikes-Dialogues is the ability to define custom end actions. These actions allow you to trigger a variety of events once the dialogue has finished (and after the end-action-delay-ticks), such as sending messages, executing commands, or playing sounds. Available End Actions (Review):
  • [MESSAGE] <message>: Sends a message to the player.
  • [CONSOLE] <command>: Executes a command via the console.
  • [PLAYER] <command>: Makes the player execute a command.
  • [SOUND] <sound_key> [volume:<vol>] [pitch:<pitch>]: Plays a sound for the player.
  • [BROADCAST] <message>: Broadcasts a message to the whole server.
  • [TELEPORT] <world> <x> <y> <z> [yaw] [pitch]: Teleports the player (syntax might vary, check plugin specifics).
  • (Check for others if available)
How to Use: List actions under the end-actions key for a dialogue. Placeholders can be used here too.
end-actions:
  - "[MESSAGE] &aThanks for reading the dialogue!"
  - "[CONSOLE] say %player_name% has completed the dialogue."
  - "[SOUND] entity.player.levelup volume:0.8 pitch:1.2"
  - "[BROADCAST] &e%player_name% just finished an important dialogue!"
Example with Custom End Actions:
dialogues:
  final_instructions:
    settings:
      lock-perspective: true
    pages:
      - - "You have reached the end of the instructions."
        - "Get ready for your next challenge!"
    end-actions:
      - "[PLAYER] teleport %player_name% 100 64 100" # Example from prompt, ensure your teleport command works like this
      - "[MESSAGE] &aGood luck, %player_name%!"
      - "[BROADCAST] &e%player_name% is ready for the next step!"

Placeholders and Dynamic Content

Leverage PlaceholderAPI to insert dynamic information into dialogue text and end actions. This makes each dialogue unique and customized for every player! Ensure placeholderapi-enabled: true in config.yml. Commonly Used Placeholders:
  • %player_name% – The player’s name.
  • %vault_eco_balance_formatted% – The player’s economy balance (if using Vault).
  • %player_world% – The world the player is currently in.
  • %player_x%, %player_y%, %player_z% – The player’s current coordinates.
  • %server_tps% – The server’s current TPS (ticks per second).
  • (Any other PlaceholderAPI placeholder)
Example with Placeholders:
dialogues:
  dynamic_info:
    pages:
      - - "Hello %player_name%, welcome to the server!"
        - "Your balance is: %vault_eco_balance_formatted%."
        - "You are in the world: %player_world%."
        - "Current server TPS: %server_tps%."
Placeholders allow you to automatically display dynamic, real-time information for each player, making your dialogues feel more personalized and engaging.

Wrapping It Up

The Advanced Features in Strikes-Dialogues give you the power to create deeply immersive and interactive experiences for your players. Whether you’re locking the player’s perspective, adding dynamic content with placeholders, or triggering custom actions after dialogues, these features offer endless creative possibilities for your Minecraft server! ✨ Now you have all the knowledge to make your dialogues even more powerful and immersive. Enjoy exploring these advanced features and make your server stand out! 🚀 Happy Configuring! 🎉