Hello. Uh, I hope this isn't that big of a plugin but I'd like a simple PvP bot/NPC. This is a mix between PvP Bot (which is here: https://www.spigotmc.org/resources/pvp-bot.27494/) and Sentinel (which is here: https://www.spigotmc.org/resources/sentinel.22017/). The problem with Sentinel is that I can't necessarily change the "difficulty". Being a bad PvPer myself, I can DESTROY the Sentinel even when he has a Sharpness V diamond sword with full diamond armor and I'm stuck with iron gear or even leather. So, like the PvP Bot, I want the NPC to be somewhat difficult while still being able to change the gear (ex. bow, diamond sword, axe, etc.) as well as the style. I have asked the developer of Sentinel how to change this, but it isn't exactly what I want. Messing around with the settings it still doesn't simulate actual PvP. The clicking/hitting is too slow, the bot doesn't even sprint, and it generally is not what I want. It's a cool plugin and extremely complex but it isn't something I'd want to use for general PvP. The PvP Bot plugin also has some issues: it requires Skript, which I had to spend about an hour trying to find the latest build and you can't change the bot's skin or tools. Plus, you have mushroom stew that fills up your inventory. Not ideal for a KitPvP server Anyways... Plugin category: PvP? Minecraft version: 1.8.8. If possible 1.8.8-1.15.2 but if not that's fine. Suggested name: Practice Bot What I want: I want a PvP bot that simulates a player. Feel free to hook it into Citizens 2 (to get the .jar file it's on the Jenkins which you can download for free without using BlackSpigot or some illegal way). This bot is literally a "player". It takes knockback, it can jitter/butterfly/drag click, it can die, it can fight back, use a bow, axe, etc. Here is a list of features I'd like to have: - NPC takes knockback. - NPC fights back. - Change difficulty of NPC. - Easy Mode: - Uses W-Tapping and has a CPS of about 5-6. Misses hits every so often. - Normal Mode: - Uses 7-Tapping (W-Tapping and Strafing combined) and has a CPS of about 7-8. Doesn't miss often. - Hard Mode: - Uses 7-Tapping, has a CPS of 10-12, misses 1-2 times every 5 hits. - Can add tools to NPC. - Can spawn NPC 1 block in front of player. - Attacks any entity (can be changed/configured to only attack certain entities/only players). - Is considered a player (eg. mobs attack it). - Bot does NOT attack players in spectator, creative, or invisible players. - Auto eats (can be turned on/off). Any food in the bot's inventory or off-hand will be eaten if the bot does not have any saturation. - Bot sprints when needed. Ex. if player is x blocks away, sprint towards target. Since W-Tapping also requires sprinting I would think that it would implement that - When killing first target moves to the nearest one. [OPTIONAL] - /kill @e removes bots as well. This is not needed and just a nice-to-have. Ideas for commands: AGHHH so many commands. Here we go... /bot create [entity]: When a Citizen NPC is selected and this command is ran, it changes the Citizen NPC to a bot. The bot now attacks ANY entity unless the [entity] field is submitted. In this case, if the command /bot create chicken is ran than the bot only attacks chickens. More fields can be submitted. Ex. /bot create chicken player spider. The bot only attacks chickens, players, and spiders. /bot difficulty <easy | normal | hard>: Changes difficulty of bot. /bot equip: This sets the bot into "equip" mode. A GUI is popped up with the bot's inventory. You can set the bot's armor, off-hand (ex. shield if the plugin is on the right version), main hand, etc. Pressing escape or a green glass will confirm the equipping. /bot stop: Stops the bot from attacking if the bot is attacking. /bot resume: Resumes the bot attacking if the bot is not attacking. /bot effect give <effect> <seconds> <strength>: Basically the /effect command except bot specific. /bot select <name>: Selects a bot. /bot remove [name | all]: If a bot is selected, it removes the current bot unless [name] is inputted. Otherwise it requires the name of the bot to remove it. If /bot remove all is ran it removes all bots. [OPTIONAL] /bot undo: Undoes the last action. If this is too difficult don't do it. [OPTIONAL] /bot log: Logs /bot commands and bot actions (ex. BOT [name] KILLED [entity]) into the bots.log file. If the plugin is already logging /bot log stops the logging. This is a nice-to-have and completely optional. Ideas for permissions: All permissions default to OP! bot.*: Gives permission to all /bot commands. bot.difficulty: Gives access to changing the bot's difficulty. bot.equip: Allows /bot equip. bot.attack: Allows player to do /bot stop and /bot resume. bot.immune: Bot doesn't attack players with this permission. bot.effect: Allows /bot effect... bot.select: Gives access to /bot select... bot.remove: Gives access to /bot remove. OPTIONAL PERMISSIONS If you are doing the optional commands please include these as well. bot.undo: Gives access to /bot undo. bot.log: Gives access to /bot log. When I'd like it by: As soon as possible. ADDITIONAL NOTES: I understand this is really difficult. BUT YOU DON'T HAVE TO DO AI TO MAKE THIS. I read a Spigot thread when trying to find a PvP plugin and saw this: Code: Are you guys serious? Wtf you don't need ML/AI crap to make a pvp bot. Just make some path finder goals, do some strafing, simulate clicks, health management, passive or agressive modes, etc. You need to get someone who is decent in pvp to explain how to pvp and the strategies involved, then you can just incorporate that into code. It's not that hard, although it is time consuming. A link to the thread is here: https://www.spigotmc.org/threads/free-for-all-pvp-bot-plugin.409590/ Hope someone is willing to do this! Thanks -Eltik/Xp10d3 EDIT: When thinking about this again I realized how similar this is to: That ^ is technically what I'm going for xD EDIT 2: And here is the Citizens Jenkins file: https://ci.citizensnpcs.co/view/Citizens/job/Citizens2/ EDIT 3: Based on Niz-Mizzet's questions: 1. Does it have to hook into Citizens? No. Just thought it might be easier for the developer to use Citizens. 2. Is it okay if the /create command has a position argument? Yes. That's fine Also it's fine if you post this on SpigotMC or Bukkit. I'm cool with that. Helpful PvP terms: Please note that I don't know all the terms that well. This is just from the "research" I've done. W-Tapping: W-Tapping is when you sprint and than just as you are about to hit your target you let go of W. This sends your opponent flying decently far like you have a knockback stick. This also lets you "reach" a bit and get decent combos when strafing. Strafing: Strafing is when you press W and A or D. This lets you get a better angle and makes it harder for your opponent to hit you while you're strafing. Combined with W-Tapping allows you get a lot of combos. 7-Tapping: Basically strafing and W-Tapping combined. However it's different in that you are pressing A or D every half a second or so WHILE W-Tapping. CPS: Clicks per Second. A decent PvPer has around 9 CPS, however you can get away with 4+. The higher CPS you have, the easier it usually is to PvP since you can combo your opponent longer without them responding. Passive/Aggressive Modes: I honestly don't really know what this is, but from my experience it is I would think that "Passive" mode is when you are low on hearts and W-Tap/retreat to regen your health. "Aggressive" mode I would think is when you are attacking as aggressively as possible. This might help when making the difficulty.