- Github
- Discord
- Official Website
- Our Minecraft Servers
- Search Official Support Documentation
- View all versions
MBC (Minecraft Bot Client) is a pure-protocol Minecraft bot client written in Python. No game assets required β it connects to servers, sends chat messages, and runs commands directly. Features include a bilingual UI, SRV record resolution, vanilla-style command autocomplete, auto-spam, session logging, and more.
- π All versions supported β Auto-detects the server protocol; any Minecraft version between 1.8 and 26.2
- π SRV records β Auto-resolves
_minecraft._tcp.<domain>SRV records, no need to specify port - π£οΈ Bilingual UI β Chinese / English, picked automatically from the exe suffix (
-zh/-en) - β¨οΈ Vanilla-style autocomplete β Type
.or/for a grey inline preview,Tabto complete,β/βor mouse wheel to cycle,Escto clear - π¬ Chat & server commands β Plain text for chat,
/prefix for server commands - ποΈ
.client commands β.help.esc.connect.respawn.log.walk.eat.spam.config.exit(legacy//prefix still works) - π€ Human-like actions β Head turns and arm swings with random delays and BΓ©zier trajectories, mimicking a real mouse to bypass common anti-cheat checks
- π€ Multi-bot mode β Launch any number of bots from the config (20, 100, ...) with random usernames, staggered joins and automatic
/registeror/loginafter joining - πΆ Random auto-walk β Random roaming or custom waypoints; stops automatically on damage/death
- π Auto-eat on damage β Attempts to eat when health drops below a threshold, toggleable
- π Proximity & path alerts β Announces nearby players and missing blocks ahead; invisible to other players
- π¨ Auto-spam β Configurable rate and message list, persisted in config
- π Session logging β Auto-creates timestamped
.logfiles in thelog/folder when enabled - π Remote version check & announcements β Shows remote txt content 1:1 on startup; skip with
fast_start - β‘ Fast start β Enable
fast_startin config to skip network checks and reduce resource usage - π Offline mode β Designed for
online-mode=false(cracked/offline) servers - π» Cross-platform β Windows / macOS / Linux native builds. Autocomplete, history and mouse-wheel input work on both the Windows console API and POSIX terminals. Each platform is built on its own OS with
python build.py
Download the package for your platform from the releases/ directory β windows/en.zip, macos/en.zip or linux/en.zip β and extract it anywhere. Keep config.en.json next to the client binary.
- Windows: double-click
MinecraftBotClient-en.exe - macOS / Linux:
chmod +x MinecraftBotClient-enonce, then./MinecraftBotClient-en
On macOS an unsigned binary may be blocked by Gatekeeper. Right-click the binary and choose Open, or run xattr -d com.apple.quarantine MinecraftBotClient-en before launching.
pip install -r requirements.txt
python main.pyWindows, macOS and Linux all work with Python 3.8 or newer.
python build.pyPyInstaller cannot cross-compile, so run the script once on each operating system you want to ship. Artifacts go into releases/<version>/<platform>/ β windows, macos and linux β each holding zh/ and en/ folders (binary + config + README) plus zh.zip and en.zip packages. macOS builds target the architecture of the Python running the script, so use a universal2 or Intel Python if you need to cover older Macs.
{
"version": "2.1.0",
"username": "",
"server_address": "localhost:25565",
"minecraft_version": "1.8.9",
"language": "en",
"fast_start": false,
"log_enabled": false,
"spam_enabled": false,
"spam_rate": 1.0,
"spam_messages": ["Hello!", "Anyone there?", "GG"],
"command_autocomplete": true,
"auto_eat": true,
"auto_eat_health_threshold": 10,
"auto_walk": false,
"auto_walk_waypoints": [],
"stop_walk_on_damage": true,
"proximity_alerts": true,
"proximity_distance": 5.0,
"human_actions": true,
"human_action_interval_min": 2.0,
"human_action_interval_max": 7.0,
"multi_bot_enabled": false,
"bot_count": 10,
"bot_name_prefix": "Bot",
"bot_name_digits": 4,
"bot_join_delay": 0.5,
"bot_auth_enabled": false,
"bot_auth_mode": "register",
"bot_auth_password": "",
"bot_auth_delay": 1.5,
"bot_auth_register_command": "/register {password} {password}",
"bot_auth_login_command": "/login {password}"
}| Field | Description |
|---|---|
username |
Player name, leave empty for a random one |
server_address |
Server address, SRV domains supported (e.g. mc.example.com) or explicit port (e.g. mc.example.com:25565) |
minecraft_version |
Server version, any value between 1.8 and 26.2 |
language |
UI language: zh / en |
fast_start |
Skip version/announcement checks on startup |
command_autocomplete |
Toggle command autocomplete |
auto_eat / auto_eat_health_threshold |
Auto-eat on damage toggle and health threshold |
auto_walk / auto_walk_waypoints |
Auto-walk toggle and custom waypoints (relative coordinates) |
stop_walk_on_damage |
Stop walking automatically on damage/death |
proximity_alerts / proximity_distance |
Nearby player alerts toggle and distance |
human_actions / human_action_interval_min/max |
Human-like actions toggle and interval seconds |
log_enabled |
Enable logging by default (toggle at runtime with .log on) |
spam_enabled / spam_rate / spam_messages |
Auto-spam toggle, rate and message templates |
multi_bot_enabled / bot_count |
Multi-bot mode and how many bots to launch (e.g. 20, 100) |
bot_name_prefix / bot_name_digits |
Random username prefix and the number of random digits appended |
bot_join_delay |
Seconds between bot connections |
bot_auth_enabled / bot_auth_mode |
Auto-login toggle and mode: register, login or both |
bot_auth_password |
Password used in the auth commands |
bot_auth_delay |
Seconds to wait after a bot joins before sending the auth command |
bot_auth_register_command / bot_auth_login_command |
Command templates; {password} is replaced with bot_auth_password |
| Command | Description |
|---|---|
.help |
Show all commands and open the help website |
.esc |
Leave the server but keep the client open (standby mode) |
.connect |
Reconnect in standby mode |
.exit |
Disconnect and close the client |
.respawn |
Send a respawn packet after dying |
.log on/off |
Toggle logging (written to the log/ folder with timestamps) |
.spam on/off |
Toggle auto-spam |
.spam rate <n> |
Set messages per second |
.spam add <msg> / .spam remove <i> / .spam list / .spam clear / .spam status |
Spam message management |
.walk start/stop |
Start/stop random auto-walk |
.walk add <x,y,z> |
Add a custom waypoint (relative coordinates, comma separated) |
.walk list / .walk clear |
List/clear waypoints |
.eat on/off |
Toggle auto-eat on damage |
.config <key> [val] |
View or modify any config key (ex: .config fast_start true) |
| Command | Description |
|---|---|
.status |
Show how many bots are connected |
.say <text> |
Broadcast a chat message from every connected bot |
.exit |
Disconnect all bots and quit |
- Type
.or/to see a grey inline preview of the command Tabaccepts the preview; pressTabrepeatedly to cycle suggestionsβ/βarrow keys or the mouse wheel cycle suggestionsEntersends,Escclears the input,βalso browses command history
Type /list, /msg player hello, /tp ... etc., same as in-game.
Sent as a chat message directly.
Set multi_bot_enabled to true and pick a bot_count (for example 20 or 100). The client then:
- Probes the server protocol once and reuses it for every bot
- Generates unique random usernames from
bot_name_prefix+bot_name_digits(e.g.Bot4821) - Connects the bots one by one with
bot_join_delayseconds between joins - When
bot_auth_enabledis on, each bot waitsbot_auth_delayseconds after joining and then sends the configured/registerand/or/logincommand withbot_auth_passwordβ the command templates are fully editable so it works with AuthMe or any other login plugin
The console switches to swarm control: .status, .say <text> and .exit. Every bot keeps its own connection, keepalive handling and disconnect state, and bots that fail to connect are reported and skipped.
Use this only on servers you own or are allowed to test β mass-joining public servers usually violates their rules.
On startup the client fetches and displays the txt content 1:1:
- Version check:
https://shit.pub/s/developer/minecraft/client/MinecraftBotClient-MBC/verify/txt.txt - Announcements:
https://shit.pub/s/developer/minecraft/client/MinecraftBotClient-MBC/announcement.txt
Enable fast_start to skip these checks.
Each build is placed in its own folder under releases/<version>/<platform>/:
releases/
βββ 2.1.0/
βββ windows/
β βββ zh/ MinecraftBotClient-zh.exe config.zh.json README.zh.md
β βββ en/ MinecraftBotClient-en.exe config.en.json README.en.md
β βββ zh.zip
β βββ en.zip
βββ macos/
β βββ zh/ MinecraftBotClient-zh config.zh.json README.zh.md
β βββ en/ MinecraftBotClient-en config.en.json README.en.md
β βββ zh.zip
β βββ en.zip
βββ linux/
βββ ...
Releases 1.3.1 and older keep the original Windows-only layout without a platform folder.
MinecraftBotClient/
βββ main.py # Entry point (POSIX console setup + signal handling)
βββ build.py # Per-platform build script (versioned output, bilingual)
βββ requirements.txt # Python dependencies
βββ README.md # This file
βββ src/
β βββ i18n.py # Bilingual dictionary + t() translation function
β βββ logger.py # SessionLogger for per-session log files
β βββ client/
β β βββ minecraft_bot_client.py # Main client logic (connect/chat/commands/walk/alerts)
β βββ network/
β β βββ connection_manager.py # Minecraft protocol (handshake/login/chat/keepalive/SRV/human actions)
β β βββ version_checker.py # Remote version check + announcements
β βββ features/
β β βββ spam.py # Auto-spam manager
β βββ settings/
β β βββ settings_manager.py # Config read/write + persistence
β βββ ui/
β βββ console_ui.py # Console UI (ANSI colors, autocomplete, mouse wheel; Windows console API + POSIX terminal)
βββ releases/ # Build artifacts (versioned)
| Range | Examples | Protocol ID |
|---|---|---|
| 1.8 | 1.8, 1.8.9 | 47 |
| 1.9 - 1.12 | 1.9, 1.10.2, 1.11, 1.12.2 | 47 - 340 |
| 1.13 - 1.16 | 1.13.2, 1.14.4, 1.15.2, 1.16.5 | 340 - 754 |
| 1.17 - 1.18 | 1.17, 1.18.2 | 755 - 758 |
| 1.19 | 1.19, 1.19.2, 1.19.4 | 759 - 760 |
| 1.20 | 1.20 - 1.20.6 | 763 - 766 |
| 1.21 | 1.21 - 1.21.8 | 767 - 773 |
| 25.x - 26.x | 25.1 - 26.2 | 774 - 777 |
Any unlisted version within a range is auto-mapped to the nearest known protocol ID; the actual server protocol is probed before login.
| Library | Purpose |
|---|---|
requests |
HTTP requests (version check, announcements) |
cryptography |
AES/RSA encryption (online-mode login flow, not triggered in offline mode) |
dnspython |
SRV record resolution |
pyinstaller |
Packaging into exe |
- This client runs in offline mode. Use it on servers with
online-mode=false - Please note that the official account mode is still under development; please be patient or subscribe to our GitHub repository
- Help website: https://shit.pub/s/developer/minecraft/client/MinecraftBotClient-MBC/MBC/
- For testing and development purposes only
MBC is released under the GNU General Public License v3.0.