Open Krutoy242 opened 12 months ago
You could turn "Debug Mode" on in the config and see if it's working at all, it should spit out some messages like "Wrapped task with priority" and "Applying (mobname) delay" into the debug log
Honestly AIReducer is pretty terrible, it mostly comes in handy for when myrmex get out of control The problem with it is that it only really kicks in if mobs can't pathfind very easily and are constantly looking for new tasks, i.e. mobs in pens, for everything else it's as good as useless
You might want to look into adding the mod rltweaker2, the default config of that should boost server performance significantly (due to the presence of Advanced Rocketry and RecurrentComplex in the pack) It might be a chore to configure if it breaks something, but it's well worth it in the long run
Thank you, I will take a look at rltweaker and debug mode.
I enabled debug mode and I can see this lines related to AIReducer:
[Client thread/TRACE] [FML]: Sending event FMLConstructionEvent to mod aireducer
[Client thread/TRACE] [FML]: Mod aireducer is using network checker : No network checking performed
[Client thread/TRACE] [FML]: Testing mod aireducer to verify it accepts its own version in a remote connection
[Client thread/TRACE] [FML]: The mod aireducer accepts its own version (0.3.0)
[Client thread/DEBUG] [FML]: Attempting to inject @SidedProxy classes into aireducer
[Client thread/DEBUG] [FML]: Attempting to inject @EventBusSubscriber classes into the eventbus for aireducer
[Client thread/DEBUG] [FML]: Registering @EventBusSubscriber for com.charles445.aireducer.config.ModConfig$EventHandler for mod aireducer
[Client thread/DEBUG] [FML]: Injected @EventBusSubscriber class com.charles445.aireducer.config.ModConfig$EventHandler
[Client thread/DEBUG] [FML]: Attempting to inject @Config classes into aireducer for type INSTANCE
[Client thread/TRACE] [FML]: Sent event FMLConstructionEvent to mod aireducer
and
[Client thread/TRACE] [FML]: Sending event FMLPostInitializationEvent to mod aireducer
[Client thread/DEBUG] [AIReducer]: minecraft:elder_guardian
[Client thread/DEBUG] [AIReducer]: minecraft:wither_skeleton
[Client thread/DEBUG] [AIReducer]: minecraft:stray
[Client thread/DEBUG] [AIReducer]: minecraft:husk
[Client thread/DEBUG] [AIReducer]: minecraft:zombie_villager
[...] all mobs
[Client thread/DEBUG] [AIReducer]: warptheory:doppelganger
[Client thread/TRACE] [FML]: Sent event FMLPostInitializationEvent to mod aireducer
Where should I see useful information about mod working? How errors or malfunction could looks like?
Log with debug mode enabled debug.log
it looks like debug mode got turned on successfully, it's printing out all the mobs it can find on startup. I don't see what we're looking for, though... It could be that nobody was around the taskDelay mobs at the time, but it's unlikely.
Here, try spawning in these three mobs with the debug mode on sheep, rabbit, myrmex worker
See if that makes anything happen in the debug log
I spawned this three mobs and debug.log added new lines:
Replacing 1 tasks of net.minecraft.entity.ai.EntityAIAvoidEntity
Replacing 1 tasks of net.minecraft.entity.ai.EntityAIAvoidEntity
Replacing 1 tasks of net.minecraft.entity.ai.EntityAIAvoidEntity
Replacing 1 tasks of net.minecraft.entity.ai.EntityAIAvoidEntity
Replacing 1 tasks of net.minecraft.entity.ai.EntityAIAvoidEntity
Replacing 1 tasks of net.minecraft.entity.ai.EntityAIAvoidEntity
Replacing 1 tasks of net.minecraft.entity.ai.EntityAIAvoidEntity
Replacing 1 tasks of net.minecraft.entity.ai.EntityAIAvoidEntity
Replacing 1 tasks of net.minecraft.entity.ai.EntityAIAvoidEntity
Replacing 1 tasks of net.minecraft.entity.ai.EntityAIAvoidEntity
Replacing 1 tasks of net.minecraft.entity.ai.EntityAIAvoidEntity
Applying betteranimalsplus:eel_saltwater delay: 40
Replacing 1 tasks of net.minecraft.entity.ai.EntityAIAvoidEntity
Replacing 1 tasks of net.minecraft.entity.ai.EntityAIAvoidEntity
Replacing 1 tasks of net.minecraft.entity.ai.EntityAIAvoidEntity
Applying betteranimalsplus:bobbit_worm delay: 40
Applying betteranimalsplus:bobbit_worm delay: 40
Applying betteranimalsplus:bobbit_worm delay: 40
Applying minecraft:sheep delay: 6
Applying minecraft:rabbit delay: 6
Removing net.minecraft.entity.passive.EntityRabbit$AIAvoidEntity from net.minecraft.entity.passive.EntityRabbit
Removing net.minecraft.entity.passive.EntityRabbit$AIAvoidEntity from net.minecraft.entity.passive.EntityRabbit
Removing net.minecraft.entity.passive.EntityRabbit$AIAvoidEntity from net.minecraft.entity.passive.EntityRabbit
Applying iceandfire:myrmex_worker delay: 10
Applying myrmex follow range: 50.0
Current Tasks Count: 13
Wrapped task with priority 6: com.github.alexthe666.iceandfire.entity.ai.MyrmexAIForage com.charles445.aireducer.ai.myrmex.WrappedTaskMyrmexAIForage
Wrapped task with priority 6: com.github.alexthe666.iceandfire.entity.ai.MyrmexAIForage com.charles445.aireducer.ai.myrmex.WrappedTaskMyrmexAIForage
Replacing 1 tasks of com.github.alexthe666.iceandfire.entity.ai.MyrmexAIForage
Wrapped task with priority 4: com.github.alexthe666.iceandfire.entity.ai.MyrmexAILeaveHive com.charles445.aireducer.ai.myrmex.WrappedTaskMyrmexAILeaveHive
Wrapped task with priority 4: com.github.alexthe666.iceandfire.entity.ai.MyrmexAILeaveHive com.charles445.aireducer.ai.myrmex.WrappedTaskMyrmexAILeaveHive
Replacing 1 tasks of com.github.alexthe666.iceandfire.entity.ai.MyrmexAILeaveHive
Wrapped task with priority 7: com.github.alexthe666.iceandfire.entity.ai.MyrmexAIMoveThroughHive com.charles445.aireducer.ai.myrmex.WrappedTaskMyrmexAIMoveThroughHive
Wrapped task with priority 7: com.github.alexthe666.iceandfire.entity.ai.MyrmexAIMoveThroughHive com.charles445.aireducer.ai.myrmex.WrappedTaskMyrmexAIMoveThroughHive
Replacing 1 tasks of com.github.alexthe666.iceandfire.entity.ai.MyrmexAIMoveThroughHive
Wrapped task with priority 0: net.minecraft.entity.ai.EntityAISwimming com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 0: net.minecraft.entity.ai.EntityAISwimming com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 0: com.github.alexthe666.iceandfire.entity.ai.MyrmexAITradePlayer com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 0: com.github.alexthe666.iceandfire.entity.ai.MyrmexAITradePlayer com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 0: com.github.alexthe666.iceandfire.entity.ai.MyrmexAILookAtTradePlayer com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 0: com.github.alexthe666.iceandfire.entity.ai.MyrmexAILookAtTradePlayer com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 1: net.minecraft.entity.ai.EntityAIAttackMelee com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 1: net.minecraft.entity.ai.EntityAIAttackMelee com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 2: com.github.alexthe666.iceandfire.entity.ai.MyrmexAIStoreBabies com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 2: com.github.alexthe666.iceandfire.entity.ai.MyrmexAIStoreBabies com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 3: com.github.alexthe666.iceandfire.entity.ai.MyrmexAIStoreItems com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 3: com.github.alexthe666.iceandfire.entity.ai.MyrmexAIStoreItems com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 4: com.github.alexthe666.iceandfire.entity.ai.MyrmexAIReEnterHive com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 4: com.github.alexthe666.iceandfire.entity.ai.MyrmexAIReEnterHive com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 4: com.charles445.aireducer.ai.myrmex.WrappedTaskMyrmexAILeaveHive com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 4: com.charles445.aireducer.ai.myrmex.WrappedTaskMyrmexAILeaveHive com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 6: com.charles445.aireducer.ai.myrmex.WrappedTaskMyrmexAIForage com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 6: com.charles445.aireducer.ai.myrmex.WrappedTaskMyrmexAIForage com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 7: com.charles445.aireducer.ai.myrmex.WrappedTaskMyrmexAIMoveThroughHive com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 7: com.charles445.aireducer.ai.myrmex.WrappedTaskMyrmexAIMoveThroughHive com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 8: com.github.alexthe666.iceandfire.entity.ai.MyrmexAIWander com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 8: com.github.alexthe666.iceandfire.entity.ai.MyrmexAIWander com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 9: net.minecraft.entity.ai.EntityAIWatchClosest com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 9: net.minecraft.entity.ai.EntityAIWatchClosest com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 10: net.minecraft.entity.ai.EntityAILookIdle com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 10: net.minecraft.entity.ai.EntityAILookIdle com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Replacing 13 tasks of any
Wrapped task with priority 1: com.github.alexthe666.iceandfire.entity.ai.MyrmexAIDefendHive com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 1: com.github.alexthe666.iceandfire.entity.ai.MyrmexAIDefendHive com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 2: com.github.alexthe666.iceandfire.entity.ai.MyrmexAIForageForItems com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 2: com.github.alexthe666.iceandfire.entity.ai.MyrmexAIForageForItems com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 3: com.github.alexthe666.iceandfire.entity.ai.MyrmexAIPickupBabies com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 3: com.github.alexthe666.iceandfire.entity.ai.MyrmexAIPickupBabies com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 4: net.minecraft.entity.ai.EntityAIHurtByTarget com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 4: net.minecraft.entity.ai.EntityAIHurtByTarget com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 4: com.github.alexthe666.iceandfire.entity.MyrmexAIAttackPlayers com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 4: com.github.alexthe666.iceandfire.entity.MyrmexAIAttackPlayers com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 5: net.minecraft.entity.ai.EntityAINearestAttackableTarget com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Wrapped task with priority 5: net.minecraft.entity.ai.EntityAINearestAttackableTarget com.charles445.aireducer.ai.myrmex.WrappedProximityTaskMyrmex
Replacing 6 tasks of any
Final Tasks Count: 13
Looks like everything's 'working'. I'm surprised the rabbit stuff didn't do anything noticeable in LagGoggles... The myrmex stuff is going to help a lot with performance though, they're nothing but trouble otherwise.
I think the best thing to do here is to just leave the mod in, but also to go through taskDelay json and make sure none of those are set above 10 (it's not doing a whole lot, but if it's too high it'll make the mobs lethargic)
I think you'll get the best results by adding rltweaker or rltweaker2, my current guess is that the mob's performance is high because of their collisions (which Advanced Rocketry messes with).
You might want to get Spark or Spark Unforged as well for profiling, their reports are harder to understand than LagGoggles but they are very in depth and very useful for modders.
Ok, i will keep the mod then.
Spark
I used it before and see no differences too. Also, since my modpack have many optimization mods, some function calls so spread i cant understand how to compute them 😅
There is no difference in running modpack with or without AIReducer.
Im maintaining E2E-E server.
In this moment we have 2 players online and ~19 TPS
There is
/forge entity list
partial output. As you can see, there is only 42 rabbits:Still, this 42 rabbits consume about 2ms/t, even with AIReducer enabled
Configuration of AIReducer: taskDelay.json, aireducer.cfg.
/spark profiler
output: https://spark.lucko.me/D2UwIP5S1yRemoving AIReducer mod have no effect.
I expect that AIReducer not working at all.
Maybe there some conflicts with other mods? Some kind of mixing incompatibility or so? How could I check that?
debug.log