Bot PvP
Practice against ExyliaPracticeBotV3 bots, alone or as a party: linking a kit to a combat mode, the two menus, how a fight runs and ends, and what it never records.
With ExyliaPracticeBotV3 installed, a player can fight bots in a real arena with a real kit, alone or with their whole party. It is practice: nothing is recorded.
Without the bot plugin the module is simply absent. /botpvp is not registered, the party menu's
Bots button shows a barrier and "Bot plugin not installed.", and the kit button that links a mode
says the plugin is missing.
Setting it up
Install the bot plugin
ExyliaPracticeCore finds the bot when its service registers, even when the bot enables later. /botpvp
is registered only if a plugin named ExyliaPracticeBotV3 is present while ExyliaPracticeCore
enables.
Link a kit to a combat mode
/epc → the kit → Playability & ranked → BOT PRACTICE. Each click cycles through unlinked,
then every combat mode the bot offers (SWORD, POT_PVP, UHC, CRYSTAL_PVP, MACE_PVP,
BOXING), then unlinked again.
Give the kit an arena that takes bot fights
The kit needs at least one compatible arena, and the arena has to accept the BOT usage — or
declare no usage at all, which accepts everything. See Arenas.
A mode is offered only when an enabled kit with at least one compatible arena is linked to it. If several kits name the same mode, the one with the highest priority wins, then the id.
Linking a mode to a kit with building off, PvP off, damage disabled, hits-to-win or points-to-win
sends a warning naming the rule (bot-pvp.rules-warning). The plugin cannot enforce those on an opponent
it does not own, and hit and point targets count hits between players, so the fight becomes last one
standing. It warns rather than refuses.
Starting a fight
| Way in | Who |
|---|---|
/botpvp, /bot-pvp, /practicebot | Anybody with exyliapractice.botpvp, which everybody holds by default. Deny it to make bot practice a rank perk. |
/party game → Bots | The party leader, with exyliapractice.botpvp. |
openMenu(player, BOT_PVP) in the API | Runs the same permission check as the command. |
The flow is two menus:
- Mode (
lang/<language>/menus/player/botpvp/botpvp_mode.yml) — one button per playable mode, drawn with the linked kit's icon and name. With no mode playable the player is told "No bot practice modes are set up yet." instead. - Difficulty (
lang/<language>/menus/player/botpvp/botpvp_difficulty.yml) —EASY,NORMAL,HARD,INSANEandEXTREME, each with a one-line summary of how it plays. Clicking one starts the fight.
A player on their own brings themselves. A party leader brings every online member, one bot each; a
member who is not the leader is refused with the party's "not the leader" message. Everybody in the group
must be free (in the lobby or in their party), and the server must have room for one more bot per
player: over the bot plugin's ceiling the fight is refused with %limit% before any arena is touched. See
Limits.
How a fight runs
- The kit and arena are taken as for any match, cloning one if every copy is busy, with the usual loading screen and countdown.
- When the countdown ends, one bot per player spawns at the arena's second spawn (the first if it has none), in the chosen mode and difficulty, wearing the match's own kit. A kit with nothing in it lets the bot dress itself.
- In a party fight the bots are dealt out so nobody is doubled up on while somebody else is free; the players are one team and cannot hurt each other.
- When a player dies, the bots hunting them move to whoever is left with the fewest bots on them. A player who leaves takes their bot with them.
- Each fighter sees the
effects.bot-actionbarline: the bots' combined health, the mode, the difficulty and their ping. - The sidebar is
bot-practiceinscoreboards.yml, with%bot_mode%,%bot_difficulty%and%bots_alive%. See Scoreboards.
The fight is won when the last bot dies, and lost when every player is out. If a bot cannot be spawned the match is cancelled with "The bot could not be spawned. Nothing was recorded."
What it never does
A fight against bots records nothing: no stats, no ELO, no match history, no replay. It cannot be
spectated, and the bed-respawn rule never applies. %exyliapracticecore_total_bot_players% counts the
players fighting bots right now. See Placeholders.
Messages
Everything the module says is under bot-pvp in lang/<language>/messages.yml:
| Key | Default |
|---|---|
unavailable | Bot practice is not available on this server. |
no-modes | No bot practice modes are set up yet. |
no-kit | That mode has no kit linked to it. |
server-full | The server is already running %limit% bots. Try again in a moment. |
spawn-failed | The bot could not be spawned. Nothing was recorded. |
starting | Practising %mode% » %difficulty%. |
rules-warning | Heads up: %rule% does not apply to a bot. The fight will be last one standing. |
bot-name | The bot's nameplate, with %mode% and %difficulty%. Not %player%, on purpose: named after its opponent, two of the same player would stand in the arena. |
bot-skin | Steve. Whose skin the bots wear, by player name. |
difficulties.<name> | name, summary, icon and skin for each difficulty, keyed by its lowercase name. A blank skin keeps bot-skin; a blank icon keeps the menu's own for that place on the scale; a difficulty nobody lists is shown by its own name. |
party-status, party-status-unavailable | The line on the party menu's Bots button, with and without the bot plugin. |
Something missing on this page? Tell us on Discord