0 of 0

File information

Last updated

Original upload

Created by

_

Uploaded by

vadfromnu

Virus scan

Safe to use

Tags for this mod

About this mod

Collection of tweaks for personal use. SKSE plugin.

Requirements
Permissions and credits
Changelogs
Summary: "Skyrim Skill Uncapper" + "Encounter Zones Unlocked" + "Armor Rating Rescaled" + my arbitrary changes.

Details:
Every mod I use gets a quality check. Closed source is an instant failure. Those who survived preliminary selection share the same fatal flaw: I was not the one who made them. So they get edits to "improve" them.

Skyrim Skill Uncapper
I used my port to AE as the foundation of this plugin. But it can do even less now, because I removed settings that I never used(SkillExpGainMults\CharacterLevel... and SkillExpGainMults\BaseSkillLevel...).
- Changed memory allocation for code generation: now Uncapper requires 200 bytes instead of 128 kilobytes. Those "couldn't allocate..." errors are practically impossible.
- If some values are left default then game code for them is not patched. And this applies to all other settings in newly created configuration file. Plugin doesn't change any game code if values are not changed.
- Micro optimizations that are probably not noticeable. But I can't just ignore when a std::map is used instead of a simple array.
- Replaced SkillFormulaCaps with SkillEffectiveCaps. Skyrim clamps skill value in range 0-100. Uncapper always disables the upper limit, I made it dynamic as SkillEffectiveCaps.

Encounter Zones Unlocked
There is no source code for the AE version. But in the previous version, 128 kilobytes were allocated for code generation. Seriously, this piece of code is present in about half of skse plugins. The authors are just copying it from the skse sources.
I only implemented "DisableLevelLocking" option when decided to move in a different direction. Instead of unlocking dungeons I will lock entire Skyrim. Originally zone or player level is used to create leveled item or NPC, but iLeveledLevel from this mod will override both of them. Set it to 99 and you can go fight Draugr Death Overlord and get Ebony loot right after Helgen. Set it to 1 and no dagerous enemies or good loot for you(unless they are unleveled).
Technical details about leveled lists https://en.uesp.net/wiki/Skyrim:Leveled_Lists
Process of auto leveling is complicated. I will try to explain what I see in decompiled code, but I could be wrong.
Spoiler:  
Show
All zones are at zero level at the start of the game. If the level of the zone is 0 when visited, then it is calculated and 0 is replaced by the result. DisableLevelLocking forces recalculation of the level every time.
The zone or player level is passed to the function that creates leveled objects. iLeveledLevel replaces passed value.
Then second level cap is calculated that is less or equal to passed. "iLeveledLevelRemoveCapCalc = 1" makes it equal.
This second cap is passed to function that generates inventory(if it is required). Inside function player level can cap passed value again! Or can be used to calculate some range of values that I don't understand. iLeveledLevelInvCap replaces player level in cap calculation. iLeveledLevelInvRange replaces player level in range calculation.
Examples to understand, if you only set iLeveledLevel to 99 without touching others. Near Whiterun skeleton's hand in the puddle will hold ebony sword - it is leveled item marked to be maximum level below player. If you go to the Silent Moons Camp you will meet random bandits - thay are leveled to be random level that is below player.
Open console and do "coc SleepingTreeCamp01"(you can do it from main menu without starting or loading game). Inside chest near giant you will get items that are capped by your real level.(iron and leather armor at level 1)
To get maximum unleveling set values to:
iLeveledLevel = 99
iLeveledLevelRemoveCapCalc = 1
iLeveledLevelInvCap = 99
iLeveledLevelInvRange = 99


Armor Rating Rescaled
I was using Armor Rating Redux SE with hyperbolic formula before AE and decided to switch to Rescaled formula because of the same result but simpler code. Armor Rating Rescaled already ported to SE and AE and I recommend to use that port instead of mine.
Differences:
- I think that mine code is a few nanoseconds faster. But there is no way to test that in practice(~0.0000001% better perfomance if I am right). And I am using unsafe code that I just belive is working.
- I don't provide option to change fMaxArmorRating, because I have separate esp file for Skyrim settings edits.
- Original and other port both read ArmorScalingFactor and then multiply it by 5. I store 5 as default coefficient without further multiplication. This magic 5 makes it so that you will have 80% damage resistance with the same visible armor rating as vanilla. I play with fMult=3 (ArmorScalingFactor would be 0.6) low-mid armor values are close to vanilla, but high are a lot less effective.(1000 armor is 78% damage reduction)


Unlimited Training
There is option to stop training counter from increasing.


Installation

All versions should be backward and forward compatible with Skyrim 1.6.x. But when versions do not match, instead of using fixed addresses, a code signatures search is performed. This increases the startup time by 1 second when using all options.
I always install all mods manually so I have no idea how modern methods work. Like Skill Uncapper configuration file, NIHtweaks.ini will be created after first launch. Usually it should appear in the same place where the dll is located. But many people can't find Uncapper settings. MO2 puts files created during game into the "Overwrite" folder. So good luck finding this file.
It's not hard to manually extract in Skyrim folder, something like "C:\Steam\steamapps\common\Skyrim Special Edition\Data\SKSE\Plugins\NIHtweaks.dll"
Like many others skse plugins this one is safe to install and uninstall without starting new game.


Possible problems:
1. If you Skyrim is installed in "Program Files" then no help from me. If modded game is there, it is the source of problems that I do not want to deal with.
2. You need fresh "Microsoft Visual C++ Redistributable for Visual Studio 2019". If you have VCRUNTIME140_1.dll in your Windows directory then you are fine. If you use "SSE Engine Fixes" then you are also fine because of the same requirement.
3. With the release of Anniversary Edition many people are confused about versions of the game, skse and mods. This plugin is for the latest version of the engine at the time of publication 1.6.323 with skse 2.1.3. May work with further updates but no guarantees.
4. This plugin is incompatible with plugins it reimplements and maybe with others I don't know about. Reset values to default in NIHtweaks.ini if there is incompatibility.

Troubleshooting:

1. Open directory with logs: %USERPROFILE%\Documents\My Games\Skyrim Special Edition\SKSE
It will automatically redirects to something like: C:\Users\your_username\Documents\My Games\Skyrim Special Edition\SKSE
2. Read NIHtweaks.log or skip this if file is absent.
2.1 Check "Local time" at the start to make sure file match time when you started Skyrim.
2.2 If file ends with "Not all signatures were found. Aborting initialization." Then Skyrim engine was updated and signatures require update. Or most likely some other mod already patched code. Problematic signature should be mentioned "Can't find ... signature."
2.3 There are other possible failures like failure to read or write config file. If log ends abruptly then dll crashed during initialization. I can't fix it if I can't reproduce.
2.4 If file ends with "Init complete." then everything should work as configured. If Skyrim crashes maybe other plugins overwritten my code in incompatible manner.
3. Read skse64.log If it can't load NIHtweaks.dll and NIHtweaks.log is absent, then most likely you need to update "Microsoft Visual C++ Redistributable...". But error code will have real reason.
4. NIHtweaks.log and skse64.log are required if you want help with problem you can't solve. Upload them somewhere(like pastebin.com) and link them in your post. Or hide their content under [ spoiler][ /spoiler] tag.


This is not an original work, so endorsements are disabled. This is a niche product for those who interested in the version of Skill Uncapper that allow to limit the effect of skills without limiting their growth.