# Table of Contents - [ServerVariables Wiki | ServerVariables](#servervariables-wiki-servervariables) - [Interactions Wiki | Interactions](#interactions-wiki-interactions) - [How to Start | Interactions](#how-to-start-interactions) - [Creating a Conversation: Inventory | Interactions](#creating-a-conversation-inventory-interactions) - [Creating a Conversation: Config | Interactions](#creating-a-conversation-config-interactions) - [Conversation Entities Properties | Interactions](#conversation-entities-properties-interactions) - [Conversation Properties | Interactions](#conversation-properties-interactions) - [Options Properties | Interactions](#options-properties-interactions) - [Dialogues Properties | Interactions](#dialogues-properties-interactions) - [Actions | Interactions](#actions-interactions) - [PlaceholderAPI Variables | Interactions](#placeholderapi-variables-interactions) - [Commands and Permissions | Interactions](#commands-and-permissions-interactions) - [Requirements | Interactions](#requirements-interactions) - [Commands and Permissions | ServerVariables](#commands-and-permissions-servervariables) - [Examples | ServerVariables](#examples-servervariables) - [PlaceholderAPI Variables | ServerVariables](#placeholderapi-variables-servervariables) - [Config.yml File | Interactions](#config-yml-file-interactions) - [Conversation Entity | Interactions](#conversation-entity-interactions) - [API | ServerVariables](#api-servervariables) - [Option | Interactions](#option-interactions) - [Config.yml | ServerVariables](#config-yml-servervariables) - [Conversation | Interactions](#conversation-interactions) - [Dialogue | Interactions](#dialogue-interactions) - [How to Start | ServerVariables](#how-to-start-servervariables) - [FAQ | Interactions](#faq-interactions) - [Variables Tutorial | ServerVariables](#variables-tutorial-servervariables) - [Options in Dialogue Example | Interactions](#options-in-dialogue-example-interactions) - [API Methods and Events | Interactions](#api-methods-and-events-interactions) - [Influence Example | Interactions](#influence-example-interactions) - [Quests Example | Interactions](#quests-example-interactions) - [Messages.yml File | Interactions](#messages-yml-file-interactions) --- # ServerVariables Wiki | ServerVariables [hashtag](https://ajneb97.gitbook.io/servervariables#description) Description ---------------------------------------------------------------------------------- This plugin allows you to create your own variables for the server and players, meaning you have total control on which values you set. Variables are modified through commands, and you can obtain them by using the `/svar get` command or via PlaceholderAPI. Some examples of what you can do with the plugin: Example 1 Example 2 Example 3 Example 4 Other Examples Economy system with multiple currencies Copy variables: currency_1: variable_type: PLAYER value_type: INTEGER initial_value: 0 limitations: min_value: 0 currency_2: variable_type: PLAYER value_type: DOUBLE initial_value: 1.50 limitations: max_decimals: 3 A portal that has an on/off status. Copy variables: lobby_portal_status: variable_type: GLOBAL value_type: TEXT possible_values: - off;&c&lPortal Disabled - on;&a&lPortal Enabled initial_value: 'off' Custom player points system. List of participants allowed to join to a certain event. * Set a number of infractions to a player when they do something wrong. * A life system, tracking when the player dies and reducing the amount of lives the player has (Using my plugin [ConditionalEventsarrow-up-right](https://www.spigotmc.org/resources/conditionalevents-custom-actions-for-specific-events-1-8-1-20.82271/) ). [NextHow to Startchevron-right](https://ajneb97.gitbook.io/servervariables/how-to-start) Last updated 1 month ago Copy variables: player_points: variable_type: PLAYER value_type: INTEGER initial_value: 0 Copy variables: event_whitelisted_players: variable_type: GLOBAL value_type: LIST initial_value: - Ajneb - KleinTada --- # Interactions Wiki | Interactions [hashtag](https://ajneb97.gitbook.io/interactions#description) Description ------------------------------------------------------------------------------- This plugin allows you to add dialogues to your NPCs, creating complex conversation trees. You can add different options to these conversations, so the player can continue talking to the NPC writing the number of the option in the chat or clicking on it. What makes **Interactions** better than any other _"conversation/dialogue/quests"_ plugin is that you have total control of the conversations you create. You can add requirements for an option to be selected, or even create "conditional dialogues" that will only be sent to the player if some conditions are met. You can also execute different actions to the player within a conversation, like giving him a potion effect or executing a command. [hashtag](https://ajneb97.gitbook.io/interactions#media) Media ------------------------------------------------------------------- ![](https://ajneb97.gitbook.io/interactions/~gitbook/image?url=https%3A%2F%2F1449104054-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fassets%252F-MQiBU9Cb692JapWmSwp%252F-MVroZRzaW985ZPq0nRN%252F-MVrofRtBLN_dkprk3e5%252F2021-03-15_18.24.21.png%3Falt%3Dmedia%26token%3D60587448-b4c1-4bf6-8334-58941e1c0f45&width=768&dpr=3&quality=100&sign=634734f1&sv=2) ![](https://ajneb97.gitbook.io/interactions/~gitbook/image?url=https%3A%2F%2F1449104054-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fassets%252F-MQiBU9Cb692JapWmSwp%252F-MQqugMPB--Hjs1KWd5S%252F-MQqwHzwWTd8-b8A2gB0%252F2021-01-11_17.43.10.png%3Falt%3Dmedia%26token%3D9848953c-4e9e-4999-bd3e-c56cd041e90b&width=768&dpr=3&quality=100&sign=c02e7999&sv=2) ![](https://ajneb97.gitbook.io/interactions/~gitbook/image?url=https%3A%2F%2F1449104054-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fassets%252F-MQiBU9Cb692JapWmSwp%252F-MQqugMPB--Hjs1KWd5S%252F-MQqwN1sm5SYbo2eNb9p%252F2021-01-11_17.39.27.png%3Falt%3Dmedia%26token%3D1409ac19-8198-479e-97ed-1318f8cbd8ff&width=768&dpr=3&quality=100&sign=bbd2295d&sv=2) ![](https://ajneb97.gitbook.io/interactions/~gitbook/image?url=https%3A%2F%2F1449104054-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fassets%252F-MQiBU9Cb692JapWmSwp%252F-MQqugMPB--Hjs1KWd5S%252F-MQqwQgD8gXV-d7nYuOx%252F2021-01-11_17.39.40.png%3Falt%3Dmedia%26token%3Dcf9959f5-85c4-4d84-b57f-a66be37b7d7a&width=768&dpr=3&quality=100&sign=f8c78faa&sv=2) ![](https://ajneb97.gitbook.io/interactions/~gitbook/image?url=https%3A%2F%2F1449104054-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fassets%252F-MQiBU9Cb692JapWmSwp%252F-MZZzKkbBfcHPr5AG-1_%252F-MZ_Jbz34QNK_QQacvZH%252Fselectable%2520options%2520-%2520gif.gif%3Falt%3Dmedia%26token%3D5b975dda-72dc-4702-87c0-a73a2921cda4&width=768&dpr=3&quality=100&sign=a47c6f09&sv=2) [NextHow to Startchevron-right](https://ajneb97.gitbook.io/interactions/how-to-start) Last updated 1 year ago * [Description](https://ajneb97.gitbook.io/interactions#description) * [Media](https://ajneb97.gitbook.io/interactions#media) --- # How to Start | Interactions [hashtag](https://ajneb97.gitbook.io/interactions/how-to-start#requirements) Requirements ---------------------------------------------------------------------------------------------- **1) Spigot/Paper** circle-exclamation You need Spigot or Paper for the plugin to work. Don't use Craftbukkit. **2) NPC Plugin** circle-info If you want to create conversations with NPCs you need one of the following plugins: **Citizens:** [www.spigotmc.org/resources/citizens.13811/arrow-up-right](https://www.spigotmc.org/resources/citizens.13811/) **FancyNpcs:** [https://modrinth.com/plugin/fancynpcsarrow-up-right](https://modrinth.com/plugin/fancynpcs) If you don't use one of these plugins you can still create conversations with other named entities. You can also use the `/interactions start` command to start conversations in certain locations even from other plugins (including other NPC plugins). **3) PlaceholderAPI** circle-info This dependency is completely optional. If you want to create conditional dialogues or options with requirements you will need to install PlaceholderAPI on your server to get a lot of variables. [https://www.spigotmc.org/resources/placeholderapi.6245/arrow-up-right](https://www.spigotmc.org/resources/placeholderapi.6245/) The plugin also has support for PlaceholderAPI variables in dialogue messages! circle-exclamation Remember to follow the instructions for downloading variables. If you need to use variables from the **Player** expansion you need to use the following commands to get them to work: 1) /papi ecloud download Player 2) /papi reload **4) ProtocolLib** circle-info This dependency is completely optional. You can use it to set the `block_movement_mode` option to `PROTOCOLLIB` in the config to completely block player movement while in conversation. [https://www.spigotmc.org/resources/protocollib.1997/arrow-up-right](https://www.spigotmc.org/resources/protocollib.1997/) **5) Hologram Plugin** circle-info These dependencies are completely optional. You can use them to enable the `hologram_dialogues` option in [Conversation Entities](https://ajneb97.gitbook.io/interactions/conversation-entities-properties) . **Holographic Displays:** [https://dev.bukkit.org/projects/holographic-displaysarrow-up-right](https://dev.bukkit.org/projects/holographic-displays) **Decent Holograms:** [https://www.spigotmc.org/resources/96927/arrow-up-right](https://www.spigotmc.org/resources/96927/) **FancyHolograms:** [modrinth.com/plugin/fancyhologramsarrow-up-right](https://modrinth.com/plugin/fancyholograms) [hashtag](https://ajneb97.gitbook.io/interactions/how-to-start#installation) Installation ---------------------------------------------------------------------------------------------- To install the plugin on your server just place the Interactions file inside your plugins folder and start your server. Examples files will be generated in the **conversations** folder, you can use them as a reference or delete them. [PreviousInteractions Wikichevron-left](https://ajneb97.gitbook.io/interactions) [NextCreating a Conversation: Inventorychevron-right](https://ajneb97.gitbook.io/interactions/creating-a-conversation) Last updated 3 months ago * [Requirements](https://ajneb97.gitbook.io/interactions/how-to-start#requirements) * [Installation](https://ajneb97.gitbook.io/interactions/how-to-start#installation) --- # Creating a Conversation: Inventory | Interactions There are 2 methods for creating a new conversation with a NPC or entity. You can use them both, but I suggest you to start using the first method since it is more interactive and you don't have to touch the config files. [hashtag](https://ajneb97.gitbook.io/interactions/creating-a-conversation#using-the-main-inventory) Using the Main Inventory --------------------------------------------------------------------------------------------------------------------------------- To start creating a new [conversation entity](https://ajneb97.gitbook.io/interactions/keywords/conversation-entity) you need to use the `/interactions create ` command. The __ parameter is just the name of this whole conversation tree, you can name it for example as: _guard\_conversation._ Now, to create conversation, dialogues and options, use the `/interactions edit ` command. The following inventory will open. ![](https://ajneb97.gitbook.io/interactions/~gitbook/image?url=https%3A%2F%2F1449104054-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fassets%252F-MQiBU9Cb692JapWmSwp%252F-MQiNDjJMKtDUpzCNFKz%252F-MQiYhM8lDUrAINtdQvG%252F1.jpg%3Falt%3Dmedia%26token%3D88e031fb-1117-4b91-8c0f-4f035c1e82c3&width=768&dpr=3&quality=100&sign=77d280ee&sv=2) Conversations Inventory All items have their own description and how to use them, but what we are going to do first is to select the DIAMOND item to create our first [conversation](https://ajneb97.gitbook.io/interactions/keywords/conversation) . The next to do is to click on the created conversation and add a new [dialogue](https://ajneb97.gitbook.io/interactions/keywords/dialogue) pressing the BOOK item like it is shown in the following image. ![](https://ajneb97.gitbook.io/interactions/~gitbook/image?url=https%3A%2F%2F1449104054-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fassets%252F-MQiBU9Cb692JapWmSwp%252F-MQiNDjJMKtDUpzCNFKz%252F-MQiZox0mhzZQouYGhpo%252F2.jpg%3Falt%3Dmedia%26token%3D5472f706-c5f9-45f4-a509-1ce5a8b87c01&width=768&dpr=3&quality=100&sign=5999a2b5&sv=2) Editing Conversation Inventory The dialogue we are about to create will be the first message sent to the player. Now select the dialogue item. ![](https://ajneb97.gitbook.io/interactions/~gitbook/image?url=https%3A%2F%2F1449104054-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fassets%252F-MQiBU9Cb692JapWmSwp%252F-MQiNDjJMKtDUpzCNFKz%252F-MQiaS7VH3b1H12L2cF9%252F3.jpg%3Falt%3Dmedia%26token%3Df95168d4-d550-4417-91d4-8f83728d50d1&width=768&dpr=3&quality=100&sign=ff497a39&sv=2) Editing Dialogue Inventory Here in the dialogue inventory you can modify its properties. First, by using the BOOK item, you can add multiple text lines for the dialogue to be sent to the player. You can edit the lines as well or removing them. The COMPASS item will open a configuration menu where you can modify other options like the time of this dialogue. Currently it is set to 4 seconds, this means the player will have 4 seconds to read the dialogue, and then the conversation will continue (or end). So, we have created our first dialogue which is: `"Hello citizen, what can I do for you?"`, now we will add some [options](https://ajneb97.gitbook.io/interactions/keywords/option) for the player to select. Go back to the Conversation Inventory and add player options selecting the NETHER STAR item. ![](https://ajneb97.gitbook.io/interactions/~gitbook/image?url=https%3A%2F%2F1449104054-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fassets%252F-MQiBU9Cb692JapWmSwp%252F-MQilGv58t3rmqTLRGU8%252F-MQimK75T-p4G3CKE8mT%252F4.jpg%3Falt%3Dmedia%26token%3D5ca41851-268a-4702-8f34-1824413c51da&width=768&dpr=3&quality=100&sign=80645e34&sv=2) Editing Option Inventory In this case I will add just two options. Select the GHAST TEAR item to change the text of the option. The two options will be: `"Where is the market?"` and `"Bye."`. Now we need to redirect both options to other conversations, but we need to create them first. We'll go to the first inventory and create two new conversations (conversation2 and conversation3). In the first conversation I am going to create two dialogues. ![](https://ajneb97.gitbook.io/interactions/~gitbook/image?url=https%3A%2F%2F1449104054-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fassets%252F-MQiBU9Cb692JapWmSwp%252F-MQilGv58t3rmqTLRGU8%252F-MQipgq7eKdg6dToolHR%252F5.jpg%3Falt%3Dmedia%26token%3D90433a5b-4152-494c-84aa-6c0cf6ca8358&width=768&dpr=3&quality=100&sign=628bd977&sv=2) Dialogues for conversation2 This conversation correspond to the first option `"Where is the market?"`. Instead of finishing the conversation we want the dialogue to continue, showing the same options of conversation1 again. So we select the REDSTONE item, and select the "Redirect to other options" item. Here we will need to write the conversation name in the chat. ![](https://ajneb97.gitbook.io/interactions/~gitbook/image?url=https%3A%2F%2F1449104054-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fassets%252F-MQiBU9Cb692JapWmSwp%252F-MQilGv58t3rmqTLRGU8%252F-MQiqb7Ja3JIQr0fwGsD%252Fimagen.png%3Falt%3Dmedia%26token%3Da6801348-9ba3-4929-8946-22e0e6945dd0&width=768&dpr=3&quality=100&sign=fc7754b4&sv=2) Set Finish for conversation2 Now we do the same for conversation3, this time I will add just one dialogue which is: `"Be safe."`. This one correspond to the second option `"Bye."`. This time we want the conversation to finish so, it is not necessary to add a Finish/End to the dialogue. Now, we go back to the options of conversation1 and select the BOOK item to choose the conversation that will start. ![](https://ajneb97.gitbook.io/interactions/~gitbook/image?url=https%3A%2F%2F1449104054-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fassets%252F-MQiBU9Cb692JapWmSwp%252F-MQilGv58t3rmqTLRGU8%252F-MQirkfkVCm5wzPx2shO%252Fimagen.png%3Falt%3Dmedia%26token%3D689cac9d-66a5-49ba-8ed5-e41e9d7b4977&width=768&dpr=3&quality=100&sign=6699d0fd&sv=2) Set Conversation for option1 Option 1 should start conversation2 and option 2 should start conversation3. We have created a simple conversation. But it is not working yet, we need to add a starting point. So we have to go to the Conversations Inventory and select the COMPASS item. Select the BOOK item to add a starting point and then, write in chat: `"NPC with id 1"`. ![](https://ajneb97.gitbook.io/interactions/~gitbook/image?url=https%3A%2F%2F1449104054-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fassets%252F-MQiBU9Cb692JapWmSwp%252F-MQirq6b3-KL01Dnzia1%252F-MQitZqT2NLakdOqVRcN%252F6.jpg%3Falt%3Dmedia%26token%3Dda40e393-6911-47a0-bb0d-b04f84e21e9e&width=768&dpr=3&quality=100&sign=32d71241&sv=2) Set Starting point for the Conversation This means the conversation will start when the player right-clicks on a NPC with the id "1". To know the format of the starting points [CLICK HERE](https://ajneb97.gitbook.io/interactions/conversation-entities-properties#starting-points) . Now you can close the inventory and start testing your created conversation. ![](https://ajneb97.gitbook.io/interactions/~gitbook/image?url=https%3A%2F%2F1449104054-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fassets%252F-MQiBU9Cb692JapWmSwp%252F-MQlFv4z8ORI5IFehLoM%252F-MQlHH0mhVGew-XxYt1B%252Fimagen.png%3Falt%3Dmedia%26token%3D246bfd37-1362-422e-b3a0-ddb621dce237&width=768&dpr=3&quality=100&sign=370a5dd1&sv=2) [PreviousHow to Startchevron-left](https://ajneb97.gitbook.io/interactions/how-to-start) [NextCreating a Conversation: Configchevron-right](https://ajneb97.gitbook.io/interactions/creating-a-conversation-config) Last updated 8 months ago --- # Creating a Conversation: Config | Interactions There are 2 methods for creating a new conversation with a NPC or entity. You can use them both, but I suggest you to start using the first method since it is more interactive and you don't have to touch the config files. [hashtag](https://ajneb97.gitbook.io/interactions/creating-a-conversation-config#using-the-config-file) Using the Config file ---------------------------------------------------------------------------------------------------------------------------------- As well as the first method, you need to create a new conversation entity by using the `/interactions create ` command. A new file will be generated, but you'll see that is almost empty, with no conversations or dialogues. You can replace the config with the following text so you can start adding conversations, dialogues and options correctly. Copy name: '&a&lExample NPC' starts_with: [] block_movement: true start_conversation_radius: 0 end_conversation_radius: 5 conversation: conversation1: dialogue: dialogue1: text: - "&7Hello citizen, what can I do for you?" time: 4 options: option1: text: "&eTell me about the city." start_conversation: conversation2 option2: text: "&eBye" start_conversation: conversation3 With the current config we just have one dialogue `"Hello citizen, what can I do for you?"` that last 4 seconds and then, two options will be displayed to the player. These options currently do nothing since we haven't created the conversation2 and conversation3. The `start_conversation` path for each option defines what conversation should start when the player selects the option. As you can see now, the conversations 2 and 3 were created. The conversation2 has 2 dialogues and the conversation3 just one. But, for now, when the dialogues of conversation2 are completed, the whole conversation will stop, so we can redirect the player to the options of conversation1 again by adding the`start_options: conversation1` property. If we don't set a _start\_options_ for conversation3 it means this conversation will be the last one. Finally, we need to set a starting point for the conversation, in this case we want the player to right click a NPC with id "1" so we add this to the `starts_with` path. [PreviousCreating a Conversation: Inventorychevron-left](https://ajneb97.gitbook.io/interactions/creating-a-conversation) [NextConversation Entities Propertieschevron-right](https://ajneb97.gitbook.io/interactions/conversation-entities-properties) Last updated 8 months ago Copy conversation: conversation1: dialogue: dialogue1: text: - "&7Hello citizen, what can I do for you?" time: 4 options: option1: text: "&eTell me about the city." start_conversation: conversation2 option2: text: "&eBye" start_conversation: conversation3 conversation2: dialogue: dialogue1: text: - "&7Kryngel is one of the most important cities" - "&7of the nation." time: 4 dialogue2: text: - "&7If you are searching for adventures, you can talk to" - "&7Bob in the inn. Anything else?" time: 4 conversation3: dialogue: dialogue1: text: - "&7Good luck!" time: 1 Copy conversation2: dialogue: dialogue1: text: - "&7Kryngel is one of the most important cities" - "&7of the nation." time: 4 dialogue2: text: - "&7If you are finding adventures, you can talk to" - "&7Bob in the inn. Anything else?" time: 4 start_options: conversation1 Copy name: '&a&lExample NPC' starts_with: - NPC with id 1 block_movement: true start_conversation_radius: 0 end_conversation_radius: 5 --- # Conversation Entities Properties | Interactions [hashtag](https://ajneb97.gitbook.io/interactions/conversation-entities-properties#name) Name -------------------------------------------------------------------------------------------------- This is the name of the NPC that will show in chat. You can add the `{centered}` variable before the name to make the text centered. Example 1 Example 2 Copy name: '&a&lGuard' Copy name: '{centered}&a&lGuard' [hashtag](https://ajneb97.gitbook.io/interactions/conversation-entities-properties#starting-points) Starting Points ------------------------------------------------------------------------------------------------------------------------ Conversations should start with an NPC or entity. You need to use the following format. `1) NPC with id ` `2) named ` circle-info The value is the custom name of the entity. If you have a Zombie called "Bob", then this is the name. Don't use color codes. circle-info If you want to start a conversation without using a Citizens/FancyNpcs NPC, and instead, a Minecraft entity, replace the value with an EntityType from this link: [https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/entity/EntityType.htmlarrow-up-right](https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/entity/EntityType.html) circle-info If you are starting a conversation using the `/interactions start` command, you don't need to add a starting point. Example 1 Example 2 Example 3 Copy starts_with: - NPC with id 10 - NPC with id 17 This will start the conversation when a player right clicks a Citizens NPC with id "10" or "17". Copy starts_with: - NPC with id teleporter_1 This will start the conversation when a player right clicks a FancyNpcs NPC with id "teleporter\_1". Copy starts_with: - SKELETON named Teleporter This will start the conversation when a player right clicks a Skeleton with the name "Teleporter" [hashtag](https://ajneb97.gitbook.io/interactions/conversation-entities-properties#conversation-radius) Conversation Radius -------------------------------------------------------------------------------------------------------------------------------- #### [hashtag](https://ajneb97.gitbook.io/interactions/conversation-entities-properties#start-conversation-radius) Start conversation radius The radius of blocks a player must be near the NPC to automatically start the conversation. Set it to 0 to ignore this option and prevent the conversation to start automatically. #### [hashtag](https://ajneb97.gitbook.io/interactions/conversation-entities-properties#end-conversation-radius) End conversation radius The radius of blocks a player must be away from the NPC to automatically leave/end the conversation. You can set it to 0 to ignore this option but it is recommended always setting it to a higher value to prevent bugs. [hashtag](https://ajneb97.gitbook.io/interactions/conversation-entities-properties#slow-effect) Slow Effect ---------------------------------------------------------------------------------------------------------------- When enabled, this will create a "zoom effect" when talking to the NPC. [hashtag](https://ajneb97.gitbook.io/interactions/conversation-entities-properties#block-movement) Block Movement ---------------------------------------------------------------------------------------------------------------------- Whether the player movement should be cancelled when talking to this NPC. [hashtag](https://ajneb97.gitbook.io/interactions/conversation-entities-properties#block-rotation) Block Rotation ---------------------------------------------------------------------------------------------------------------------- Whether the player rotation should be cancelled when talking to this NPC. circle-exclamation Requires `block_movement` to be enabled. circle-exclamation Only works for `block_movement_mode` option set to **NORMAL** or **NEW** in the config [hashtag](https://ajneb97.gitbook.io/interactions/conversation-entities-properties#can-be-started-on-air) Can Be Started on Air ------------------------------------------------------------------------------------------------------------------------------------ Whether the player can start the conversation while not on the ground. [hashtag](https://ajneb97.gitbook.io/interactions/conversation-entities-properties#save-conversation-progress) Save Conversation Progress ---------------------------------------------------------------------------------------------------------------------------------------------- When enabled, if the player leaves the server or the server is closed while talking to an NPC, the progress of the conversation will be saved for the next time they join. [hashtag](https://ajneb97.gitbook.io/interactions/conversation-entities-properties#requires-permission) Requires Permission -------------------------------------------------------------------------------------------------------------------------------- When enabled, players will need the `interactions.start.` permission to speak with the NPC. You can also add an option where you can specify a unique permission error message for each NPC conversation. If you don't set the custom permission message, the default one from messages.yml will be used. [hashtag](https://ajneb97.gitbook.io/interactions/conversation-entities-properties#cooldown) Cooldown ---------------------------------------------------------------------------------------------------------- Defines the amount of seconds the player must wait before talking to the NPC again. If you don't want a cooldown set it to 0 or delete the option. [hashtag](https://ajneb97.gitbook.io/interactions/conversation-entities-properties#hologram-dialogues) Hologram Dialogues ------------------------------------------------------------------------------------------------------------------------------ Allows the display of holograms above the NPC on each conversation dialogue. circle-info Requires a compatible hologram plugin mentioned in [Requirements](https://ajneb97.gitbook.io/interactions/how-to-start#requirements) [hashtag](https://ajneb97.gitbook.io/interactions/conversation-entities-properties#conversations) Conversations -------------------------------------------------------------------------------------------------------------------- It refers to the multiple conversations this entity can have. Click [HERE](https://ajneb97.gitbook.io/interactions/conversation-properties) for Conversations properties. [PreviousCreating a Conversation: Configchevron-left](https://ajneb97.gitbook.io/interactions/creating-a-conversation-config) [NextConversation Propertieschevron-right](https://ajneb97.gitbook.io/interactions/conversation-properties) Last updated 4 months ago * [Name](https://ajneb97.gitbook.io/interactions/conversation-entities-properties#name) * [Starting Points](https://ajneb97.gitbook.io/interactions/conversation-entities-properties#starting-points) * [Conversation Radius](https://ajneb97.gitbook.io/interactions/conversation-entities-properties#conversation-radius) * [Slow Effect](https://ajneb97.gitbook.io/interactions/conversation-entities-properties#slow-effect) * [Block Movement](https://ajneb97.gitbook.io/interactions/conversation-entities-properties#block-movement) * [Block Rotation](https://ajneb97.gitbook.io/interactions/conversation-entities-properties#block-rotation) * [Can Be Started on Air](https://ajneb97.gitbook.io/interactions/conversation-entities-properties#can-be-started-on-air) * [Save Conversation Progress](https://ajneb97.gitbook.io/interactions/conversation-entities-properties#save-conversation-progress) * [Requires Permission](https://ajneb97.gitbook.io/interactions/conversation-entities-properties#requires-permission) * [Cooldown](https://ajneb97.gitbook.io/interactions/conversation-entities-properties#cooldown) * [Hologram Dialogues](https://ajneb97.gitbook.io/interactions/conversation-entities-properties#hologram-dialogues) * [Conversations](https://ajneb97.gitbook.io/interactions/conversation-entities-properties#conversations) Copy start_conversation_radius: 5 end_conversation_radius: 5 Copy slow_effect: true Copy block_movement: true Copy block_rotation: false Copy can_be_started_on_air: false Copy save_conversation_progress: true Copy requires_permission: true custom_permission_message: "&cYou need to be level 20 to start this conversation." Copy cooldown: 3600 Copy hologram_dialogues: # Whether holograms should be enabled or not. enabled: false # The height of the hologram. offset_y: 2.7 # Modification on the horizontal position of the hologram # Negative values = left, and positive values = right (from the # original location). offset_horizontal: -1.5 Copy conversation: conversation1: ... conversation2: ... --- # Conversation Properties | Interactions [hashtag](https://ajneb97.gitbook.io/interactions/conversation-properties#random-dialogue) Random Dialogue --------------------------------------------------------------------------------------------------------------- If enabled, this conversation will select and send a random dialogue. Copy random_dialogue: true [hashtag](https://ajneb97.gitbook.io/interactions/conversation-properties#interrupt-actions) Interrupt Actions ------------------------------------------------------------------------------------------------------------------- Here you can set actions to be executed if the player interrupts the conversation in any of the dialogues of the current conversation tree. Ways of interrupting a conversation: Leaving the server, using /int stop command, stopping the server, leaving the conversation radius. All actions [HERE](https://ajneb97.gitbook.io/interactions/actions) . Copy interrupt_actions: - 'console_command: say %player% interrupted a conversation.' - 'actionbar: &cConversation interrupted...;60' [hashtag](https://ajneb97.gitbook.io/interactions/conversation-properties#dialogue) Dialogue ------------------------------------------------------------------------------------------------- It refers to the multiple dialogues this conversation can have. Click [HERE](https://ajneb97.gitbook.io/interactions/dialogues-properties) for Dialogue properties. Copy dialogue: dialogue1: ... dialogue2: ... [hashtag](https://ajneb97.gitbook.io/interactions/conversation-properties#options) Options ----------------------------------------------------------------------------------------------- It refers to the multiple options this conversation can have. Click [HERE](https://ajneb97.gitbook.io/interactions/options-properties) for Options properties. [hashtag](https://ajneb97.gitbook.io/interactions/conversation-properties#options-in-dialogue) Options in Dialogue ----------------------------------------------------------------------------------------------------------------------- When this option is enabled, options will not be sent in the common format but instead you can add them as variables inside the **last dialogue** of this conversation. This allows you to write more dialogue text below the options. ![](https://ajneb97.gitbook.io/interactions/~gitbook/image?url=https%3A%2F%2F1449104054-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MQiBU9Cb692JapWmSwp%252Fuploads%252F6n7lCSGnRRT4pPvhMaEo%252F2024-09-17_14.48.16.png%3Falt%3Dmedia%26token%3D6a390618-beb6-48f0-9a0b-e49021ef7a42&width=768&dpr=3&quality=100&sign=b383761a&sv=2) circle-exclamation **IMPORTANT** when this option is enabled: * The last dialogue of this conversation must contain the `%option_X%` variable for each option you have defined. * The last dialogue must also have a time of 0, so the options are sent along the dialogue. [PreviousConversation Entities Propertieschevron-left](https://ajneb97.gitbook.io/interactions/conversation-entities-properties) [NextDialogues Propertieschevron-right](https://ajneb97.gitbook.io/interactions/dialogues-properties) Last updated 1 year ago * [Random Dialogue](https://ajneb97.gitbook.io/interactions/conversation-properties#random-dialogue) * [Interrupt Actions](https://ajneb97.gitbook.io/interactions/conversation-properties#interrupt-actions) * [Dialogue](https://ajneb97.gitbook.io/interactions/conversation-properties#dialogue) * [Options](https://ajneb97.gitbook.io/interactions/conversation-properties#options) * [Options in Dialogue](https://ajneb97.gitbook.io/interactions/conversation-properties#options-in-dialogue) Copy options: option1: ... option2: ... Copy options_in_dialogue: true Copy # Example # options_in_dialogue is enabled on conversation1. # dialogue2 has %option_1% and %option_2% variables on the text. # The time of dialogue is 0. conversation: conversation1: dialogue: dialogue1: text: - '{centered}&8&m000 &8&m000' - '{centered}#fffa9c&lHegror' - '{centered}#dbdbdbWelcome my friend! Welcome to the island!' - ' ' - '{centered}&8&m000 &8&m000' time: 6 show_name: false dialogue2: text: - '{centered}&8&m000 &8&m000' - '{centered}#fffa9c&lHegror' - '{centered}#dbdbdbIf I am not wrong, you are &b%player% #dbdbdbright?' - ' ' - ' %option_1%' - ' %option_2%' - '{centered}&8&m000 &8&m000' time: 0 show_name: false options: option1: text: '&7Yes' start_conversation: conversation2 option2: text: '&7No' start_conversation: conversation3 options_in_dialogue: true --- # Options Properties | Interactions [hashtag](https://ajneb97.gitbook.io/interactions/options-properties#text) Text ------------------------------------------------------------------------------------ The message of this option. Copy text: "&eTell me about the city." [hashtag](https://ajneb97.gitbook.io/interactions/options-properties#start-conversation) Start Conversation ---------------------------------------------------------------------------------------------------------------- Determines which conversation should start when the player selects this option. Copy start_conversation: conversation2 [hashtag](https://ajneb97.gitbook.io/interactions/options-properties#requirements) Requirements ---------------------------------------------------------------------------------------------------- Sometimes you will want the player to met a certain requirement for a player option to show up in the chat. For example, the player must have completed some quest for an option to appear. This can be done by using PlaceholderAPI variables. You can learn about requirements [CLICKING HERE](https://ajneb97.gitbook.io/interactions/requirements) . Copy requires: - '%interactions_has_dialogue_guard1.conversation1.dialogue1% == true' - "%player_level% >= 20" - "%interactions_influence_guard1% >= 10" [hashtag](https://ajneb97.gitbook.io/interactions/options-properties#actions) Actions ------------------------------------------------------------------------------------------ As well as the dialogues, you can execute some actions when clicking on an option, like giving the player a potion effect or executing a command. You can learn about all actions [CLICKING HERE](https://ajneb97.gitbook.io/interactions/actions) . [PreviousDialogues Propertieschevron-left](https://ajneb97.gitbook.io/interactions/dialogues-properties) [NextActionschevron-right](https://ajneb97.gitbook.io/interactions/actions) Last updated 2 years ago * [Text](https://ajneb97.gitbook.io/interactions/options-properties#text) * [Start Conversation](https://ajneb97.gitbook.io/interactions/options-properties#start-conversation) * [Requirements](https://ajneb97.gitbook.io/interactions/options-properties#requirements) * [Actions](https://ajneb97.gitbook.io/interactions/options-properties#actions) Copy actions: - 'playsound: BLOCK_NOTE_BLOCK_PLING;10;0.1' --- # Dialogues Properties | Interactions [hashtag](https://ajneb97.gitbook.io/interactions/dialogues-properties#text-lines) Text lines -------------------------------------------------------------------------------------------------- This is the message to be sent to the player in each dialogue. Some considerations: * You can add multiple lines. * You can use PlaceholderAPI variables. * You can use the `%player%` variable to get the player name. * You can add the `{centered}` variable before the name to make the text centered. * If you want the player to be able to SKIP the dialogue, just add the `%next%` variable at the end of it. This variable will be replaced with a button players need to click. * You can use JSON format by writing `"json: "`. * If you want to show the options within the dialogue, use the `%option_X%` variable. More information about this [**HERE**](https://ajneb97.gitbook.io/interactions/conversation-properties#options-in-dialogue) . Example 1 Example 2 Example 3 Example 4 Example 5 Copy text: - "&7Hello &6%player%, &7welcome to the city of" - "&f&lArgond&7. A magnificent place isn't it?" Copy text: - "{centered}&7FINALLY you arrived! I was expecting you..." - "{centered}&7Are you the one everyone is talking about?" Copy text: - "&7Welcome to the server, would you like to go" - "&7somewhere? %next%" Copy text: - 'json: ["",{"text":"Remember to check the ","color":"#AFD6E9"},{"text":"SPAWN","bold":true,"color":"#FF80C0","hoverEvent":{"action":"show_text","contents":[{"text":"Use /spawn to teleport","bold":true,"underlined":true}]}}]' Copy text: - '{centered}&8&m000 &8&m000' - '{centered}#fffa9c&lHegror' - '{centered}#dbdbdbIf I am not wrong, you are &b%player% #dbdbdbright?' - ' ' - ' %option_1%' - ' %option_2%' - '{centered}&8&m000 &8&m000' [hashtag](https://ajneb97.gitbook.io/interactions/dialogues-properties#time) Time -------------------------------------------------------------------------------------- The time (in seconds) the player has to read the message and continue with the next dialogue. * Set it to 0 if you want the next dialogue to be sent instantly along this dialogue. This is useful for showing a dialogue and options at the same time. * Set it to -1 if you want the player to click on a button on chat to continue with the dialogue. For this, remember to use the `%next%` option explained above. [hashtag](https://ajneb97.gitbook.io/interactions/dialogues-properties#start-options) Start Options -------------------------------------------------------------------------------------------------------- When finishing this dialogue, the player options from the conversation defined here, will be displayed. [hashtag](https://ajneb97.gitbook.io/interactions/dialogues-properties#start-conversation) Start Conversation ------------------------------------------------------------------------------------------------------------------ When finishing this dialogue, the first dialogue from the conversation defined here, will start. [hashtag](https://ajneb97.gitbook.io/interactions/dialogues-properties#actions-and-last-actions) Actions and Last Actions ------------------------------------------------------------------------------------------------------------------------------ At the beginning (or end) of the dialogue you can execute some actions, like giving the player a potion effect or executing a command. You can learn about all actions [CLICKING HERE](https://ajneb97.gitbook.io/interactions/actions) . [hashtag](https://ajneb97.gitbook.io/interactions/dialogues-properties#show-name) Show Name ------------------------------------------------------------------------------------------------ Whether the name of this entity should be displayed on this dialogue. [hashtag](https://ajneb97.gitbook.io/interactions/dialogues-properties#save-dialogue-option) Save Dialogue Option ---------------------------------------------------------------------------------------------------------------------- A very important option for dialogues is the "Save Dialogue" one. In some cases you will want the user to previously have reach to a certain dialogue in a conversation. For example, the first time a player greets a NPC the following dialogue will show: `"Hello citizen, what can I do for you"`. But the next time, another different dialogue will be sent, meaning the player already talked to this NPC. If you want something like this to happen, enable this option. This will save this dialogue for the player and will allow the use of the following PlaceholderAPI variable: `%interactions_has_dialogue_..%` This variable will return `true` if the player has reached to that dialogue, and `false` if not. [hashtag](https://ajneb97.gitbook.io/interactions/dialogues-properties#conditional-dialogues) Conditional Dialogues ------------------------------------------------------------------------------------------------------------------------ A conditional dialogue is a REPLACEMENT for the dialogue and will be sent to the player ONLY if some requirements are met. For example, we have this dialogue: `"Hello adventurer, I hope you are having a great day"` We can add a conditional dialogue that will replace this dialogue ONLY if the player is lower than level 10. This can be done by adding the next requirement: `"%player_level% < 10"` ![](https://ajneb97.gitbook.io/interactions/~gitbook/image?url=https%3A%2F%2F1449104054-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fassets%252F-MQiBU9Cb692JapWmSwp%252F-MQiNDjJMKtDUpzCNFKz%252F-MQigpEuhCjHgdtY0s2Y%252Fimagen.png%3Falt%3Dmedia%26token%3Dea93eebf-d81d-4588-8cba-a2548ff0d432&width=768&dpr=3&quality=100&sign=cbfa2b2b&sv=2) We now need to create a conversation with another dialogue, that will replace the original one, and redirect the conditional dialogue to that conversation. In this case I will create a convesation with the dialogue: `"I don't speak to novices"` In the config it should look something like this: So, as you can see, the conversation will start with the dialogue1 of conversation1, but if the player is lower than level 10, the conversation2 will start instead. circle-info You can find more information about Requirements [CLICKING HERE](https://ajneb97.gitbook.io/interactions/requirements) . Remember you can use the variable from the Save Dialogue option too! (requires PlaceholderAPI) In this case, the first time the player speaks to the NPC, the dialogue1 for the conversation1 will be sent. The next time instead, the conversation2 will start, since the player has already reached the `dialogue1` of `conversation1` from the `guard1.yml` file. circle-info Remember, you can add multiple conditional dialogues. If the conditions for one dialogue are not met, then it will check for the next one. If the requirements are not met for ANY of the conditional dialogues, then the original dialogue will be sent. [PreviousConversation Propertieschevron-left](https://ajneb97.gitbook.io/interactions/conversation-properties) [NextOptions Propertieschevron-right](https://ajneb97.gitbook.io/interactions/options-properties) Last updated 1 year ago * [Text lines](https://ajneb97.gitbook.io/interactions/dialogues-properties#text-lines) * [Time](https://ajneb97.gitbook.io/interactions/dialogues-properties#time) * [Start Options](https://ajneb97.gitbook.io/interactions/dialogues-properties#start-options) * [Start Conversation](https://ajneb97.gitbook.io/interactions/dialogues-properties#start-conversation) * [Actions and Last Actions](https://ajneb97.gitbook.io/interactions/dialogues-properties#actions-and-last-actions) * [Show Name](https://ajneb97.gitbook.io/interactions/dialogues-properties#show-name) * [Save Dialogue Option](https://ajneb97.gitbook.io/interactions/dialogues-properties#save-dialogue-option) * [Conditional Dialogues](https://ajneb97.gitbook.io/interactions/dialogues-properties#conditional-dialogues) Copy time: 4 Copy start_options: conversation1 Copy start_conversation: conversation4 Copy actions: - "give_potion_effect: BLINDNESS;180;1" - "give_potion_effect: CONFUSION;180;1" last_actions: - "remove_potion_effect: BLINDNESS" - "remove_potion_effect: CONFUSION" Copy show_name: false Copy save_dialogue_to_player: true Copy conversation1: dialogue: dialogue1: text: - '&7Hello adventurer, I hope you are having a great day' time: 2 conditional_dialogue: conditional_dialogue1: requires: - '%player_level% < 10' start_conversation: conversation2 conversation2: dialogue: dialogue1: text: - '&7I don't speak to novices' time: 2 Copy conversation1: dialogue: dialogue1: text: - '&7Hello adventurer, is the first time we met right?' time: 2 save_dialogue_to_player: true conditional_dialogue: conditional_dialogue1: requires: - '%interactions_has_dialogue_guard1.conversation1.dialogue1% == true' start_conversation: conversation2 conversation2: dialogue: dialogue1: text: - '&7Hello again &a%player%' time: 2 --- # Actions | Interactions This section is used for dialogues and actions. You can use PlaceholderAPI variables on actions. Action Description Example **console\_command** Executes a command from the console. `console_command: eco give %player% 5000` **player\_command** Executes a command from the player. `player_command: warp survival` **player\_command\_as\_op** Executes a command from the player as OP. (Not recommended) `player_command_as_op: help` **teleport** Teleports the player. Use this format: "teleport: world;x;y;z;yaw;pitch" `teleport: lobby;0;60;0;90;0` **give\_potion\_effect** Gives a potion effect to the player. Use this format: "give\_potion\_effect: effect;duration\_in\_ticks;level;particles" You can find a list of potion effects here: [https://hub.spigotmc.org/javadocs/spigot/org/bukkit/potion/PotionEffectType.htmlarrow-up-right](https://hub.spigotmc.org/javadocs/spigot/org/bukkit/potion/PotionEffectType.html) `give_potion_effect: BLINDNESS;180;1;false` **remove\_potion\_effect** Removes a potion effect from the player. `remove_potion_effect: BLINDNESS` **playsound** Plays a sound to the player. Use this format: "playsound: sound;volume;pitch" You can find a list of sounds here: [https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Sound.htmlarrow-up-right](https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Sound.html) Use this list instead when using 1.8: [https://helpch.at/docs/1.8.8/index.html?org/bukkit/Sound.htmlarrow-up-right](https://helpch.at/docs/1.8.8/index.html?org/bukkit/Sound.html) `playsound: BLOCK_NOTE_BLOCK_PLING;10;0.1` **playsound\_resource\_pack** Plays a resource pack sound to the player. Uses the same format of the playsound action. `playsound_resource_pack:` `my_custom_sound;10;1` **stopsound** Stops a sound for the player. Use `stopsound: ` for specific sound. Only works on 1.10+. Use `stopsound: all` for stopping all sounds. Only works on 1.17+. `stopsound: BLOCK_NOTE_BLOCK_PLING` `stopsound: all` **stopsound\_resource\_pack** Stops a resource pack sound for the player. `stopsound_resource_pack: scorpions:custom.test` **title** Sends a title and subtitle message to the player. Use this format: "title: fadeIn;stay;fadeOut;title;subtitle" fadeIn, stay and fadeOut must be in ticks, 20ticks = 1second If you want just a title, or just subtitle write "none" `title: 20;40;20;&6This is a title;none` **actionbar** Sends an actionbar message to the player. Use this format: "actionbar: message;duration" (The duration must be in ticks, 20ticks = 1second) `actionbar: &6Starting conversation...;60` **remove\_item** Removes X amount of items from the player inventory. You can check the format [**HERE**](https://ajneb97.gitbook.io/interactions/actions#remove-item) . `remove_item: DIAMOND;10` **firework** Spawns a firework from the player location. You can check the format [**HERE**](https://ajneb97.gitbook.io/interactions/actions#undefined) . `firework: colors:YELLOW,RED type:BALL fade:AQUA power:0` **wait** Waits X amount of seconds before executing more actions. `wait: 2` **wait\_ticks** Waits X amount of ticks before executing more actions. (20ticks = 1 second) `wait_ticks: 10` **influence** Sets, adds or removes influence from the current conversation entity for the player. `influence: set;5 influence: add;2 influence: remove;2` **send\_to\_server** Sends the player to a bungee server. ### [hashtag](https://ajneb97.gitbook.io/interactions/actions#remove-item) Remove Item This is the format for the **remove\_item** action: `remove_item: ;;datavalue: ;name: ;lorecontains: ` circle-exclamation Datavalue, name and lorecontains attributes are OPTIONAL. Don't use color formatting. circle-info You can find a list of valid types of items here: For latest versions: [https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.htmlarrow-up-right](https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html) For 1.8: [https://helpch.at/docs/1.8/org/bukkit/Material.htmlarrow-up-right](https://helpch.at/docs/1.8/org/bukkit/Material.html) You can also use the CheckItem expansion of PlaceholderAPI ([https://github.com/PlaceholderAPI/PlaceholderAPI/wiki/Placeholders#checkitemarrow-up-right](https://github.com/PlaceholderAPI/PlaceholderAPI/wiki/Placeholders#checkitem) ) to remove items, following this format: `remove_item: %checkitem_remove_,,<...>%` Example 1 Example 2 Example 3 ### [hashtag](https://ajneb97.gitbook.io/interactions/actions#firework) Firework This is the format for the **firework** action: `firework: colors:, type: fade:, power:` circle-exclamation The fade property is optional, the rest are necessary. You can add more than 2 colors. circle-info Firework Colors: [https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Color.htmlarrow-up-right](https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Color.html) Firework Types: [https://hub.spigotmc.org/javadocs/spigot/org/bukkit/FireworkEffect.Type.htmlarrow-up-right](https://hub.spigotmc.org/javadocs/spigot/org/bukkit/FireworkEffect.Type.html) Example 1 Example 2 [PreviousOptions Propertieschevron-left](https://ajneb97.gitbook.io/interactions/options-properties) [NextRequirementschevron-right](https://ajneb97.gitbook.io/interactions/requirements) Last updated 7 months ago * [Remove Item](https://ajneb97.gitbook.io/interactions/actions#remove-item) * [Firework](https://ajneb97.gitbook.io/interactions/actions#firework) Copy send_to_server: lobby Copy # This will remove x5 Diamonds from the player inventory. remove_item: DIAMOND;5 Copy # This will remove x5 Diamonds named 'Unique Diamond' # from the player inventory. remove_item: "DIAMOND;5;name: Unique Diamond" Copy # This will remove x1 Coal Block named "Burst Turret" # from the player inventory. remove_item: "%checkitem_remove_mat:COAL_BLOCK,nameequals:&aBurst &6Turret,amt:1%" Copy firework: colors:YELLOW,RED type:BALL fade:AQUA power:0 Copy firework: colors:BLACK,WHITE type:BURST power:1 --- # PlaceholderAPI Variables | Interactions **Interactions** provides you some PlaceholderAPI variables you can use on other plugins. Placeholder Description `%interactions_has_dialogue_..%` Returns **true** if the player has reached to that specific dialogue and **false** if not. Example: `%interactions_has_dialogue_guard1.conversation1.dialogue1%` Requires that the dialogue has the [**save option**](https://ajneb97.gitbook.io/interactions/dialogues-properties#save-dialogue-option) enabled. `%interactions_influence_%` Returns the total amount of influence the player has with the conversation entity. Example: `%interactions_influence_guard1%` `%interactions_current_conversation_text_%` Returns the current dialogue text line starting from line 1. `%interactions_current_conversation_name%` Returns the current conversation name. [PreviousMessages.yml Filechevron-left](https://ajneb97.gitbook.io/interactions/messages.yml-file) [NextConversation Entitychevron-right](https://ajneb97.gitbook.io/interactions/keywords/conversation-entity) Last updated 1 year ago --- # Commands and Permissions | Interactions [hashtag](https://ajneb97.gitbook.io/interactions/commands-and-permissions#commands) Commands -------------------------------------------------------------------------------------------------- alias: `/int` Command Description **/interactions help ** Shows all commands. **/interactions create ** Creates a new conversation for an entity. **/interactions edit ** Edits an already created conversation. **/interactions delete ** Deletes an already created conversation. **/interactions verify** Checks ALL conversations for errors. **/interactions reload** Reloads the plugin configuration files. **/interactions resetplayer ** **** **/interactions resetplayer (optional)** `Example: /interactions resetplayer Ajneb guard1 conversation1.dialogue1` Resets a conversation (or dialogue) for a player removing player data. **/interactions list** Shows all created conversation files. **/interactions start /\* /interactions start . ** With this command you can start a conversation for a player. The location is optional and it works for using the leave radius option. You can start a conversation for all players using `/int start *` You can start a certain conversation tree for a conversation file using `/int start .`, for example: `/int start guard1.conversation2` **/interactions stop /\*** Stops the current conversation of a player. You can stop conversations for all players using `/int stop *` **/interactions influence set/add/remove ** Manages player influence with conversation entities. [hashtag](https://ajneb97.gitbook.io/interactions/commands-and-permissions#permissions) Permissions -------------------------------------------------------------------------------------------------------- Permission Description **interactions.admin** Allows to access commands. **interactions.start.** Allows to talk to an NPC If `requires_permission` option is enabled on the conversation file. **interactions.bypasscooldown.** Allow players bypass the cooldown of a conversation. [PreviousRequirementschevron-left](https://ajneb97.gitbook.io/interactions/requirements) [NextConfig.yml Filechevron-right](https://ajneb97.gitbook.io/interactions/config.yml-file) Last updated 9 months ago * [Commands](https://ajneb97.gitbook.io/interactions/commands-and-permissions#commands) * [Permissions](https://ajneb97.gitbook.io/interactions/commands-and-permissions#permissions) --- # Requirements | Interactions This section is used for player options and conditional dialogues. Every line of the **requirements list** refers to a condition that MUST be true. You can use all kind of PlaceholderAPI variables. circle-info For example, in the config below, there is an option which requires the player to be level 20 or greater to appear on the chat. If the player doesn't accomplishes this condition the option will not be displayed. Copy option3: text: "&eI am kind of a hero here." requires: - "%player_level% >= 20" start_conversation: conversation4 circle-info You can also check for 'or' conditions, meaning that a condition line will be approved if one of many conditions in the same line is accomplished. For example, in this option there is just one condition. The player must be level 20 or greater, OR the player must be op. Copy option3: text: "&eI am kind of a hero here." requires: - "%player_level% >= 20 or %player_is_op% == yes" start_conversation: conversation4 circle-info You can also compare two variables in one condition line. Copy conditions: - '%something% contains %player_name%' [hashtag](https://ajneb97.gitbook.io/interactions/requirements#type-of-conditionals) Type of Conditionals -------------------------------------------------------------------------------------------------------------- **For Text** * equals, == * !equals, != * equalsIgnoreCase * !equalsIgnoreCase * startsWith * !startsWith * contains * !contains **For Numbers** * equals, == * !equals, != * \>= * <= * \> * < [PreviousActionschevron-left](https://ajneb97.gitbook.io/interactions/actions) [NextCommands and Permissionschevron-right](https://ajneb97.gitbook.io/interactions/commands-and-permissions) Last updated 4 months ago --- # Commands and Permissions | ServerVariables [hashtag](https://ajneb97.gitbook.io/servervariables/commands-and-permissions#main-commands) Main Commands --------------------------------------------------------------------------------------------------------------- circle-info * For commands used to modify variables, the player parameter is only necessary when the specified variable type is set to **PLAYER**. * For commands that modify player variables: The player must be online. * You can add `silent:true` to the end of a command to hide the information/feedback message. * Command alias: `/servervariables` Command Description /svar set (optional)silent:true Sets the value to the variable. You can also set a value with spaces: `/svar set "value with spaces" ` /svar get Gets the value of the variable. /svar add (optional)silent:true Adds a value to a variable, only if the variable value type is set to INTEGER or DOUBLE. /svar reduce (optional)silent:true Reduces the value of a variable, only if the variable value type is set to INTEGER or DOUBLE. /svar reset /\* (optional)silent:true Resets the value of a variable to the default/initial value. \* means all players. (This will also modify offline player files, and there is no need for players to be online) /svar reload Reloads the config. [hashtag](https://ajneb97.gitbook.io/servervariables/commands-and-permissions#list-commands) List Commands --------------------------------------------------------------------------------------------------------------- When you want to access or modify LIST variables you must use these commands instead. circle-info * The first element of a list will always be INDEX 0. * The silent:true parameter works as well as in the main commands. Command Description /svar list get Gets the value at a certain index of the list. /svar list set Sets a new value on a certain index of the list. /svar list add Adds a new value to the end of the list. /svar list removeindex Removes the element at the specified index from the list. /svar list removevalue Removes the first occurrence of the value from the list. /svar list reset /\* Resets the value of the list to the default/initial value. \* means all players. (This will also modify offline player files, and there is no need for players to be online) /svar list display Displays all the elements of the list. [hashtag](https://ajneb97.gitbook.io/servervariables/commands-and-permissions#permissions) Permissions ----------------------------------------------------------------------------------------------------------- Permission Description servervariables.admin Grants access to all plugin commands. [PreviousVariables Tutorialchevron-left](https://ajneb97.gitbook.io/servervariables/variables-tutorial) [NextConfig.ymlchevron-right](https://ajneb97.gitbook.io/servervariables/config.yml) Last updated 1 month ago * [Main Commands](https://ajneb97.gitbook.io/servervariables/commands-and-permissions#main-commands) * [List Commands](https://ajneb97.gitbook.io/servervariables/commands-and-permissions#list-commands) * [Permissions](https://ajneb97.gitbook.io/servervariables/commands-and-permissions#permissions) --- # Examples | ServerVariables [hashtag](https://ajneb97.gitbook.io/servervariables/examples#conditionalevents-example) ConditionalEvents example ----------------------------------------------------------------------------------------------------------------------- You can detect changes in variables using my plugin [ConditionalEventsarrow-up-right](https://www.spigotmc.org/resources/conditionalevents-custom-actions-for-certain-events-1-8-1-19.82271/) , check for conditions and execute whatever action you want. Just create an event like this: Copy Events: event: type: custom custom_event_data: event: svar.ajneb97.api.StringVariableChangeEvent player_variable: getPlayer() variables_to_capture: - '%variable_type%;getVariable().getVariableType()' - '%variable_name%;getVariable().getName()' - '%new_value%;getNewValue()' conditions: - "%variable_name% == player_gems" - "%new_value% <= 0" actions: default: [] [PreviousAPIchevron-left](https://ajneb97.gitbook.io/servervariables/api) Last updated 5 months ago --- # PlaceholderAPI Variables | ServerVariables These are the PlaceholderAPI variables that ServerVariables offers, you can use them with other plugins. [hashtag](https://ajneb97.gitbook.io/servervariables/placeholderapi-variables#normal-variables-placeholders) Normal Variables Placeholders ----------------------------------------------------------------------------------------------------------------------------------------------- Placeholder Description `%servervariables_globalvalue_%` Gets the value of a global/server variable. `%servervariables_value_%` Gets the value of a player variable. `%servervariables_globaldisplay_%` Gets the display value of a global/server variable. `%servervariables_display_%` Gets the display value of a player variable `%servervariables_value_otherplayer_:%` Gets the value of a player variable specifying the player name. `%servervariables_display_otherplayer_:%` Gets the display value of a player variable specifying the player name. `%servervariables_initial_value_%` Gets the initial value of a variable. [hashtag](https://ajneb97.gitbook.io/servervariables/placeholderapi-variables#list-variables-placeholders) List Variables Placeholders ------------------------------------------------------------------------------------------------------------------------------------------- Placeholder Description `%servervariables_list_globalvalue__%` Gets the value of the specified index on a global/server list variable. `%servervariables_list_value__%` Gets the value of the specified index on a player list variable. `%servervariables_list_globaldisplay__%` Gets the display value of the specified index on a global/server list variable. `%servervariables_list_display__%` Gets the display value of the specified index on a player list variable. `%servervariables_list_globallength_%` Gets the current length of a global/server list variable. `%servervariables_list_length_%` Gets the current length of a player list variable. `%servervariables_list_globalcontains_:%` Checks whether a global/server list variable contains the specified value. Returns 'true' or 'false'. `%servervariables_list_contains_:%` Checks whether a player list variable contains the specified value. Returns 'true' or 'false'. [PreviousConfig.ymlchevron-left](https://ajneb97.gitbook.io/servervariables/config.yml) [NextAPIchevron-right](https://ajneb97.gitbook.io/servervariables/api) Last updated 5 months ago * [Normal Variables Placeholders](https://ajneb97.gitbook.io/servervariables/placeholderapi-variables#normal-variables-placeholders) * [List Variables Placeholders](https://ajneb97.gitbook.io/servervariables/placeholderapi-variables#list-variables-placeholders) --- # Config.yml File | Interactions You can modify different options in the config.yml file of the plugin, here you will find information about all of these options. Copy # Set to false if you don't want OP players to receive notifications # of plugin updates in chat when joining the server. update_notification: true # This option defines the time (in seconds) to automatically save player data. data_auto_save_time: 600 # If players will be able to use the chat or write commands # while in a conversation or not. allow_chat_while_in_conversation: false allow_commands_while_in_conversation: false # If players will be able to use their inventory while in # a conversation. allow_inventory_interact_while_in_conversation: true # When is set to false, mobs will not target and attack players # inside a conversation. allow_mob_damage: false # This option defines how players need to click on an NPC # to start a conversation. # RIGHT_CLICK = Just right clicking the NPC. # SHIFT_RIGHT_CLICK = Right clicking the NPC while sneaking. # ALL_RIGHT_CLICK = Both will work. # SWAP_HAND_CLICK = Pressing the swap hand key (F) by looking at the NPC. This # option only works on 1.9+. conversation_start_click_type: RIGHT_CLICK # This option defines which messages do you want to block for # players in a conversation. # NONE = No messages are blocked # CHAT = Only player chat messages are blocked # ALL = All messages in chat are blocked, including the ones from other # plugins, announcements, join/leave messages, etc... (Requires ProtocolLib) hide_chat_while_in_conversation_type: NONE # Only works when you set hide_chat_while_in_conversation_type to ALL. # If you are having issues to hide and send back messages, enable this option. hide_chat_while_in_conversation_compatibility_mode: false # When this option is enabled and hide_chat_while_in_conversation_type # is set to ALL, all blocked/hidden messages will be sent again to the # player when the conversation ends. send_back_hidden_chat: true # If allow_commands_while_in_conversation option is set to false # these commands will be allowed. commands_whitelist: - "/login" - "/help" # Set it to true if you want players to be able to click on the # options in the chat to continue with the dialogue. clickable_options: true # Defines how to block the movement when a player is on a conversation. # NORMAL = The default mode. When selectable_options is enabled, players may # experience some small annoying movements when selecting an option. # PROTOCOLLIB = Completely blocks the movement. Requires ProtocolLib. Players will # see themselves mounted on an invisible entity but other players will not! # NEW = Completely blocks the movement. Only works on 1.21.4+. Recommended. block_movement_mode: NORMAL # Selectable options properties. selectable_options: # When this option is set to true, players will need to move or # use the mouse scroll wheel to select and option. # You can find a gif example on the main page (Interactions Wiki). # INFO: Selectable options will be only enabled if the conversation # has the block_movement option enabled. enabled: true # Defines the mode of selecting options. # MOVE = Players will need to use 'W' and 'S' keys to choose an option. # SCROLL = Players will need to use the mouse scroll wheel to choose an option. mode: MOVE # Here you can define the action the player need to use to select # a conversation option. # It could be SNEAK or JUMP. action: SNEAK # When this option is set to true, moving forward in the last option # will return to the first option, and moving backwards in the first option # will return to the last option. restart_on_overflow: true # The cooldown between changing options, in milliseconds. scroll_cooldown: 200 # If block_movement_mode is set to PROTOCOLLIB and block movement is enabled, # for a conversation, this option applies a fix on the Y coordinate value when # the player is mounted on the invisible entity. protocollib_mount_height_fix: -1.5 # If block_movement is enabled for a conversation, defines what happens # if the player tries to start a conversation while mounted. # BLOCK = The player will not be able to start the conversation while mounted. # UNMOUNT = The player will be automatically unmounted. player_mount: BLOCK # Set this option to false if you want to disable the empty messages # in conversations. (messages used to separate dialogues and options) use_empty_spaces: true # Enables or disables the Action Bar feature. action_bar: false # When enabled, players will be able to skip dialogues clicking again # on the NPC. skip_dialogue_on_npc_click: false # New system that allow dialogues to be written instead of showing # instantly, which make the conversation more realistic. write_dialogues: # Whether this system should be enabled or not enabled: false # 1 Mode available for now. # CHARACTER = Writes characters 1 by 1. # WORD = Writes words 1 by 1 mode: WORD # The delay between each written character. delay: 2 # Enables or disables the Boss Bar feature. # Only works on 1.9+ boss_bar: # If is set to true, players will see a boss bar while in a conversation # Set it to false if you don't want a boss bar. enabled: true # Color of the boss bar. Use colors from the following link: # https://hub.spigotmc.org/javadocs/spigot/org/bukkit/boss/BarColor.html color: BLUE # Style of the boss bar. Use styles from the following link: # https://hub.spigotmc.org/javadocs/spigot/org/bukkit/boss/BarStyle.html style: SEGMENTED_10 # If this option is set to true, the boss bar status will change # when the dialogue progresses. change_progress_with_time: false # Defines if every message/text in the plugin should use the MiniMessage format. # Only works on Paper 1.19.4+. use_minimessage: false # Here you can specify the default values of the new conversation entities, # conversations, dialogues and options. default_values: [PreviousCommands and Permissionschevron-left](https://ajneb97.gitbook.io/interactions/commands-and-permissions) [NextMessages.yml Filechevron-right](https://ajneb97.gitbook.io/interactions/messages.yml-file) Last updated 3 months ago --- # Conversation Entity | Interactions A conversation entity refers to the **whole** **conversation tree** for a certain NPC or entity. There is one file per conversation entity which can be found on the /Interactions/conversations folder. [PreviousPlaceholderAPI Variableschevron-left](https://ajneb97.gitbook.io/interactions/placeholderapi-variables) [NextConversationchevron-right](https://ajneb97.gitbook.io/interactions/keywords/conversation) Last updated 8 months ago --- # API | ServerVariables [hashtag](https://ajneb97.gitbook.io/servervariables/api#how-to-use) How to Use ------------------------------------------------------------------------------------ To use and implement the ServerVariables API, create a plugin and import ServerVariables.jar as an external jar or use maven and set the following on your pom.xml file: Copy jitpack.io https://jitpack.io com.github.ajneb97 ServerVariables 3.0.1 provided [hashtag](https://ajneb97.gitbook.io/servervariables/api#methods) Methods ------------------------------------------------------------------------------ You can access the API methods with the **ServerVariablesAPI** class. Some examples: Copy StringVariableResult result = ServerVariablesAPI.getVariableValue(String variableName); StringVariableResult result = ServerVariablesAPI.getVariableValue(String playerName,String variableName); if(!result.isError(){ String resultValue = result.getResultValue(); } ServerVariablesPlayer player = ServerVariablesAPI.getPlayerByName(String playerName); ServerVariablesPlayer player = ServerVariablesAPI.getPlayerByUUID(String uuid); [hashtag](https://ajneb97.gitbook.io/servervariables/api#events) Events ---------------------------------------------------------------------------- [PreviousPlaceholderAPI Variableschevron-left](https://ajneb97.gitbook.io/servervariables/placeholderapi-variables) [NextExampleschevron-right](https://ajneb97.gitbook.io/servervariables/examples) Last updated 5 months ago * [How to Use](https://ajneb97.gitbook.io/servervariables/api#how-to-use) * [Methods](https://ajneb97.gitbook.io/servervariables/api#methods) * [Events](https://ajneb97.gitbook.io/servervariables/api#events) Copy // Called when a normal variable changes its value. @EventHandler public void onStringVariableChange(StringVariableChangeEvent event){ Player player = event.getPlayer(); Variable variable = event.getVariable(); String newValue = event.getNewValue(); String oldValue = event.getOldValue(); } // Called when a list variable changes its value. @EventHandler public void onListVariableChange(ListVariableChangeEvent event){ Player player = event.getPlayer(); Variable variable = event.getVariable(); List newValue = event.getNewValue(); List oldValue = event.getOldValue(); int indexModified = event.getIndexModified(); } --- # Option | Interactions An option is a player selection which will redirect to another conversation. Basically is the "interaction" in chat of the player with the NPC. [PreviousDialoguechevron-left](https://ajneb97.gitbook.io/interactions/keywords/dialogue) [NextFAQchevron-right](https://ajneb97.gitbook.io/interactions/faq/faq) Last updated 2 years ago --- # Config.yml | ServerVariables Copy config: # Enables or disables the plugin update message when joining the server. update_notify: true # This option defines the time (in minutes) to automatically save player data. data_save_time: 5 # When enabled, error messages will also be hidden when silent:true # is added to commands. silent_commands_hide_errors: false # Defines if every message/text in the plugin should use the MiniMessage format. # Only works on Paper 1.19.4+. use_minimessage: false # Enabling a mysql database will allow you to share PLAYER variables data # on multiple servers. mysql_database: enabled: false host: localhost port: 3306 username: root password: root database: servervariables # Pool properties: # https://github.com/brettwooldridge/HikariCP#configuration-knobs-baby pool: connectionTimeout: 5000 # Advanced properties: # https://dev.mysql.com/doc/connector-j/en/connector-j-reference-configuration-properties.html advanced: verifyServerCertificate: false useSSL: true allowPublicKeyRetrieval: true [PreviousCommands and Permissionschevron-left](https://ajneb97.gitbook.io/servervariables/commands-and-permissions) [NextPlaceholderAPI Variableschevron-right](https://ajneb97.gitbook.io/servervariables/placeholderapi-variables) Last updated 4 months ago --- # Conversation | Interactions A conversation refers to a group of dialogues which follows an order. A [conversation entity](https://ajneb97.gitbook.io/interactions/keywords/conversation-entity) could have multiple conversations and all of them should end by showing the player some options, redirecting to other conversation, or ending the whole conversation. The main parts of a conversation: Attribute Name Description [**Dialogues**](https://ajneb97.gitbook.io/interactions/keywords/dialogue) These are the dialogues present in this conversation, they follow an order and each of them have unique properties. A conversation MUST have dialogues. [**Options**](https://ajneb97.gitbook.io/interactions/keywords/option) These are the options to show to the player when there are no more dialogues to send. It is not necessary for a conversation to have options. [PreviousConversation Entitychevron-left](https://ajneb97.gitbook.io/interactions/keywords/conversation-entity) [NextDialoguechevron-right](https://ajneb97.gitbook.io/interactions/keywords/dialogue) Last updated 8 months ago --- # Dialogue | Interactions A dialogue is part of a conversation and refers to a message to be sent in the chat to the player. [PreviousConversationchevron-left](https://ajneb97.gitbook.io/interactions/keywords/conversation) [NextOptionchevron-right](https://ajneb97.gitbook.io/interactions/keywords/option) Last updated 1 year ago --- # How to Start | ServerVariables [hashtag](https://ajneb97.gitbook.io/servervariables/how-to-start#requirements) Requirements ------------------------------------------------------------------------------------------------- **1) Spigot** circle-exclamation You need Spigot or Paper for the plugin to work. Don't use Craftbukkit. **2) PlaceholderAPI** circle-info This dependency is optional but extremely recommended. It will allow you to display the value of the created variables wherever you want. [https://www.spigotmc.org/resources/placeholderapi.6245/arrow-up-right](https://www.spigotmc.org/resources/placeholderapi.6245/) [hashtag](https://ajneb97.gitbook.io/servervariables/how-to-start#installation) Installation ------------------------------------------------------------------------------------------------- To install the plugin on your server just place the ServerVariables.jar file inside your plugins folder. Remember to use a Spigot/Paper server. Examples will be generated in the `config.yml` file, you can use them as a reference or delete them. ### [hashtag](https://ajneb97.gitbook.io/servervariables/how-to-start#config.yml) Config.yml This is the main file where you can add new variables. To create a new variable just add a new configuration section in the config in the "variables" path. ### [hashtag](https://ajneb97.gitbook.io/servervariables/how-to-start#variables-folder) Variables folder You can also create more files inside the **variables** folder, where you can add new variables. This is a good practice to keep everything more organized. These variables should also be created under the "variables" path. circle-exclamation Remember to use a different name for each of the variables! [hashtag](https://ajneb97.gitbook.io/servervariables/how-to-start#your-first-variable) Your First Variable --------------------------------------------------------------------------------------------------------------- Let's create our first variable. We want players on our server to have a custom currency called "Scorps", so they can use this money to buy special items. Since each player will have their own amount of "Scorps", the variable should be of PLAYER type. Let's start adding that to the config, with the name of the variable. Now, we know that this currency is a numerical value so we must select whether it will have decimals or not. In my case I don't want decimals, so the value type of the variable should be INTEGER. Finally, a very important detail is to set a default or initial value for the variable. All players will start with this amount of scorps. In these simple steps you have created your first variable. How can I use it now? There are many ways you can. For example, if you have a GUI plugin that support click conditions (like CommandPanels), you can sell a custom item depending on the amount of scorps the player has. You just need to use the following PlaceholderAPI variable to get the player's scorps: `%servervariables_value_scorps%` To modify the scorps of the player you can use one of these three commands: * /svar set scorps * /svar add scorps * /svar reduce scorps [PreviousServerVariables Wikichevron-left](https://ajneb97.gitbook.io/servervariables) [NextVariables Tutorialchevron-right](https://ajneb97.gitbook.io/servervariables/variables-tutorial) Last updated 1 month ago * [Requirements](https://ajneb97.gitbook.io/servervariables/how-to-start#requirements) * [Installation](https://ajneb97.gitbook.io/servervariables/how-to-start#installation) * [Config.yml](https://ajneb97.gitbook.io/servervariables/how-to-start#config.yml) * [Variables folder](https://ajneb97.gitbook.io/servervariables/how-to-start#variables-folder) * [Your First Variable](https://ajneb97.gitbook.io/servervariables/how-to-start#your-first-variable) Copy variables: scorps: variable_type: PLAYER Copy variables: scorps: variable_type: PLAYER value_type: INTEGER Copy variables: scorps: variable_type: PLAYER value_type: INTEGER initial_value: 5 --- # FAQ | Interactions [hashtag](https://ajneb97.gitbook.io/interactions/faq/faq#how-to-start-conversations-from-other-npc-plugins) How to start conversations from other NPC plugins ------------------------------------------------------------------------------------------------------------------------------------------------------------------- Interactions has direct support with Citizens and FancyNpcs NPCs, but even so you can start a conversation from an NPC if you are using another plugin to manage them. You just need to add the `/int start ` command to the NPC. If you want to use the start/end radius feature, you can also start a conversation from a certain location using `/int start `. [hashtag](https://ajneb97.gitbook.io/interactions/faq/faq#users-cant-click-on-options-on-chat-or-use-the-next-button) Users can't click on options on chat or use the 'next' button ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- If this happens its most likely you have a plugin that block all commands. Interactions manages these functionalities by commands, so you must whitelist these ones: * /interactions useoption * /interactions skipdialogue [PreviousOptionchevron-left](https://ajneb97.gitbook.io/interactions/keywords/option) [NextAPI Methods and Eventschevron-right](https://ajneb97.gitbook.io/interactions/api/api-methods) Last updated 8 months ago * [How to start conversations from other NPC plugins](https://ajneb97.gitbook.io/interactions/faq/faq#how-to-start-conversations-from-other-npc-plugins) * [Users can't click on options on chat or use the 'next' button](https://ajneb97.gitbook.io/interactions/faq/faq#users-cant-click-on-options-on-chat-or-use-the-next-button) --- # Variables Tutorial | ServerVariables Each of the variables in the config follows a certain format. Here you can find the explanation of the options you can use. Everytime you modify something in this file you must reload the plugin using `/svar reload` [hashtag](https://ajneb97.gitbook.io/servervariables/variables-tutorial#variable-type) Variable Type --------------------------------------------------------------------------------------------------------- Type of the variable. You can use PLAYER or GLOBAL. * GLOBAL: The variable is set for the whole server. * PLAYER: The variable is set for a player in particular. Copy variable_type: GLOBAL [hashtag](https://ajneb97.gitbook.io/servervariables/variables-tutorial#value-type) Value Type --------------------------------------------------------------------------------------------------- Value format of the variable. You can use TEXT, INTEGER or DOUBLE. * TEXT: The variable accepts all values. * INTEGER: The variable accepts only numbers. * DOUBLE: The variable accepts numbers with decimals. * LIST: The variable will consist of a list of values. circle-exclamation If you want to use the add/reduce commands you must set this option to INTEGER or DOUBLE. Copy value_type: TEXT [hashtag](https://ajneb97.gitbook.io/servervariables/variables-tutorial#initial-value) Initial Value --------------------------------------------------------------------------------------------------------- The initial or default value of the variable. [hashtag](https://ajneb97.gitbook.io/servervariables/variables-tutorial#possible-values) Possible Values ------------------------------------------------------------------------------------------------------------- The possible values of this variable. You'll not be able to set the variable to a different value. Format: `;(optional)` The "display" is optional and it is a visual representation of the variable which can be used as a PlaceholderAPI variable. Always use a single word for the value option, if you need multiple words, use something like this: "this\_is\_the\_first\_value". circle-info This parameter is completely optional. [hashtag](https://ajneb97.gitbook.io/servervariables/variables-tutorial#limitations) Limitations ----------------------------------------------------------------------------------------------------- Conditions that the variable will have. You will not be able to change the variable if the new value doesn't respect these conditions. ### [hashtag](https://ajneb97.gitbook.io/servervariables/variables-tutorial#min-value) Min Value Minimum value of the variable. Only works with [Value Type](https://ajneb97.gitbook.io/servervariables/variables-tutorial#value-type) on INTEGER or DOUBLE. ### [hashtag](https://ajneb97.gitbook.io/servervariables/variables-tutorial#max-value) Max Value Maximum value of the variable. Only works with [Value Type](https://ajneb97.gitbook.io/servervariables/variables-tutorial#value-type) on INTEGER or DOUBLE. ### [hashtag](https://ajneb97.gitbook.io/servervariables/variables-tutorial#manage-out-of-range) Manage Out of Range If this option is set to true, when changing the variable's value, to something that is outside the max/min limits, the out of range error will disappear, and instead, the limit will be used as the new value. ### [hashtag](https://ajneb97.gitbook.io/servervariables/variables-tutorial#max-characters) Max Characters Maximum number of characters of the variable. Only works with [Value Type](https://ajneb97.gitbook.io/servervariables/variables-tutorial#value-type) on TEXT. ### [hashtag](https://ajneb97.gitbook.io/servervariables/variables-tutorial#max-decimals) Max Decimals Maximum number of decimals. Only works with [Value Type](https://ajneb97.gitbook.io/servervariables/variables-tutorial#value-type) on DOUBLE. circle-info In contrast to the previous options, this is not really a limitation, but a transformation, which means the final value of the variable will always have a maximum of X decimals, even if you used many more decimals on the command to modify its value. [PreviousHow to Startchevron-left](https://ajneb97.gitbook.io/servervariables/how-to-start) [NextCommands and Permissionschevron-right](https://ajneb97.gitbook.io/servervariables/commands-and-permissions) Last updated 1 month ago * [Variable Type](https://ajneb97.gitbook.io/servervariables/variables-tutorial#variable-type) * [Value Type](https://ajneb97.gitbook.io/servervariables/variables-tutorial#value-type) * [Initial Value](https://ajneb97.gitbook.io/servervariables/variables-tutorial#initial-value) * [Possible Values](https://ajneb97.gitbook.io/servervariables/variables-tutorial#possible-values) * [Limitations](https://ajneb97.gitbook.io/servervariables/variables-tutorial#limitations) * [Min Value](https://ajneb97.gitbook.io/servervariables/variables-tutorial#min-value) * [Max Value](https://ajneb97.gitbook.io/servervariables/variables-tutorial#max-value) * [Manage Out of Range](https://ajneb97.gitbook.io/servervariables/variables-tutorial#manage-out-of-range) * [Max Characters](https://ajneb97.gitbook.io/servervariables/variables-tutorial#max-characters) * [Max Decimals](https://ajneb97.gitbook.io/servervariables/variables-tutorial#max-decimals) Copy # For TEXT initial_value: "off" # For INTEGER initial_value: 500 # For LIST initial_value: [] # empty list initial_value: - element0 - element1 - element2 Copy possible_values: - "off;&c&lPortal Disabled" - "on;&a&lPortal Enabled" possible_values: - "1" - "2" - "3" Copy limitations: min_value: 0 Copy limitations: max_value: 100 Copy limitations: manage_out_of_range: true Copy # Example 1 # /svar set test_variable 1500 # This command will throw an error, because the max value is 1000. limitations: max_value: 1000 # Example 2 # /svar set test_variable 1500 # manage_out_of_range is set to true, so this command will set the value to 1000 (the max value). limitations: max_value: 1000 manage_out_of_range: true Copy limitations: max_characters: 10 Copy limitations: max_decimals: 3 --- # Options in Dialogue Example | Interactions This configuration provides a full example of how to implement [**Options in Dialogue**](https://ajneb97.gitbook.io/interactions/conversation-properties#options-in-dialogue) . This allow to create more customizables options and insert them directly within the dialogue. ![](https://ajneb97.gitbook.io/interactions/~gitbook/image?url=https%3A%2F%2F1449104054-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MQiBU9Cb692JapWmSwp%252Fuploads%252F6n7lCSGnRRT4pPvhMaEo%252F2024-09-17_14.48.16.png%3Falt%3Dmedia%26token%3D6a390618-beb6-48f0-9a0b-e49021ef7a42&width=768&dpr=3&quality=100&sign=b383761a&sv=2) [hashtag](https://ajneb97.gitbook.io/interactions/full-examples/options-in-dialogue-example#config) Config --------------------------------------------------------------------------------------------------------------- [PreviousInfluence Examplechevron-left](https://ajneb97.gitbook.io/interactions/full-examples/influence-example) Last updated 1 year ago Copy name: '&b&lHegror' starts_with: - NPC with id 10 block_movement: true slow_effect: false save_conversation_progress: false start_conversation_radius: 0 end_conversation_radius: 5 requires_permission: false conversation: conversation1: dialogue: dialogue1: text: - '{centered}&8&m000 &8&m000' - '{centered}#fffa9c&lHegror' - '{centered}#dbdbdbWelcome my friend! Welcome to the island!' - ' ' - ' %next%' - '{centered}&8&m000 &8&m000' time: 6 show_name: false dialogue2: text: - '{centered}&8&m000 &8&m000' - '{centered}#fffa9c&lHegror' - '{centered}#dbdbdbIf I am not wrong, you are &b%player% #dbdbdbright?' - ' ' - ' %option_1%' - ' %option_2%' - '{centered}&8&m000 &8&m000' time: 0 show_name: false options: option1: text: '&7Yes' start_conversation: conversation2 option2: text: '&7No' start_conversation: conversation3 options_in_dialogue: true conversation2: dialogue: dialogue1: text: - '{centered}&8&m000 &8&m000' - '{centered}#fffa9c&lHegror' - '{centered}#dbdbdbPerfect! Nice to meet you.' - ' ' - ' %next%' - '{centered}&8&m000 &8&m000' time: 6 show_name: false start_conversation: conversation4 options_in_dialogue: true conversation3: dialogue: dialogue1: text: - '{centered}&8&m000 &8&m000' - '{centered}#fffa9c&lHegror' - '{centered}#dbdbdbThen I must be confusing you with someone else.' - '{centered}#dbdbdbPardon for my ignorance!' - ' ' - ' %next%' - '{centered}&8&m000 &8&m000' time: 6 show_name: false start_conversation: conversation4 conversation4: dialogue: dialogue1: text: - '{centered}&8&m000 &8&m000' - '{centered}#fffa9c&lHegror' - '{centered}#dbdbdbMy wife is the leader around here, so' - '{centered}#dbdbdbI suggest you to talk to her inmediately.' - ' ' - ' %next%' - '{centered}&8&m000 &8&m000' time: 6 show_name: false dialogue2: text: - '{centered}&8&m000 &8&m000' - '{centered}#fffa9c&lHegror' - '{centered}#dbdbdbShe will inform you about what''s going on.' - ' ' - ' %option_1%' - ' %option_2%' - '{centered}&8&m000 &8&m000' time: 0 show_name: false options: option1: text: '&7Where can I find her?' start_conversation: conversation5 option2: text: '&7Thanks' start_conversation: conversation6 options_in_dialogue: true conversation5: dialogue: dialogue1: text: - '{centered}&8&m000 &8&m000' - '{centered}#fffa9c&lHegror' - '{centered}#dbdbdbJust follow this main path, there is a building' - '{centered}#dbdbdbat the end.' - ' ' - ' %next%' - '{centered}&8&m000 &8&m000' time: 6 show_name: false start_conversation: conversation6 conversation6: dialogue: dialogue1: text: - '{centered}&8&m000 &8&m000' - '{centered}#fffa9c&lHegror' - '{centered}#dbdbdbBye! Have a nice day.' - ' ' - ' %next%' - '{centered}&8&m000 &8&m000' time: 6 show_name: false --- # API Methods and Events | Interactions [hashtag](https://ajneb97.gitbook.io/interactions/api/api-methods#methods) Methods --------------------------------------------------------------------------------------- The main class for the API is `InteractionsAPI`. You can use this class whenever you want in your plugin. Copy // Returns the conversation the player is currently in PlayerConversation c = InteractionsAPI.getPlayerConversation(Player player) Copy // Method to start a conversation from its file name (without .yml) boolean startConversation = InteractionsAPI.startConversation(Player player,String conversationName) Copy // Ends the current conversation the player is currently in InterationsAPI.endConversation(Player player, ConversationEndReason reason) [hashtag](https://ajneb97.gitbook.io/interactions/api/api-methods#events) Events ------------------------------------------------------------------------------------- Copy //Event called when a player is about to start a conversation. You can cancel //cancel the event if you need to. @EventHandler public void conversationStart(ConversationStartEvent event){ Player player = event.getPlayer(); PlayerConversation c = event.getPlayerConversation(); } Copy //Event called when a player has finished a conversation. @EventHandler public void conversationEnd(ConversationEndEvent event){ Player player = event.getPlayer(); PlayerConversation c = event.getPlayerConversation(); } [PreviousFAQchevron-left](https://ajneb97.gitbook.io/interactions/faq/faq) [NextQuests Examplechevron-right](https://ajneb97.gitbook.io/interactions/full-examples/quest-example) Last updated 2 years ago * [Methods](https://ajneb97.gitbook.io/interactions/api/api-methods#methods) * [Events](https://ajneb97.gitbook.io/interactions/api/api-methods#events) Copy //Event called when a player selects an option on a conversation. You can //cancel the event if you need to. @EventHandler public void optionSelect(OptionSelectEvent event){ Player player = event.getPlayer(); PlayerConversation playerConversation = event.getPlayerConversation(); Conversation c = event.getConversation(); Option o = event.getOption(); } --- # Influence Example | Interactions This example will show you how you can implement an Influence system in conversations, for example to include new player options depending on the influence the player has with an NPC. To make things easier, the conversation will start with the NPC called Rex telling the player he can't help them. [hashtag](https://ajneb97.gitbook.io/interactions/full-examples/influence-example#config) Config ----------------------------------------------------------------------------------------------------- Copy name: '&b&lRex' starts_with: - NPC with id 59 block_movement: true slow_effect: false save_conversation_progress: false start_conversation_radius: 0 end_conversation_radius: 5 requires_permission: false cooldown: 0 hologram_dialogues: enabled: false offset_y: 0.0 offset_horizontal: 0.0 conversation: conversation1: dialogue: dialogue1: text: - "&f&lRex &8(1/1)" - "&7I am sorry, but I can't help you with" - "&7what you are asking. It could be very" - "&7dangerous." time: 2 show_name: false options: option1: text: '&8[&bInfluence&8] &7We are friends right?' start_conversation: conversation2 requires: - '%interactions_influence_rex% >= 5' option2: text: '&7Ok, then I will leave.' start_conversation: conversation3 random_dialogue: false conversation2: dialogue: dialogue1: text: - "&f&lRex &8(1/1)" - "&7Yeah you are right." time: 2 show_name: false random_dialogue: false conversation3: dialogue: dialogue1: text: - "&f&lRex &8(1/1)" - "&7Bye!" time: 2 show_name: false random_dialogue: false [hashtag](https://ajneb97.gitbook.io/interactions/full-examples/influence-example#explanation) Explanation --------------------------------------------------------------------------------------------------------------- We have only 3 conversations. When the player speaks with the NPC and the dialogue ends, 2 options will be presented to the player. The first option will ONLY appear if the player has more than 5 influence points with this NPC or conversation entity (the file is called "rex", so that's the conversation entity name). The second option will always appear. [PreviousQuests Examplechevron-left](https://ajneb97.gitbook.io/interactions/full-examples/quest-example) [NextOptions in Dialogue Examplechevron-right](https://ajneb97.gitbook.io/interactions/full-examples/options-in-dialogue-example) Last updated 1 year ago * [Config](https://ajneb97.gitbook.io/interactions/full-examples/influence-example#config) * [Explanation](https://ajneb97.gitbook.io/interactions/full-examples/influence-example#explanation) --- # Quests Example | Interactions This example will show you a conversation that will start and finish a Quests for the player using the plugin [**QUESTS**arrow-up-right](https://www.spigotmc.org/resources/quests.3711/) . The quest will consist on bringing an iron ingot to the NPC. I will use an empty quest called `bob_the_king`. What I mean by an empty quest is that it will have an empty stage, the quest itself will be managed by my plugin Interactions because we want something simple. circle-info Since we will be using some PlaceholderAPI variables remember to download the following expansions: `CheckItem` and `Quests` _/papi ecloud download CheckItem (_[_https://github.com/PlaceholderAPI/PlaceholderAPI/wiki/Placeholders#checkitem_arrow-up-right](https://github.com/PlaceholderAPI/PlaceholderAPI/wiki/Placeholders#checkitem) _) /papi ecloud download Quests (_[_https://github.com/PlaceholderAPI/PlaceholderAPI/wiki/Placeholders#quests_arrow-up-right](https://github.com/PlaceholderAPI/PlaceholderAPI/wiki/Placeholders#quests) _)_ [hashtag](https://ajneb97.gitbook.io/interactions/full-examples/quest-example#config) Config ------------------------------------------------------------------------------------------------- Copy name: '{centered}&c&lBob' starts_with: - NPC named Bob block_movement: true slow_effect: false save_conversation_progress: false start_conversation_radius: 0 end_conversation_radius: 5 requires_permission: false conversation: conversation1: dialogue: dialogue1: text: - '{centered}&c&lBob &f:' - '{centered}&7Hello, can you help me with something?' time: 2 show_name: false conditional_dialogue: conditional_dialogue1: requires: - '%quests_player_has_completed_quest_bob_the_king% == true' start_conversation: conversation6 conditional_dialogue2: requires: - '%quests_player_has_current_quest_bob_the_king% == Yes' start_conversation: conversation4 options: option1: text: '&eSure.' start_conversation: conversation2 option2: text: '&eNot now.' start_conversation: conversation3 random_dialogue: false conversation2: dialogue: dialogue1: text: - '{centered}&c&lBob &f:' - '{centered}&7Could you bring me an iron ingot please?' - ' ' - ' ' time: 2 show_name: false dialogue2: text: - '{centered}&eQUEST STARTED!' - '{centered}&f&nBob the King' - '{centered}' - '{centered}&6Objective:' - '{centered}&7Bring x1 Iron Ingot to Bob on Kryngel city.' time: 2 actions: - 'title: 20;40;20;&6QUEST STARTED!;&fBob the King' - 'console_command: questadmin give %player% bob_the_king' show_name: false save_dialogue_to_player: true random_dialogue: false conversation3: dialogue: dialogue1: text: - '{centered}&c&lBob &f:' - '{centered}&7Ok no problem.' time: 2 show_name: false random_dialogue: false conversation4: dialogue: dialogue1: text: - '{centered}&c&lBob &f:' - '{centered}&7I don''t see an iron ingot with you.' - '{centered}&7Please hurry!' time: 2 show_name: false conditional_dialogue: conditional_dialogue1: requires: - '%checkitem_mat:IRON_INGOT,amt:1% == yes' start_conversation: conversation5 random_dialogue: false conversation5: dialogue: dialogue1: text: - '{centered}&c&lBob &f:' - '{centered}&7You have the iron ingot? Perfect, thanks!' time: 2 actions: - 'remove_item: IRON_INGOT;1' - 'console_command: questadmin finish %player% bob_the_king' show_name: false actions_after_dialogue: true random_dialogue: false conversation6: dialogue: dialogue1: text: - '{centered}&c&lBob &f:' - '{centered}&7Thank you again for the iron ingot. Have' - '{centered}&7a nice day.' time: 2 show_name: false random_dialogue: false [hashtag](https://ajneb97.gitbook.io/interactions/full-examples/quest-example#explanation) Explanation ----------------------------------------------------------------------------------------------------------- We have 6 different conversations, I will explain what each of them does. conversation1 conversation2 conversation3 conversation4 conversation5 conversation6 The first time the player speaks with this NPC, it will ask for help and show 2 options. The first option will send the player to conversation2 and the second option to conversation3. If the player has already completed the quest `bob_the_king` , conversation6 will be started instead. If the player is currently doing the quest, conversation4 will be started. These conditions/requirements are managed by the conditional dialogues. In the case of the plugin Quests each variable will return something else (it's king of weird) `%quests_player_has_completed_quest_%` should return `true` or `false`. `%quests_player_has_current_quest_%` should return `Yes` or `No`. The player wants to help the NPC so conversation2 starts and a console\_command action is defined, which will start the quest executing this command from the console: `questadmin give %player% ` The player doesn't want to help the NPC so nothing happens and the conversation ends. This conversation will start when the player is currently doing the quest and speaks again with this NPC. First, the conditional dialogue will be verified. If the player has at least x1 Iron Ingot in its inventory, conversation5 will start. If the player doesn't have x1 iron ingot a dialogue will be sended telling that the player doesn't have the iron ingot and the conversation ends. This conversation will start when the player speaks with the NPC having an iron ingot. The following command will be executed, finishing the quest: `questadmin finish %player% bob_the_king` It is important also to remove the iron ingot from the player's inventory using the remove\_item action: `remove_item: IRON_INGOT;1` This conversation will start when the player speaks with the NPC having already finished the quest. We don't want the player to access the quest again so we just send a new dialogue that ends the conversation. [hashtag](https://ajneb97.gitbook.io/interactions/full-examples/quest-example#interactions-quests-module) Interactions Quests Module ----------------------------------------------------------------------------------------------------------------------------------------- You can also create quests that require to "start conversation" and "end conversation" objectives to your Quests plugin. For that you will need the following plugin: [https://www.spigotmc.org/resources/interactions-quests-module.92421/arrow-up-right](https://www.spigotmc.org/resources/interactions-quests-module.92421/) [PreviousAPI Methods and Eventschevron-left](https://ajneb97.gitbook.io/interactions/api/api-methods) [NextInfluence Examplechevron-right](https://ajneb97.gitbook.io/interactions/full-examples/influence-example) Last updated 1 year ago * [Config](https://ajneb97.gitbook.io/interactions/full-examples/quest-example#config) * [Explanation](https://ajneb97.gitbook.io/interactions/full-examples/quest-example#explanation) * [Interactions Quests Module](https://ajneb97.gitbook.io/interactions/full-examples/quest-example#interactions-quests-module) --- # Messages.yml File | Interactions Copy prefix: "&8[&bInteractions&8] " optionsFormat: "&6&l%number%. %text%" nameFormat: "%name% &f:" invalidOption: "&cUse a valid option." conversationEnded: "&8[&7Conversation ended&8]" configReloaded: "&aConfigs reloaded." noPermissions: "&cYou don't have permissions." commandEditError: "&cUse: &7/interactions edit " commandCreateError: "&cUse: &7/interactions create " commandDeleteError: "&cUse: &7/interactions delete " commandHelpNoValidPage: "&cThat page doesn't exists." commandResetPlayerError: "&cUse: &7/interactions resetplayer (optional)" commandResetPlayerErrorUser: "&cThat user doesn't have any stored data." commandResetPlayerSuccess: "&aConversation &7%conversation% &areset for &e%player%&a." commandResetPlayerSuccessDialogue: "&aDialogue &7%dialogue% &aon conversation &7%conversation% &areset for &e%player%&a." noConversation: "&cThat conversation entity doesn't exists." noConversationSpecific: "&cThat conversation tree for conversation entity &7%name% &cdoesn't exists." conversationAlreadyExist: "&cThat conversation entity already exists." conversationCreated: "&aConversation &6%conversation% &acreated! You can now use &7/interactions edit %conversation%" conversationDeleted: "&aConversation &6%conversation% &adeleted!" mainInventoryTitle: "&4Creating Conversation" mainInventoryAddConversationName: "&2Add new Conversation" mainInventoryAddConversationLore: - "&7In a Conversation you can add multiple dialogues." - "&7Also, a conversation could have options for the" - "&7the player to select." mainInventoryConfigurationName: "&2Configuration" mainInventoryConfigurationLore: - "&7Here you can modify some options for this" - "&7conversation." mainInventoryConversationItemName: '&6Conversation: &e%name%' mainInventoryConversationItemLore: - '&6Dialogues: &b%dialogues%' - '&6Player Options: &b%options%' - '' - '&a&lLEFT CLICK to edit' - '&c&lRIGHT CLICK to remove' mainInventoryFirstConversationItemLore: - "&7&oThis is the first conversation players will" - "&7&ohave when talking to the NPC." mainInventoryConfigName: "&4Current config: &7%name%" conversationInventoryAddDialogueName: "&2Add new Dialogue" conversationInventoryAddDialogueLore: - "&7Click to add a new dialogue to this" - "&7conversation." conversationInventoryAddOptionName: "&2Add new Player Option" conversationInventoryAddOptionLore: - "&7Players will need to choose an option to" - "&7continue with the conversation." conversationInventoryDialogueItemName: '&6Dialogue: &e%name%' conversationInventoryDialogueItemLore: - '&6Text:' - '%text%' - '' - '&6Time: &b%time%' - '&6Actions: &b%actions%' - '&6Conditional dialogues: &b%conditional_dialogues%' - '' - '&6When finish:' - '%finish%' - '' - '&a&lLEFT CLICK to edit' - '&c&lRIGHT CLICK to remove' conversationInventoryRandomDialogueName: "&2Random Dialogue" conversationInventoryRandomDialogueLore: - "&7If enabled, this conversation will select a" - "&7random dialogue." - "" - "&6Status: &b%status%" conversationInventoryOptionsInDialogueName: "&2Options in Dialogue" conversationInventoryOptionsInDialogueLore: - "&7If enabled, options will not be sent in the common" - "&7format but instead you can add them as variables" - "&7inside the last dialogue of this conversation." - "" - "&6Status: &b%status%" - "" - "&6Requirements to Work:" - "&8-> Last dialogue contains a %option_X% variable &7(%requirement_1%&7)" - "&8-> Last dialogue has a time of 0 &7(%requirement_2%&7)" conversationInventoryManageInterruptActionsName: "&2Manage Interrupt Actions" conversationInventoryManageInterruptActionsLore: - "&7Click to manage interrupt actions for this" - "&7conversation tree. These actions will be" - "&7executed if the conversation is stopped" - "&7abruptly." - "" - "&6Current Actions: &b%actions%" conversationInventoryAddInterruptActionName: "&2Add Interrupt Action" conversationInventoryAddInterruptActionLore: - "&7Click to add a new interrupt action" - "&7for this conversation tree." inventoryConversationAddInterruptActionChat: - "&a&lWrite the new interrupt action for this conversation tree" - "&7List of Actions: &bhttps://ajneb97.gitbook.io/interactions/actions" - "&7(Or write 'back')" conversationInventoryFinishOption: "&fRedirect to options from: &e%conversation%" conversationInventoryFinishOption2: "&fRedirect to other options" conversationInventoryFinishConversation: "&fRedirect to conversation: &e%conversation%" conversationInventoryFinishConversation2: "&fRedirect to other conversation" conversationInventoryFinishContinue: "&fContinue to next dialogue" conversationInventoryFinishThisOptions: "&fShow player options" conversationInventoryFinishNothing: "&fEnd the conversation" conversationInventoryConversationName: "&4Current conversation: &7%name%" conversationInventoryOptionItemName: '&6Option: &e%name%' conversationInventoryOptionItemLore: - '&6Text:' - '%text%' - '' - '&6Requirements: &b%requirements%' - '&6Actions: &b%actions%' - '&6Start Conversation: &b%conversation%' - '' - '&a&lLEFT CLICK to edit' - '&c&lRIGHT CLICK to remove' dialogueInventoryDialogueName: "&4Current dialogue: &7%name%" dialogueInventoryConfigurationName: "&2Configuration" dialogueInventoryConfigurationLore: - "&7Here you can modify some options for this" - "&7dialogue." dialogueInventoryAddLineName: "&2Add Text Line" dialogueInventoryAddLineLore: - "&7Click to add a new line of text for" - "&7this dialogue." dialogueInventorySetEndName: "&2Set Finish" dialogueInventorySetEndLore: - "&7What will happen when this dialogue" - "&7finish." - "" - "&6Current:" - "%finish%" dialogueInventoryManageActionName: "&2Manage Actions" dialogueInventoryManageActionLore: - "&7Click to manage actions for this" - "&7dialogue." - "" - "&6Current Actions: &b%actions%" dialogueInventoryManageLastActionName: "&2Manage Last Actions" dialogueInventoryManageLastActionLore: - "&7Click to manage last actions for this" - "&7dialogue." - "" - "&6Current Last Actions: &b%actions%" dialogueInventoryAddConditionalDialogueName: "&2Manage Conditional Dialogues" dialogueInventoryAddConditionalDialogueLore: - "&7A conditional dialogue is a replacement for" - "&7this dialogue. It will be sent to the player" - "&cONLY &7if some conditions are met." - "" - "&6Current Conditional Dialogues: &b%conditional_dialogues%" dialogueInventoryLineItemName: '&6Line &e%number%' dialogueInventoryLineItemLore: - '&6Text:' - '%text%' - '' - '&a&lLEFT CLICK to edit' - '&c&lRIGHT CLICK to remove' dialogueInventoryTimeName: "&2Set Time" dialogueInventoryTimeLore: - "&7The time the player has to read this dialogue" - "&7before the next dialogue shows in chat." - "" - "&6Current Time: &b%time%" - "" - "&a&lLEFT CLICK to increase" - "&c&lRIGHT CLICK to decrease" dialogueInventoryTimeWarningLore: - "&7The time the player has to read this dialogue" - "&7before the next dialogue shows in chat." - "" - "&6Current Time: &b%time%" - "&cWARNING!" - "&7If you set the time to -1 it means the next" - "&7dialogue WILL NOT CONTINUE unless you set" - "&7a NEXT button which the player needs to click." - "&7To add this button just place the &e%next%" - "&7variable at the end of the dialogue." - "" - "&a&lLEFT CLICK to increase" - "&c&lRIGHT CLICK to decrease" dialogueInventoryTimeWarningLore2: - "&7The time the player has to read this dialogue" - "&7before the next dialogue shows in chat." - "" - "&6Current Time: &b%time%" - "&cWARNING!" - "&7If you set the time to 0 it means the next" - "&7dialogue WILL SHOW INSTANTLY after this one." - "&7Useful when you want to show options instantly" - "&7after a dialogue." - "" - "&a&lLEFT CLICK to increase" - "&c&lRIGHT CLICK to decrease" dialogueInventoryEntityNameName: "&2Show Entity Name" dialogueInventoryEntityNameLore: - "&7If enabled, the entity name will show" - "&7before the dialogue." - "" - "&6Status: &b%status%" dialogueInventorySaveName: "&2Save Dialogue" dialogueInventorySaveLore: - "&7If enabled, the dialogue will be saved for" - "&7the player. This have multiple uses when you" - "&7want to use conditions in other conversations" - "&7to determine whether the player has reach to this" - "&7dialogue or not." - "" - "&6Status: &b%status%" dialogueInventoryActionsAfterName: "&2Actions after Dialogue" dialogueInventoryActionsAfterLore: - "&7If enabled, the defined actions will be" - "&7executed when the dialogue is completed." - "" - "&6Status: &b%status%" dialogueInventoryFinish1Lore: - "&7If this option is enabled, when finishing" - "&7this dialogue, the next dialogue from THIS" - "&7conversation will start." - "" - "&6Status: &b%status%" dialogueInventoryFinish2Lore: - "&7If this option is enabled, when finishing" - "&7this dialogue, the player options from THIS" - "&7conversation will be sent to the player." - "" - "&6Status: &b%status%" dialogueInventoryFinish3Lore: - "&7If this option is enabled, when finishing" - "&7this dialogue, the player options from ANOTHER" - "&7conversation will be sent to the player." - "" - "&6Status: &b%status%" - "&6Conversation: &b%conversation%" dialogueInventoryFinish4Lore: - "&7If this option is enabled, when finishing" - "&7this dialogue, the first dialogue from ANOTHER" - "&7conversation will start." - "" - "&6Status: &b%status%" - "&6Conversation: &b%conversation%" dialogueInventoryFinish5Lore: - "&7If this option is enabled, when finishing" - "&7this dialogue, the conversation will end." - "" - "&6Status: &b%status%" inventoriesConversationNone: "&7None" inventoriesBackItemName: "&7Back" inventoriesStatusEnabled: "&aENABLED" inventoriesStatusDisabled: "&cDISABLED" inventoryAddLineChat: - "&a&lWrite the new line for this dialogue" - "&7(Or write 'back')" inventoryAddLineChatSuccess: "&aLine added!" inventoryEditLineChatSuccess: "&aLine modified!" inventoryDialogueFinishContinueError: "&cThere are no more dialogues to continue with!" inventoryDialogueFinishOptionsError: "&cThere are no options defined for this conversation!" inventoryDialogueFinishEndError: "&cThere are options defined for this conversation. Delete them first!" inventoryDialogueFinishEndError2: "&cThis must be the final dialogue!" inventoryFinishOptionsChat: - "&a&lWrite the conversation name of the player" - "&a&loptions to redirect to" - "&6Possible Options: &e%options%" - "&7(Or write 'back')" inventoryFinishConversationChat: - "&a&lWrite the conversation name to" - "&a&lredirect to" - "&6Possible Conversations: &e%conversations%" - "&7(Or write 'back')" inventoryFinishOptionsChatError: "&cYou must write a valid conversation with options!" inventoryFinishConversationChatError: "&cYou must write a valid conversation!" dialogueInventoryAddActionName: "&2Add Action" dialogueInventoryAddActionLore: - "&7Click to add a new action for" - "&7this dialogue." dialogueInventoryActionItemName: '&6Action &e%number%' dialogueInventoryActionItemLore: - '&6Action:' - '&7%action%' - '' - '&a&lLEFT CLICK to edit' - '&c&lRIGHT CLICK to remove' inventoryAddActionChat: - "&a&lWrite the new action for this dialogue" - "&7List of Actions: &bhttps://ajneb97.gitbook.io/interactions/actions" - "&7(Or write 'back')" inventoryAddActionChatSuccess: "&aAction added!" inventoryEditActionChatSuccess: "&aAction modified!" optionInventoryOptionName: "&4Current option: &7%name%" optionInventoryStartConversationName: "&2Start Conversation" optionInventoryStartConversationLore: - "&7What conversation should start when the" - "&7player selects this option." - "" - "&6Current:" - "&f%conversation%" optionInventoryTextItemName: '&6Option Text' optionInventoryTextItemLore: - '&6Option:' - '&7%text%' - '' - '&a&lLEFT CLICK to edit' optionInventoryManageRequirementsName: "&2Manage Requirements" optionInventoryManageRequirementsLore: - "&7Click to manage requirements for this" - "&7option to appear." - "" - "&6Current Requirements: &b%requirements%" optionInventoryManageActionName: "&2Manage Actions" optionInventoryManageActionLore: - "&7Click to manage actions for this" - "&7option." - "" - "&6Current Actions: &b%actions%" optionInventoryAddActionName: "&2Add Action" optionInventoryAddActionLore: - "&7Click to add a new action for" - "&7this option." inventoryOptionAddActionChat: - "&a&lWrite the new action for this option" - "&7List of Actions: &bhttps://ajneb97.gitbook.io/interactions/actions" - "&7(Or write 'back')" inventoryAddOptionTextChat: - "&a&lWrite the text for this option" - "&7(Or write 'back')" inventoryAddOptionTextChatSuccess: "&aOption text modified!" inventorySetConversationChat: - "&a&lWrite the conversation to start when" - "&a<he player selects this option" - "&6Possible Conversations: &e%conversations%" - "&7(Or write 'back')" optionInventoryAddRequirementName: "&2Add Requirement" optionInventoryAddRequirementLore: - "&7Click to add a new requirement for" - "&7this option." optionInventoryRequirementItemName: '&6Requirement &e%number%' optionInventoryRequirementItemLore: - '&6Requirement:' - '&7%requirement%' - '' - '&a&lLEFT CLICK to edit' - '&c&lRIGHT CLICK to remove' optionAddRequirementChat: - "&a&lWrite the new requirement for this option" - "&a<o appear." - "&7List of Requirements: &bhttps://ajneb97.gitbook.io/interactions/requirements" - "&7(Or write 'back')" optionAddRequirementChatSuccess: "&aRequirement added!" optionEditRequirementChatSuccess: "&aRequirement modified!" confirmationInventoryYesItemName: "&a&lYES" confirmationInventoryNoItemName: "&c&lNO" confirmationInventoryDialogueMainItemName: "&6&lREMOVING DIALOGUE" confirmationInventoryDialogueMainItemLore: - "&cAre you sure you want to remove" - "&cthis dialogue?" - "" - "&6Dialogue: &7%dialogue%" dialogueRemoved: "&aDialogue &7%dialogue% &aremoved!" confirmationInventoryOptionMainItemName: "&6&lREMOVING OPTION" confirmationInventoryOptionMainItemLore: - "&cAre you sure you want to remove" - "&cthis option?" - "" - "&6Option: &7%option%" optionRemoved: "&aOption &7%option% &aremoved!" confirmationInventoryConversationMainItemName: "&6&lREMOVING CONVERSATION" confirmationInventoryConversationMainItemLore: - "&cAre you sure you want to remove" - "&cthis conversation?" - "" - "&6Conversation: &7%conversation%" conversationRemoved: "&aConversation &7%conversation% &aremoved!" mainInventoryConfigAddStartName: "&2Add Start" mainInventoryConfigAddStartLore: - "&7Click to add HOW the conversation should start." mainInventoryConfigStartItemName: '&6Start &e%number%' mainInventoryConfigStartItemLore: - '&6Start:' - '&7%start%' - '' - '&a&lLEFT CLICK to edit' - '&c&lRIGHT CLICK to remove' addStartChatSuccess: "&aStarting way added!" editStartChatSuccess: "&aStarting way modified!" inventoryAddStartChat: - "&a&lWrite the new way of starting the conversation" - "&7Examples:" - "&bZOMBIE named Zombie Guard" - "&bNPC with id 17" - "" - "&7(Or write 'back')" mainInventoryConfigSetNameName: "&2Set Name" mainInventoryConfigSetNameLore: - "&7Set the name of the NPC (or entity)" - "&7which is talking in the conversation." - "" - "&6Current Name: %name%" inventoryConfigSetNameChat: - "&a&lWrite the new name of the NPC (or entity)" - "&7(Or write 'back')" setConfigNameChatSuccess: "&aName set correctly." mainInventoryBlockMovementName: "&2Block Movement" mainInventoryBlockMovementLore: - "&7If enabled, the player will be not able" - "&7to move while in this conversation." - "" - "&6Status: &b%status%" mainInventoryStartRadiusName: "&2Start Radius" mainInventoryStartRadiusLore: - "&7The radius of blocks the player must be" - "&7near the NPC to automatically start" - "&7the conversation. If you don't want this" - "&7option, set the radius to 0." - "" - "&6Current Radius: &b%radius%" - "" - "&a&lLEFT CLICK to increase" - "&c&lRIGHT CLICK to decrease" mainInventoryEndRadiusName: "&2End Radius" mainInventoryEndRadiusLore: - "&7The radius of blocks the player must be" - "&7away from the NPC to automatically end" - "&7the conversation. If you don't want this" - "&7option, set the radius to 0." - "" - "&6Current Radius: &b%radius%" - "" - "&a&lLEFT CLICK to increase" - "&c&lRIGHT CLICK to decrease" mainInventoryAdvancedConfigName: "&2Advanced Configuration" mainInventoryAdvancedConfigLore: - "&7Here you can modify some advanced" - "&7options for this conversation." mainInventorySlowEffectName: "&2Slow Effect" mainInventorySlowEffectLore: - "&7When enabled, this will create a" - "&7zoom effect when talking to the NPC." - "" - "&6Status: &b%status%" mainInventorySaveConversationProgressName: "&2Save Conversation Progress" mainInventorySaveConversationProgressLore: - "&7When enabled, if the player leaves the" - "&7server or the server is closed while talking" - "&7to an NPC, the progress of the conversation" - "&7will be saved for the next time they join." - "" - "&6Status: &b%status%" mainInventoryRequiresPermissionName: "&2Requires Permission" mainInventoryRequiresPermissionLore: - "&7When enabled, players will need the" - "&cinteractions.start. &7permission" - "&7to speak with the NPC." - "" - "&6Status: &b%status%" mainInventoryCanBeStartedOnAirName: "&2Can Be Started on Air" mainInventoryCanBeStartedOnAirLore: - "&7When enabled, players will be able to" - "&7start the conversation even if they are" - "&7not on the ground." - "" - "&6Status: &b%status%" mainInventoryCooldownName: "&2Cooldown" mainInventoryCooldownLore: - "&7Defines the amount of seconds the player must" - "&7wait before talking to the NPC again." - "" - "&6Current Cooldown: &b%cooldown%s" mainInventorySetCooldownChat: - "&a&lWrite the new cooldown in seconds" - "&7(Or write 'back')" mainInventorySetCooldownChatSuccess: "&aCooldown set!" invalidNumber: "&cYou must write a valid number." dialogueInventoryAddConditionalDialogueItemName: "&2Add Conditional Dialogue" dialogueInventoryAddConditionalDialogueItemLore: - "&7Click to add a new conditional dialogue" - "&7for this dialogue." dialogueInventoryConditionalDialogueItemName: '&6Conditional Dialogue: &e%name%' dialogueInventoryConditionalDialogueItemLore: - '&6Requires: &b%requires%' - '&6Start Conversation: &b%conversation%' - '' - '&a&lLEFT CLICK to edit' - '&c&lRIGHT CLICK to remove' confirmationInventoryConditionalDialogueMainItemName: "&6&lREMOVING CONDITIONAL DIALOGUE" confirmationInventoryConditionalDialogueMainItemLore: - "&cAre you sure you want to remove" - "&cthis conditional dialogue?" - "" - "&6Conditional Dialogue: &7%dialogue%" conditionaldDialogueRemoved: "&aConditional Dialogue &7%dialogue% &aremoved!" conditionalDialogueInventoryDialogueName: "&4Current conditional dialogue: &7%name%" conditionalDialogueInventoryAddRequirementName: "&2Add Requirement" conditionalDialogueInventoryAddRequirementLore: - "&7Click to add a new requirement for" - "&7this conditional dialogue to appear." conditionalDialogueInventoryRequirementItemName: '&6Requirement &e%number%' conditionalDialogueInventoryRequirementItemLore: - '&6Requirement:' - '&7%requirement%' - '' - '&a&lLEFT CLICK to edit' - '&c&lRIGHT CLICK to remove' conditionalDialogueAddRequirementChat: - "&a&lWrite the new requirement for this conditional" - "&a&ldialogue to appear." - "&7List of Requirements: &bhttps://ajneb97.gitbook.io/interactions/requirements" - "&7(Or write 'back')" conditionalDialogueAddRequirementChatSuccess: "&aRequirement added!" conditionalDialogueEditRequirementChatSuccess: "&aRequirement modified!" conditionalDialogueInventoryStartConversationName: "&2Start Conversation" conditionalDialogueInventoryStartConversationLore: - "&7What conversation should start when the" - "&7requirements of this conditional dialogue" - "&7are met." - "" - "&6Current:" - "&f%conversation%" conditionalDialogueInventorySetConversationChat: - "&a&lWrite the conversation to start when" - "&a<he requirements for this conditional" - "&a&ldialogue are met." - "&6Possible Conversations: &e%conversations%" - "&7(Or write 'back')" interactEntityConversationError: "&cThis conversation can't be started since it has errors, contact an administrator." playerChatError: "&cYou can't chat while in a conversation." playerCommandError: "&cYou can't use commands while in a conversation." bossBarTitleConversation: "&eCurrently in a conversation with: %name%" actionBarTitleConversation: "&eCurrently in a conversation with: %name%" bossBarTitleSelectOption: "&eCurrently in a conversation with: %name% &8- &bSelect an Option!" actionBarTitleSelectOption: "&eCurrently in a conversation with: %name% &8- &bSelect an Option!" clickableOptionHover: "&aClick to select this option! &8(&b%option%&8)" notInConversation: "&cYou are not in a conversation." conversationsListError: "&cThere are no conversations created." conversationsListTitle: "&6&m &a CONVERSATIONS LIST &6&m " conversationsListItem: "&e%number%. &c%conversation%" conversationsListItemHover: - "&aClick to edit." nextDialogueText: "&8[&aNext➜&8]" nextDialogueHover: "&eClick to continue with the conversation." conversationPermissionsError: "&cYou don't have permissions to start this conversation!" commandStartError: "&cUse: &7/interactions start &cor &7/interactions start " commandStartLocationException: "&cThe location is not valid." playerNotOnline: "&cThat player is not online." commandStartConversationStarted: "&aConversation &7%conversation% &astarted correctly for &7%player%&a." commandStartConversationStartedForAll: "&aConversation &7%conversation% &astarted correctly for all players." playerInventoryInteractError: "&cYou can't interact with your inventory while in a conversation." selectableOptionsFormatNormal: " &6&l%number%. %text%" selectableOptionsFormatSelected: " &7» &6&l%number%. &f&n%text%&8 (&7SNEAK to use&8)" conversationCooldownError: "&cYou must wait &7%time% &cbefore talking with this NPC again." errorStartConversationCurrentlyEditing: "&cYou are currently editing a conversation." optionsMainFormat: - "%options%" commandStopError: "&cUse: &7/interactions stop " playerNotInConversation: "&cThat player is not in a conversation." commandStopCorrect: "&aCurrent conversation stopped for &7%player%&a." commandStopCorrectForAll: "&aCurrent conversations stopped for all players." commandInfluenceError: "&cUse: &7/interactions influence set/add/remove " influenceAddCorrect: "&aAdded &e%influence% &ainfluence to conversation entity &e%conversation% &afor player &e%player%&a." influenceRemoveCorrect: "&aRemoved &e%influence% &ainfluence from conversation entity &e%conversation% &afor player &e%player%&a." influenceSetCorrect: "&aInfluence set to &e%influence% &aon conversation entity &e%conversation% &afor player &e%player%&a." errorStartConversationInTheAir: "&cYou can't start a conversation while in the air!" errorStartConversationAlreadyMounted: "&cYou can't start a conversation while being mounted!" [PreviousConfig.yml Filechevron-left](https://ajneb97.gitbook.io/interactions/config.yml-file) [NextPlaceholderAPI Variableschevron-right](https://ajneb97.gitbook.io/interactions/placeholderapi-variables) Last updated 7 months ago ---