I have few comments about plugin.
Entity, should not be based on ACharacter. You are creating something that is hard to extend and implement in other game projects. Instead it should be ActorComponent, which can be easily attached to any actor.
As we are on it, Character or Pawn is not good place to place any kind of AI related stuff to begin with. At best it should derive from AIController, but Component based approach would still be best.
The same goes for DOTWorld it also can be ActorComponent, which then in turn can be added to GameMode, or other actor.
I’m not sure what Advertisment is supposed to do, so I can’t comment what it should be.
tl;dr version. Inheritance is way overrated. Especially in game development, where various classes needs somehow similar but different functionality, and you end up with inheritance tree, that start to look more like circles (;.
I could refactor code probably somewhere around weekend, if you guys don’t get it before then and if you want those changes.
Other than that, it’s really awesome work. Emergent AI system is just must have for any open world RPG,