A keyword-matching chat bot for Minecraft servers that automatically replies to player questions with configurable responses. Supports multiple languages, per-category cooldowns, and intent detection to avoid false triggers.
Built by Astroworld | Need hosting? Try Astroworld Hosting
- Fully config-driven: add, remove, or edit categories without touching code
- Multi-language support with automatic language detection
- Intent detection: only responds to questions and help requests, not casual mentions
- Per-category cooldowns to prevent spam
- Unicode normalization for accent-insensitive matching
- Multi-word keyword phrase matching
- Hot-reload with
/chatbot reload - OPs are ignored (staff chat won't trigger the bot)
- Paper 1.20+
- Java 17+
- Drop
AstroChatBot-1.0.0.jarinto yourplugins/folder. - Restart the server. A default
config.ymlwill be generated with example categories. - Edit
plugins/AstroChatBot/config.ymlto customize responses for your server. - Run
/chatbot reloador restart the server.
| Command | Description | Permission |
|---|---|---|
/chatbot reload |
Reload the configuration file | astrochatbot.admin |
| Permission | Description | Default |
|---|---|---|
astrochatbot.admin |
Allows reloading the plugin config | op |
prefix: "&8[&b&lChat&f&lBot&8] &7"
cooldown-seconds: 8The bot uses two mechanisms to detect whether a message is a question:
- Question starters -- words at the start of a message (e.g. "how", "what", "where")
- Helper patterns -- phrases anywhere in the message (e.g. "i need", "help me")
A message containing ? is always treated as a question.
categories:
MY_CATEGORY:
intent-required: true
keywords:
- "my keyword"
- "another phrase"
answers:
en: "English response here"
nl: "Dutch response here"
es: "Spanish response here"intent-required: truemeans the message must look like a questionintent-required: falsemeans any message containing the keywords will trigger- Keywords support multi-word phrases (matched as token sequences)
- The
enanswer is the fallback when a language has no specific answer
Add language markers to help the bot detect which language the player is writing in:
languages:
nl:
markers:
- "hoe"
- "wat"
- "waar"The bot counts marker matches and picks the language with the highest score. English is the default.
- A player sends a chat message (OPs are ignored).
- The message is normalized: lowercased, accents stripped, split into tokens.
- Messages shorter than 4 tokens are ignored to avoid false positives.
- Intent detection checks if the message looks like a question.
- Categories are checked in order; the first matching category wins.
- The bot detects the language and picks the matching answer.
- If the category is not on cooldown, the response is broadcast to all players.
MIT License - see LICENSE for details.