Eremite Camping Design
For those curious about the details on how Eremite Camping and Combat works, here I share a brief overview. See the main Eremite page, design section about the theme. For more details or other questions, ask on the mod page or via email / PM (Nexusmods Dracotorre).
Find the source scripts on GitHub: github.com/Dracotorre/EremiteCamping
how it works
Eremite uses Chesko’s CampUtil API, and if you have “Frostfall” enabled, FrostUtil API to monitor tents, fires and more. This mod includes a handful of form overrides and adds short event-driven scripts for new tent functionality. For identification, Eremite form and script names have “DTEC” prefix.
For cloak tent interaction, supports mods with cloaks (slot 46 best) using keyword: FrostfallIsCloakCloth, FrostfallIsCloakLeather, FrostfallIsCloakFur (, and WAF_ClothingCloak)
changes made to Campfire
- if “Survival Mode” found, adds Campfire lights 3-5 (“Flickering” - “Roaring”) to “Survival Mode” heat sources FormList using a script to maximize compatibility with other mods
- overrides (4) travel cloaks to add SurvivalWarmth keywords found in Update.esm and adds keyword, ArmorCuirass (see next note), to enable warmth in Survival Mode
- equipment-monitor (DTEC_EquipMonitor) unequips/equips cloak in tent and ensures worn cloak (with ArmorCuirass keyword) doesn’t get marked as body armor by Campfire
- overrides Campfire’s Stone Axe recipe to add additional requirement of stone block (*)
- added craft recipe: Mortar and Pestle may be crafted using Create Item with perk (*)
- overrides Campfire’s NPC and spouse bed-rolls with script (DTEC_CampNPCBedrollScript) for follower undress/redress on activation
(*) - not available in lite version
overrides Campfire.esm forms:
- _Camp_Cloak_BasicBurlap
- _Camp_Cloak_BasicLinen
- _Camp_Cloak_BasicFur
- _Camp_Cloak_BasicHide
- _Camp_Bedroll_NPC_F
- _Camp_Bedroll_SpouseF
Since Campfire v1.11 doesn’t recognize cloaks (Chesko’s script includes a note on it) and I wanted to auto-dress the cloaks in tents, I created EquipMonitor for cloaks which works much like Campfire’s monitor for the rest of the gear. I also wanted cloaks to provide warmth in “Survival Mode” which only recognizes armors with normal keywords. Simply adding a keyword to cloaks allows warmth, but this presents a problem: Campfire uses those keywords to determine what kind of armor to place in tents. To solve this I also have my EquipMonitor double-check Campfire’s data to correct if it confuses a cloak for a normal body armor.
brief overview of scripts
Eremite lite (EremiteCampfireLite) includes only event-driven scripts. Full version (EremiteCamping) uses conditional polling and avoids duplicated functions with enabled “Frostfall” by using FrostUtil.
- light-weight polling may be disabled
- tent equipment features are event-driven
- meditation rug event-driven
The main script (DTEC_MainShelterQuestScript) applies perk points and controls nearby shelter detection by polling using a few quick functions. The frequency of polling depends on game conditions, generally around every 12 seconds when outdoors and on foot. The polling disables when disabling Survival Mode or Frostfall in game. The main script may be stopped by equipping the Eremite Ring which uses a simple script to start or stop main quest. Restart by equipping the ring again. Since Frostfall also polls (about every 5 seconds) for existing fires and tents, when Frostfall is enabled in game then Eremite instead uses FrostUtil API.
conditions when main script skips checking for shelters:
- indoors
- during combat
- inside a city (Campfire illegal areas)
- on horseback
- as creature (Vampire Lord or Werewolf Beast Form)
- Survival Mode and Frostfall disabled
- Eremite disabled
On game load, the player alias script (DTEC_PlayerAliasScript) checks for compatible mods, including Survival Mode, if not yet found. Upon finding Survival Mode, the script adds Campfire fire lights 3-5 to heat sources FormList of Survival Mode plugin. This avoids making Survival Mode a dependency and increases compatibility with other mods wanting to add heat sources.
The DTEC_EquipMonitor runs on the player alias and catches events for equip and unequip to update the cloak and curiass currently worn. If in a tent and controls locked then uses a stored variable for the cloak and unequips or equips on delay after body cuirass. On startup, the main script will force your character to unequip and equip cloak and cuiruass to confirm starting gear much like “Frostfall” does on startup.
For follower undress and redress in tents, overrides spouse bed marker and NPC bedroll with an added script, DTEC_CampNPCBedrollScript. This simply catches the OnActivate event and looks up Campfire and Frostfall (if activated) settings to determine if should remove armor from NPC. Forces redress to best armor using a “dummy ring” technique common to other mods.