pvp training bots

pvp training bots

PvP practice bots for Paper servers

12 downloads 0 followers

banner-main.png

PvP practice bots for Paper servers. The bots look like players and fight like them too. They sprint-hit and W-tap between swings, jump for crits, and keep spacing at max reach. They back off while their own swing recharges and yours is ready. Players pick a bot, a difficulty and a kit from a menu and start fighting. They don't need to know a single command.

Requirements: Paper 1.21.9 or newer (tested on 1.21.11 and 26.1.2), Java 21+. No other plugins needed.

SHOWCASE

<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/hTcZ0CaNzVQ" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>

banner-features.png

Every bot is a vanilla Mannequin entity with a real player skin, so there are no fake players in the tab list and no packet tricks. The plugin moves and aims the Mannequin itself every tick.

  • Aim turns at a capped speed with a bit of random jitter, the way a mouse does. Easy bots are slow to track you, Insane bots barely miss.
  • Melee bots sprint-hit, W-tap, plan jump crits and hit on the way down. They strafe in long arcs at range and switch to ADAD up close or when you draw a bow.
  • Hit selecting: when the bot's swing is recharging and yours is charged, it steps out of your reach instead of trading.
  • Archers lead their shots based on how you are moving and aim higher for arrow drop.
  • Shield users block when you're charged up and drop the shield to swing. An axe disables the shield for 5 seconds, the same as for a player.
  • Bots eat golden apples when low, pearl after players who run, and won't walk into lava or off a high drop.

banner-bots.png

The plugin ships with eleven bots. Each one is a YAML file in bots/, so you can edit them, delete them or add your own.

Bot Style
Rookie Stone sword, leather, slow, no crits. Good for learning to combo.
Swordsman Diamond sword and iron armor. A plain baseline to measure yourself against.
Knight Axe and shield. Blocks your charged hits, breaks your shield.
Archer Kites from 10 to 18 blocks, leads its shots.
Berserker Netherite axe, almost no armor, gets stronger as it loses health.
Skyfall Wind charge at its own feet, then a mace smash on the way down.
Duelist Netherite sword, protection armor, good spacing, pearls after you.
FlameFrags Fire bow at mid range, fire sword when rushed.
Wemmbu 40 HP tank with axe, shield, end crystals and mace smashes.
??? 60 HP boss. Half invisible, blinks behind you, enrages at low health.
Training Dummy Never fights back, never dies. Used by the dummy mode.

Abilities are switched on per bot: bow, shield, crystals, wind-mace, blink, pearls, gapples, enrage and hurt-resistance. Each has its own cooldown and ranges. Crystal explosions never break blocks.

banner-modes.png

Duel. One bot, a 3-2-1 countdown, then you fight. When the round ends you get a summary in chat: time, hits, crits, damage dealt and taken, best combo, average and max reach, and top CPS. The score carries over between rounds (3-1 and so on). Clickable [REMATCH] [MENU] [LEAVE] buttons follow, or the next round starts on its own if you turned on auto rematch.

Wave survival. Bots keep coming. Every wave adds more of them and gives them more health. You get some health back between waves. Pick one bot or a random mix, and try to beat your best wave, which is saved per player.

Training dummy. A target for practicing combos, reach and clicking. It can stand still, strafe, circle you, back away or jump. You choose its armor (none up to netherite) to see your real damage, and you can turn knockback off. The action bar shows CPS, reach, combo, last hit and DPS.

During any fight the action bar shows a live HUD, and damage numbers float over the bot. Only you see them.

banner-kits.png

Kits. Five come with the plugin: Sword, Axe and Shield, Mace, Archer and Netherite Pot. They are defined in kits.yml with slots, enchantments, potions and leather colors. Players can also fight with their own inventory.

When a kit is in use, the player's real inventory, armor, XP, health, effects, gamemode and position are written to disk before anything changes. They come back when the session ends. If the server crashes, the player is kicked or they die, everything is restored on respawn or on the next join. The kit is given again before every round, so food and potions refill. Kit items can't be dropped, put in chests, item frames or armor stands, or mixed with picked-up items.

Arenas. Stand where the player should spawn and run /pvpbots arena create <name>, then stand where the bot should spawn and run /pvpbots arena setbot <name>. One session uses an arena at a time. Players can pick a specific arena, take the first free one, or fight right where they stand (you can turn that off).

A killing blow ends the round instead of killing the player, so there's no death screen and nothing drops. A totem of undying in either hand still pops normally.

banner-menu.png

/pvpbots opens the menu. From there a player can:

  • set up a duel, wave run or dummy session and press START;
  • browse bots with their description, health, damage, speed, reach and abilities;
  • pick a difficulty and see what it changes;
  • pick a kit, right click to look inside it, or keep their own inventory;
  • pick an arena and see which ones are in use;
  • toggle the HUD, countdown, auto rematch, chat summary and damage numbers.

Picks and settings are stored in the player's own data, so they're still there after a restart and the plugin keeps no database.

banner-commands.png

Command Permission Description
/pvpbots pvpbots.use Opens the menu
/pvpbots duel [bot] [difficulty] [kit] pvpbots.mode.duel Starts a duel, skipping the menu
/pvpbots waves [difficulty] [kit] pvpbots.mode.waves Starts wave survival
/pvpbots dummy [pattern] pvpbots.mode.dummy Spawns the training dummy
/pvpbots rematch pvpbots.use Starts the next round
/pvpbots leave pvpbots.use Ends the session and gives everything back
/pvpbots settings pvpbots.use Opens player settings
/pvpbots kits pvpbots.use Opens the kit list
/pvpbots arena <create|setplayer|setbot|delete|tp|list> [name] pvpbots.admin Manages arenas
/pvpbots stop <player> pvpbots.admin Ends someone else's session
/pvpbots list pvpbots.admin Shows who is training
/pvpbots reload pvpbots.admin Reloads config, messages, bots, kits and arenas

Aliases: /ptb, /pvpbot, /trainbot. Everyone has the player permissions by default. pvpbots.anywhere lets a player fight outside an arena. A bot or kit can also require its own permission, set in its file.

banner-config.png

  • config.yml has the session rules (countdown, rematch delay, max distance, session limit, forced survival), kit protection, wave scaling, HUD layouts, damage number format, sounds, default player settings, and the difficulties.
  • There are four difficulties: Easy, Normal, Hard and Insane. Each one sets aim speed, aim jitter, swing delay, crit rate, and speed, damage and health multipliers. It also sets bow accuracy and whether the bot W-taps, hit-selects and pearls. You can add more.
  • bots/<id>.yml holds one bot per file: name, skin, menu icon, description, health, speed, reach, damage, swing speed, crit chance, equipment and abilities.
  • kits.yml holds the kits.
  • messages.yml holds every text, including menu items, in MiniMessage format, so you can translate the whole plugin.

A bot file:

name: '<white>Swordsman'
order: 2
icon: DIAMOND_SWORD
description:
  - '<gray>Plain sword fighter in iron.'
skin: ''            # any Minecraft username, empty = default skin
permission: ''
in-wave-pool: true
health: 20.0
speed: 0.28         # blocks per tick while sprinting
reach: 3.0
melee:
  damage: 7.0
  attack-ticks: 12
  crit-chance: 0.4
equipment:
  weapon: {material: DIAMOND_SWORD}
  helmet: {material: IRON_HELMET}
  chestplate: {material: IRON_CHESTPLATE}
  leggings: {material: IRON_LEGGINGS}
  boots: {material: IRON_BOOTS}
abilities:
  gapples:
    health-below: 0.35
    cooldown-ticks: 400

banner-install.png

  1. Put PvPTrainingBots.jar in plugins/.
  2. Start the server. The plugin creates config.yml, messages.yml, kits.yml and the bots/ folder.
  3. Optional: build an arena and register it with /pvpbots arena create and /pvpbots arena setbot.
  4. Players run /pvpbots.

No gallery available for this project.

Version Minecraft Loader Download

pvp training bots 1.0.0

1.0.0

1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2
bukkit, paper, purpur
Download