[Question] Customizing mobs and spawning

So I was reading through the API for sponge and getting a grasp on it. So far I really love how things are turning out. Probably my favorite aspect has been how entities are now going to be handled.

So for the past year or so I have been working on a pretty complex RPG plugin for Bukkit. The plugin has classes, a leveling system, item classification system, quests, custom mobs. I am looking forward to updating the plugin and optimizing it for sponge.

One of the things that has always annoyed me about Bukkit is if I want to customize mob spawning, I basically have to really lock down the entity spawn event stuff. Also on top of that, to create custom affects for mobs can be a hassel.

So my question is: do you think it will be possible to create your own AI elements for mobs for doing special effects? So for example create a custom entity component that adds the ability to cast a special spell on its target. Now there are complications that can arrise with custom components, such as persistence, so hopefully there will be a way to hook it in. If it comes down to it… I dont mind writing code to monitor what entities have what components, but it would be extremely useful to be able to tweak a monster’s components as well as the AI for when they might activate certain abilities.

Now the second difficulty I had with bukkit was mob spawning. It is a nightmare to manage custom mobs… Tracking their unique ids adding timers for special mob events… etc. So I was wondering will it be possible to essentially customize how mobs are spawned? For example, I want to customize the behavior of spawning based on the region that they are spawning. So one spawn type might be a pack of wolves… whereas another type might be a solitary iron golem. On top of this I do not want to overwhelm the player, so be able to have control over how many mobs are spawned in a given chunk. (monitoring number of mobs in a chunk is pretty trivial, but would be cool to have some control over spawning rates like this).

Anyways I love the sponge project and I plan on rewriting a lot of my plugins to support it. I dont expect people to know the answers to the questions, but these questions are more of “how far can we push customization”.