Controllable Mobs API
Welcome to the API which lets you take full control of (nearly) any entity!
This project has been discontinued!
Features
- order an entity to move or look at specified locations, jump, wait, die, follow or attack custom targets
- fully take control of an entity by planning actions that are added to an action queue
- modify the AI of any entity - remove default behaviors or add custom ones!
- configure custom behaviors with various parameters
- modify an entity's attributes (movement speed, attack damage, ...)
- standalone plugin - just add a dependency and updating will be done in no time.
- Bukkit-friendly API - you don't have to deal with Craftbukkit code or native minecraft server code.
- server-only mod - does not require client modifications
API tutorials
work-in-progress (is not being maintained atm)
- The basics (creating a plugin, spawning entities, creating actions)
API Documentation
- Setting up a plugin with Controllable Mobs API
- Basic steps
- Make entities controllable
- Adjust attributes
- Modifying AI behaviors
- Managing entity actions
- Some examples
API resources
- Latest javadoc
- Javadoc for v5
- Javadoc for v4
- API source code at GitHub
- Test plugin source code at GitHub
Important notes
Got any problems?
- Make sure you are using the correct plugin, matching your Minecraft server's version.
- Search the tickets for an error similar to yours, if it is already existing, do not post a new ticket. Instead, post a comment to the existing ticket.
- If the problem hasn't been reported yet, Open a new ticket. Provide as many information as possible. I won't handle issues posted as comments.
Want new features?
I can always provide more features, as needed! You just have to open a new ticket. Provide as many details as possible. I won't handle feature requests posted as comments.
@lorinthios
The API needs to be updated to the newest version of MC. Wait until the author updates it or update it yourself.
I'm getting a NoClassDefFoundError, heres the pastebin
http://pastebin.com/MWp2pxYc
Got a fix or idea?
@superpeanut911
Hey, thanks! I needed this plugin for myself too, so I guess I might as well just build it and release it.
toropov023 has created the 1.7.5 version, so I'm not going to. I didn't because my plugin was running on 1.7.2 and we weren't ready to update to 1.7.5 yet.
Thanks a lot you guys! :)
Here is the 1.7.5 version of this great API. I've only changed the imports. I've tested it on my server and it worked fine.
Here is the API (click on the title next to "Download:") :
Here is the virus scan if you wish:
EDIT: Forgot to say that I've changed one thing in de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.server.NmsEntityInsentient.java as in net.minecraft.server.v1_7_R2.EntityInsentient the method name was changed form a to bv
@superpeanut911
The imports need to be renamed from .v1_7_R1. to .v1_7_R2.
Nice API. I will try to fix it for version 1.7.5
@ErvinChai
You sir, are a saint! But it is still running on MC 1.7.2 instead of 1.7.5. I tried taking your version and updating it to 1.7.5 only to run into a bunch of issues that I have no clue how to fix! Do you want to be even awesomer by trying a 1.7.5 update please? :3
Hey guys, I've built the plugin from the GitHub source above.
The PluginClassLoader only seems to detect which component initializes it, which is not really important, so I've removed all references and usages of the PluginClassLoader.
I've tested it myself, too.
You can get the files from my webserver here:-
Here's the virus scan for the files:-
Enjoy! Happy coding :)
This is awesome but sadly as superpeanut911 pointed out the classloader changes have messed things up. If you do get some time I would be one of many whom would love to use this.
This plugin does not work anymore with any bukkit builds newer then December 24th, 2013. This commit to the PluginClassLoader (https://github.com/Bukkit/Bukkit/commit/bc77402b9b7488ac489efbe1d79ae4738e11a17a#diff-e770da7b0c550cba04624426af683b49) broke this plugin, as it is no longer accessible. Update please!
@DevCybran
Hey, thanks for the API!
I was wondering if there was an easy way to tell when a task is complete, like an event firing when the mob reaches it's goal, and execute some code that is unrelated to the API? :)
Sorry for double posting, but I dunno how to edit my previous message! I tried the API, but I'm facing a problem. When I try to multiply the zombie movement speed, it starts spacing (running around 4 points as a rectangle and looks like there are 4 zombies) I just copy pasted the test plugin and edited the.speed command with speed 2 argument. 1.5 gives same effect for me. What do I do wrong?
Thnx!
Edit: Found it!
1 question; is it possible to increase the range of the zombie pathfinding and or the speed of the path it is moving on? I tried it with nms but i failed :(
@DevCybran
Yup, the 1.7.2 version will work for 1.7.4
Maybe there is no server diffrence between 1.7.2 and 1.7.4. The patchnotes have only clientside updates, they havent?
+ Added Twitch.tv broadcasting integration (see below)
@Bobacadodl
Now working on a 1.7.2 update! Unfortunately, Bukkit has not switched to 1.7.4 yet.. So I will subsequently add support for 1.7.4, once I have access to a corresponding CB build :)
This seems awesome, keep up the great work!
Will definitely be using this once the 1.7 update comes out!
I really like this API! Very helpful. For some reason, there's a bug when setting the time to day and having the brain-washed mobs burning, throws huge ticking entity exception. Sorry no log. And another bug seems to be that brainwashed skeletons when given a goal to move to, and after clearing their actions, they won't always move. I force them to move by updating them and giving them a bow.
Can't wait for 1.7 update
@Xmastermax
its just a link mistake like here when you click on "AIAttackMelee" just click on other thing like AIFloat and change the "AIFloat.html" to "AIAttackMelee.html"
Is it normal that I donĀ“t have permissions for API Documentation - 7. Some examples?
@superpeanut911
Use an AITargetNearest constructor that accepts an EntityFilter. Inside the filter method of the entity filter, check for entity.hasPotionEffect(PotionEffectType.INVISIBILITY)