PAPER FIGHT BOT

FAQ

If your question isn't here, ask in Discord.

Does it need any other plugins?

No, on anything newer than 3.17.1. It is one jar.

3.17.1 and older ran bots as disguised zombies, so those need LibsDisguises. That is the version to use if your server is below 1.20.5.

What can I run it on?

Paper 1.20.5 or newer, or a fork like Purpur — that is the ordinary build.

Spigot and CraftBukkit 26.1 or newer work too, from 6.0.9, with the separate FightBot for Spigot build. Both come out together with the same features, commands and config, from the same Modrinth page: the Spigot one's versions end in -spigot.

Folia is not supported, and Spigot or CraftBukkit older than 26.1 cannot host bots. FightBot checks at startup and says so in the console rather than half working — and the Paper build on a Spigot server tells you to get the other one.

Which build do I download?

Paper, Purpur or another Paper fork: the ordinary one, whose version is a plain number like 6.0.11.

Spigot or CraftBukkit (26.1 and up): the one ending in -spigot.

Both are on the same Modrinth page and come out together. Pick the wrong one and FightBot says so at startup instead of half working, and if it is downloading updates for you it swaps in the right build at the next restart.

Either way bots are real server-side players, not mobs in a disguise: real hitboxes, real physics, a place in the tab list with a realistic ping, and every other plugin on your server sees them as players.

Does it cost anything?

No. It is free on Modrinth.

How many bots can I run at once?

Up to 200 from one command, with /fightbot spawn <count>. Whether your server enjoys 200 is another matter, since they path, fight and place blocks the way players do. Scale up gradually and watch your TPS.

Can bots fight each other?

Yes. Put them in groups and use /fightbot groupfight <group> <target>, or set two groups on one another. Good for watching what a loadout actually does.

Can I change their gear while they are fighting?

No. The bot is moving items between its hands the whole time, so its inventory is closed while it fights. Run /fightbot stop <bot> first, then right click it in creative or use Open gear in its settings menu.

Can bots do crystal PvP?

Yes, from 6.0.11, and it is on by default. Give a bot end crystals and obsidian (it uses obsidian or bedrock that is already there too) and within 5 blocks it places, hits and blows them the way a crystal player does — several a second, which suits fast-crystal servers (crystal.per-second).

Before each one it works out what the blast would do to its target and to itself, after armour and enchantments, and picks the spot that hurts them most for the least to it. It never sets one off that would kill it without a totem in hand. Give it armour and totems — crystals hurt both sides, and a bot with no armour will not crystal at all.

Roaming and patrols, which were shelved alongside it, came back in 5.17.0.

Does the mace work?

Yes, and from 6.0.0 it is on by default. A config from before that is switched on once when it updates; turn it off after that and it stays off (mace.enabled, or Mace in one bot's settings).

A bot with a mace and wind charges wind-jumps and smashes you on the way down. With an elytra and rockets it takes off, flies over you and dives — and with a Wind Burst mace, every smash throws it back up, the elytra goes on, and it rockets straight back down at you, again and again until it misses. If you dive on a bot, it sidesteps or gets its shield up.

Is there a permission node?

fightbot.use, default OP. Grant it to let other people spawn and command bots. /fightbot help in game lists everything.

Should I use the beta builds?

Only if you are chasing a specific fix or happy to report bugs. Stick to the newest full release for anything you care about, and back up first.

Can I use it in a video?

Go ahead. A link back is appreciated but not required.

How do I report a bug?

Use the report form. It takes your debug log and plugin list, and you will see any reply on your reports page. Discord works too.

Can I change settings without opening server files?

Yes. Type /fightbot web in game and open the link it gives you. It opens the editor on this site, where you can change any setting, run the bots that are already there — send them after someone, set them roaming or patrolling, make groups, hand out kits, and flip any one bot's own switches — upload skins and voice lines, and read the debug logs.

Making bots stays in game on purpose — FightBot refuses spawning, saves, and renaming or cloning from the web.

Skins can be looked at properly: click one in the skins list and it turns into a model you can spin round, with the second layer on or off. From 6.0.0 there is an Emotes & models tab too, for Emotecraft emotes (upload one, then play it on a bot, a group or every bot) and Customizable Player Models files.

One thing the editor will not do: the AI key. It can switch AI chat on and change its settings, but the key itself is never shown there and cannot be set there — that only ever goes in config.yml on your own server.

On a network, /fbp web on the proxy gives one link for every server at once: the editor puts a server picker at the top, and each server's own editor opens from there.

The link is the key, so do not share it. It stops working after 30 minutes unused, after 4 hours, or when you type /fightbot web stop. Nothing on your server has to be opened up, and everything between your server and the page is encrypted with a key that is only in the link.

Do the bots talk?

With Simple Voice Chat on the server, yes. Bots show up in voice chat like players, and the ones that "talk" say lines by themselves when they join, start a fight, win one, get low or die.

FightBot's own lines come in the jar: hello and am_i_muted as a bot joins, and grass when a roaming bot pulls up grass. More come with updates, and voice.on-their-own: false keeps bots quiet unless told.

You can add your own .mp3 or .wav files too. Those are never said by a bot on its own — only when someone types /fightbot vc <name> — everyone nearby is told it is a file added by that server and who played it, and every play is logged.

Do the bots survive a restart?

Yes, from 5.19.6. As the server stops, every bot is written down, and as it starts they come back where they stood, with the same inventory, skin, health, settings and group. That covers a FightBot update too, since those need a restart.

They do not pick up what they were doing — fights and routes start afresh — and they come back a few at a time (restart.per-second, 10) so a big army does not hold the start up. restart.max-bots caps how many come back (100, or 0 for all of them), and restart.keep-bots: false turns it off.

A plugin reload is different: after /plugman reload FightBot or /reload, bots come back still doing what they were.

What can a bot fight with?

Give it the gear and it works out the rest. A sword or axe, a shield, a totem, pearls, cobwebs, a water bucket, splash potions, a pickaxe for mining and food to heal on.

Newer kit each has its own switch, in the config or in one bot's settings menu:

  • Bow and crossbow (on by default): it shoots at anyone further off than 8 blocks, or somewhere it

cannot walk to. It allows for the drop and for where you are running, and the game does the shot, so every enchantment works.

  • Mace (on from 6.0.0): wind jumps, pearl launches, and elytra dives that come round again after every Wind Burst smash.
  • Spear (off, 1.21.11 and up): it keeps 2 to 4 blocks off, jabs, and now and then lowers it and charges.
  • Elytra (off): it flies after anyone who gets far away, and fights in the air.
  • Cart PvP (on): TNT minecarts, rails, cobwebs and a bow. It webs you where you stand, lays a rail and a

cart beside you, and shoots a burning arrow into it.

  • Crystal PvP (on from 6.0.11): end crystals and obsidian, placed and set off several times a second.

Gear wears out and breaks like yours, and a bot with Mending gear and bottles o' enchanting mends itself.

Can I talk to the bots?

From 6.0.0, yes. With Simple Voice Chat on the server, stand within 8 blocks of a bot, look at it and say something short — it answers out loud in a word or two ("Hi", "Good") and then gets back to fighting. No small talk.

It uses your own key with Groq (free plan), Google Gemini or OpenAI, so it costs whatever they charge. Setting it up takes about five minutes.

The key goes in config.yml on your server and nowhere else — this site will not show it or set it. Players are told, the first time they are near a bot that answers, that what they say to it goes to that company. Nothing else they say is used.

Can bots have my own models, emotes and capes?

Models: with Customizable Player Models on the server, drop .cpmmodel files in plugins/FightBot/models/ (or upload them in the editor) and each new bot wears one at random.

Emotes: with Emotecraft, .json or .emotecraft files go in plugins/FightBot/emotes/, and /fightbot emote <bot> <name> plays one. Both are only seen by players who have that mod.

Capes: Minecraft only shows capes Mojang gave an account, so they cannot be made from a picture. Bots wear capes that come with a borrowed skin — about 30 in 100 do (identity.capes).

Skins: about 970 come built into 6.0.0, already signed, ready the moment the server starts.

Can I make a bot do exactly what I want?

From 6.0.11 there are two ways.

One move at a time. /fightbot action <bot> <action> does the things a player does: jump, crouch, left-click, right-click, walk [forward|back|left|right] [seconds], sprint, stop and turn. Nothing is automatic: walking is like holding a key down, so it bumps into walls and walks off ledges exactly as you would. Good for scripted scenes and recordings.

In formation. /fightbot march <bot|--all|--group red> [player] [left|straight|right] lines bots up in rows behind you and keeps them there as you walk, with "eyes left" or "eyes right" if you want a parade. /fightbot surround puts them in a ring around you instead. A bot that gets hit fights back, then takes its place again. The spacing is all in formation.*.

Can bots turn up by themselves, like players joining?

Yes, from 6.0.15, and it is off by default so nothing changes until you want it. With joining.enabled: true, every so often a bot joins the way a player does — the real "X joined the game" line — at the world spawn or a spot you pick, and gets on with what it came for: hunt a player, walk to a point, or both.

/fightbot join <number> sends up to 20 in right now. When one is done it wanders about, logs off like a player, or goes hunting again, and if someone hits it on the way it fights back, ignores them or runs, whichever you set. The whole thing is the joining.* part of the config, and the wiki walks through it.

Joined bots do not come back after a restart — new ones join instead, which is what a player would do.

Can I make a bot die in one hit for a video?

The other way round, and yes: put a player's name in combat.one-hit-players and any hit from a bot kills them, whatever it is holding. It is meant for a server's own fun, so leave the list empty for real fights.

For scripted scenes, the two things most people want with it are /fightbot action, which gives you one move at a time, and a save slot, which spawns bots already wearing the gear and settings you set up.

Can bots guard me?

Yes, from 6.0.17. /fightbot protect --all turns every bot into a bodyguard: they keep their places round you the way marchers do — behind you, ahead of you so they meet trouble first, or a line down each side — and they look where you look rather than at you.

Hurt the player they are guarding and every one of them goes after whoever did it, whether it was a hit, an arrow or a crystal. Falling damage and fire set nothing off, since there is nobody to go after, and they leave anyone in that player's own group alone. Once the attacker is down, gone, or has left them alone for ten seconds, they fall back into place. The wiki has the settings.

Marching, surrounding and guarding bots also never fight back against the player they follow, so you can turn round and hit your own column without starting a brawl. Set formation.ignore-leader: false if you would rather they hit back.

Do I have to gear up every bot myself?

Not any more. Five loadouts come with FightBot from 6.0.17 — diamond-sword, netherite-sword, mace, crystal and cart — on the bottom row of the kits and saves screens. Click one in Kits and pick the bots to give it to, or click one in Saves and a new bot spawns wearing it. /fightbot kit Bob mace and /fightbot save crystal work too.

All the armour has Mending and Unbreaking III, every enchantment is at its normal maximum, and none of them put potion effects on a bot. They cannot be changed or deleted, so the ones you build yourself go in your own slots — seven kits and seven saves, up from five. The wiki lists what is in each one.

Does it work on a network with a proxy?

Yes, from 5.18.0. Put the same jar in your Velocity or BungeeCord proxy's plugins folder as well, and the servers link up to it by themselves. Only the servers you want bots on need FightBot.

With the proxy linked up, bots count in the network's player count and hover list, /fbp <server> <command> runs any FightBot command on any server from the proxy, and /fb send <bot> <server> walks a bot over to another server with its gear, health, skin and settings. Kits, saves, skins and voice lines can be shared across the network, and /fbp web gives one web editor link that covers every server.

On Velocity with modern forwarding there is nothing to set up. Otherwise paste the proxy's link-secret.txt into network.secret on each server. The wiki has the whole setup.