Survival Mode Improved - SKSE is an SKSE plugin implementation of Skyrim's Survival Mode, more specifically, Survival Mode Improved. Survival Mode has been rebuilt from the ground up utilizing C++ (CommonLibSSE-NG) rather than Papyrus. No more straining the Papyrus VM with Survival Mode's polling and hit events, etc.
Other user's assetsAll the assets in this file belong to the author, or are from free-to-use modder's resources
Upload permissionYou are not allowed to upload this file to other sites under any circumstances
Modification permissionYou are allowed to modify my files and release bug fixes or improve on the features so long as you credit me as the original creator
Conversion permissionYou can convert this file to work with other games as long as you credit me as the creator of the file
Asset use permissionYou must get permission from me before you are allowed to use any of the assets in this file
Asset use permission in mods/files that are being soldYou are not allowed to use assets from this file in any mods/files that are being sold, for money, on Steam Workshop or other platforms
Asset use permission in mods/files that earn donation pointsYou are not allowed to earn Donation Points for your mods if they use my assets
Author notes
The UI files are from this mod: https://www.nexusmods.com/skyrimspecialedition/mods/17729
I had permission to redistribute these. If you want to do the same you will need to contact GonDragon
File credits
Ryan and CharmedBaryon for CommonLibSSE and CommonLibSSE-NG Other DLL authors who have their source code available for reference such as Parapets, Doodlez, and especially powerofthree Jelidity for the Survival Mode Sun/Snowflake logo ConnerRia for guidance on detecting lichdom in Undeath GonDragon for SkyUI-Survival Mode Integration
Fixed: A build oddity was causing SMI to fail to find esl files (including survival mode itself at times), this was causing crashing and other strange behavior. (Thank you everyone for your super thorough reports and help with testing. It is very much appreciated)
Version 1.5.1
Fixed a mistake with the 1.6.640 DLL
Fixed an issue that could cause crashes with mods that fire Menu events before data load
Version 1.5.0
Major build structure change for the DLL so I can better manage separate versions.
New lands region spell patches should no longer cause CTDs. (as a sidenote, the SMI esp no longer directly adds a new region effect to the spell, that is handled in DLL)
Version 1.4.1
Fixed an additional crash caused by changes in the 1.6.1130 update
Version 1.4.0
Fixed crash with 1.6.1130 update
Fixed issue where mod would not actually start Survival Mode on new games with 1.6.1130
PLEASE NOTE: SkyUI itself was partially broken with update 1.6.1130. Bethesda added a new menu option and SkyUI's settings menu is off by one. Without this fix for SkyUI here:https://www.nexusmods.com/skyrimspecialedition/mods/106418 SkyUI will appear to have the Survival Mode toggle selected when in fact its the new option its looking at. Please make sure you are using that before reporting any further issues.
Version 1.3.1
Removed feature in which at max cold the mod would roll for an additional health damage penalty.
Version 1.3.0
The second hunger stage has been renamed to "Fed"
Reverted previous changes to hunger & exhaustion rate.
After sleeping, exhaustion will now force update the stage effects.
Support added for an upcoming Simonrim mod.
Vampires can now get Well Rested (as in vanilla SM)
Fixed a possible CTD while checking current weather
Possible workaround for CTD that happens when other mods edit the region detection spell. (SMI pulls the effects and conditions from the spell and uses them)
The mod now exclusively checks particle type in the precipitation data instead of partially relying on weather flags to determine weather type. (the flags tend to be unreliable, especially with some weather mods)
Added compatibility with weather mods that add ash weather (like True Storms), if you have po3 tweaks installed, SMI will look at the editor ID of the current weather. If it has "ash" (case insensitive) in the name it will detect the weather as such.
Added an ini setting called "fMaxAvPenPercent". This setting will determine the maximum % of AV damage needs will give you.
Added an ini setting called "bForceUpdateGlobalsOnSaveLoad". (True by default) Will allow a few of the globals that make up the need systems to be updated mid game from the esp. -This should not pertain to most users, but please note that when a save is loaded this will take priority over changes made to these globals using the console.
Settings for Vampire cold needs have been added to the ini, allowing you to set which needs should be on/off as a vampire
A formlist called "SMI_WellRestedObjectsList" has been added to the mod. -Objects (presumably beds) added to this list will allow you to become well rested if you are close enough to them after sleeping.
The shelter activator from CC camping will automatically be added to the well rested objects list
A new global has been added called "SMI_WerewolfExhaustionBonus" (valid values 0-1.0). This determines the exhaustion reduction you will recieve as a werewolf (human form)
By default werewolf characters get a 50% exhaustion rate reduction (does not stack with racial bonuses, but will take precedence over racial bonus) This is to balance out their inability to become get well rested VS Vampire's resistance to cold weather
Hunger restore values are now as follows: very small->25/ small->50/ medium->75/ large->150
When hunger is disabled, the "Restores X hunger" description will no longer be present on food items until hunger is re-enabled
When the Blade and Blunt's health regen plugin is detected, SMI will completely remove the Survival Mode health regen spell rather than just setting a global for a condition
A small code error was causing the freezing water message to appear every second instead of every 10. I extended the update time out to 20 seconds for the message update.
Version 1.2.0
This patch is mostly a balance patch with a couple of small features sprinkled in. My most recent playthrough gave me a chance to reevaluate the balance of needs and I have decided to make some changes.
Hunger stages no longer debuff magicka regeneration.
Exhaustion stages no longer debuff stamina regeneration
The needs rates have been slowed accross the board by a decent amount.
An optional file has been added to revert the rate changes for those who do not want that. Also, if you want to make changes to rates I suggest using said file and making edits there.
Cold stages no longer affect lockpick and pickpocket
"Warm" no longer provides a lockpick/pickpocket bonus. Instead, it provides 10% health regen bonus.
A papyrus API has been added. For now, its functions facilitate restoring cold, hunger, and exhaustion. This API can be expanded in the future if need be.
Many new heat sources have been added to the warmup object list (tbh I thought I had already done this). This brings it to parity with SunHelm's heat source list. Just to name a few added items: The normal and dwemer steam FX objects, the static winterhold lights (the little ones placed around the courtyard), the time wound at the throat of the world, and more.
Added a new ini setting to disable the disease hit event applicator. This is not really relevant for most users but im listing it here anyway.
Version 1.1.6
Removed unused ini setting
Added a new setting to the ini called "bDisableCarryWeightPenalty". Setting this to 1 will cause SMI to not add the carry weight penalty to the player
Version 1.1.5
Removed the mechanic where cold spells hitting you makes you colder. I also removed the mechanic where fire spells made you warmer. -These are both just really bad for balance and shouldnt be a thing.
You should only get the Oblivion notification if Survival Mode is enabled
The default seasons have all been set to 1.0 by default unless you have Seasons of Skyrim. -Having these on makes it more difficult for me to balance properly. Feel free to adjust yourself, as the options are available in the ini
The Warmth Rating cap has been set to 200. This should increase warmth effectiveness across the board very slightly
Added logic to modularize each need. Right now this is not exposed as a direct option to the user but there are globals representing each need in the plugin.
I also added logic for the AV penalties for the needs in the same fashion, toggleable with appropriately named globals
Version 1.1.4
Fixed a bug with windspeed calculation (clib bug, was fixed before but I compiled without the fix last version on accident)
Fixed a bug where some areas of Apocrypha werent being counted as "in Oblivion"
The starting exhaustion level is now a tad lower
Sleep restores more exhaustion per hour. (30 -> 50)
Removed some lingering debug logs in the dll.
Added patchless support for path of transcendence
Regarding the PoT support: There is a new formlist called SMI_NoNeedsRaces. Any races in this formlist will be counted as "undead" by the dll and needs will stop. Right now, the DLL will scan for path of transcendence and add them to the formlist. Other mod authors may make use of this formlist to create their own patches for other lich mods as well by adding to the formlist (Undeath is already supported)
Version 1.1.3
Bug Fixed: Brain Rot and Bone Break Fever were not being applied properly (normal and trap versions)
Bug Fixed: Brain Rot and Bone Break Fever were not progressing to the next disease stages
Version 1.1.2
Added integrated compatibility with Blade And Blunt - Health Regen Addon. SMI will remove the 100% reduction of health regen in favor of the B&B Health Regen addon if said plugin is detected
Version 1.1.1
Integrated Wyrmstooth region patch into the DLL. There is no longer a need for the esp patch so it has been archived. If you have it in your load order you can leave it or safely remove it. It has no scripts, removing it should be fine. Leaving it in your load order will have no effect as the DLL no longer pulls the conditions it needed from the esp.
Integrated improved region detection for Beyond Skyrim - Bruma into the DLL.
Version 1.1.0
Fixed bug - There was a particularly irritating bug that I did not notice before where the AV penalty calculations were being done improperly. (In short, it was looking at the actor base's AV instead of the Actor itself, which led to some incorrect calculations)
Fixed bug - A check was preventing the player from accruing damage from the cold if you were a non beast-form vampire or werewolf. This check was originally intended to prevent you dying from the cold in beast form, which is what the check now does properly.
Fixed bug - When jumping into cold water you will no longer warm up if you were colder than "Very Cold"
Version 1.0.10
Removed script that was left on heat source activator
Added a few null checks as a preventative measure on some player location checks
Fixed a bug that would cause the attribute penalty UI bars to get stuck if just their respective needs were stopped, but not SM as a whole
Version 1.0.9
Fixed bug: Hit events were being processed even when SM was disabled, causing you to catch SM only diseases when you shouldnt.
Reduced very small food restoration amount slightly.
Version 1.0.8
SMI no longer requires you to be in an exterior to start it. You either need to have finished Unbound OR have all of your main controls enabled. (this means survival will auto enable once you get inside the helgen keep and Ralof/Hadvar cut your bindings.)
Fixed food poisoning not being added to the player
The starting value for fatigue has been reduced (meaning you wont initially start the mod quite as tired)
You should no longer be able to get both "Lover's Comfort" and "Well Rested" at the same time as they both represent well rested in SM
The racial bonus effect descriptions were showing incorrect values for the magnitudes (ie. it said "Your Dunmer blood gives you <25%> resistance to fatigue." when it should have been 15%)
Mod should now be checking for "Survival_FireCloakFreezingWaterDesc" effect on top of any flame cloak for cold water immunity (ie. Mysticism's survival addon spells should now work properly)
Version 1.0.7
Removed unnecessary edit to "Extra Pockets" perk
Made some adjustments to the default seasons values
Fixed a bug where the AV calculations could stray off by 1 due to rounding errors (Thank you ElectricSparx for finding this bug, and then doing extensive testing to help me verify it was solved)
Added extra logic to prevent the vanilla sleep quest from restarting and applying the well rested bonus when it wasnt supposed to be
Survival Mode now requires the main controls have been enabled AND you are not in an interior to start up. This should cover the vanilla tutorial mission as well as Alternate Start.
Version 1.0.6
Fixed CTD when attempting to apply adoption bonuses
Version 1.0.5
Fixed bug where the max cold level was not always being correctly taken into account
Fast travelling (through carriage or otherwise) should no longer kill you upon reaching your destination. Instead the following will happen to simulate you "somewhat" maintaining your needs during the ride:
Cold will progress to a max of very cold
Progression of hunger and exhaustion during the travel will be reduced by 75%.
Version 1.0.4
The weather detection will now check the particle data of the weather for snow/rain in addition to the old method of checking flags. This should improve compatibility (hopefully) with mods that have some snowy weather incorrectly flagged (Obsidian weathers for example)
In addition to the feature above, when the plugin detects snow it will take the windspeed into account. When the wind is high enough it will determine a weather to be a blizzard
The ambient warmth widget will no longer show if you are in an area with a cold level greater than 200. Although you are still technically "getting warmer" slowly, this avoids giving the impression that a particularly cold area is warm.
When in beast form (vampire lord or werewolf) the player will not exceed "freezing"
Additional ini values have been added to enable small balance changes to the cold system if need be without recompilation. I do not suggest you change these unless you know what you are changing.
Fixed the flashing cold widget not appearing during blizzards (it was just displaying the normal cold widget)
Version 1.0.3
Fixed a CTD when sleeping in some areas
Version 1.0.2
Health regen is now properly stopped when Survival Mode is enabled
An ini option to disable/enable fast travel has been added to the ini. "bDisableFastTravel"
An ini option to disable/enable auto starting the mod upon starting a new game has been added. "bAutoEnableSMOnNewGame". This will take priority over the initial setting of the global.
Version 1.0.1
Fixed crash when eating hot soup (and possible crash when getting hit with a frost spell)
Version 1.0.0
Initial upload
Survival Mode Improved - SKSE is an SKSE plugin implementation of Survival Mode Improved. Survival Mode has been rebuilt from the ground up utilizing C++ (CommonLibSSE-NG) rather than Bethesda's much slower scripting language, Papyrus. No more straining the Papyrus VM with Survival Mode's polling, hit events, etc.
Important!:
Before going any further, It is important to note two things:
1. it is REQUIRED to start a new game when first installing SMI-SKSE. 2. This mod does not support the full downgrade or original 1.5.97 (only the best of both worlds downgrade)
Why a new save? Because this mod removes a very large portion of Survival Mode's existing papyrus, which would have typically had polling scripts in the background even when Survival Mode was "disabled" in the game menu.
SMI-SKSE will enable Survival Mode by default. If you want Survival Mode not auto starting to be the default behavior when starting a new save then you can change the value of "bAutoEnableSMOnNewGame" in the ini to 0.
This SKSE plugin is built using CommonLibSSE-NG, and is compatible with versions 1.5.97 through 1.6.659 and up. (Not VR) Please be sure that you have the appropriate versions of the requirements below.
CC Survival Mode - Yes, you still need the survival mode esl for this. It pulls and uses many forms from said file.
Soft Requirements:
I HIGHLY recommend you use some sort of Crash Logger. I don't expect there to be crashes, but you should be using one of these regardless as it will help you and/or mod authors diagnose issues.
Survival Control Panel is still suggested so that you may modify warmth ratings, and enable/disable features such as arrow weight, sleep to level up, etc.
Regarding crash logger, should you ever run into bugs or crashes, please refer to the F.A.Q on how best to report these.
Campfire - Integrated compatibility
Campsite - Integrated compatibility
Undeath Remastered and Classical Lichdom - Integrated compatibility (All needs will stop when you become a lich.)
Wyrmstooth - Integrated region detection
Beyond Skyrim - Bruma - Integrated region detection
Seasons of Skyrim - Integrated compatibility (season values will change depending on the mults set in the ini)
SkyUI - Included "SkyUI - Survival Mode Integration" files (Credit for original files goes to GonDragon).
The Cause CC - The Deadlands from the Cause creation will be treated as an area of Oblivion and needs will pause accordingly.
Adamant - A Perk Overhaul (or other perk overhauls) - Please make sure these mods load AFTER SMI.
Mundus - A Standing Stone Overhaul (or other standing stone mods) - Please make sure these mods load AFTER SMI.
Any other Simonrim mod - Just let said mod overwrite SMI's changes.
Survival Mode overhauls or mods that edit Survival Mode - Generally incompatible (Please see notes below)
For additional information please see this article.
SMI - SKSE preserves the vast majority of the balance changes that the original Survival Mode Improved brought to the table. There has also been a number of new changes and features brought into the mod which are detailed below.
As mentioned above, with SMI-SKSE all three of the main needs systems have been completely re-written in C++, as well as any supporting systems where necessary (ie. region detection, heat source detection, disease hit events, etc)
The prompt that appears to ask you to start Survival Mode has been removed. I hold the opinion that it is annoying for those who do or do not want to use Survival Mode alike.
Due to the increased performance C++ brings, needs are able to update every few seconds, whereas doing this with Papyrus could have the potential to bring the VM to its knees on a heavy load order. ("Papyrus" Survival Mode updates at a rate of about once per in game hour)
Needs will pause progression when you are: in dialogue, dragon riding, or in beast form
Needs will outright stop when you are in Oblivion or in jail, the latter specifically because Skyrim's jail system was not built with Needs in mind.
Existing Survival Mode patches for armor warmth values and food will still work fine. Please see the F.A.Q. for more details.
For a more detailed explanation of changes to each need, please see the spoilers below.
Cold
Spoiler:
Show
Overall, a bigger emphasis is placed upon weather than before. Progression should match SunHelm’s cold pretty closely.
Cold progresses 85% slower for vampires.
The Reach is now its own region separate from the “cool region”. It is just slightly warmer.
The health damage penalty for freezing water has been drastically reduced. It was way too intense.
The warmth rating effectiveness is capped at 80% (This means it maxes out at reducing cold rate by 80%)
Seasons have been added. Each month has a multiplier tied to it, and will affect the temperature.
The Cold widget will now only display when the ambient temp is at least chilly.
Nords are now 15% resistant to the cold, and Khajiit are 10% resistant. (Down from 25% and 15%)
Argonians' weakness to cold has been removed. It was unfair to have them be the only race with a racial debuff. There is even lore to back this decision up. (See “On Argonians”, A book in ESO)
The cold stages are as follows:
Warm - Health Regeneration +10%
Comfortable - No effect
Chilly - Total health is reduced
Very Cold - Total health is reduced. You move 10% slower
Freezing - Total health is reduced. You move 25% slower
Numb - Total health is reduced. You move 50% slower
Fatigue
Spoiler:
Show
As with Cold and Hunger, rate, update interval, and stage values have been updated to be much slower among some other balance changes. Rate is 10pts/hour
Sleeping restores 30 Exhaustion per hour.
“Drained” is now called “Slightly Tired”.
Both Vampires and Werewolves can no longer get the Well Rested Bonus.
The player can now become "Rested" while sleeping in exterior areas.
The fatigue stages are as follows:
Rested/Well Rested/Lover's Comfort - All skills improved 5/10/15% faster
Refreshed - No effect
Slightly Tired - Total Magicka is reduced
Tired - Total Magicka is reduced. Skill rate reduced by 10%
Weary - Total Magicka is reduced. Skill rate reduced by 25%
Debilitated - Total Magicka is reduced. Skill rate reduced by 50%
Hunger
Spoiler:
Show
Vampires will no longer need to deal with hunger. Instead, the existing feeding mechanic already covers this.
Hunger rate, update interval, and stage values have been updated to provide a less annoying experience. You will become hungry much slower. Rate is 10pts/hour
Eating now checks for “VendorItemFoodRaw” for raw food as well. (from Connor’s survival mode)
Food restoration categories have been reworked with the following values
Hungry - Total stamina reduced. Melee attacks are 10% less effective.
Famished - Total stamina reduced. Melee attacks are 25% less effective.
Starving - Total stamina reduced. Melee attacks are 50% less effective.
Q:If this mod is an SKSE plugin, why does it still need an ESP? A: Yes it is a plugin, but it will still pull many of the existing Survival Mode forms as well as the SMI forms to make use of those. That ESP is required and cannot be removed. It also needs the esp because said esp also removes most of the old papyrus from the mod. You can also see there are a couple scripts included. Two of these pertain to the only papyrus driven features left (for compatibility reasons) and the 3rd is also there purely for compatibility reasons, and is an empty script holding some properties.
Q:Do I need/want to use the old Survival Mode Improved with this? A: No you do not want to use the old one with this. SMI-SKSE is essentially a successor to old SMI. Even though on the user end of things the balance and systems appear to be the same, as far as implementation goes they are two different mods and should be treated as such. You can consider old SMI deprecated, as I will likely only continue development on this version.
Q: Do existing Survival Mode patches for food mods, armors, etc, still work? A: Yes, the vast majority of patches will still work fine, especially those that are purely patching records. However, any script changes to Survival Mode that a patch may make will obviously no longer take effect.
Q:Can we get this mod on xbox? A: No, not this version unfortunately. Xbox does not support SKSE, and by virtue cannot support this mod. The older version of SMI however, does work on Xbox and can be found on Bethesda.net
Q: Is this mod compatible with X Survival Mode overhaul or mod that makes changes to Survival Mode? (ie. Connor's, TFN, old SMI, etc) A: No absolutely not. For multiple reasons:
First and foremost this mod is a Survival Mode overhaul in of itself. This is the successor to the old Survival Mode Improved. You should not be using two Survival Mode overhauls anyway.
This mod gets rid of almost all of the old papyrus scripts. You will have issues trying to use mods that make changes to the survival mode quests/scripts with this. They will either have no effect because Survival Mode no longer even uses it or, if you are letting another mod overwrite SMI-SKSE's quest changes, its likely the papyrus will be restored and you will get all sorts of wonky issues. You could essentially end up with two "Survival Modes" running (one papyrus one SKSE), both trying to make changes to the same variables and needs values and neither working properly, which would just be a real bad time.
Q:I think I found a bug, what do I do? A: This answer is going to be a bit longer:
First off I will ask, did you start a new save as the mod description says to do? (Yes, you need a new save. If you've made it to this point and didn't see that listed multiple times between the description and sticky then hopefully you have seen it here)
Please give as much info as you can.
Something like "X doesnt work" with no context is not helpful to me or any other mod author for that matter.
We need to know how to reproduce the bug, what exactly is happening that is going wrong, what were you doing when X happened, etc.
If you run into a CTD and do not post a crash log, chances are there is very little I can do unless it is something very obvious. In most cases, there is simply no way I can diagnose that it is indeed this mod without a log or a way to reproduce the crash. It can be a number of different things not even related to this mod and there would be no way for me to tell.
These tips hold true for any mod, especially for other SKSE plugins not just SMI-SKSE. Please try to keep this in mind when reporting bugs for other mods elsewhere.
Credits: Ryan and CharmedBaryon for CommonLibSSE and CommonLibSSE-NG
Other DLL authors who have their source code available for reference such as Parapets, Doodlez for their preliminary research into heat sources/regions with a mod they have in the works, and especially powerofthree for having tons of code to reference things.
Jelidity for the Survival Mode Sun/Snowflake logo ConnerRia for guidance on detecting lichdom in Undeath GonDragon for SkyUI-Survival Mode Integration