
Issue with Abyssalcraft?
edenhack opened this issue · 10 comments
as a temp fix i set all abyssalcraft mobs to threat bypass, but just wanted to post this, maybe it can help with idk, identifying why custom mobs have errors like this.
Thanks for the report!
This is a fairly common issue which has to do with a certain mistake in AI programming that doesn't normally cause issues...until DS is running alongside those AI tasks.
I actually have a system in place to deal with this particular issue, but it's only semi-auto (it doesn't catch every offending AI task), so sometimes I need to add stuff manually. I will go through the Abyssalcraft AI tasks and add the ones which cause the issue.
This should be fixed in version 067 when it comes out.
If you are (or anyone reading this is) interested in slightly more technical details:
The root of the issue is that the AI checks to make sure its attack target is not null in the "shouldExecute()" method, and expects it to still not be null in the "updateTask()" method. This is flawed logic, because all other AI tasks get a chance to run methods between your AI task's "updateTask()" and "shouldExecute()" methods, and may very well set the attack target to null if they want, which is exactly what DS does in order to enforce its stealth system.
Yeah, the bypass will always prevent the crash when this happens, so it's a good temporary solution (kudos on figuring that out without asking btw). It does have some side-effects though, ie. the mob won't use the threat system obviously, but less obviously, the mob will not use the DS AI (because it relies on the threat system).
In any case, it won't take long to add the AI tasks to my filter, probably less than 15 mins (because AC doesn't have many AI tasks to go through), so not a problem ;)
This is now fixed in the latest release (067)! Don't forget to turn threat bypass back off if you want
Yes, if you could post another crash report or log file in a new issue that would be great. It will let me identify the problem easier (I imagine it may be the same as what happened with AC, but don't know for sure).
It will also let me handle the issue in a more organized way in general