Skip to content
carragrivePublic
forked from crpmax/mc-bots

About

A simple app for stress testing Minecraft servers with bots

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

About this fork

This fork of mc-bots is a scriptable test client for Minecraft 26.3 and newer, used to drive plugin tests. It changes the following:

  • Targets Minecraft 26.3 and needs Java 25. Each JAR speaks one protocol and is named after it, for example mc-bots-<version>-mc26.3.jar.
  • Removes Microsoft account login (-o); bots use offline accounts.
  • Takes --nicks names in file order, so each bot gets its own name.
  • -j runs join steps in order, separated by &&: chat text, /commands or the actions below. The same actions work in the console, for example !click 3.
  • --join-delay <ms> sets the minimum time between chat steps (default 1500).
  • --step-timeout <ms> sets how long !await-* steps wait (default 30000).
  • --duration <seconds> runs headless: bots disconnect and the program exits that long after all bots connect. It exits with code 1 if any step failed.
  • Logs lines for test scripts: <bot> connected, <bot> opened GUI "<title>", <bot> clicked GUI slot <n>, <bot> finished join steps and <bot> step failed: ....
  • Locks and checksum-verifies its dependencies. Download the JAR from Releases or build it with ./gradlew build.
Action Effect
!wait <ms> Pause
!await-chat <text> Wait for a chat or system message containing the text, received after the previous match
!await-gui [title] Wait for an open GUI, optionally one whose title contains the text
!click <slot> [left|right|shift] Click a slot of the open GUI (raw slot number, from 0)
!close Close the open GUI
!hotbar <0-8> Select a hotbar slot
!use Use the held item
!move <x> <y> <z> Move by the given offsets
!quit Disconnect
java -jar mc-bots-<version>-mc26.3.jar -s 127.0.0.1:25565 -c 1 --duration 60 \
  -j "/menu&&!await-gui Shop&&!click 13&&!await-chat Purchased"

Minecraft bot stress tester

🤖 A simple open source app written in Java used for stress testing Minecraft servers with bots (fake players).
💥 It can be also used to test plugins or minigames.
✔️ The MC version of the bots is 1.21.7 (supports server 1.21.8) For older MC versions please look in the releases.

🆒 Features

  • ✅ Connect as many bots as you want
  • ✅ Use SOCKS4 or SOCKS5 proxies from file or URL
  • ✅ Receive colored or noncolored chat
  • ✅ Set connection delay
  • ✅ Set messages or commands on join
  • ✅ Generate random or real looking nicknames or load from file
  • ✅ Online (premium) account support with login using Microsoft
  • ✅ Control all or selected bots

📖 Usage

Minimal Java version: 17
Use of pre-compiled jar from releases:
java -jar mc-bots.jar -s <server address> [arguments]
When running, you can write a chat message to the terminal to send it by all bots.

🧪 Example

java -jar mc-bots-1.2.17.jar -s 192.168.0.189:25565 -p BOT_ -d 4000 5000 -c 30 -r
This will connect 30 bots to server at 192.168.0.189:25565 with delay 4000-5000 ms and will use real-looking nicknames prefixed with BOT_

⚡ Options

-c <count> The count of bots to connect, default is 1
-d <min> <max> Set the minimum and maximum connection delay range in ms, default is 4000-5000
-j <message> Messages or commands to send on join, separated by &&, does not work with -m or -x option
-p <prefix> Custom bot nickname prefix eg. BOT_
-r Generate real looking nicknames instead of random ones
-n Do not use color in terminal - useful when the terminal does not support it
-m Minimal run - do not use any listeners, will not receive chat, useful for large amounts of bots
-x The most minimal run - No listeners, no control, no chat - useful for large amounts of bots for better performance
-t <type> Set proxy type - SOCKS4 or SOCKS5
-l <path> Set proxy list file
-g Try to simulate gravity by falling down
-o Use online (premium) account (login with Microsoft OAuth)
-ar <delay> Set auto-respawn delay (default is 100 ms, set to -1 to disable)
--nicks <file> Set nicknames file

Commands

Commands can be typed to the console. They are prefixed with . or !. Without the prefix it will be sent as a chat message!
.list or .ls - list all connected bots
.control <nick> or .ctrl <nick> - select one or multiple bots to control
.exit <limit> or .leave <limit> - disconnect all or specified number of bots

⚠ DISCLAIMER

This app is made for educational and testing purposes only.
This app can be used like spambots.
I am not responsible for any abuse.

About

A simple app for stress testing Minecraft servers with bots

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages