What is TrainingBot?#
A bot profile and combat simulation system for crystal, nethpot, melee, diamondpot and training scenarios.
TrainingBot is an advanced Minecraft training bot plugin using Citizens, combat profiles, AI modes, menus and optional practice integration.
Product purpose, target audience, main systems, dependencies and quick links.
A bot profile and combat simulation system for crystal, nethpot, melee, diamondpot and training scenarios.
Practice servers, PvP trainers and bot research environments that need configurable combat opponents.
Practice, PvP, training and bot duel servers.
Installation gets the plugin to boot. First Setup prepares it for production use.
Recommended first configuration pass after the plugin has generated its files.
Commands, permissions, and usage examples.
/botCommandOpens the Bot Control Panel
trainingbot.use
/bot
/trainingbotCommandAdmin bot command
trainingbot.admin
/trainingbot
Permission nodes are based on plugin.yml. Assign admin and bypass permissions carefully.
/lp group admin permission set trainingbot.admin true/lp group default permission set trainingbot.use trueConfiguration YAML files below contain short bundled default excerpts, not full files. Message YAML is documented only in Messages & Language.
Main runtime settings, license, modules, limits, storage and feature behavior.
config.yml. The generated file contains more options than this docs excerpt.# ...
# Short documentation excerpt from config.yml.
# This is not the complete YAML file.
# Lines before and after this preview are omitted from the docs.
# ...
# Training Bot Configuration
debug: false
license-key: "none"
# Database Configuration
database:
method: "SQLITE" # Options: SQLITE, MYSQL
mysql:
host: "localhost"
port: 3306
database: "trainingbot"
username: "root"
password: ""
use-ssl: false
# Color Format: MINIMESSAGE or LEGACY
color-format: "LEGACY"
# Black-Listed Worlds
blacklisted-worlds:
- "blacklisted_world_example"
# Bot names that are not allowed after color parsing/stripping.
# If a custom bot name matches one of these values, the bot falls back to the owner/display name.
bot-name-blacklist: []
# Auto Despawn Settings
auto-despawn:
on-death: true
on-quit: true
on-teleport: true
max-distance: 50.0
# Whether bot/NPC death messages should be broadcast to chat.
# ...
# More options continue in the generated plugin YAML file.
# Open plugins/<plugin-folder>/config.yml to review every setting.
# ...Top-level keysdebug, license-key, database, color-format, blacklisted-worlds, bot-name-blacklist
Production handlingBack up this file, edit the generated copy under the plugin folder, then run the product reload command or restart for startup-level settings.
Translation and formatting guidance based on the product's bundled resources.
This product ships messages.yml. Edit the generated copy in the plugin folder, keep placeholders intact, then reload the plugin command or restart for startup-level changes.
<red>Error message</red>
&cLegacy color message
{player} {amount} {reason}messages.yml. The generated file contains more message keys than this docs excerpt.# ...
# Short documentation excerpt from messages.yml.
# This is not the complete YAML file.
# Lines before and after this preview are omitted from the docs.
# ...
prefix: "&8[&6TrainingBot&8] &r"
no-permission: "&cYou don't have permission to do this."
spawned: "&aBot spawned!"
despawned: "&cBot despawned!"
invalid-number: "&cInvalid number!"
totem-set: "&aTotem limit set to &e<amount>&a."
teleported: "&aBot teleported to your location."
mode-changed: "&aMovement mode changed to &e<mode>&a."
only-players: "&cOnly players can use this command."
remove-usage: "&cUsage: /trainingbot remove <player>"
player-not-found: "&cPlayer not found."
bot-removed: "&aBot of &e<player> &aremoved."
enabled: "&aEnabled"
disabled: "&cDisabled"
attack-type-select: "&eLeft-Click &7to select"
attack-type-selected: "&aSelected"
attack-type-display:
normal: "&fNormal"
w-tap: "&6W-Tap"
crit-spam: "&cCrit Spam"
strafe: "&bStrafe"
crystal-pvp: "&dCrystal PvP"
nethpot: "&8Nethpot"
diamondpot: "&bDiamondPot"
beast: "&4Beast"
ai-crystal-pvp: "&5AI Crystal PvP"
item-material-display:
none: "&7None"
netherite: "&8Netherite"
diamond: "&bDiamond"
iron: "&fIron"
gold: "&6Gold"
chainmail: "&7Chainmail"
leather: "&6Leather"
# ...
# More options continue in the generated plugin YAML file.
# Open plugins/<plugin-folder>/messages.yml to review every setting.
# ...GUI cards describe the actual menus available in this product build.
Staff editor for a selected bot profile, including behavior toggles, combat settings and profile management actions.
Editing:Staff bot browser for opening, editing and managing saved bot profiles across pages.
Admin Bot List | PageCombat behavior selector that controls how a bot attacks and which PvP mode logic it uses.
Select Attack TypeEquipment editor for saving the bot inventory, armor and combat items used by the active profile.
Bot InventoryBot control panel for reach, movement, totems, shields, potion behavior and the main profile controls.
Bot Control PanelDeletion confirmation screen for preventing accidental removal of saved bot profiles.
Confirm Deletion?Crystal PvP settings menu for crystal-specific bot behavior such as placement, pressure, combat tuning, and Aim Noise (configurable jitter for realistic aiming).
⚔ Crystal PVP SettingsDiamondPot settings menu for potion-combat behavior, healing rhythm and mode-specific bot tuning.
DiamondPot SettingsNethPot settings menu for Netherite potion practice behavior and mode-specific profile values.
⚗ Nethpot SettingsPotion loadout menu for selecting which potion effects or potion items the bot profile should use.
§8Set the PotionsAdmin preset menu for applying saved bot templates instead of rebuilding every profile by hand.
Admin PresetsProfile selector used to choose which saved bot profile will be edited or spawned.
Select a ProfileProfile settings menu for saved bot metadata, difficulty and reusable profile options.
Profile SettingsIntegrate TrainingBot into your own plugins using the public API surface.
TrainingBot.getInstance().getApi() or through the Bukkit Services Manager.spawnBot(Player owner, String profile, Location loc)MethodBotSession
Spawns a bot for the specified player using a saved profile.
destroyBot(Player owner)Methodboolean
Despawns and removes the bot session for the player.
isBotSpawned(Player owner)Methodboolean
Checks if the player currently has an active bot session.
setBotTarget(Player owner, LivingEntity target)Methodvoid
Forces the bot to target a specific entity.
setMovementMode(Player owner, MovementMode mode)Methodvoid
Changes the bot's movement logic (STATIONARY, FOLLOW, etc).
applyGlobalProfile(Player owner, String preset)Methodvoid
Applies a global admin preset to the player's active bot.
Storage docs explain YAML, SQLite, MySQL, MariaDB and backup expectations when supported.
TrainingBot config exposes SQLITE and MYSQL under database.method, while profiles.yml stores bot profile data.
Each integration explains purpose, required/optional status, setup steps and troubleshooting.
Purpose: Provides NPC entities used by bot or combat punishment workflows.
Troubleshooting: If NPCs or bots fail, check Citizens startup errors, skin fetch warnings, disabled worlds and pathfinder restrictions.
Purpose: Connects this product to the practice and bot training ecosystem.
Troubleshooting: If queues or duels do not bridge, confirm the arena/kit exists and both plugins agree on the same mode/profile names.
Purpose: Provides the runtime layer used by AI-driven bot behavior and combat inference.
Troubleshooting: If bots do not fight correctly, test the profile directly in TrainingBot before testing the external bridge.
Ready-to-follow scenarios reduce support tickets and make the product easier to configure.
Use stricter cooldowns, staff visibility, abuse protection and clear player feedback for high-conflict gameplay.
Create profiles or kits, verify arenas, test matchmaking, and record the exact player flow staff should use.
Create profiles or kits, verify arenas, test matchmaking, and record the exact player flow staff should use.
Use conservative defaults, SQLite or simple file storage, readable messages and relaxed limits for community servers.
Create profiles or kits, verify arenas, test matchmaking, and record the exact player flow staff should use.
Start with console logs, config diffs, plugin version and reproduction steps.
Confirm Citizens loads first, the target world is enabled and the bot profile has a valid spawn location, skin and equipment set.
Check combat mode, target selection rules, Citizens navigation, disabled worlds and whether the bot is in the same arena/world as the target.
Tune strafe, speed and follow distance values for the selected profile. Also confirm the arena floor is pathfinder-friendly and not blocked by region flags.
Verify the profile uses a crystal-capable mode, has crystals/obsidian configured and is running in a world where end crystals can be placed.
Use the save command/menu after equipping the bot, then verify the profile YAML updates on disk. Check file permissions if it reverts after restart.
Check profile name casing, YAML indentation and required fields such as mode, kit and difficulty. Remove broken partial profiles and resave from the editor.
Short answers for common buyer and staff questions.
Yes. TrainingBot includes a region-aware scheduler that detects Folia at runtime and delegates tasks to the appropriate region or entity scheduler.
Yes. v1.4.0 introduced GUI optimizations for Bedrock Edition players connecting through Geyser and Floodgate.
The checked-out source declares plugin API baseline 1.21 and compiles to Java 21 bytecode. The POM references Paper API build 26.3.207; these values do not confirm the exact Minecraft server releases supported by a published binary.
TrainingBot supports both SQLITE and MYSQL. Profile data is also backed up to YAML files.
Yes. Edit messages.yml and reload or restart according to the setting changed.
Product release notes grouped by version. Major public changes are written for buyers and server owners, not as raw commit logs.
Historical release notes below are retained as published. The local source checkout is version 1.7.3, targets Java 21 bytecode, references Paper API build 26.3.207 and declares plugin API 1.21; verify server compatibility against the binary being installed.
Minecraft 26.1.2 and Quality of Life update.
Combat mode and movement update.
Attack type foundation release.
Compatibility and admin menu update.
Bot behavior and config update.
Send enough information to reproduce the issue.
Plugin: TrainingBot
Plugin version:
Server version:
Java version:
Server software:
Database type:
Installed hooks:
Error log:
Steps to reproduce:
Expected behavior:
Screenshots/video: