Morrowind
0 of 0

File information

Last updated

Original upload

Created by

svengineer99

Uploaded by

svengineer99

Virus scan

Safe to use

Tags for this mod

Documentation

Readme

View as plain text

*****************************************************************

The Elder Scrolls III
MORROWIND Mod:
MWSE 2.1 Pursuit Revisited

*****************************************************************

Index:

1. Description
2. Installation and Requirements
3. Playing the Plugin
4. Features
5. Version
6. Conflicts & Compatability
7. Credits & Thanks
8. Notes
9. Copyright


*****************************************************************

1. PLUGIN DESCRIPTION

*****************************************************************


TITLE: MWSE2.1 Pursuit Revisited
VERSION: v1.202

BY: svengineer99/sveng
CONTACT: Nexus/Discord

*****************************************************************

2. INSTALLING THE PLUGIN

*****************************************************************S

To install the plugin, unzip the files into the Morrowind/Data Files directory.

REQUIREMENTS: Morrowind, Bloodmoon, Tribunal,
MWSE v2.1 ( or later ) [ development release https://nullcascade.com/mwse/mwse-dev.zip ]
MCP v2.4 (or later) [ https://www.nexusmods.com/morrowind/mods/19510 ]
- including Mod specific:Service Refusal Filtering and all Bug fixes
MGE-XE v0.10.1 (or later) [ http://www.nexusmods.com/morrowind/mods/41102 ]

*****************************************************************

3. PLAYING THE PLUGIN

*****************************************************************

From the Morrowind Launcher, select Data Files and check the box next to the MWSE2.1_Pursuit_Revisited.esp file

*****************************************************************

4. PLUGIN FEATURES

*****************************************************************

A 2018 Summer of Content Modding Challenge entry, for Temple and Imperial Cult related content.

Background:
This started out as a re-implementation of Yacoby's Pursuit Enhanced to try to address some of the issues I
experienced using it, as well as to extend and add a few features. In testing, I found a host of related
game play mechanics that I wanted to modify for a more cohesive pursuit experience.

The major components may be pruned back independently by Data Files/MWSE/sve_pursuit.ini file editing. Doing
so will in most cases completely shut down the related script(s).

The scripting is in MWscript, not Lua, but takes advantage of some of the enhanced functionality and efficiency
of the MWSE 2.0 release and 2.1 WIP. Full thanks and credits can be found below.

Warning:
Due to the experimental nature of the scripting, game play stability and save game integrity can not be guaranteed.
I don't know of any such issue, but it's possible I missed something in my play testing, so use at your own risk
and take the appropriate precautions, such as making a copy of any important save games.

If you experience any gameplay issue, please kindly report by Nexus mod page bug tracker or PM. If the issue
is repeatable, please use the MWSE2.1_Pursuit_Revisited_DEBUG.esp Nexus mod page download optional file to repeat
the issue and share the resulting MWSElog.txt file.

Game play features:

1) Combatant pursuit through load doors (and return to their original positions):
NPCs and Creatures in combat with the player will follow through load doors
with delay to follow based on their distance to the door, speed, GMSTs, etc.
NPCs and Creatures won't follow if:
Too low level (50% chance at -5 levels below the player, etc) guards excluded
Dead, knocked out, paralyzed
Health/max ratio lower than flee rating
Animals or swimmers (such as rat, dreugh, etc)
Constructs won't follow outside (such as dwemer spheres, etc
Undead or vampires won't follow outside except at night
The door is locked beyond their skill or power to open
Vanilla based skill check made every 1-4 seconds per pursuant
Guards will erode the lock level ~-1 per check, so will eventually get it open.
Guards and default non-hostile NPCs will not pursue through a load door into hostile areas
Creatures and default hostile NPCs will not pursue through a load door into guarded areas
Let me know if I missed something, or something seems not working correctly.
Pursuants will continue to follow through successive load doors and exterior cell changes
If sufficiently high level (50% chance at +5 levels above the player, etc ) or guard
Pursuants will flee if their health/max ratio declines below their flee rating (typically 20-30)
Pursuants will return to their original cell position
When the player sleeps, travels, goes to jail or teleports to another cell out of range
This will trigger a "72 hour" corpse decay/respawn sequence to reset the AI
Otherwise actors moved back to their original cells can get stuck trying to move
toward the prior cell destiation, with ugly juttering animation
To ensure the AI is reset, an additional jump to another cell (ToddTest) and back
is required, resulting in a visual flash in some cases. Hopefully a smoother
implementation can be found in the future
Or when fleeing or no longer in combat if within reach of their original cell load door
The mechanics should work seamlessly through save games and new sessions
There should be no limit to the # of concurrent pursuers :)
Bonus feature: Actors starting in exterior cells will return to original positions
This fixes a vanilla bug where exterior actors could get stuck in adjacent cells after pursuit

2) Guard pursuit from adjacent cells, on crime reporting:
On crime "reporting", NPCs will call guards from the cell the player entered from,
if any were there.
With delay to follow calculated from their distance to the door, speed, GMSTs, etc.
Such adjacent cell entry guard locations are remembered, if returning via teleportation
(recall)
NPCs pursuing after a crime will alert any guards in the cell they pursue the player into
NPCs will remember the scene of a crime if you return with any bounty on your head.
Calling the guards in their cell and/or adjacent entry cell to arrest you.
In close combat with guards, hit the activate key (default space bar) to "Please for mercy"
That will initiate an arrest attemt.

3) Teleport restrictions and intervention limitations:
Travel services are suspended during combat or pursuit
Mark and Recall effects are restricted during combat or pursuit with option (.ini file option):
0) Not restricted
1) Totally disabled with any enemy in pursuit or nearby
2) Disabled unless additional mysticism based check vs the root-sum of ( enemy level / distance )
Interventions are allowed in combat (or otherwise) but limited in availability:
The player must be a member of the Imperial Cult/Temple for Divine/Almsivi intervention
The player earns 1+rank/4 intervention "right"(s) for each rank attained in the Cult/Temple
At rank=10 (Patriarch/Primate) unlimited interventions are granted
A message from the Cult/Temple will inform the player of his intervention rights on rank
increase or intervention cast
Optionally [by .ini file setting]
The player may atone for additional interventions with gold or equivalent enchanted
items donation
Enchanted items of same gold value may be repurchased from the faction HQ
enchanted items merchant
See Sauleius Cullian in Ebonheart or Llandris Thirandus in Vivec, High Fane
Provisions have been taken for compatibility with Melian's and Multi Mark Teleport Mods

4) Thieves tools extension and conveniences:
Lock picks can be used to lock doors by holding down the ALT-key
Chance of success applies vanilla lock pick formula, with security skill progress
on success
If a door is not locked/owned (most doors):
The lock level will be set based on that cell's NPC/Creature highest security skill, with some
random variation.
Some doors may not have any locking mechanism.
Attempting to lock a door is considered a crime, if noticed, with same bounty as lock picking.
On lock success, there's some security skill based chance to fortify the lock to a higher level.
Thieves tools can now be accesed with next/previous weapon hot keys (default [ and ]) + ALT key

5) Crime, flee and related AI tweaks:
The flee AI reaction settings are dynamically controlled through scripted faiflee* GMST setting
so actors will flee when their health ratio is lower than their flee setting (typically 20-30%)
and will periodically alternate back to fighting (every 15-30sec), so as to be less like to get
stuck in a crevice, etc.
Non-hostile (fight<=40) and not restricted class (guard/smuggler/etc) or vampire NPCs, with
guards in their or adjacent cell, will get alarm bumped to 101 on first encounter to report
crimes, while their fight instinct will be suppressed until their disposition drops sufficiently
low. This enables most default friendly NPCs in towns to call the guards, as described above.
Crime GMSTs have been somewhat re-worked (via scripting) in guarded areas to generally allow for a few
minor infractions before NPCs will agro, accumulating scripted disposition decrease that increases
the chance of going agro incrementally (that inexplicably is not how the vanilla system works).
So the first few gp items stolen or lock/pick attempts may not necessarily set off a fight,
but will eventually do so, if the called guards don't get there first.
Pursuants with sufficient distance to the player will alternate to jumping mode, enabling them in
some cases to overcome obstacles or barriors the player can easily overcome by jumping.
Boosts to fatigue and feather are made to avoid exploit.

6) INI file configurable settings:
Edit the MWSE\sve_pursuit.ini file to adjust game play options and settings
This presently is limited to enable/disable/customize #1-5 above
See the readme or ini file in line description for details
Let me know any requests for additional .ini file customization

INI file detail:
[Instructions - Only change the # following "= ", otherwise DO NOT change the order or formatting]
[Pursuit Disabled:0, Enabled:1] = 1
[Lock and Theives Tools Disabled:0, Enabled:1] = 1
[Teleport, Travel and Intervention Restrictions Disabled:0, Enabled:1, Skill Check:2] = 2
[Intervention Tribute Disabled:0, Gold:1, Gold+Items:2] = 0
[Exterior guard alerts Disabled:0, Enabled>:1, Attempt Arrest Every Cell Change:2] = 1
[Intervention Message Verbosity Disabled:0, Enabled:1-2] = 2
[AIFlee Alternating Disabled:0, Enabled:1] = 1
[Crime System Adjustments Disabled:0, Enabled:1] = 1
[Crime GMST Adjustments: Disabled:1, Enabled:0] = 0
[Plead for Mercy, Initiate Arrest with Guard in Combat: Disabled:0, Enabled:1] = 1
[Intervention Rights/Credits at Rank 1:A, >1:B*(1+Rank/C) where A,B,C] = 2,1,1
[Hostile Actor Pursuit Suppressed for Friendly NPC/Guard Distance Within A/B of Load Door Exit where A,B] = 2000,3000
[Pursuants ForceMoveJump Enabled,Distance,Duration,Delay,SlowFall,FortifyAcrobatics] = 1,1000,2,2,10,35
[Teleport Restrictions Mark and Recall Skill Check Base Distance (Lower Increases Chance)] = 2000
[Auto Actor Reset (when Approaching Doors that likely need it) Disabled:0, Enabled:1, Enabled with Messaging:2] = 2

*****************************************************************

5. PLUGIN VERSION

*****************************************************************

v1.00 Initial release
v1.01 load_ini_settings: fixed disallowed search string from "^_ab01" to "^ab01"
load_ini_settings: added intervention per level globals to .ini file
teleport: tweaked the per rank formula, fixed the decimal->string formulation
load_ini_settings: added npc/guard_alert_dist globals to the .ini file
v1.02 pursuit: corrected ext_ext -> pursuit2 handling
teleport/load_ini_settings: masked combat with animal-like creatures
pursuit0: updated gaurds/npcs check more intelligently
pursuit0/1/2: updated ext_ext pursuit conditions to suppress bad pursuits
v1.03 pursuit: revised pursuit_in_progress handling on actor leaving
pursuit_refresh: changed pc_ref->xpositioncell to player->positioncell.. "todd test"
pursuit1->0: moved pursuit_token0 placement
pursuit/2: return to orig cell non-combat immediately
pursuit: fixed timers to actual work, not loop every frame
pursuit/2: moved refresh call to any non ext-ext cell change
guarded_npcs_pccell: fixed fight<40 protection, sve_pursuit_guard_prot_for_all global override
obsoleted .ini file crime messaging, replaced with crime gmsts enable/disabling
v1.04 added AI reset after actor re-positioning and re-entry to crime scene(s)
suppress alarm=101 pursuers continuing after arrest, if crimelevel=0
ix ext-ext pursuit2 variable passing
suppress guard double arrest during crime reaction alert
fixed string handling causing CTD on pursuings in cell names=31 characters

v1.05 tweaked followig criteria hostile-non-hostile-animal
tightened timing to fix guard double alert 1gp bounty
adds ini dependent disallow/allowkey additional teleport restriction layer option (=2)
allow for following through same cell teleport doors

v1.1 fixed missing token0 for distance calculations (insta-follow)
added forcemovejump to allow pursuants to follow better
changed refresh method to avoid misses and/or CTDs
changed alert to reduce guards arresting too frequently, only once per reset, not cell change.

v1.2 actor refresh method tuned (fewer refreshes/lag, added messaging, suppressed CTD risk)
crime bug fixed
COM NPCs (children) pursuit suppressed
Various other tweaks and fixes

v1.201 Fixed spontaneous "resetting actors" thanks to RandomPal for reproting

v1.202 Fixed additional crime bug reported by RandomPal, although the final trade-off between hostile
and non-hostile actors following remains imperfect, due to scripting and engine limitations.
Added return to original position for pursuants starting and ending in exterior cells.
Fixed disposition game setting related bug (hostile NPCs not attacking) thanks to Metroid reporting.

*****************************************************************

6. CONFLICTS, COMPATABILITY and SAVE GAME CLEANING

*****************************************************************

Conflicts - Any other mod that dynamically re-positions combatant actors.
- Any non-vanilla teleportation mod or feature, excepting Melian's or MultiMark
- Any mod that modifies NPC alarm directly
- Probably More, let me know.

Save Game Cleaning - Drag and drop save games on the provided Saves\ folder .bat utility
[Requires TES3CMD in your Saves\ or Data Files\ folder]

*****************************************************************

7. CREDITS & THANKS

*****************************************************************

Yacoby: For Pursuit Enhanced inspiration
Greatness7: For invisible service creature idea, mesh and animation files among countless other helps.
NullCascade and Greatness7: For extending MWSE, including xActivate, xGetKeyCode, xEquipmentList, xGetClass, etc
Merzasphor: For MWSE development and release up to alpha0.9.6 including Spell functions, Array functions, etc.
CDC and the SF MWSE Dev Team: For MWSE development and release up to 0.9.4
Hrnchamd: For MCP service refusal support among many other useful features and bug fixes
Hrnchamd: For MGE-XE key allow/disallow and xSetOwner functions, among others.
Dave Humphries: For MWEdit

The Assimilation Lab: For continuously updated Morrowind Modding Wiki entries
GhanBuriGhan, Yacoby and melian: For Morrowind Scripting for Dummies
Abot: For Morrowind Scripting for Smarties
NullCascade and Greatness7: For MWSE2.0 documentation

Varlothen, EnclaveKiller and Jaiysaun for beta testing
Abot, Caeris, Vraptor, Lucas9, Kudix, Bubishi, Danae, Protoplm, Metroid13, RandomPal for bug reports and feedback

Darkelfguy: for Morrowind Modding Showcases, Podcasts, Marathons and Madnesses

Bethsoft: Of course, for the game engine of and CS

Everyone who has contributed and continues to contribute to Morrowind Modding

*****************************************************************

8. NOTES

*****************************************************************

For actors killed during pursuit (not in original cells):
Scripted corpse decay will trigger at 1/2 the normal 72 hour increment or on the first non-load door
cell change (teleport, travel, etc) or after any amount of sleeping or jail time. This is to move the
corpse back to its original cell with scale=0 (hidden) so on the 72 hour increment it will re-spawn
(if applicable).
Note: this may not work in some degenerate cases, such as if killing new pursuants every 24 hours
without resting, traveling or teleporting. In such cases some actors may get orphaned in their kill
cell, not respawning.
Non-unique creatures (all those after the 1st instance encountered) will have their inventories cleared
to discourage repetitively luring creatures into vulnerable, non-native locations to harvest their drops.

Several new game play mechanics are treated psuedo-randomly, based on a random seed saved for each save game
that includes: unlocked doors lock level (or no locking mechanism)
actor level / player level decision to pursue or continue pursuing chance modifier
guarded npc decision to agro on crime observation chance modifier on a per cell basis

So, for example, a particular door lock level or no mechanism will always be the same for a particular
play-through, but will be different for another play-through, etc. The particular pseudo-random level
or modifier is based on the seed plus cellid string length, actorid string length, entry coordinate, etc
to give reasonable variation from one situation to another. This will lead to some correlation between
various pseudo-random events, but I guess it will be too subtle and complicated to be observable.

*****************************************************************

9. COPYRIGHT

*****************************************************************

This plugin is freely distributable and modifiable, as long as this readme
file accompanies it and credit is given to the original author. But please remember
that not everything here is my work. Refer to section 7.THANKS. By downloading
and running this plugin, you acknowledge the following :

- You have read and understood this readme file.
- You acknowledge that the author of this plugin accepts no responsibility for
damage to your game saves, operating system, computer, etc,
when using this plugin.

NOTE: Please do not upload this plugin for distribution without my permission.

--svengineer99