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.
-
View User Profile
-
Send Message
Posted Dec 27, 2012How to create a speed of mobs? I can not understand
-
View User Profile
-
Send Message
Posted Dec 27, 2012Made the API compatible to Minecraft 1.4.6. Enjoy!
Because I have splitted the ControllableMob class into subclasses, changes to your code will be required. Some examples:
instead of:
now:
instead of:
now:
instead of:
now:
-
View User Profile
-
Send Message
Posted Dec 23, 2012@DevCybran
Alright, thanks, merry Christmas to you too!
-
View User Profile
-
Send Message
Posted Dec 23, 2012@funkystudios @blablubbabc
Indeed, seems like they are renaming the server package with each update :/ Let me see what I can do about this some days later! This is still being worked on, however, there was no need for updates the last weeks.
Wish you all a merry Christmas until then!
-
View User Profile
-
Send Message
Posted Dec 22, 2012:/ This will break with each new update now :(
-
View User Profile
-
Send Message
Posted Dec 21, 2012Is this still being worked on? I get an error though I don't think it is caused by your plugin. No harm in asking:
Caused by: java.lang.ClassNotFoundException: net.minecraft.server.EntityLiving
-
View User Profile
-
Send Message
Posted Nov 30, 2012@lalabooga
I don't see a connection between no config file / a video?! Of course there is no config file because this is only an API. However, if somebody is going to make a video showing what is possible with my API, I would happily add it to the description.
-
View User Profile
-
Send Message
Posted Nov 28, 2012There should definitely be a video about this if there is not going to be a config file.
-
View User Profile
-
Send Message
Posted Nov 23, 2012@SuperMinecraftBrosMC
I have one, but so far it just lets players control the mob that they are riding. It also lets you mound Wolves if they belong to you by right clicking with a stick.
-
View User Profile
-
Send Message
Posted Nov 23, 2012@SuperMinecraftBrosMC @sception
It's up to the plugin programmers to visualize the opportunities.. I am just providing the tool to work with ;) . I don't know of any released plugins using my API yet... So maybe they are just not ready, or they are not telling me (what they should indeed do - corresponding to the usage guideline). The only info I have right now: started plugin of hoohoo4
-
View User Profile
-
Send Message
Posted Nov 23, 2012yea, i would like to see some kind of videos that use this plugin in action...
I am a visual learner...
:P
-
View User Profile
-
Send Message
Posted Nov 23, 2012Any plugins that use this right now?
-
View User Profile
-
Send Message
Posted Nov 22, 2012Eventually, the first "release" of Controllable Mobs API is out!
You can follow this link to download it: Controllable Mobs API v1
Most important new features:
-
View User Profile
-
Send Message
Posted Nov 18, 2012@hoohoo4
Thank you for your ideas / annotations! I could indeed do something like that ... However, I would ask you for creating individual tickets for both - the error and the idea to extend my API. It makes things much easier for me and we don't have to discuss it in the main comment section (this will become a bit messy over time).
-
View User Profile
-
Send Message
Posted Nov 17, 2012@hoohoo4
Here is the trace:
Exception in server tick loop
java.lang.NoSuchMethodError: net.minecraft.server.EntityLiving.aF()Lnet/minecraft/server/EntityLiving; at de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.classes.NativeInterfaceEntityLiving$GetTarget.invoke(NativeInterfaceEntityLiving.java:17) at de.ntcomputer.minecraft.controllablemobs.implementation.aibehaviors.PathfinderGoalTargetDistance.canStart(PathfinderGoalTargetDistance.java:17) at de.ntcomputer.minecraft.controllablemobs.implementation.aibehaviors.PathfinderGoalWrapper.a(PathfinderGoalWrapper.java:9) at net.minecraft.server.PathfinderGoalSelector.a(PathfinderGoalSelector.java:66) at net.minecraft.server.EntityLiving.bl(EntityLiving.java:1419) at net.minecraft.server.EntityLiving.c(EntityLiving.java:1224) at net.minecraft.server.EntityAgeable.c(EntityAgeable.java:58) at net.minecraft.server.EntityAnimal.c(SourceFile:33) at net.minecraft.server.EntityWolf.c(EntityWolf.java:103) at net.minecraft.server.EntityLiving.j_(EntityLiving.java:508) at net.minecraft.server.EntityWolf.j_(EntityWolf.java:113) at net.minecraft.server.World.entityJoinedWorld(World.java:1333) at net.minecraft.server.WorldServer.vehicleEnteredWorld(WorldServer.java:551) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:290) at net.minecraft.server.Packet10Flying.handle(SourceFile:136) at net.minecraft.server.NetworkManager.b(NetworkManager.java:290) at net.minecraft.server.NetServerHandler.d(NetServerHandler.java:112) at net.minecraft.server.ServerConnection.b(SourceFile:39) at net.minecraft.server.DedicatedServerConnection.b(SourceFile:30) at net.minecraft.server.MinecraftServer.r(MinecraftServer.java:595) at net.minecraft.server.DedicatedServer.r(DedicatedServer.java:222) at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:493) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:426) at net.minecraft.server.ThreadServerApplication.run(SourceFile:856)
-
View User Profile
-
Send Message
Posted Nov 17, 2012@DevCybran
BTW, the plugin I am currently making with this allows for taming most of the mobs in the game, and selecting/commanding them from a distance. This could be VERY useful for tower defense games and PVP.
-
View User Profile
-
Send Message
Posted Nov 17, 2012@DevCybran
maybe giving the mob some metadata? That way you could do something like this(on your end):
public boolean isControllableMob(LivingEntity le){ if(getConfig().get(""+le.getUUID)!=void) return true; return false; }
public ControllableMob getControllableMob(LivingEntity le){ ControllableMob cm= (ControllableMob)getConfig().get(""+le.getUUID); return cm; }
All you would have to do is set up a config storing ControllableMob objects using a mob's UUID as a key. You would update it every time the ControllableMob was altered. It might just work on your end(I did it on mine).
Also, this seems to break in 1.4.4 for some reason, to StackTrace looks like a method belonging to net.minecraft.server.LivingEntity no longer exists, you should probably check it out.
-
View User Profile
-
Send Message
Posted Nov 12, 2012@wristdirect
If somebody would have the time and interest in developing such a plugin, I would participate bringing my API in :)
-
View User Profile
-
Send Message
Posted Nov 10, 2012Cool! Thanks for this Easy API!
-
View User Profile
-
Send Message
Posted Nov 10, 2012@DevCybran
@XeonG8
I have the Turrets plugin (shameless plug I know, but with work this could actually work) I'm working on. It doesn't use spout or anything like that, so with lots of work, this api plus the ideas there could make an awesome TD plugin ;)