Chat Bots
Sobre
Minecraft Console Client has a number of default built in Chat Bots (Scripts/Plugins) which allow for various types of automation.
Warning
Recently we have changed the configuration format from INI to TOML, this part of the documentation has only been partially updated, it's work in progress, for the time being please refer to the MinecraftClient.ini
for setting names, the descriptions and options should be up to date in most cases, but not guaranteed.
Tip
Settings refer to settings in the configuration file
List of built-in Chat Bots
- Alerts
- Anti AFK
- Auto Attack
- Auto Craft
- Auto Dig
- Auto Drop
- Auto Eat
- Auto Fishing
- Auto Relog
- Auto Respond
- Chat Log
- Discord Bridge
- Farmer
- Seguir este jogador
- Hangman
- Mailer
- Map
- PlayerList Logger
- Remote Control
- Replay Mod
- Script Scheduler
- Telegram Bridge
- Items Collector
- WebSocket
Alerts
Description:
Get alerted when specified words are detected in the chat
Useful for moderating your server or detecting when someone is talking to you.
Settings:
Section:
ChatBot.Alerts
Enabled
Description:
This setting specifies if the Alerts Chat Bot is enabled.
Available values:
true
andfalse
.Type:
boolean
Default:
false
Beep_Enabled
Tip
This might not work depending on your system or a console (terminal emulator).
Description:
This setting specifies if you want to hear a beep when you get an alert.
Type:
boolean
Default:
true
Trigger_By_Words
Description:
Triggers an alert after receiving a specified keyword.
Available values:
true
andfalse
.Type:
boolean
Default:
false
Trigger_By_Rain
Description:
Trigger alerts when it rains and when it stops.
Available values:
true
andfalse
.Type:
boolean
Default:
false
Trigger_By_Thunderstorm
Description:
Triggers alerts at the beginning and end of thunderstorms.
Available values:
true
andfalse
.Type:
boolean
Default:
false
Log_To_File
Description:
Should the Alerts Chat Bot log alerts into a file.
Available values:
true
andfalse
.Type:
boolean
Default:
false
Log_File
Description:
A path to the file where alerts will be logged if
Log_To_File
is set totrue
.Type:
string
Default:
"alerts-log.txt"
Matches
Description:
List of words/strings to alert you on.
Type:
array of strings
Example:
Matches = [ "Yourname", " whispers ", "-> me", "admin", ".com", ]
Excludes
Description:
List of words/strings to NOT alert you on.
Type:
array of strings
Example:
Excludes = [ "myserver.com", "Yourname>:", "Player Yourname", "Yourname joined", "Yourname left", "[Lockette] (Admin)", " Yourname:", "Yourname is", ]
Anti AFK
Description:
Send a command and sneak on a regular or random basis or make the bot walk around randomly to avoid automatic AFK disconnection.
Settings:
Section:
ChatBot.AntiAFK
Enabled
Description:
This setting specifies if the Anti AFK Chat Bot is enabled.
Available values:
true
andfalse
.Type:
boolean
Default:
false
Delay
Description:
The time interval for execution in seconds.
If the
min
andmax
are the same, the time interval will be consistent. However if they are not the same, the plugin will choose a random number betweenmin
andmax
, this is useful if you want to have a random interval to trick anti afk plugins.Format:
{ min = <seconds>, max = <seconds> }
Type:
inline table with min and max fields which have type of double
Default:
{ min = 60.0, max = 60.0 }
Command
Description:
Command to be sent.
Type:
string
Default:
/ping
Use_Sneak
Description:
Sometimes you can trick plugins with sneaking or command might not be enough, enable it if you need it.
Type:
boolean
Default:
false
Use_Terrain_Handling
Tip
You need to enable Terrain Handling in the settings and it's recommended to put the bot into an enclosure not to wander off. (Recommended size 5x5x5)
Description:
Should the bot use Terrain Handling instead of the command method.
This will enable your bot to randomly move about, thus a better anti afk effect.
Available values:
true
andfalse
.Type:
boolean
Default:
false
Walk_Range
Description:
The range which bot will use to walk around (-X to +X and -Z to +Z, Y is not used).
The bigger the slower the bot might be at calculating the path, recommended 2-5.
Default:
5
Walk_Retries
Tip
This happens on each trigger of the task, so it does not permanently switch to alternative method.
Description:
This is the number of times the bot will try to pathfind, if he can't find a valid path for 20 times, he will use the command method.
Default:
20
Auto Attack
Tip
You need to have inventoryhandling and entityhandling enabled in order for this bot to work.
Description:
Automatically attacks mobs around you, you can configure it to attack both hostile and passive mobs and only certain mobs or all mobs.
Settings:
Section:
ChatBot.AutoAttack
Enabled
Description:
This setting specifies if the Auto Attack Chat Bot is enabled.
Available values:
true
andfalse
.Type:
boolean
Default:
false
Mode
Description:
Available values:
single
Target one mob per attack.
multi
Target all mobs in range per attack.
Type:
string
Default:
single
Priority
Description:
Available values:
health
(prioritize targeting mobs with lower health)distance
(prioritize targeting mobs closer to you)
Type:
string
Default:
distance
Cooldown_Time
Description:
How long to wait between each attack in seconds.
To enable it, set
Custom
(boolean) totrue
and changevalue
(double) to your preferred value (eg.1.5
).By the default, this is disabled and the MCC calculates it based on the server TPS.
Format:
Cooldown_Time = { Custom = <is enabled (true|false)>, value = <seconds (double)> }
Type:
inline table
Example:
Cooldown_Time = { Custom = true, value = 1.5 }
Default:
{ Custom = false, value = 1.0 }
Interaction
Description:
Available values:
Attack
Just attack a mob. (Default)
Interact
Just interact with a mob.
InteractAt
Interact with and attack a mob.
Type:
string
Default:
Attack
Attack_Hostile
Description:
This setting specifies if the Auto Attack Chat Bot should attack hostile mobs.
Available values:
true
andfalse
.Type:
boolean
Default:
true
Attack_Passive
Description:
This setting specifies if the Auto Attack Chat Bot should attack passive mobs.
Available values:
true
andfalse
.Type:
boolean
Default:
false
List_Mode
Description:
This setting specifies which mode of the list should Auto Attack Chat Bot use for
Entites_List
setting.Available values:
whitelist
(only attack specified mobs) andblacklist
(do not attack specified mobs).Type:
string
Default:
whitelist
Entites_List
Description:
A list of mobs which are either whitelisted or blacklisted, the mode is set in
List_Mode
setting.You can find the full list of mobs here.
Format:
["<entity type>", "<entity type>", ...]
Type:
array of strings
Example:
[ "Spider", "Skeleton", "Pig", ]
Default:
[ "Zombie", "Cow", ]
Auto Craft
Tip
You need to have inventoryhandling enabled in order for basic crafting in the inventory to work, in addition if you want to use a crafting table, you need to enable terrainandmovements in order for bot to be able to reach the crafting table.
Description:
Automatically craft items in your inventory or in a crafting table.
Commands:
/autocraft list
List all loaded recipes.
/autocraft start <name>
Start the crafting process with the given recipe name you had defined.
/autocraft stop
Stop the crafting process.
/autocraft help
In-game help command.
Settings:
Section:
ChatBot.AutoCraft
Enabled
Description:
This setting specifies if the Auto Craft Chat Bot is enabled.
Available values:
true
andfalse
.Type:
boolean
Default:
false
CraftingTable
Description:
This setting specifies the location of the crafting table.
Type/Format:
This setting is an of an
inline table
type that has the following sub-options/settings;x
- X coordinate, the type isdouble
(eg.123.0
)y
- Y coordinate, the type isdouble
(eg.64.0
)z
- Z coordinate, the type isdouble
(eg.456.0
)
Example:
CraftingTable = { X = 123.0, Y = 65.0, Z = 456.0 }
OnFailure
Description:
This setting specifies what the Auto Craft Chat Bot should do on failure.
Failure can happen when there are no materials available or when a crafting table can't be reached.
Available values:
abort
andwait
.Type:
string
Default:
abort
Defining a recipe
Tip
If you're using
table
you need to set theCraftingTable
setting.The recipes are defines as a separate new sub-section
[[ChatBot.AutoCraft.Recipes]]
of the[ChatBot.AutoCraft]
section.The
[[ChatBot.AutoCraft.Recipes]]
section needs to contain the following settings:Name
The name of your recipe, can be whatever you like.
Type:
string
Type
Available values:
player
andtable
Result
This is the type of resulting item.
Type:
string
Example:
"StoneBricks"
Slots
This setting is an array/list of material names (strings) that go into an each slot (max 9 elements). Empty slots should be marked with
"Null"
Type:
array of strings
Format:
Slots = [ "<material/item type>", "<material/item type>", ... ]
Slots are indexed as following:
2x2
(Player)╔═══╦═══╗ ║ 1 ║ 2 ║ ╠═══╬═══╣ ║ 3 ║ 4 ║ ╚═══╩═══╝
3x3
(Crafting Table)╔═══╦═══╦═══╗ ║ 1 ║ 2 ║ 3 ║ ╠═══╬═══╬═══╣ ║ 4 ║ 5 ║ 6 ║ ╠═══╬═══╬═══╣ ║ 7 ║ 8 ║ 9 ║ ╚═══╩═══╩═══╝
Full Examples:
# Stone Bricks using the player inventory [[ChatBot.AutoCraft.Recipes]] Name = "Recipe-Name-1" Type = "player" Result = "StoneBricks" Slots = [ "Stone", "Stone", "Stone", "Stone", ] # Stone Bricks using a crafting table [[ChatBot.AutoCraft.Recipes]] Name = "Recipe-Name-2" Type = "table" Result = "StoneBricks" Slots = [ "Stone", "Stone", "Null", "Stone", "Stone", "Null", "Null", "Null", "Null", ]
Tip
If you have a case where you have to leave some fields empty, use
"Null"
to mark them as empty. Example for stone bricks:Slots = [ "Stone", "Stone", "Null", "Stone", "Stone", "Null", "Null", "Null", "Null", ]
All item types can be found here.
Make sure to provide materials for your bot by placing them in inventory first.
Auto Dig
Description:
Automatically digs block on specified locations.
Tip
You need to have inventoryhandling and terrainandmovements enabled in order for this bot to work.
Tip
Since MCC does not yet support accurate calculation of the collision volume of blocks, all blocks are considered as complete cubes when obtaining the position of the lookahead.
Commands:
/digbot start
- Starts the digging/digbot stop
- Stops the digging
Settings:
Section:
ChatBot.AutoDig
Enabled
Description:
This setting specifies if the Auto Dig Chat Bot is enabled.
Available values:
true
andfalse
.Type:
boolean
Default:
false
Mode
Description:
This setting specifies in which mode the Auto Dig Chat Bot will operate.
Available values:
lookat
Digs the block that the bot is looking at.
fixedpos
Digs the block in a fixed location/position/coordinate.
both
Dig only when the block you are looking at is in the "Locations" list.
Type:
string
Default:
lookat
Locations
Description:
This setting specifies an array/list of locations which the bot will dig out.
Type/Format:
The type of this setting is an array of inline table which has the following sub-options/settings:
x
- X coordinate, the type isdouble
(eg.123.45
)y
- Y coordinate, the type isdouble
(eg.64.0
)z
- Z coordinate, the type isdouble
(eg.234.5
)
Full example:
Locations = [ { x = 123.5, y = 64.0, z = 234.5 }, { x = 124.5, y = 63.0, z = 235.5 }, ]
Location_Order
Description:
This setting specifies in which order the Auto Dig Chat Bot will dig blocks.
Available values:
distance
Digs the block closest to the bot.
index
Digs blocks in the list order.
Type:
string
Default:
distance
Auto_Start_Delay
Description:
How many seconds to wait after entering the game to start digging automatically.
Set to
-1
to disable the automatic start.Type:
float
Default:
3.0
Dig_Timeout
Description:
If mining a block takes longer than this value, a new attempt will be made to find a block to mine.
Type:
float
Default:
60.0
Log_Block_Dig
Description:
This setting specifies whether to output logs in to the console when digging blocks.
Available values:
true
andfalse
.Type:
boolean
Default:
true
List_Type
Description:
This setting specifies the mode at which the
Blocks
setting is operating.Available values:
whitelist
(only dig specified blocks) andblacklist
(do not dig specified blocks).Type:
string
Default:
whitelist
Blocks
Description:
This setting specifies the list of blocks which either should not should not be dug out.
The list of block types can be found here.
Format:
[ "<block type>", "<block type>", ...]
Type:
array of strings
Example:
Blocks = [ "DiamondOre", "RedstoneOre", "EmeraldOre", "RedstoneBlock" ]
Default:
[ "Cobblestone", "Stone", ]
Auto Drop
Description:
Automatically drop items you don't need from the inventory.
Tip
You need to have inventoryhandling enabled in order for this bot to work
Settings:
Section:
ChatBot.AutoDrop
Enabled
Description:
This setting specifies if the Auto Drop Chat Bot is enabled.
Available values:
true
andfalse
.Type:
boolean
Default:
false
Mode
Description:
This setting specifies the mode of the auto dropping.
Available values:
include
This mode will drop any items specified in the list in the
Items
setting.exclude
This mode will drop any other items than specified in the list in the
Items
setting.So it would keep the items specified in the list.
everything
Drop any item regardless of the items listed in the
Items
setting.
Type:
string
Default:
include
Items
Tip
All item types can be found here.
Description:
This setting is where you can specify the list of items which you want to drop, or keep.
Format:
[ "<item type>", "<item type>", ...]
Type:
array of strings
Example:
[ "Totem", "GlassBottle", ]
Default:
[ "Cobblestone", "Dirt", ]
Auto Eat
Description:
Automatically eat food when your Hunger value is low.
Tip
You need to have inventoryhandling enabled in order for this bot to work
Settings:
Section:
ChatBot.AutoEat
Enabled
Description:
This setting specifies if the Auto Eat Chat Bot is enabled.
Available values:
true
andfalse
.Type:
boolean
Default:
false
Threshold
Description:
Threshold bellow which the bot will auto eat.
Type:
integer
Default:
6
Auto Fishing
Description:
Automatically catch fish using a fishing rod.
Tip
You need to have entityhandling enabled in order for this bot to work.
Tip
To use the automatic rod switching and durability check feature, you need to enable inventoryhandling.
Tip
Note: To adjust the position or angle after catching a fish, you need to enable terrainandmovements.
Tip
A fishing rod with Mending enchantment is strongly recommended.
Steps for using this bot (with the default setting)
- Hold a fishing rod and aim towards the sea before login with MCC
- Make sure
AutoFish
isenabled
in config file - Login with MCC
- You will be able to see the log "Fishing will start in 3.0 second(s).".
Settings:
Section:
ChatBot.AutoFishing
Enabled
Description:
This setting specifies if the Auto Fishing Chat Bot is enabled.
Available values:
true
andfalse
.Type:
boolean
Default:
false
Antidespawn
Description:
This option may be used in some special cases, so if it has not been modified before, leave the default value.
Available values:
true
andfalse
.Type:
boolean
Default:
false
Mainhand
Description:
Whether to use the main hand or off hand to hold the rod.
Available values:
true
(Main Hand)false
(Off Hand)
Type:
boolean
Default:
true
Auto_Start
Description:
Whether to start fishing automatically after joining the game or switching worlds.
Available values:
true
andfalse
.Type:
boolean
Default:
true
Cast_Delay
Description:
Wait how many seconds after successfully catching a fish before recasting the rod.
Type:
float
Default:
0.4
Fishing_Delay
Description:
Effective only when
auto_start = true
.After joining the game or switching worlds, wait how many seconds before starting to fish automatically.
Type:
float
Default:
3.0
Fishing_Timeout
Description:
How long the fish bite is not detected is considered a timeout. It will re-cast after the timeout.
Type:
float
Default:
300.0
Durability_Limit
Description:
Will not use rods with less durability than this (full durability is 64).
Set to zero to disable this feature.
Type/Available values: An integer number from
0
to64
.Default:
2
Auto_Rod_Switch
Description:
Switch to a new rod from inventory after the current rod is unavailable.
Available values:
true
andfalse
.Type:
boolean
Default:
true
Stationary_Threshold
Description:
For each movement of the fishhook entity (entity movement packet), if the distance on both X and Z axes is below this threshold it will be considered as stationary.
This is to avoid being detected as a bite during the casting of the hook.
If set too high, it will cause the rod to be reeled in while casting.
If set too low, it will result in not detecting a bite.
Type:
float
Default:
0.001
Hook_Threshold
Description:
For each movement of the fishhook entity (entity movement packet), if it is stationary (check
stationary_threshold
) and its movement on the Y-axis is greater than this threshold, it will be considered to have caught a fish.If it is set too high, it will cause normal bites to be ignored.
If set too low, it can cause small fluctuations in the hook to be recognized as bites.
Type:
float
Default:
0.2
Log_Fish_Bobber
Description:
When turned on it will be print a log every time a fishhook entity movement packet is received.
If auto-fishing does not work as expected, turn this option on to adjust
stationary_threshold
andhook_threshold
, or create an issue and attach these logs.Available values:
true
andfalse
.Type:
boolean
Default:
false
Enable_Move
Description:
Some plugins do not allow the player to fish in one place for a long time. This setting allows the player to change position/angle after each catch.
Each position is added as a new
[[ChatBot.AutoFishing.Movements]]
subsection, more on that bellow.Available values:
true
andfalse
.Type:
boolean
Default:
false
Adding a position/movement
Each position/movement is added as a new
[[ChatBot.AutoFishing.Movements]]
subsection of[ChatBot.AutoFishing]
.Available settings/options:
XYZ
This setting specifies at location the bot should move to.
The type of this setting is
inline table
, that has the following sub-settings/options:x
- X coordinate, the type isdouble
(eg.123.0
)y
- Y coordinate, the type isdouble
(eg.64.0
)z
- Z coordinate, the type isdouble
(eg.-654.0
)
Example:
XYZ = { x = 123.0, y = 64.0, z = -654.0 }
facing
This setting specifies at which angle the bot will look at when he arrives to this position/location.
The type of this setting is
inline table
, that has the following sub-settings/options:yaw
- The type isdouble
(eg.12.34
)pitch
- The type isdouble
(eg.-23.45
)
Example:
facing = { yaw = 12.34, pitch = -23.45 }
Full example
[[ChatBot.AutoFishing.Movements]] facing = { yaw = 12.34, pitch = -23.45 } [[ChatBot.AutoFishing.Movements]] XYZ = { x = 123.45, y = 64.0, z = -654.32 } facing = { yaw = -25.14, pitch = 36.25 }
Auto Relog
Description:
Make MCC automatically relog when disconnected by the server, for example because the server is restating.
Settings:
Section:
ChatBot.AutoRelog
Enabled
Description:
This setting specifies if the Auto Relog Chat Bot is enabled.
Available values:
true
andfalse
.Type:
boolean
Default:
false
Delay
Description:
The delay time before joining the server.
If the
min
andmax
are the same, the time will be consistent, however, if you want a random time, you can setmin
andmax
to different values to get a random time. The time format is in seconds, and the type is double. (eg.37.0
)Format:
{ min = <seconds (double)>, max = <seconds (double)> }
Type:
inline table
Example:
{ min = 8.0, max = 60.0 }
Default:
{ min = 3.0, max = 3.0 }
Retries
Tip
This might get you banned by the server owners.
Description:
Number of retries.
Use
-1
for infinite retries.Default:
-1
Ignore_Kick_Message
Description:
This settings specifies if the
Kick_Messages
setting will be ignored, if set totrue
it will auto relog regardless of the kick messages.Type:
boolean
Default:
false
Kick_Messages
Description:
A list of words which should trigger the Auto Reconnect Chat Bot.
Format:
[ "<keyword>", "<keyword>", ... ]
Type:
array of strings
Default:
[ "Connection has been lost", "Server is restarting", "Server is full", "Too Many people", ]
Auto Respond
Description:
Run commands or send messages automatically when a specified pattern is detected in the chat.
Warning
Server admins can spoof PMs (
/tellraw
,/nick
) so enableAutoRespond
only if you trust server admins.Warning
This bot may get spammy depending on your rules, although the global messagecooldown setting can help you avoiding accidental spam.
Settings:
Section:
ChatBot.AutoRespond
Enabled
Description:
This setting specifies if the Auto Respond Chat Bot is enabled.
Available values:
true
andfalse
.Type:
boolean
Default:
false
Matches_File
Tip
This file is not created by default, we recommend making a clone of the
sample-matches.ini
and changing it according to your needs.Warning
If you want to use variables from this chat bot in scripts, currently that does not work. You will have to use a C# script in that case. We are working on getting this functionality back.
Description:
This setting specifies the path to the file which contains the list of rules for detecting of keywords and responding on them.
To find out how to configure the rules, take a look at the
sample-matches.ini
which has very detailed examples and a lot of comments.PS: In the future we will document the rules here with examples too.
Type:
string
Default:
matches.ini
Match_Colors
Tip
This feature uses the
§
symbol for color matchingDescription:
This setting specifies if the Auto Respond Chat Bot should keep the color formatting send by the server.
You can use this when you need to match text by colors.
List of all color codes: here
Type:
boolean
Default:
false
Chat Log
Description:
Make MCC log chat messages into a file.
Settings:
Section:
ChatBot.ChatLog
Enabled
Description:
This setting specifies if the Chat Log Chat Bot is enabled.
Available values:
true
andfalse
.Default:
false
Add_DateTime
Description:
This setting specifies if the Chat Log should prepend timestamps to the logged messages.
Available values:
true
andfalse
.Default:
true
Log_File
Description:
This setting specifies the name of the Chat Log file that will be created.
Default:
chatlog-%username%-%serverip%.txt
Filter
Description:
Type of messages to be logged into the file.
Available values:
all
All text from the console
messages
All messages, including system, plugin channel, player and server.
chat
Only chat messages.
private
Only private messages.
internal
Only internal messages and commands.
Default:
messages
Discord Bridge
Description:
This Chat Bot allows you to send and receive messages and MCC commands via a Discord channel.
Setup:
In order for this to work you must create a Discord bot on the Discord Developers portal.
First go to Discord Developers portal, click on New Application, fill out the name of your bot and confirm the terms of service and click Create.
Copy the Application ID and save it somewhere.
Click on the Bot tab in the left menu.
Click on Add Bot
Click on the Reset Token button and copy the generated token, then paste it in the
Token
field in the MCC configuration.Enable
Message Content Intent
,Server Members Intent
andPresence Intent
.Warning
Token is what gives you access to the Bot, do not share it with anyone and keep it safe!
Warning
You must Enable
Message Content Intent
,Server Members Intent
andPresence Intent
for the bot to work!Then go to Discord Permissions Calculator. Paste the Application Id that you've copied into the Client ID field, then Check/Enable the Administrator field in General Permissions section. Finally click on the Link down bellow and invite the Bot on to a server you want to interact with the MCC on.
Go to your Discord Client and go to Settings -> Advanced, Enable Developer Mode.
Then right click on a server where you invited the bot to in the server list and click on Copy ID, paste the copied id in
GuildId
in your MCC configuration.Then right click on a channel where you want to interact with the bot and click on Copy ID, paste the copied id in
ChannelId
in your MCC configuration.Send a message in that channel and right click on your nick and click Copy ID and paste the copied id in
OwnersIds
list setting in your MCC configuration.Enable the bot by setting
Enabled
totrue
in your MCC configuration and start the MCC.Usage:
To send a message simply type it out in the Discord channel and press enter.
To execute a MCC command, you must prefix it with a dot (
.
). Example:.move 145 64 832
Settings:
Section:
ChatBot.DiscordBrdige
Enabled
Description:
This setting specifies if the Discord Bridge Chat Bot is enabled.
Available values:
true
andfalse
.Type:
boolean
Default:
false
Token
Description:
This is the token of your Discord bot.
Type:
string
GuildId
Description:
This is the ID of your server/guild where you have invited the bot to.
Type:
unsigned long
ChannelId
Description:
This is the ID of a channel on your server/guild where you want to interact with the bot.
Type:
unsigned long
OwnersIds
Description:
This is a list of Discord user IDs which can interact with the bot.
Type:
list/array of: unsigned long
PrivateMessageFormat
Description:
This is a format that will be used when someone has sent you a private message on the server.
Parts of the message that are between
{
and}
will be replaced by the Chat Bot during runtime, you should not change them in any way!For example
{message}
will be replaced with an actual message,{username}
will be replaced with the username of the person who sent a message on the server and{timestamp}
will be replaced with the current date and time.For Discord message formatting/styling, refer to this guide.
Type:
string
Default:
**[Private Message]** {username}: {message}
PublicMessageFormat
Description:
This is a format that will be used when sending a public message to the Discord channel.
Parts of the message that are between
{
and}
will be replaced by the Chat Bot during runtime, you should not change them in any way!For example
{message}
will be replaced with an actual message,{username}
will be replaced with the username of the person who sent a message on the server and{timestamp}
will be replaced with the current date and time.For Discord message formatting/styling, refer to this guide.
Type:
string
Default:
{username}: {message}
TeleportRequestMessageFormat
Description:
This is a format that will be used when someone has sent you a Teleport Request.
Parts of the message that are between
{
and}
will be replaced by the Chat Bot during runtime, you should not change them in any way!For example
{message}
will be replaced with an actual message,{username}
will be replaced with the username of the person who sent a message on the server and{timestamp}
will be replaced with the current date and time.For Discord message formatting/styling, refer to this guide.
Type:
string
Default:
A new Teleport Request from **{username}**!
Farmer
Tip
You need to have Terrain And Movements and Inventory Handling enabled in order for this bot to work.
Warning
This a newly added bot, it is not perfect and was only tested in 1.19.2, there are some minor issues with it and you should treat it as an experimental bot.
Description:
This bot can farm crops for you. When you start it it will plant, break and bonemeal crops in order.
Supported crops:
- Beetroot
- Carrot
- Melon
- Netherwart
- Pumpkin
- Potato
- Wheat
Current list of issues:
- Sometimes the bot will not bone meal carrots/potatoes or melon/pumpkin stems (you will see it in a pattern of crops that have not been bonemealed)
- Sometimes the bot can jump on to the crops and break the farmland when coming form a different height, it's advised to keep the farming area flat and fenced off so the items to not fly out of the farming area
- If you have a farming platform that is 1 block thick and has air bellow, make it a few blocks thick because the bot can fall through sometimes when logging in and standing on farmland
- Sometimes the bot can be kicked for "invalid movement" packets when farming netherwart on soul sand, we haven't been able to figure why this happens in some parts of the world, while on other it's completely fine, it's advised to keep the farming area small and flat.
We're working on solving these issues.
What the bot does not do as of the time of writing, but are planned features:
- Does not collect items which fly off to the side, (it's advised to fence off the farming area with 2 high wall)
- Does not put items to the chest once the inventory is full
- Does not warn you when the inventory is full
- Does not refill inventory with seeds or bonemeal from chests by it self.
ℹ️ NOTE: The default radius of scanning is
30
blocks, we suggest that you do not use radius too big because it might slow down the bot. The bigger the radius, the slower the scanning and processing is.Commands:
When enabled will add the
/farmer
command.Usage:
/farmer <start <crop type> [radius:<radius = 30>] [unsafe:<true/false>] [teleport:<true/false>] [debug:<true/false>]|stop>
Options marked with
[
and]
are optional and in case of this command can have whatever order you prefer after the<crop type>
field.Options that have
=
means that the value after the=
is a default value, in case of this command the default radius is 30 blocks.Examples:
Farming
wheat
in a radius of40
blocks./farmer start wheat radius:40
Farming
melon
with debug output and direct teleporting:/farmer start melon debug:true teleport:true
Stopping the bot:
/farmer stop
Settings:
Section:
ChatBot.Farmer
Enabled
Description:
This setting specifies if the Farmer Chat Bot is enabled.
Available values:
true
andfalse
.Type:
boolean
Default:
false
Delay_Between_Tasks
Description:
This setting specifies the delay in seconds between each task performed by the bot.
Type:
integer
Default:
1
Minimum:
1
Follow player
Description:
This bot enables you to make a bot follow a specific player.
Tip
The bot can be slow at times, you need to walk with a normal speed and to sometimes stop for it to be able to keep up with you, it's similar to making animals follow you when you're holding food in your hand. This is due to a slow pathfinding algorithm, we're working on getting a better one. You can tweak the update limit and find what works best for you. (NOTE: Do not but a very low one, because you might achieve the opposite, this might clog the thread for terrain handling) and thus slow the bot even more.
Tip
You need to have terrainandmovements and entityhandling enabled in order for this bot to work.
Settings:
Section:
ChatBot.FollowPlayer
Enabled
Description:
This setting specifies if the Follow Player Chat Bot is enabled.
Available values:
true
andfalse
.Type:
boolean
Default:
false
Update_Limit
Description:
The rate at which the bot does calculations (second).
You can tweak this if you feel the bot is too slow.
Type:
float
Default:
1.5
Stop_At_Distance
Description:
Do not follow the player if he is in the range of
X
blocks (prevents the bot from pushing a player in an infinite loop).Type:
float
Default:
3.0
Hangman
Description:
Hangman game is one of the first bots ever written for MCC, to demonstrate ChatBot capabilities.
Create a file with words to guess (examples:
words-en.txt
,words-fr.txt
) and set it in config inside the[Hangman]
section.Also set
enabled
totrue
, then, add your username in thebotowners
INI setting, and finally, connect to the server and use/tell <bot username> start
to start the game.Tip
If the bot does not respond to bot owners, see the Detecting chat messages section.
Settings:
Section:
ChatBot.HangmanGame
Enabled
Description:
This setting specifies if the Hangman Chat Bot is enabled.
Available values:
true
andfalse
.Default:
false
English
Description:
This setting specifies if the Hangman Chat Bot should use English.
Available values:
true
andfalse
.Default:
true
FileWords_EN
Tip
This settings file is for English and is not created by the default
Description:
This setting specifies the path to the file which Hangman will use for the list of words, each word is added on a separate line.
Default:
hangman-en.txt
Example:
words-en.txt
FileWords_FR
Tip
This settings file is for French and is not created by the default
Description:
This setting is same as the above but for French.
Default:
hangman-fr.txt
Example:
words-fr.txt
Mailer
Description:
Relay messages between players and servers, like a mail plugin.
This bot can store messages when the recipients are offline, and send them when they join the server.
The Mailer bot can store and relay mails much like Essential's
/mail
command./tell <Bot> mail [RECIPIENT] [MESSAGE]
: Save your message for future delivery/tell <Bot> tellonym [RECIPIENT] [MESSAGE]
: Same, but the recipient will receive an anonymous mail
The bot will automatically deliver the mail when the recipient is online. The bot also offers a /mailer command from the MCC command prompt:
/mailer getmails
Show all mails in the console.
/mailer addignored [NAME]
Prevent a specific player from sending mails.
/mailer removeignored [NAME]
Lift the mailer restriction for this player.
/mailer getignored
Show all ignored players.
Warning
The bot identifies players by their name (Not by UUID!). A nickname plugin or a Minecraft rename may cause mails going to the wrong player! Never write something to the bot you wouldn't say in the normal chat (You have been warned!).
Warning
Server admins can spoof PMs (
/tellraw
,/nick
) so enableRemoteControl
only if you trust server admins.Mailer Network:
The Mailer bot can relay messages between servers.
To set up a network of two or more bots, launch several instances with the bot activated and the same database.
If you launch two instances from one .exe they should synchronize automatically to the same file.
Settings:
Section:
ChatBot.Mailer
Enabled
Description:
This setting specifies if the Mailer Chat Bot is enabled.
Available values:
true
andfalse
.Type:
boolean
Default:
false
DatabaseFile
Description:
This setting specifies the path to the file where the Mailer Chat Bot will store the mails.
This file will be auto created by the Mailer Chat Bot.
Default:
MailerDatabase.ini
IgnoreListFile
Description:
This setting specifies the path to the file where the Mailer Chat Bot will load people who are to be ignored by the Chat Bot. If you want to prevent someone from using this chat bot, add him in this file by writing his nickname on a new line.
This file will be auto created by the Mailer Chat Bot.
Default:
MailerIgnoreList.ini
PublicInteractions
Description:
This setting specifies if the Mailer Chat Bot should be interacted with in the public chat (in addition to private messages).
Available values:
true
andfalse
.Type:
boolean
Default:
false
MaxMailsPerPlayer
Description:
This setting specifies how many mails the Mailer Chat Bot should store per player at maximum.
Type:
integer
Default:
10
MaxDatabaseSize
Description:
This setting specifies the maximum database file size of Mailer Chat Bot in Kilobytes.
Type:
integer
Default:
10000
(10 MB)
MailRetentionDays
Description:
This setting specifies how long should the Mailer Chat Bot save/store messages for (in days).
Type:
integer
Default:
30
Map
Description:
This Chat Bot allows you to render items maps in the console, to
.bmp
images and to relay them to Discord using the Discord Bridge Chat Bot.This is useful for solving captchas on servers which require it, or saving the map art into an image.
The maps are rendered into
Rendered_Maps
folder which will be auto created in the same folder where the client executable is located.Commands:
When enabled will add the
/maps
command.Usage:
/maps <list/render <id>> | maps <l/r <id>>
Settings:
Section:
ChatBot.Map
Enabled
Description:
This setting specifies if the Map Chat Bot is enabled.
Available values:
true
andfalse
.Type:
boolean
Default:
false
Render_In_Console
Description:
This setting specifies if the Map Chat Bot should render the map in the console.
It is recommended to use something like Power Shell for the best map quality (at least for Windows users).
Available values:
true
andfalse
.Type:
boolean
Default:
true
Save_To_File
Warning
If you want the Discord relay feature, you must enable this setting!
Description:
This setting specifies if the Map Chat Bot should render the map and save it into a file (
.bmp
format)Available values:
true
andfalse
.Type:
boolean
Default:
false
Auto_Render_On_Update
Warning
On some versions older than 1.17 this could cause some performance issue on older hardware if there a lot of maps being rendered, since map updates are sent multiple times a second. Be careful.
Description:
This setting specifies if the Map Chat Bot should automatically render maps as they're received from the servers.
Available values:
true
andfalse
.Type:
boolean
Default:
false
Delete_All_On_Unload
Description:
This setting specifies if the Map Chat Bot should automatically delete rendered maps when un-loaded or reloaded.
Available values:
true
andfalse
.Type:
boolean
Default:
true
Notify_On_First_Update
Description:
This setting specifies if the Map Chat Bot should notify you when it got a map from the server for the first time.
Available values:
true
andfalse
.Type:
boolean
Default:
false
Rasize_Rendered_Image
Tip
The bigger the size, the less is the quality.
Tip
For upscaling your maps you could use (getting a bit better quality): https://deepai.org/machine-learning-model/torch-srgan
Description:
This setting specifies if the Map Chat Bot should resize the rendered image (the one that is saved to a file).
This is useful if you're relying map images to Discord via the Discord Bridge Chat Bot.
The default map size is
128x128
.Available values:
true
andfalse
.Type:
boolean
Default:
false
Resize_To
Tip
Might be a bit slow on less powerful systems when rendering a lot of maps. Lower down the resolution if you have any performance issues. If your system is not that powerful and can't handle it, use external tools for upscaling and resizing.
Description:
Which size the map should be resized to if
Rasize_Rendered_Image
istrue
.Type:
integer
Default:
512
Send_Rendered_To_Discord
Warning
The Discord Bridge Chat Bot must be enabled and configured!
Warning
You need to enable
Save_To_File
in order for this to work.Tip
Sometimes when the client connects, the Discord Bridge will be loaded a tiny bit after. Rendered map images are queued up and sent in order as soon as the Discord Bridge is ready and connected.
Description:
Send a rendered map (saved to a file) to a Discord channel via the Discord Bridge Chat Bot.
Type:
boolean
Default:
false
PlayerList Logger
Description:
Log the list of players periodically into a textual file.
Settings:
Section:
ChatBot.PlayerListLogger
Enabled
Description:
This setting specifies if the PlayerList Logger Chat Bot is enabled.
Available values:
true
andfalse
.Default:
false
File
Description:
This setting specifies the name of the player list Log file that will be created.
Default:
playerlog.txt
Delay
Description:
Save the list of players every how many seconds.
Type:
float
Default:
60.0
Remote Control
Description:
Send MCC console commands to your bot through server PMs (
/tell
).You need to have ChatFormat working correctly and add yourself in botowners to use the bot.
Warning
Server admins can spoof PMs (
/tellraw
,/nick
) so enableRemoteControl
only if you trust server admins.Settings:
Section:
ChatBot.RemoteControl
Enabled
Description:
This setting specifies if the Remote Control Chat Bot is enabled.
Available values:
true
andfalse
.Type:
boolean
Default:
false
AutoTpaccept
Description:
This setting specifies if the Remote Control Chat Bot should automatically accept teleport requests.
Available values:
true
andfalse
.Type:
boolean
Default:
true
AutoTpaccept_Everyone
Description:
This setting specifies if the Remote Control Chat Bot should automatically accept teleport requests from everyone.
Available values:
true
andfalse
.Type:
boolean
Default:
false
Replay Capture
Description:
Enable recording of the game (
/replay start
) and replay it later using the Replay Mod (https://www.replaymod.com/).Warning
This bot does not work for 1.19, we need maintainers for it.
Tip
Please note that due to technical limitations, the client player (you) will not be shown in the replay file
Warning
You SHOULD use
/replay stop
or exit the program gracefully with/quit
OR THE REPLAY FILE MAY GET CORRUPT!Settings:
Section:
ChatBot.ReplayCapture
Enabled
Description:
This setting specifies if the Replay Mod Chat Bot is enabled.
Available values:
true
andfalse
.Type:
boolean
Default:
false
Backup_Interval
Description:
This setting specifies the time interval in seconds when the replay file should be auto-saved.
Use
-1
to disable.Type:
float
Default:
300.0
Script Scheduler
Description:
Schedule commands and scripts to launch on various events such as server join, date/time or time interval.
Settings:
Section:
ChatBot.ScriptScheduler
Enabled
Description:
This setting specifies if the Script Scheduler Chat Bot is enabled.
Available values:
true
andfalse
.Type:
boolean
Default:
false
Defining a task
Tip
It is recommended that you align subsections to the right by one tab or 4 spaces for better readability.
Description:
Each task is defined as a new subsection
[[ChatBot.ScriptScheduler.TaskList]]
of the section:[ChatBot.ScriptScheduler]
.Subsection format:
[[ChatBot.ScriptScheduler.TaskList]] <setting> = <value> <setting> = <value>
Available settings/options:
Trigger_On_First_Login
Will trigger the task when you login the first time.
Available values:
true
andfalse
Type:
boolean
Trigger_On_Login
Will trigger the task each time you login.
Available values:
true
andfalse
Type:
boolean
Trigger_On_Times
This will enable the task to trigger at exact time(s) you want.
The type of this setting is
inline table
, that has the following sub-settings/options:Enable
- Enables/Disables the setting (Boolean, so eithertrue
orfalse
)Times
- An array/list of times on which the task should run/trigger (each element is of the Local Time type, eg.14:00:00
, so:hours:minutes:seconds
)
Example:
Trigger_On_Times = { Enable = true, Times = [ 14:00:00, 22:35:8] }
Trigger_On_Interval
This will enable the task to trigger at certain interval which you've defined.
The type of this setting is
inline table
, that has the following sub-settings/options:Enable
- Enables/Disables the setting (Boolean, so eithertrue
orfalse
)MinTime
- Time in seconds (the type isdouble
, eg.3.14
)MaxTime
- Time in seconds (the type isdouble
, eg.3.14
)
If
MinTime
andMaxTime
are the same, the interval will be consistent, however if they are not, the ChatBot will generate a random interval in between those two numbers provided, each time the task is run.Example:
Trigger_On_Interval = { Enable = true, MinTime = 30.0, MaxTime = 160.0 }
Full example
[ChatBot.ScriptScheduler] Enabled = true [[ChatBot.ScriptScheduler.TaskList]] Task_Name = "Task Name 1" Trigger_On_First_Login = false Trigger_On_Login = false Trigger_On_Times = { Enable = true, Times = [ 14:00:00, ] } Trigger_On_Interval = { Enable = true, MinTime = 3.6, MaxTime = 4.8 } Action = "send /hello" [[ChatBot.ScriptScheduler.TaskList]] Task_Name = "Task Name 2" Trigger_On_First_Login = false Trigger_On_Login = true Trigger_On_Times = { Enable = false, Times = [ ] } Trigger_On_Interval = { Enable = false, MinTime = 1.0, MaxTime = 10.0 } Action = "send /login pass"
Telegram Bridge
Description:
This bot allows you to send and receive messages and commands via a Telegram Bot DM or to receive messages in a Telegram channel.
Warning
You can't send messages and commands from a group channel, you can only send them in the bot DM, but you can get the messages from the client in a group channel.
Setup:
- First you need to create a Telegram bot and obtain an API key, to do so, go to Telegram and find @botfather
- Click on
Start
button and read the bot reply, then type/newbot
, the Botfather will guide you through the bot creation. - Once you create the bot, copy the API key that you have gotten, and put it into the
Token
field ofChatBot.TelegramBridge
section (this section). - Then launch the client and go to Telegram, find your newly created bot by searching for it with its username, and open a DM with it.
- Click on
Start
button and type and send the following command.chatid
to obtain the chat id. - Copy the chat id number (eg.
2627844670
) and paste it in theChannelId
field and add it to theAuthorized_Chat_Ids
field (in this section) (an id in "Authorized_Chat_Ids" field is a number/long, not a string!), then save the file. Now you can use the bot using it's DM.
Danger
Do not share your API key with anyone else as it will give them the control over your bot. Save it securely.
Danger
If you do not add the id of your chat DM with the bot to the "Authorized_Chat_Ids" field, ayone who finds your bot via search will be able to execute commands and send messages!
Danger
An id pasted in to the "Authorized_Chat_Ids" should be a number/long, not a string!
Settings:
Section:
ChatBot.TelegramBridge
Enabled
Description:
This setting specifies if the Telegram Bridge Chat Bot is enabled.
Available values:
true
andfalse
.Type:
boolean
Default:
false
Token
Description:
Your Telegram Bot token.
Type:
string
Default: empty
ChannelId
Description:
An ID of a channel where you want to interact with the MCC using the bot.
Type:
string
Default: empty
Authorized_Chat_Ids
Description:
A list of Chat IDs that are allowed to send messages and execute commands. To get an id of your chat DM with the bot use
.chatid
bot command in Telegram.Type:
array of strings
Default: empty
Message_Send_Timeout
Description:
How long to wait (in seconds) if a message can not be sent to Telegram before canceling the task (minimum 1 second).
Type:
integer
Default: 3
Message Formats
Words wrapped with
{
and}
are going to be replaced during the code execution, do not change them! For example,{message}
is going to be replace with an actual message,{username}
will be replaced with an username,{timestamp}
with the current time. For Telegram message formatting, check the following.PrivateMessageFormat
Description:
A format that is used to display a private chat message on the minecraft server, in a Telegram channel.
Type:
string
Default:
*(Private Message)* {username}: {message}
PublicMessageFormat
Description:
A format that is used to display a public chat message on the minecraft server, in a Telegram channel.
Type:
string
Default:
{username}: {message}
TeleportRequestMessageFormat
Description:
A format that is used to display a teleport request on the minecraft server, in a Telegram channel.
Type:
string
Default:
A new Teleport Request from **{username}**!
Items Collector
Description:
Collect items on the ground using this Chat Bot.
Settings:
Section:
ChatBot.ItemsCollector
Enabled
Description:
This setting specifies if the Items Collector chat bot is enabled.
Available values:
true
andfalse
.Type:
boolean
Default:
false
Collect_All_Item_Types
Description:
Specifies if the bot will collect all items, regardless of their type. If you want to use the whitelisted item types, disable this by setting it to
false
.Available values:
true
andfalse
.Type:
boolean
Default:
false
Items_Whitelist
Description:
In this list you can specify which items the bot will collect. To enable this, set the
Collect_All_Item_Types
to false.
Note
This does not prevent the bot from accidentally picking up other items, it only goes to positions where it finds the whitelisted items
Available values: Item Type List
Type:
array of strings with item names
Default:
[ "Diamond", "NetheriteIngot" ]
Delay_Between_Tasks
Description:
Delay in milliseconds between bot scanning items (Recommended: 300-500)
Type:
integer
Default:
300
Collection_Radius
Description:
The radius of blocks in which bot will look for items to collect.
Type:
double
Default:
30.0
Always_Return_To_Start
Description:
Specifies if the bot will return to it's starting position after there are no items to collect.
Available values:
true
andfalse
.Type:
boolean
Default:
true
Prioritize_Clusters
Description:
Specifies if the bot will go after clustered items instead for the closest ones.
Available values:
true
andfalse
.Type:
boolean
Default:
true
WebSocket Chat Bot
Description:
This chat bot allows you to remotely execute commands on the MCC and make Chat Bots in other programming languages over Web Socket.
You can make your own library to do this, or use the reference implementation one which has been writen in TypeScript/JavaScript: MCC.js
If you want to write your own library, you can follow this guide on the protocol specification and avaliable events and commands: WebSocket Chat Bot Guide
Settings:
Section:
ChatBot.WebSocketBot
Enabled
Description:
This setting specifies if the Web Socket chat bot is enabled.
Available values:
true
andfalse
.Type:
boolean
Default:
false
Ip
Description:
The IP address that Websocket server will be bound to.
Type:
string
Default:
127.0.0.1
(localhost)
Port
Description:
The Port that Websocket server will be bound to.
Type:
number
Default:
8043
Password
Description:
A password that will be used to authenticate on thw Websocket server
It is recommended to change the default password and to set a strong one
Type:
string
Default:
wspass12345
DebugMode
Description:
This setting is for developers who are developing a library that uses this chat bot to remotely execute procedures/commands/functions.
Type:
boolean
Default:
false