Have you ever been annoyed by having to run Minecraft just to type a command? Or high memory usage just because you have multiple Minecraft windows opened?
Minecraft Console Client is a lightweight app that will make your life easier! Able to connect to any minecraft server, both offline and online mode, it enables you to send commands and receive text messages in a fast and easy way without having to open the main Minecraft game.
But that's not all! Through various automation that can be enabled using the configuration file such as an anti-AFK system and alerts on specific words, this client is useful for server adminstration and automated scripts! Using the source code, you can even create a chatbot using the built-in API!
System requirements :
- Windows XP or higher with .NET framework v4.0 or greater (download link)
- Mac or Linux with Mono framework, v4.0-4.2 is recommended (download link)
- Uses only 10MB of RAM!
- Supports both online-mode and offline-mode
- Send text messages and commands to the server
- Receive messages from server with text coloring!
- Command-line usage for automated scripts (batch...)
- Terrain handling : fall to ground, walk around, pick up items
- Built-in bots: Alerts, AntiAFK, AutoRelog, Log, Hangman game
- Easy to use C# scripting API for making your own scripts and bots
- Download the app, unzip the archive and run it.
- Enter the username, password ("-" for offline mode) and server IP to connect.
- Having trouble? There's also a detailed guide for Mac OS.
- Download Latest Build (direct link)
- Source code is also available on GitHub.
- Issues are managed on GitHub, no PM please.
Older stable versions and changelog :
- Added support for Minecraft 1.9.0 and still compatible with older versions
- Fixed Mono support issues by using BouncyCastle CFB-8 encryption
- Added interactive offline-mode command prompt for reconnecting
- Added interactive prompt when server version cannot be determined
- Added exitonfailure setting for disabling interactive prompts on failure
- Added more error cases passing to the AutoRelog bot so that it can handle them
- Added AutoRespond bot for reacting to chat messages (contribution by Bancey)
- Added a brand new C# script engine for writing powerful C# scripts and chatbots
- Added fake resource pack acceptance for servers enforcing theirs (suggestion by Yoann166)
- Added regex settings for defining custom chat formats (contribution by ZizzyDizzyMC)
- Added filter settings for hiding xp bar and system messages (suggestion by dagonzaros)
- Added proxy setting for using only for login (contribution by ZizzyDizzyMC)
- Added support for Minecraft Forge for MC 1.7+ (contribution by Pokechu22)
- Added terrain, gravity and movements with pathfinding ability for MC 1.8
- Added split delay setting for sending long messages (contribution by Pokechu22)
- Added pm settings for specifying the command to use (suggestion by initsuj)
- Added access to plugin messages through C# chatbots (contribution by Pokechu22)
- Added session caching ability for reducing logins (contribution by initsuj)
- Added a debug setting for enabling more verbose output messages
- And many, many, many fixes and minor improvements !
- Fixed OverflowException for high server port (Thx 1092CQ, lokulin)
- Added internal /list command feature (contribution by lokulin)
- Fixed server version detection for Bungeecord 1.8 (finally :p)
- Fixed Alerts bot crash and refactored the whole bot's code
- Added AutoTpaccept for everyone setting in RemoteControl (suggestion by medxo)
- Added 15 seconds timeout to session and login (no more freezes)
- Added support for HeroChat chat format in bots (contribution by JamieSinn)
- Fixed crash when log file is in same folder (bug report by JamieSinn)
- Fixed crash on disconnect when previously failed to connect (bug report by doranchak and lyze237)
- Fixed SSL errors not properly handled (Bug report by iTzMrpitBull)
- Fixed ThreadAbortException beign reported to the user (Bug report by TorchRJ_)
- Fixed %vars% not handled in chatbotlogfile (Bug report by TorchRJ_)
- Fixed server alias not case insensitive (Bug report by TorchRJ_)
- Fixed crash on RemoteControl launching a Script (Bug report by Nicconyancat)
- Added full support for Minecraft 1.8.0
- Added Zlib support for 1.8.0 packet compression from dotNetZip
- Fixed 'invalid server IP' when using a server alias (Bug report by TorchRJ_)
- Fixed chatbotlogfile not creating/writing to logfile (Bug report by TorchRJ_)
- Fixed "log" in scripts displaying the comment twice (Bug report by TorchRJ_)
- Fixed repawn command description to be more explicit (Suggestion by TorchRJ_)
- Fixed proxy settings to use a host:port value (Suggestion by TorchRJ_)
- Added a setting for disabling RemoteControl tpa autoaccept (Suggestion by TorchRJ_)
- Fixed issue with blank lines in Alerts files (Bug report by TRTrident)
- Refactored the source code, features will now be way easier to add! (see page 23, #459)
- All commands are now the same from main chat prompt, scripts and remote control
- The 'exit' command in scripts will now act as a '/quit', and 'disconnect' command is now removed
- Fixed (again) the issue with very long strings (heavy server icon, reported by Solethia)
- Fixed the MC 1.7 issue randomly disconnecting on login depending on username and/or server (hopefully)
- Added 'Failed to ping this IP' kick message for AutoRelog bot (suggestion by TorchRJ_)
- Added HTTP/Socks proxy support using Starksoft's Biko Library (suggest. by TorchRJ_ and bearbear12345)
- Added back support for Minecraft 1.4.6 to 1.6.4 (from MCC 1.6.2, thanks to app refactoring)
- Added 'exit on failure' setting to automatically close on error (suggestion by TorchRJ_)
- Fixed special chars in minecraft passwords causing login to fail (reported by TNT-UP)
- Added variable engine for defining custom %vars% in scripts (suggestion by TorchRJ_)
- Added variable pre-defining in INI file in the [AppVars] INI section
- Added 'set myvar=value' command to set variables at runtime in scripts or chat prompt
- Added built-in read-only variables: %serverip%, %serverport%, %username%
- Fixed errors thrown by chatbots disconnecting from the server. Stack trace is printed instead.
- Added an API for developers to easily add custom commands in source code
- Added Essentials teleportation request in bot api (useful for chatbot developers)
- Added tpa request auto-accept in remote control if sent by bot owner (suggestion by MousePak)
- Added setting for manually choosing MC version in INI file (suggestion by ZizzyDizzyMC)
- Fixed ChatLog not creating the folder containing log file if it does not exists
- Added different command handling modes: '/cmd' (default), '\cmd' and 'cmd'
- Added support for an account list file and a server list file, for use in /connect and /reco
- Fixed Unix slashes in file path when using Mono (reported by MousePak)
- Added player head as console icon (Windows only, suggestion by TNT-UP)
- Added a chatbot general log file feature, with an associated INI setting (suggestion by TorchRJ_)
- Added 'log' command for use in scripts, which allows to log some text to console and log file.
- Added triggerOnInterval in script scheduler (run a script every X seconds, suggestion by ****offtwice)
- Fixed triggerOnTime feature in script scheduler not triggering scripts more than one time
- Added '[Someone [rank] -- me] message' private message handling (suggestion by ****offtwice)
- Fixed connection silently lost by sending a keep-alive packet every 10 seconds (reported by ridgewell)
- Fixed TAB-Complete having different behaviors between MCC and Vanilla (reported by TorchRJ_)
- Fixed having to type '/quit' two times on connection lost to exit the app (reported by Pokechu22)
- Added a more interactive offline command prompt allowing to type /reco and /connect commands
v1.7.3 for Minecraft 1.7.2 to 1.7.9 :
- Add support for Minecraft 1.7.6 to 1.7.9
- Fix crash when previously connected but reconnect fails (reported by dbear20)
- Remove legacy command-line args and xauth bot. Use INI and scripts instead!
- Moved bot owners to a regular setting in the INI file
- Added remote control bot using whispers to perform actions
- Added 'connect (serverIP)' command in scripts (Idea from TorchRJ_)
- Added in-chat timestamps feature (Idea from LehmusFIN)
- Scripts are now kept and resumed while reconnecting
- Handle 503 service unavailable error for Minecraft logins
- Fix null characters appearing randomly in chat prompt (old bug never fixed until now)
- Allow AutoRelog to relog on server login failed (Idea from TorchRJ_)
- Added script scheduler bot to launch scripts on first login, login and/or specific time
- The script scheduler is configured using its own INI file
- Removed scripting bot, which is now part of script scheduler
- Add support for %username% on log & task files (Idea from TorchRJ_)
- Added a setting for disabling "beep" sound in Alerts bot (Idea from TorchRJ_)
- Added a setting in INI file for choosing language file
- Detect Forge (which is still not supported, contribution by Aragas)
- Fix minor spelling mistake ("successfully", contibution by Aragas and maxpowa)
- Fix crash while reconnecting when previous attempt failed (reported by dbear20)
- Rewritten the whole cryptographic module (SHA-1, RSA, AES) in pure C#.NET
- Removed all the libraries, MCC is now library-free, as in v1.0-1.3 (MC 1.2.5)
- Fixed critical bugs with Mono, MCC is now fully compatible with Mono (Mac, Linux)
- Changed default window title, username is now on the left
- Support text pasting with Ctrl+V (at least for Windows)
- Fix for text coloration and translation rules (eg: achievement messages)
- Fix for respawning + /respawn command (reported by Pokechu22)
- Scripting bot: better script calling with /script (name)
- Scripting bot: Look for scripts in config/ and scripts/ folders
- Scripting bot: Automatically load (name).txt if .txt is omitted
- Automatically download en_GB.lang from Mojang servers
- Use Minecraft 1.7.4 en_GB object from assets (if 1.7.4 is installed)
- Fix hanging issue with very long strings (heavy server icon, reported by TorchRJ)
- Show username in window title using %username% (feature from v1RuX and dogwatch)
- AntiAFK command can be customized through INI file (contribution by dbear20)
- Allow to use both INI files and command-line args (suggested by TorchRJ)
- Command-line arguments override corresponding INI file lines in that case
- Command-line example : minecraftclient.exe my.ini othername otherpassword
- Fix text encoding for GUI (BasicIO) mode for non-ascii languages (fixed by Aragas)
- Known issue: May fail depending on username and/or server (reported by ambysdotnet)
- Fixed vanilla whisper detection in Bot API
- Completely reimplemented MC 1.7 networking, every MCC feature should be back & working
- Special thanks to dogwatch for fixing a critical issue in the development of the new version
- Removed a leftover BouncyCastle reference in Visual Studio project file (thanks bearbear12345)
- MCC commands are now case insensitive (thanks bearbear12345)
- Automatically find a translation file from MC1.7+ "legacy" assets
- Some code cleanup here and there
- Now compatible with Minecraft 1.6.4
- Automatically use language file from your .minecraft folder if available
- Removed BouncyCastle dependency (thanks to Allyoutoo for that)
- Fixed issue for logging-in with some special chars in the password
- Added password obfuscation while typing: ******
- Added an API for making a GUI (handling IO & tab-complete from an external app)
- Added MinecraftClientGUI version 1.0 as a separate executable
- The GUI can also handle command-line arguments
- First release issued from the GitHub repository
- Added an INI file with all the settings (see README.txt for more info - suggested by bSun0000)
- Added a Scripting bot including contributions by bearbear12345 (thanks!)
- Added an application icon by bearbear12345 & ORelio (app size is now 1.8MB, lol)
- Added a respawn ability in /reco: respawn & reconnect (respawn suggested by yayes2)
- Added a TAB autocomplete feature for commands and usernames (suggested by ambysdotnet)
- Fixed translation rules with %1$s and %2$s (bug report by KenXeiko)
- Fixed unicode characters handling in JSON strings, eg u0123 (bug report by mattman00000)
- Fixed a glitch which can cause the text to be messed up (old bug never fixed until now)
- Translated all the french Hangman dictionary to English for the english Hangman game
- Lots of code optimizations including great contributions by dogwatch (thanks!)
- MCC is now compatible with Minecraft 1.6.0 to 1.6.2!
- Added experimental support for MC1.6+ JSON-encoded chat messages
- The app can load an external translation file to display properly MC1.6+ messages
- Fixed an error happening when unexpected packets are sent during login phase
- Fixed packet 0x34 (Multi Block Change), should solve out-of-sync issues
- Fixed a possible issue with network handling, thanks to GeorgH93 for pointing that out
- Now compatible with Minecraft 1.5.2
- MCC is 1.5 ready and backward compatible with version 1.4.6/7 of Minecraft.
- Automatically detects which version to use by pinging the server before connecting.
- Bug Fix: "Connection has been lost" message no longer appears when a kick occurs.
- Now possible to set the number of reconnection attempts for the AutoRelog bot
- The new syntax of the argument is: bot:autorelog:delay:retries (example: bot:autorelog:10:5)
- If the amount of retries is set to -1, the bot will indefinitely try to reconnect
- Fixed bugs in the input-output system (ConsoleIO)
- New bot: xauth (suggested by maski)
- (Wait 6 seconds after login and send "/login password".)
- (Usage: bot:xauth:mypassword)
- Code cleaned, optimized and modified to allow restarting the client without leaving the console
- Fixed a crash which occurred if pressing Enter while some output was being written on screen
- Improved Bot API : Bots can receive kick messages
- Improved Bot API : Bots can restart the client & reconnect to the server
- New bot : AutoRelog, allows to automatically reconnect on some kick messages
- New command : /reco, allows to disconnect & reconnect manually at any moment
- 1.4.7 protocol is now fully implemented without dirty workarounds.
- Stable release. Yay! (works flawlessly and fluently).
- All packets including chat messages are now handled
- Need to reduce client-side lag on joining the server (to-do)
- FINALLY! Online-mode is back and working!
- Need to better handle new packets (to-do)
- Updated for the new login protocol Specs, compatible with 1.4.7
- Worked to implement Online-Mode encryption, but without success yet.
- App size of 28ko.
- New bot: Log! It writes chat messages in a file with date and time for each message
- Created a class allowing simultaneous console input and output without breaking user input
- Fixed a spelling mistake (connexion / connection, thanks to bearbear12345 for pointing that out)
- Too long messages are splitted into several messages (thanks to Elvang for the idea)
- App size of 24ko.
- The program can handle multiple bots at the same time
- Improved the AntiAFK bot : You can specify a custom amount of time between each /ping
- New bot : Alerts! It beeps on words you specify in a file and highlight them in the chat.
- App size of 22ko.
- Fixed some bugs here and there
- Supports offline mode for the minecraft account: When password is asked, simply type "-".
- Supports Mojang.com migrated accounts (thoses with email adress as login)
- Code is correctly commented and functions are documented as well.
- Added a bot API, and 2 built-in bots : AntiAFK, Hangman game (disabled by default)
- Added a 5-seconds delay in single command mode before sending the command
- Initial release
- App size of 16ko. Uses only 8MB of RAM!
- Support for 1.2.5 Minecraft servers, with or without online mode
- Send text messages and commands to the server
- Receive messages from server with text coloration
- Command-line usage for automated scripts (batch...)
All the downloads are provided under CDDL-1.0.
Command-Line usage :
• Auto-connect : MinecraftClient.exe username password server
This will automatically connect you to the chosen server.
• Single command usage : MinecraftClient.exe username password server "/mycommand"
This will automatically send "/mycommand" to the server, and then the client will automatically leave the server and close.
Useful for use in batch command sending scripts.
Protip™ : Don't want to specify the password, username and/or server ?
Juste write "" instead in the command-line, and you'll have to enter them manually.
Command-lines for versions lower than 1.6.0 :
• Auto-connect with bot loading : MinecraftClient.exe username password server bot:botname
Available bots : alerts, antiafk, hangman, pendu (hangman in french)
You will still be able to send and receive chat messages when a bot is loaded.
• Auto-connect with multiple bot loading :
MinecraftClient.exe username password server bot:botname bot:botname bot:botname (etc.)
How to use the bots :
All bots are disabled by default. To enable/use a bot please read the following :
If you are using MCC 1.6.0 or newer, simply edit the INI configuration file and you're done!
An updated guide with explanations relevant to your version can be found in README file.
Below are the instructions for versions lower than 1.6.0
AnfiAFK : sends a /ping command every 60 seconds in order to stay non-AFK.
Just load it with the bot:antiafk argument and you're done! You can configure the time between each /ping with bot:antiafk:time (10 = 1 second ; 600 = 1 minute etc. Time can't be less than 10. Example : bot:antiafk:600)
Hangman : A game in wich the players have to discover a word.
Loaded with the bot:hangman argument.
How to start the game :
Send a "start" private message to the bot (/tell <botname> start)
The bot only obeys to the Console and usernames written in bot-owners.txt.
You can stop the game at any moment with /tell <botname> stop
How to play :
Just provide some letters in the chat, in a single-letter message.
The game will end if no letter has been tried for 5 minutes, or if there is no more lives left.
How to add or remove words :
Just edit words.txt, one word per line.
words.txt already contains 15 words (sample, minecraft-related).
If you don't use the hangman bot, you can safely delete bot-owners.txt, words.txt, mots.txt.
Pendu : The same game as hangman, but in french. Loaded with the bot:pendu argument.
Words are stored in a different file (mots.txt) but apart from this, it works the same way.
As I am french I already added 322 words in the french file version.
Alerts : This bot alerts you on configurable words that appear in the chat, and highlight them.
Words can be configured in alerts.txt. One word per line, case insensitive.
If you wish not to be alerted on some other words, provide them in alerts-exclude.txt.
Eg Yourname to alerts.txt and Yourname> to alerts-exclude.txt, to avoid beeps when you are talking.
The two files contain some sample words for easily getting started.
Use the bot:alerts argument to load the bot.
If you don't use the Alerts bot, you can safely delete alerts.txt and alerts-exclude.txt.
Log : Writes chat messages in a file (chat-<servername>.log) with date and time for each message.
Just load it with the bot:log argument. You can configure some filters :
bot:log:all -> All the received text will be saved
bot:log:messages -> Public messages and whispers (/tell) are saved [default]
bot:log:chat -> Only chat messages are saved
bot:log:private -> Only whispers (/tell) are saved
AutoRelog : Automatically re-join the server on user-defined kick messages.
Edit kickmessages.txt to specify which words in kick messages will trigger a reconnect, one per line.
Eg if typing "restarting" in the file, the console will reconnect for "Server is restarting!" kick message.
Note: A "Connection has been lost" kick message is generated when connection is lost.Once the file is ready, load the bot using bot:autorelog argument and you're done!
You may specify a delay in seconds before re-joining, and amount of reconnect attempt if the first one fails.
Eg bot:autorelog:30:5 for 30 seconds & 5 attempts. (default: 10 & 3). -1 stands for unfinite attempts.
I used the following documentation to write this program :
Some parts of code were taken from the following projects :
- BouncyCastle for network CFB-8 encryption for mac and linux under Mono
- DotNetZip for handling Zlib network compression
- Biko Library for handling http proxies
Also, early versions of this project used parts of code written by gamer931215 and available here. He wrote a client class for offline mode servers running minecraft 1.0 which helped me a lot getting started.
Finally, even though I'm the main author of Minecraft Console Client, many features would not have been possible without the help of talented contributors :
Ideas : ambysdotnet, Awpocalypse, azoundria, bearbear12345, bSun0000, Cat7373, dagonzaros, Dids, Elvang, fuckofftwice, GeorgH93, initsuj, JamieSinn, joshbean39, LehmusFIN, maski, medxo, mobdon, MousePak, TNT-UP, TorchRJ, yayes2, Yoann166, ZizzyDizzyMC. Bug Hunters : 1092CQ, ambysdotnet, bearbear12345, c0dei, Cat7373, Darkaegis, dbear20, DigitalSniperz, doranchak, drXor, FantomHD, gerik43, ibspa, iTzMrpitBull, JamieSinn, k3ldon, KenXeiko, link3321, lyze237, mattman00000, Nicconyancat, Pokechu22, ridgewell, Ryan6578, Solethia, TNT-UP, TorchRJ, TRTrident, WeedIsGood, xp9kus, Yoann166. Code contributions : Allyoutoo, Aragas, Bancey, bearbear12345, corbanmailloux, dbear20, dogwatch, initsuj, JamieSinn, justcool393, lokulin, maxpowa, medxo, Pokechu22, TheMeq, v1RuX, ZizzyDizzyMC.
hank you very much for your contributions. You are awesome!
Also see code contributions graph on GitHub.
Buy me a coffee?
I've spent countless hours working on this project during several years. If MCC is useful to you, you might want to contribute to its development:
Code contributions, bug reports and any kind of comments are also highly appreciated
Other cool stuff you might be interested in: Minecraft Server Dashboard by bearbear12345
Disclaimer : Even if everything should work, I am not responsible of any damage this app could cause to your computer or your server. This app does not steal your password. If you don't trust it, don't use it or check & compile the source code. Also, remember that when you connect to a server with this program, you will appear where you left the last time, so you can die if you log in in an unsafe place on a survival server.