Skyrim Special Edition
0 of 0

File information

Last updated

Original upload

Created by

Maxsu

Uploaded by

maxsu2017

Virus scan

Safe to use

About this mod

A SKSE plugin that improve the vanilla game combat escape \ stopping mechanism, to prevent you stucking at combat state with super far away enemy.

Requirements
Permissions and credits
[Donation]
Buy Me a Coffee 

What this mod does?

 
Maybe you already experienced such issue for many times: enemy that were super far away from you still keep in combat and hostile state with you, caused you stucking in the combat state and cannot break away. If you are annoying by this issue and seeking for a way to solve it, then this skse plugin is intended to improve and fix it.

This plugin will improve the vanilla game combat escape \ stopping mechanism, eliminate the unreasonable super far distance combat aggro of enemy‘s, and bring a more reasonable aggro stopping mechanism to the gameplay.



How it works?
 
While player is running away from enemy and transfer between the game's cells. Everytime a cell transfer event triggered, my plugin will check the situations of all the current combat enemy displayed in the compass, and see if they matched the conditions below to stop thier combat :

(1) For Enemy in Exterior Cells:

The plugin will calculate the distance between player and this enemy. If the distance is beyond the "Maximum Aggro Distance" (value can modified in INI file) , then my plugin will immediately stop this enemy's combat state.

When Player and enemy are both in exterior, the distance will directly equal to the distance between the 3D coordinate positions of theirs.

For interior player and exterior enemy, the distance will equal to the player's distance to the exterior portal door plus the enemy's distance to the interior portal door.


(2) For Enemy in Interior Cells:

Since I currently cannot find a way to get a reliable distance between player and a Interior enemy (need to do a deeper digging into game engine source code) , therefore I currently using a different detection method to check:

By check if the interior cell this enemy located is the same as player's or next to players current cell. If both conditions are not matched, then the plugin will consider this enemy is beyond the aggro distance and will stop it's combat state immediately.


The function I use to stop enemy's current combat state is almost the same as the "StopCombat" Console Command, so it should be safety and won't cause bad side effect.



How to Install and Use:  

Requirement:  

(1) SKSE for the correspond game version.
(2) 
Address Library for SKSE Plugins


How to Install:

Download and Install the mod files with mod manager.


INI File Settings:

You can find the plugin's INI file in "Data\SKSE\Plugins\MaxsuCombatEscape.ini".

  • "EnableDebugMessage" can enable the plugins debug message print out, enable this option will bring burden to the performance, should only enable if you really need it.
  • "MaximumLoadedExteriorDistance" reprensts the maximum combat invoking distance between player and the enemy that located in a loaded exterior cell.
  • "MaximumUnLoadedExteriorDistance" reprensts the maximum combat invoking distance between player and the enemy that located in a unloaded exterior cell.

If you consider the enemy combat aggro invoking distance still too far, you can set those two value down until you are satisfied.




Limitations and Issues:

1. Since the plugin's functions only triggered when player transfer between cells, you have to keep yourself moving to get rid of combat state. My plugin functions will not run if you keep stay in a cell.

2. Since I currently cannot get a reliable distance of a interior enemy, I used the special method I mentioned above to check. That may cause the issue that interior enemy that is multiple cells away from player will always stop their combat state, even their real distance is not very far away.
This issues may be solved in the future once someone dig out source code related to interior distance calculation from game engine.




To Report Bugs:

1. First of all, you have to make sure the bug you report is reproducible and figure out how to reproduce it. Because I am not able to fix any non reproducible bug.

2. To report the bug, you should enable the "EnableDebug Message" option in the INI file, then try reproduce the bug in gameplay, let the debug log can recorded and captured it.

3. After recored the debug log, go to folder "C:\Users\Administrator\Documents\My Games\Skyrim Special Edition\SKSE", find the "MaxsuCombatEscape.log" file, then send me the file.




Credit: