Config YAML File
The config.yml file is the main configuration file for ServerAssistantAI, containing various settings that control the AI's behavior, appearance, and performance.
Minecraft Configuration:
minecraft.messages_channel
: The Discord channel ID where player interactions with the AI will be logged.minecraft.webhook_url
: The Discord webhook URL for sending interaction messages instead of using the Discord bot. Leave empty to disable this feature.minecraft.reply_format
: The format of the AI's responses in Minecraft chat (supports MiniMessage formatting).minecraft.send_replies_only_to_sender
: Whether the AI's responses should be visible only to the player who asked the question.minecraft.bot_name
: The name of the AI bot, used to trigger responses even if the message is not a question.minecraft.limits
: Daily question limits for Minecraft players. You can define multiple user groups with different limits. Players can be assigned to a group using the permissionserverassistantai.group.<group>
.minecraft.global_limit
: Daily question limit for all Minecraft players combined.minecraft.max_history
: The maximum number of messages history sent to the AI model. Does not include the message AI model is responding to.minecraft.chat_max_history
: The maximum number of messages history sent to the AI model when using the "/saai chat" command for continuous conversation. Does not include the message AI model is responding to.minecraft.max_history_characters
: The maximum number of characters in the history sent to the AI model. Does not include the message AI model is responding to.minecraft.ignore_question
: The instruction for the AI to ignore questions not related to the server.minecraft.ignore_keyword
: The keyword that, if present in the AI's response, will cause the response to be ignored.minecraft.minimum_words
: The minimum number of words required for a Minecraft chat message to be considered a question.minecraft.maximum_characters
: Maximum characters allowed for a question.minecraft.response_sound
: The sound to play when a player receives a response from the AI. Leave empty to disable. Sound names can be found here.minecraft.question_received_sound
: Sound to play when the AI starts processing a question. Leave empty to disable. Sound names can be found here.minecraft.default_toggle_value
: The default value of the/saai toggle
command, which allows players to enable or disable automatic AI responses to their public chat messages. This setting applies to players who haven't yet used the toggle command.minecraft.json_mode
: Whether the AI should respond in JSON format. Set to true for structured responses, which can be useful for reducing unnecessary additional text.minecraft.replying_status.type
: Specifies the type of animation to display when the AI is processing a question. Available options include TITLE, SUBTITLE, and BOSSBAR.minecraft.replying_status.bossbar_color
: Sets the color of the bossbar animation. This setting only applies whentype
is set to BOSSBAR. Choose from BLUE, GREEN, PINK, PURPLE, RED, WHITE, or YELLOW.minecraft.replying_status.bossbar_duration
: The time it takes for bossbar to show full progress. Doesn't affect actual response time. Only effective whentype
is set to BOSSBAR.minecraft.chat_listener.use_paper_event
: Whether to use the Paper modernAsyncChatEvent
if available. Has no effect on Spigot servers.minecraft.chat_listener.priority
: The priority level for the chat event listener. Options:LOWEST
,LOW
,NORMAL
,HIGH
,HIGHEST
,MONITOR
(default).minecraft.chat_listener.ignore_cancelled
: Whether to ignore the chat event if it is canceled by another plugin.minecraft.question_detection.provider
: The provider of the question detection system. Can be 'simple' for keyword/regex-based checks, 'advanced' for improved detection using a custom-trained model (requires the Advanced Question Detection addon), or 'none' to disable question detection. Custom question detection providers can be made using addons.minecraft.question_detection.regex
: This field is not shown by default and can be added manually when using the 'simple' or 'advanced' provider. You can include a regex pattern to match messages that are questions based on the specified pattern.minecraft.question_detection.interpersonal_regex
: A regex pattern to detect messages directed at other players, which will be ignored by the AI. This field will be ignored if the 'advanced' provider is selected.
Discord Configuration:
discord.enabled
: Enable or disable Discord functionality.discord.channel_id
: The Discord channel ID where the AI will listen for questions. This channel should be dedicated solely to asking questions to the AI and not used as a regular chat channel.discord.messages_channel
: Discord channel ID where user interactions with the AI will be logged.discord.webhook_url
: Webhook URL for sending interaction messages instead of using the discord bot. Leave empty to disable.discord.reply_format
: The format of the AI's responses on Discord. Supports embeds. Use our embed creator for custom embed formats.discord.admin_roles
: A list of Discord role IDs that can check the usage of other users and reset daily limits.discord.bypass_roles
: A list of Discord role IDs that can bypass question limits.discord.skip_keyword_roles
: A list of Discord role IDs that can use the skip keyword.discord.skip_keyword
: The keyword that will prevent the AI from responding to a message.discord.blocked_roles
: A list of Discord role IDs that are blocked from using the AI.discord.minimum_words
: The minimum number of words required for the AI to respond to a message.discord.maximum_characters
: Maximum characters allowed for a question.discord.max_history
: The maximum number of previous messages to include in the AI's context.discord.max_history_characters
: The maximum number of characters in the AI's message history context.discord.json_mode
: Whether the AI should respond in JSON format. Set to true for structured responses, which can be useful for reducing unnecessary additional text.discord.respond_to_pings
: Whether the AI should respond to users who mention it in a message.discord.limits
: Daily question limits for Discord users. You can define multiple user groups with different limits using role IDs or role names.discord.global_limit
: Daily question limit for all Discord users combined.discord.bot_token
: (Optional) A separate Discord bot token for the AI. If empty and DiscordSRV is installed, the plugin will work alongside DiscordSRV.discord.bot_status
: The activity status of the bot on Discord. For example, "Playing Minecraft". Leave empty for none.discord.question_detection.provider
: The provider of the question detection system. Can be 'simple' for keyword/regex-based checks, 'advanced' for improved detection using a custom-trained model (requires the Advanced Question Detection addon), or 'none' to disable question detection. Custom question detection providers can be made using addons.discord.question_detection.regex
: This field is not shown by default and can be added manually when using the 'simple' or 'advanced' provider. You can include a regex pattern to match messages that are questions based on the specified pattern.discord.question_detection.interpersonal_regex
: This field is not shown by default and can be added manually. A regex pattern to detect messages directed at other players, which will be ignored by the AI. This field will be ignored if the 'advanced' provider is selected.discord.ignore_question
: The instruction for the AI to ignore questions not related to the server.discord.ignore_keyword
: The keyword that, if present in the AI's response, will cause the response to be ignored.discord.question_detection_channels
: A list of Discord channel, forum, or category IDs where AI bot will detect and respond to questions. Threads within the specified channels, forums, or categories will also be included.discord.default_toggle_value
: Default value for "/ai toggle", which enables/disables AI responses in question detection channels. This applies to users who haven't yet used the toggle command.
Prompt Configuration:
prompt.discord.max_results
: The maximum number of relevant embedding chunks to include in the{information}
context of Discord questions.prompt.discord.min_score
: The minimum relevance score for an embedding chunk to be considered related to Discord questions. Recommended to not go above 0.65.prompt.minecraft.max_results
: The maximum number of relevant embedding chunks to include in the{information}
context of Minecraft questions.prompt.minecraft.min_score
: The minimum relevance score for an embedding chunk to be considered related to Minecraft questions. Recommended to not go above 0.65.
Embedding Provider Configuration:
embedding_model.provider
: The provider of the embedding model to use for both Minecraft and Discord responses ('openai'
,'cohere'
, etc). These can be built-in or registered by an addon.embedding_model.model
: The name of the embedding model to use for Discord and Minecraft responses (e.g.,'text-embedding-3-large'
,'embed-multilingual-v3.0'
, etc).embedding_model.timeout
: The timeout duration for the embedding API requests. This field is optional and may not be available for all providers. If not specified, the default timeout value set by the provider will be used.
The available models depend on the selected provider. It's important to note that although most providers have a model
field, it's not a standard field across all providers. Each provider may have its own unique set of options, please verify the provider's available options for the correct configuration. To learn more about providers and how they work, please refer to the What are providers? section.
ServerAssistantAI only sends information to the embedding API when changes are made to the files in the documents/
directory. If no changes are detected, the plugin will use the previously cached embeddings to reduce API calls.
Chat Provider Configuration:
chat_model.discord.provider
: The provider of the chat model to use for Discord responses ('openai'
,'cohere'
, etc).chat_model.discord.model
: The name of the chat model to use for Discord responses (e.g.,'gpt-4o-mini'
,'command-r-plus'
, etc).chat_model.discord.base_url
: This field is not shown by default and can be added manually when using a custom baseURL-supported provider. Set this to the provider's endpoint URL (e.g.,'https://api.groq.com/openai/v1'
).chat_model.minecraft.provider
: The provider of the chat model to use for Minecraft responses ('openai'
or'cohere'
, etc).chat_model.minecraft.model
: The name of the chat model to use for Minecraft responses (e.g.,'gpt-4o-mini'
,'command-r-plus'
, etc).chat_model.minecraft.base_url
: This field is not shown by default and can be added manually when using a custom baseURL-supported provider likeopenai-variant
. Set this to the provider's endpoint URL (e.g.,'https://api.groq.com/openai/v1'
). For example:
embedding_model.timeout
: The timeout duration for the chat (LLM) API requests. This field is optional and may not be available for all providers. If not specified, the default timeout value set by the provider will be used.
The available models depend on the selected provider. It's important to note that although most providers have a model
field, it's not a standard field across all providers. Each provider may have its own unique set of options, please verify the provider's available options for the correct configuration. To learn more about providers and how they work, please refer to the What are providers? section.
Response Filtering:
response_filtering.exclude
: A list of elements that should be removed from the AI's responses (case-insensitive). This is in addition to the built-in list of elements that are always removed. You can also exclude elements from the conversation history by prefixing the entry withhistory:
.response_filtering.stop
: A list of words that will cause the AI to stop a response immediately after encountering them.
Splitter Configuration:
splitter.max_segment
: The maximum number of characters per chunk when splitting the server information documents. Increase this value if your documents are large.splitter.max_overlap
: The maximum number of overlapping characters between chunks (0 for no overlap).
Helpful Information:
helpful_information.minecraft.enabled
: Whether to show helpful messages within the bot's in-game responses. Requiresserverassistantai.helpful-information
permission to view in-game helpful messages within a response.helpful_information.minecraft.detailed
: Whether to include the full prompt in the helpful information for Minecraft.helpful_information.discord.enabled
: Whether to show helpful messages within the bot's Discord responses.helpful_information.discord.detailed
: Whether to include the full prompt in the helpful information for Discord.
Remember to reload ServerAssistantAI after making changes to the config.yml
file for the changes to take effect.