PvP Bot

Discussion in 'Plugin Requests' started by Xp10d3, Apr 30, 2020.

  1. Offline

    Xp10d3

    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.
    - A way to summon the bot as practice. Eg. right clicking a sign sends you to a practice bot arena of some kind. Anyway of making multiple bots available so you can have multiple people practicing against the bot would be best.
    [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.

    EDIT 4: Since it has been over a month, all I want is a PvP bot that I can use as a practice. I can run a command that summons the bot so my players can practice against something that isn't a player. I know all the terms seem difficult, I'm just trying to break things down. I'd really appreciate it if someone will take this at some point. Over 40 posts now... (6/5/2020)
     
    Last edited: Jun 5, 2020
  2. Offline

    Niv-Mizzet

    @Xp10d3 are we allowed to use ML?
     
  3. Offline

    Xp10d3

    ML? What's that?
     
  4. Offline

    Niv-Mizzet

  5. Offline

    Xp10d3

    Uh, sure. As long as it's compatible with 1.8.8 and not too much of a hassle to install (if it is required on the server).
    EDIT: Ohhhhhhhh Machine Learning. Lol yeah sure that's fine.
     
  6. Offline

    Niv-Mizzet

  7. Offline

    Xp10d3

    Hmmm maybe. But based on what I've seen, this is entirely possible with a plugin. There are a few paid plugins that use complex PvP bots. I can list a bunch but I think Tim might remove it.
     
  8. Offline

    Niv-Mizzet

    @Xp10d3 I wasn't implying that it couldn't be done, I was just showing another option.
     
  9. Offline

    Xp10d3

    Sorry yeah thanks for the suggestion dude. I'm looking into it right now. But honestly I'd prefer a plugin since it doesn't require installing a hack client.
    EDIT: Looks like Impact only supports 1.10+. I don't know any other clients that allow just Baritone itself.
     
  10. Offline

    Niv-Mizzet

    @Xp10d3 All good.
    Question: do we have to link it to citizens?
     
    Xp10d3 likes this.
  11. Offline

    Xp10d3

    No. Just think it might be easier for the developer :)
     
  12. Offline

    Niv-Mizzet

    @Xp10d3
    Ok thx
    One more question: is it okay if the create command also has a position argument
     
  13. Offline

    Xp10d3

    Sure. That's fine.

    Hey
    @Niv-Mizzet are you doing this plugin? I'm just curious since you asked a lot of questions about it :) If not that's fine.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 1, 2020
  14. Offline

    Xp10d3

    Bump :O
     
  15. Offline

    Niv-Mizzet

    @Xp10d3 not at the moment(Probably will later), but Ill tell you if I have something finished, just make sure to post in this thread if someone's already done it so I don't waste time.
     
  16. Offline

    Ragnar_Volarus

    There is a plugin made by a developer , butt he wont give it, in the server, pvp.land you can see bots you can fight with which have different stages of difficulty, I tried asking for the plugin didnt work out, join its discord and try to get the plugin
     
  17. Offline

    Xp10d3

    Thanks for the suggestion. I know what plugin he uses but it's paid.

    @Niv-Mizzet Okay! Thanks for letting me know.
     
  18. Offline

    Xp10d3

    Bumpp
     
  19. Offline

    Xp10d3

    Bummpppp
     
  20. Offline

    Xp10d3

    Bumpp
     
  21. Offline

    Xp10d3

    Bump...
     
  22. Offline

    Xp10d3

    Bump.......................
     
  23. Offline

    Xp10d3

    Bump.....?? :confused:
     
  24. Offline

    Xp10d3

    bump -__-
     
  25. Offline

    Xp10d3

    bump. still waiting...
     
  26. Offline

    Wick

    Just saying, you could be waiting a very long time, this is a relatively big project for someone to do just for you and for free
     
  27. Offline

    Xp10d3

    Yes, I understand that. But at the moment I can’t pay for plugins, and the Bukkit forums don’t allow that. I understand that it’s taking a while and will be patient; but I have given a few code tips/resources on how to tackle this, so hopefully that would help. Sorry if I came across as impatient.
     
    Last edited: May 16, 2020
  28. Offline

    Xp10d3

    Bump :O
     
  29. Offline

    Xp10d3

  30. Offline

    Xp10d3

Share This Page