Jump to content

Increasing Number of AI Actors in Combat


Recommended Posts

I'm trying to create scenes with many dozens of different actors, but evidently there's some sort of limit on how many actors can execute AI and go into combat. The rest just tend to stand around until some of the existing in-combat actors die off.

 

Is there some sort of workaround, either through the INI files or through a mod, that can address this issue? I did try many of the approaches mentioned in this reddit post (https://www.reddit.com/r/skyrimmods/comments/dwxfgo/the_ai_limit_issue_compendium_aka_floating_npcs/) including increasing "iAINumberActorsComplexScene" and "iNumberActorsInCombatPlayer", but nothing has worked so far.

 

Any help on this would be greatly appreciated!

 

Link to comment
Share on other sites

  • 3 years later...

I'm trying to create scenes with many dozens of different actors, but evidently there's some sort of limit on how many actors can execute AI and go into combat. The rest just tend to stand around until some of the existing in-combat actors die off.

 

Is there some sort of workaround, either through the INI files or through a mod, that can address this issue? I did try many of the approaches mentioned in this reddit post (https://www.reddit.com/r/skyrimmods/comments/dwxfgo/the_ai_limit_issue_compendium_aka_floating_npcs/) including increasing "iAINumberActorsComplexScene" and "iNumberActorsInCombatPlayer", but nothing has worked so far.

 

Any help on this would be greatly appreciated!

 

What ways have you tried so far? Just CK or also through scripting? A mix is probably best, where you keep a RefCollectionAlias in your quest, add actors to it in your preferable way (I assume there is some stupid length limit to the array, but perhaps that's OK), and when some event triggers, you have "StartCombatAll ()", and if that doesn't work you start cycling through the collection, forcing a combat state upon each individual actor (collection.GetAt(index) gets you an ObjectReference) and designate a target for them directly.

 

 

OnCombatStateChanged(Actor akTarget, int aeCombatState) could be used to start the process (on your companion, on some random hostile actor), or OnHit (on player)

Then StartCombat(Actor akTarget, bool abPreferredTarget)

RefCollectionAlias also has EvaluateAll(), and Actor has EvaluatePackage().

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...