Chasing butterflies, diving into rivers, sifting through foliage, poring over every inch of cave wall...mindless tedium I was sick of many playthroughs ago. Why not brush off your spellbooks and let a little Alteration magic do the work for you?
Other user's assetsAll the assets in this file belong to the author, or are from free-to-use modder's resources
Upload permissionYou can upload this file to other sites but you must credit me as the creator of the file
Modification permissionYou are allowed to modify my files and release bug fixes or improve on the features without permission from or credit to me
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 are allowed to use the assets in this file without permission or crediting me
Asset use permission in mods/files that are being soldYou are allowed to use the assets in this file in 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 allowed to earn Donation Points for your mods if they use my assets
Author notes
Consider all original files and code to be licensed under the WTFPL v2,
All meshes are rehashed Bethesda assets and may be freely used pursuant to whatever Bethesda's license for asset use is.
File credits
This author has not credited anyone else in this file
Addressed an issue where an unforeseen quirk of the SkyPal lib would increase (uncompressed) save file size by ~2-10MB on running the Reset Mod MCM option for the first time--should also be a lot faster now
(Story Manager/Start mode) Made the mod force resync some internal data on every save load to hopefully fix these modes occasionally randomly breaking
(SkyPal mode) Fixed an issue where some internal thread controller code could end up in a weird state, which would cause the spell to send multiple critters after the same target, among other oddities--may have affected SM/Start modes too, but unsure
(Story Manager/Start mode) Improved the accuracy of anti-critter-theft-protection code (fewer false positives, so critters will be able to take more stuff)
(SkyPal mode) Anti-theft-detection code is now very accurate, leveraging improvements made in 1.0.2
Version 1.2.4
...removed the rest of the SetPlayerTeammate() calls (accidentally reverted part of this change before publishing 1.2.2 I think)
Another version bump so retroactive update code will run
Version 1.2.3
Fixed a race condition that would occasionally cause the mod to never work in Story Manager and Start modes (introduced in 1.2.0, just never once happened to me while testing for some reason)
Removed the extra script logging from 1.2.3 (got what I needed)
Normally this would just be 1.2.2a but this update requires a little bit of update code, which only runs on numerical version number bumps
Version 1.2.2
Reworked the "Delete Getter Critters" MCM button into a more general mod reset button
Removed the SetPlayerTeammate() calls, and unregistered existing critters--SkyPal handles this better anyway, and it's been interfering with other mods
Tweaked some timings slightly to maybe(?) increase reliability in Story Manager/Start modes
Also applied SkyPal-based magic to the new reworked reset button to more effectively clean up "forgotten" IHarvest objects
Added some extra script logging to hopefully help track down some weird issues
Migrated existing critter stats to a new system that actually works with SkyrimVR
Slight MCM reorganization, and fixed several "default" buttons that weren't setting the correct default values
Version 1.2.1c
Fixed a bug where the mod was unintentionally overagressive when nagging about SkyPal not being installed on fresh installs and update to 1.2.0—to be clear, SkyPal is NOT a hard requirement for the mod to work, it's just recommended
Version 1.2.1b
Fixed an item duplication bug while in SkyPal mode
Version 1.2.1a
Fixed "Start" quest startup mode, which I accidentally broke in 1.2.0 (I think the issue only shows up in new saves for some reason, so I missed it while testing)
Fixed a minor Papyrus log spam issue
Version 1.2.1
In SkyPal mode, uses a new SkyPal feature to change the collision layer on Getter Critters' character controller object to PATHINGPICK (index 42), which disables collision with many objects such as the player, most actors, most dropped items, etc—no more annoying pushiness!
Improved SkyPal sanity checking/version detection code, so the mod will more proactively print message box warnings in case of old versions or improper settings
Version 1.2.0
Added support for a new SKSE library named SkyPal, which significantly improves speed and reliability of several of the mod's scripts: https://www.nexusmods.com/skyrimspecialedition/mods/43925
Significant script optimization and reorganization
In Story Manager mode, fixed a "false positive" where the mod might assume the SM is temporarily stuck (and complain about it) if a menu is opened at certain points in the script
Added another thing to the "Recall Active Critters" that might possibly unstick scripts if something weird happens (typically something caused by careless save editing)
Reduced the number of "hops" that critters can make to try to get back to the caster when they're running away too fast from 20 to 3—this helps a lot to keep the spell running smoothly while being cast for long periods
Version 1.1.7
When deleted, Getter Critters are now sent to dead body hell for their transgressions (technically, moved to WIDeadBodyCleanupCell to fix a bug in my code)
Also added better feedback for the Delete Getter Critters button, to make it clearer that it worked and when it finishes
Reupload: fixed wrong version number in info.xml
Version 1.1.6a
Replaced "NotUsable" tags in the FOMOD installer with "Optional" tags instead, so you can manually tweak your install if plugin auto-detection gets it wrong
Version 1.1.6
Fixed staves respawning
Fixed ownership data on all placed items so taking them is never stealing
Fixed a property I forgot to fill, which should make the "Delete Getter Critters" button fully work as intended (the part that was supposed to clean up things the mod had "forgotten" about should work now)
Added a new MCM option to select between "Story Manager" and "Start" quest start mode:
—"Story Manager" (default) seems to eliminate all random freezes that the mod occasionally used to cause, particularly in combination with certain other problematic mods (Frostfall, W&C, CC Survival Mode), but will occasionally cause the mod to hang depending on SM load.
—"Start" mode uses the normal quest Start() function, but because of an SSE-specific engine bug, Start()ing quests appears to have a small chance to freeze the game completely, which SM mode avoids for some reason. It is, however, much less likely for the mod to randomly stop working depending on engine load.
In SM mode, the mod will now warn you with a notification when quests are taking longer than normal to start up—if you see this notification, expect the spell to hang up for a bit (occasionally until you enter an interior cell, or wander some distance away)
Fixed a bug where, after unsuccessfully casting the spell for a while during heavy SM load, sometime afterwards a huge burst of citters would suddenly appear as soon as the SM "catches up"
Version 1.1.5a
Added support for the Creation Club Saints & Seducers content
Made a FOMOD installer, which now includes the Vanilla Fixes module, and allows installation of the mod as an .esp for VR users.
1.1.5a: Fixed broken FOMOD installer, which wouldn't install the .bsa archive because of a stupid typo (accidentally wrote .ba2 because FO4...)
Version 1.1.4
Made all objects spawned by the mod always persistent—this may fix some hard-to-explain bugs that I haven't been able to reproduce
Added a "Delete Getter Critters" button to the MCM, which clears out the mod's critter cache and resets a bunch of internal data states; also attempts to delete "dead" critters that are in the immediate area—the nuclear option in case the mod starts acting weird, without having to do a "clean" reinstall
Version 1.1.3
Moved strings previously hardcoded into IH_MCMScript to an external text file; this allows for full localizations to be made without needing to modify script files.
Version 1.1.2
Added support for BYOHHiddenObjectScript (i.e. Hearthfire planters, some mods), with corresponding MCM toggle—enabled by default only when USSEP 4.2.0 and/or Vanilla Fixes module is installed, required for this feature to work
SetPlayerTeammate(true) on all critters, to enable support for "I'm Walkin' Here" disableAllyCollision option
Version 1.1.1
Tentative fix for rare bug where the mod occasionally appears to leave "dead" critters on the ground—additionally, "Recall All Critters" should now (at least attempt to) clean this up
Hid the erroneously visible "Staff Monitor Ability added" message printed upon equipping a Staff of Harvest
Increased the 3D load timeout from 0.25s to 1.0s to (hopefully) fix an issue where the spell erroneously stops working for some users
Version 1.1.0
Retuned Magicka cost to only drain on critter spawn, instead of as a constant drain
Magicka drain per critter spawn is now MCM-configurable (defaults to 8 magicka/critter)
Retuned recast speed slightly—now slightly slower than before at low Alchemy and Alteration levels, scaling to slightly faster than before at higher levels
Added a Staff of Harvest, which casts a modestly more powerful (faster & longer ranged) version of the spell, in exchange for soul gem empowerment
Staff charge cost per critter spawn is also MCM configurable; default is 12/cast (333 casts with the staff's capacity of 4000)
Placed a few Staves of Harvest in theme-appropriate locations—they may also be crafted at Neloth's staff enchanter in Tel Mithryn
Added support for Wisp cores to the learner system
Reorganized the MCM menu
Fixed a bug where the mod could break or begin to behave oddly following usage of the "Recall Active Critters" MCM button, but only while "Use Green Thumb" is also ticked—if this affected you, just hit the MCM button again and everything should fix itself
Finally nailed down and fixed a (fairly rare) thread safety issue that had been in the mod from the beginning, but I couldn't figure out the cause of—Warnings about "Skipped return to cache becasue 'active' is false", "wtf? pathingMarkerID >= 0 before checking out path marker" and probably a few others should no longer appear in the logs, as the underlying issue has finally been fixed
Version 1.0.9
Improved detection for abnormal quest/script states that could previously stall the mod (usually only possible following foolish use of console commands or external tools)
Added handling for Wisp Stalk scripted activators from Beyond Skyrim - Bruma
Added a notification message to indicate when latent MCM functions (Recall All Critters, Clear Flora Cache) finish
Version 1.0.8
Corrected an oversight that would cause the spell to be unable to find suitable targets occasionally, causing it to slow down, or potentially stop working altogether (this fix also moderately reduces Papyrus load)
Fixed an issue where Dawnguard Poison Blooms would only be harvested if USSEP is installed
Fixed an issue where critters could potentially get stuck for a long time if they unload, then the game is almost immediately saved and exited, and later that save is loaded
Critters that unload (because the player goes into an interior etc) should catch up much faster, and not just wait around unloaded for about 30 seconds (or longer, see previous)
Made some improvements to the "Recall Active Critters" MCM button, it is now more capable of fixing scripts that get stuck in a weird state than before
Version 1.0.7
Added handling for the Dawnguard poison bloom (scripted activator) plants, which I had forgotten about
Version 1.0.6
Improved ownership checks: objects owned by the caster, or one of the caster's factions, will no longer be ignored (objects owned by someone else that are below the "stealing" value threshold are still ignored, however)
Optimized the ownership checking code slightly
Critters can no longer pick up "stolen" items owned by themselves (the check was too expensive to remain in code so frequently run)
Added an MCM menu option to see how many times the spell has dispatched a critter (works retroactively!)
Version 1.0.5
Fixed a bug where items collected while the MCM "Item Notification Spam" toggle is off would be flagged as stolen, because... the critters had ownership of those items (oops)
The update notification now only displays when the mod is actually updated, and not on new games or fresh installs
Version 1.0.4
Tweaked the "learner" routine to work better:
- Fixed a condition where starting the learner quest had a small chance to cause the game to freeze or CTD—to explain, in SSE, the engine doesn't always like it if on ANY quest you call Stop(), immediately followed by Start(), and this is something that the learner routine used to do
- Optimized the structure of the learner routine slightly to reduce script lag
Added additional environment sanity checks: the mod will warn you if it detects a variety of problems with your SKSE install, and will suggest a fix via message box
Added a small notification on game load when the mod is updated—this will also loudly warn you if it detects that the mod has been rolled back, which is not supported and may cause problems
Fixed the update script not working properly if you had previously updated from v1.0.0 (forgot to handle an alias properly, zero harm done though, just ignore the update notification being wrong)
Version 1.0.3
Tweaked how critters spawn in front of the caster to reduce the chance of physical collisions with freshly spawned critters while moving
Added an MCM setting to further customize the above; critters can be made to spawn closer, further away, or even behind the caster if desired
Added a new MCM option, "Critter Return Distance Offset"; this controls how closely to the caster that critters will return before going "poof", to reduce the chances of the critters knocking the player around.
The default setting for the above is fairly conservative (150 game units), but this can be adjusted higher or lower depending on how annoying you find getting bumped around to be.
Increased the volume of the despawn "poof" sound effect slightly
A few minor script optimizations here and there
Vanilla Fixes module: corrected an error in one of my leveled lists which caused planted Blisterwort to produce Namira's Rot instead
Version 1.0.2
Added a toggle in the MCM to also harvest food, like cabbages (default: off)—note that you must run "Clear Flora Cache" after changing this setting for it to take full effect
Added a toggle in the MCM to control whether critters inherit Green Thumb from their caster, which some users may wish to disable for balance reasons (default: on)
Version 1.0.1
Added support for the Crimson Nirnroots that USKP (USSEP) adds to that one farm in the Rift (see bug #15589)
Fixed the Green Thumb perk (critters now inherit the perk from the caster if present)—note that this still doesn't work with mods that completely replace the perk, like SPERG, but most perk overhauls work fine
Some minor script optimizations
Turned off most of the log spam in IHarvest.0.log (if Papyrus logging is even enabled)
Put another spell tome in one place where the description hints there ought to be one but there isn't, depending on how you interpret the wording ("lived" was supposed to be interpreted more...morbidly)
Added an update script for, well, updating
Donations
Both straight donations and premium membership donations accepted
Chasing butterflies, diving into rivers, sifting through foliage, poring over every stump and inch of cave wall to find the fungus among us...there are things I look forward to when beginning a new playthrough, but meticulously grinding for alchemy ingredients is definitely not one of them.
I had a look over existing solutions to this problem, and I find none of them to be satisfying on either a functional, or technical level. To remedy this, I present my solution: IHarvest.
-- Usage -- This mod adds a single spell, "Harvest".
To use the spell, just cast it. Note that, as a concentration spell, it will continue to operate as long as you cast it. It will scan your surroundings, learn what in the area can be harvested, and finally send out little, magical Getter Critters to fetch stuff for you.
To get the spell, you'll have to find a spellbook. I hand-placed about 20 of these around Skyrim and Solstheim—check areas where alchemists live (more specifically, lived, especially those who met an unfortunate end), in witch or hagraven dwellings, etc. If you have trouble finding a copy, some hints are down below under --- Locations ---.
Somewhat harder to find, also available is a Staff of Harvest. I especially recommend its use for less magically-oriented characters, but don't disregard it even if you can afford to cast the spell, as it operates slightly differently, and is useful in its own right.
You don't really need to know anything else, or to read the rest of the description unless you want to—the mod is designed to "just work™".
Still reading? The rest is pretty tl;dr, but more power to you.
The spell's range and "refire" speed will improve as your Alchemy and Alteration skills level up, and dual casting the spell further increases range and refire rate substantially. Casting the spell separately in each hand doesn't seem to work on account of some engine limitation or other.
The mod will automatically harvest any TREE and FLOR records that produce ingredients, as well loose ingredient items, and most scripted activators that produce ingredients.
The mod will never steal, which means that it will ignore any object marked as "owned", even if taking those ingredients would not count as stealing on account of interpersonal relationships. It will not search containers, as that is not in the spirit of the mod.
As of v1.1.0, the magicka cost of the spell is still pretty cheap, but is considerably higher than before. Use of the Staff of Harvest is recommended for less magically-oriented characters, however you may also choose to retune the magicka cost to your liking using the MCM menu.
You can adjust how much Alteration experience the spell awards in the mod's MCM menu. The default value is worth quite a lot of exp at lower Alteration levels, though it tapers off considerably by level 50 or so, and takes several tens of thousands of casts to max out Alteration by use of this spell alone.
-- Locations -- Though the intention is to randomly stumble across the mod's items while naturally playing the game, here are some hints if you need a little help.
One might try checking the library belonging to a group of rogue mages known for bibliotheft
The home (tomb?) of a particular nirnroot-obsessed Altmer would be a good place to look
A certain witch haunting the outskirts of Riverwood has been rumored to be harboring a copy
A friendly hagraven was known to have kept a copy, before being thrown in a cage by her sister
One wonders why the owner of an ancient, self-filling potion flask would need to amass large quantities of ingredients, and yet...
An eccentric staff enthusiast might take interest in a means to expedite the gathering of fungal nutrients
Those 'ugly fungus-looking things' would be a lot harder to reach without a certain someone's staff on account of that damn barrier...at least she won't be running out of souls any time soon
Exteriors: POINorthernCoast18 [CELL:00008DEA] (in Tamriel "Skyrim" [WRLD:0000003C] at 24,31) AlchemistsShackExterior [CELL:0000983C] (in Tamriel "Skyrim" [WRLD:0000003C] at 17,-21) KarthspireCamp [CELL:00009580] (in Tamriel "Skyrim" [WRLD:0000003C] at -31,2) ClearpinePondExterior02 [CELL:000092C7] (in Tamriel "Skyrim" [WRLD:0000003C] at -27,23) RoadsideRuinsExterior [CELL:00009C41] (in Tamriel "Skyrim" [WRLD:0000003C] at -11,-20) POIPineForest06 [CELL:00009BBF] (in Tamriel "Skyrim" [WRLD:0000003C] at -13,-16) POIPineForest33 [CELL:00009C59] (in Tamriel "Skyrim" [WRLD:0000003C] at -2,-21)
[CELL:0009829D] (in DeepwoodRedoubtWorld "Deepwood Vale" [WRLD:00029AB7] at -31,18)
[CELL:0200EF78] (in DLC2SolstheimWorld "Solstheim" [WRLD:02000800] at 10,3) [CELL:0200EDC8] (in DLC2SolstheimWorld "Solstheim" [WRLD:02000800] at 13,16) DLC2POINorth04DB [CELL:0200ECBA] (in DLC2SolstheimWorld "Solstheim" [WRLD:02000800] at 19,24) Staves: Interiors: BlackreachZCell10 "Sinderion's Field Laboratory" [CELL:000EEC55] DLC2TelMithryn "Tel Mithryn" [CELL:03017787] ForsakenCave02 "Forsaken Crypt" [CELL:0002FD85]
Exteriors: DLC01SoulCairnBoneyardEntrance [CELL:020028BF] (in DLC01SoulCairn "Soul Cairn" [WRLD:02001408] at 1,2)
-- How it works -- There are a couple other mods that do similar things on the nexus, so you might wonder "why is this better?" Well, here's a big technical information dump if you're curious:
Spoiler:
Show
I'll describe the way similar mods generally work first: the mod contains a manually curated FormList of things to look for. When looking for something to harvest, FindRandomReferenceOfAnyTypeInListFromRef is called, passing in the "target" FormList. This mostly works, but there are a couple of major drawbacks:
The list needs to be manually patched any time a mod does something like adding a new ingredient, or modifying existing flora, because it's stored in the plugin file. It's also really tedious to create these lists for the author, and it's not unlikely that the list has missing or incorrect entries because of this.
The Papyrus function works okay the first time you want to get something, but here's the problem: when you harvest something, the reference doesn't go away.
Imagine you had a deck of cards, and you want to look at each of them exactly once. You grab a random card, look at it, put it back in the deck and shuffle it. The first time you grab a card, there's a 52/52 chance that it's something you want to look at, which is fine. The next time it's 51/52, then 50/52..26/52...2/52, 1/52. By the time you're half way though the deck, there's only a 50% chance that the next card you grab will be something you want to look at. When you're down to the last card, it's only 1/52!
Now, imagine the size of the deck is completely unknown—you have no way of knowing if you even have looked at every card! Translate this into Papyrus, and it means you waste a lot of time sorting through things you've already harvested, which is far from ideal.
My mod uses much more advanced systems to solve these problems:
With the exception of a few scripted activators, no harvestable objects are hard-coded in, not even vanilla ones. The mod uses a system that automatically analyzes potential harvestables, and builds the "target" FormList up at run-time, starting with an empty list. This allows this mod to work with any mod that adds new ingredients, or makes changes to vanilla harvestables, without a patch. It would probably even work on a total conversion.
When finding flora, we leverage the Story Manager to find references in the nearby area, instead of using a Papyrus function. This is harder to implement, but much more powerful, because we can use the engine's native condition functions to filter out which references we get back long before we ever have to (very slowly) process them with Papyrus.
Using the same deck analogy from earlier, imagine it works the same, except that every time we draw a card and look at it, we can mark the card before we put it back, and we can check if the card is marked before drawing it. We still don't know how big the deck is, but this allows us to avoid drawing the same card more than once. This is much, much more efficient, and we also know when it's okay to stop searching because we'll know when every card is marked (or rather when the Story Manager stops finding anything).
While the mod learns what things it can harvest, it will check TREE, FLOR and scripted ACTI (Critter, FXfakeCritterScript, and NirnrootACTIVATORScript) records to see whether those objects produce ingredients. All base objects scanned are inserted into the IH_ExaminedTypes leveled list and will never be scanned again (as that would be wasteful); objects that are found to produce ingredients are also inserted into IH_LearnedTypes. Most things produce an ingredient directly, but it is also possible for harvestables to produce LeveledItems and/or FormLists instead. In these cases, the mod will fully recurse through the LVLI/FLSTs, and if there is any chance for these to produce any ingredients at all, they will be learned.
Technical aspects aside, this mod also has Getter Critters, and I think it's really cool to look at 'em go.
-- SkyPal, Story Manager, and Start modes -- v1.2.0+ makes use of a new library originally custom-built to improve IHarvest, named SkyPal, by doticu (aka r-neal-kelly).
SkyPal adds some new Papyrus functionality that IHarvest can use to greatly improve both script speed and reliability. Additionally, a new feature to v1.2.1 selectively modifies Getter Critter collision so they won't knock around the player or NPCs, or mess up physics objects, as I originally envisioned for the mod but wasn't able to accomplish for technical reasons.
Note that SkyPal is not required, and if not available, the mod will fall back to Story Manager mode by default. This usually works fine, but in my experience is slightly more crash prone, and on account of some game engine quirk, has a tendency to randomly stop working for short periods, up to a few minutes at a time.
The other mode available is Start, which (again, in my experience) doesn't randomly break as often as SM mode, but is slightly more likely to crash the game, especially with other scripted mods installed.
-- Troubleshooting -- If the mod fails to load—there's no spellbook in the obvious locations like the Alchemist's Shack, or Anise's Cabin's basement:
Double check your load order. NMM in particular has trouble with .esl files, and you have to make sure the plugin is actually activated.
If you're having trouble with the .esl version for some reason, you can also try installing the mod for Skyrim VR in the FOMOD installer, which is exactly the same as the standard version, except with the plugin extension changed to .esp.
If the mod was working for a while, but suddenly stops:
First, just try going somewhere else and cast again there. On occasion, the engine just stops finding stuff properly, and I have no idea why. If you then return to the original area, the spell will often spontaneously start working again.
If it still isn't working, try opening the MCM menu and run Recall Active Critters, and Clear Flora Cache. Wait ~10 seconds for those to run, and briefly cast the spell to start the "learner" routine, which will take about a minute to rescan the nearby area. Then, try casting the spell again.
If the spell still doesn't work, reopen the MCM menu, and run Delete Getter Critters. By this point, the mod will usually start working again.
If you're still having trouble, or your issue isn't listed here, leave a comment/bug report, or send me a PM and I'll see if I can help.-- Compatibility -- You probably don't need to know any of this, but I've documented it here anyway in case you'd like to know.
This should work out of the box with any mod that adds new harvestable ingredients, no patches required. The main exception to this are harvestables implemented as scripted activators (such as Nirnroots), instead of normal tree or flora records. These require a bit of extra scripting to handle, so please leave a comment or bug report if you find an unsupported mod and I'll see about fixing it.
Skyrim VR is semi-supported, however I have not been able to test properly myself for lack of the appropriate hardware.
The mod is an .esl, as the .esl format best fits the mod
You shouldn't have to worry about load order, anywhere high in your load order (where .esls naturally load anyway) should be fine.
Technically speaking, this spell is not player-centric; or, in other words, if you had some way to get an NPC to cast the spell, it will probably work for them just fine. I'm not really sure how one would go about doing this, but if you want to experiment, then please, be my guest.
I don't have any plans to backport the mod to LE/Oldrim/Classic, sorry:
Spoiler:
Show
A proper backport requires recreating the plugin from scratch in the old CK, as well as possibly having to recreate textures and models, which I simply don't have the patience to do + proper testing + maintenance of two different versions. I created the mod for the version of the game I was playing at the time, and never realized how difficult backporting would be until the mod was nearly finished.
I'm not against the idea of a backport, though, so if anyone else wants to try to take on the task, they're free to do so. The mod is WTFPL licensed.
-- Vanilla Fixes -- All recommended fixes are included by default in the FOMOD installer as of v1.1.5, but the old notes are listed below:
Spoiler:
Show
This fixes issues with certain vanilla harvestables, which prevent actors other than the player from being able to interact with them as expected. This doesn't fix anything game-breaking, but without this module, IHarvest won't be able to interact, or will interact a little weirdly, with a few specific things.
Most of these fixes have been merged into USSEP 4.2.0 (here and here); however, as some mods (e.g. Flora Respawn Fix) override some of these same scripts, and my own fixes are not included in the script versions included in those mods, you may still wish to install this module separately.
For non-USSEP installs, load the .esp low in your load order, and install priority should also be late. For USSEP installs, the same applies, but you may uncheck the .esp, as the fixes included in the plugin were merged into USSEP 4.2.0.
This module is entirely optional, and here is what it fixes:
fxFakeCritterScript (jumping salmon, maybe some others): Has a bug where loot items are added directly to the player's inventory on activation, instead of to the object that activated it. In addition, there are a number of other bugs with this script (save bloat and script load related) which are fixed by USSEP, and these changes have also been carried over.
FCaddIngrediantAndDeleteSCRIPT (dead salmon from e.g. being shouted to death, maybe some others): This script has an unnecessary check for the player, which I have removed.
Hearthfire planters were implemented in a very stupid way by Bethesda, and because of this, they do not work with my spell. See here and here for details. I have tweaked these to work the way they should have worked from the beginning, which allows my critters to interact with them properly, and also fixes the bug where they do not work with the Green Thumb perk.
-- Known Issues -- Try as I might, there are a few annoyances that I have not been able to fix. None of them are major, but here's the list:
Getter Critters have collision like any other actor, and occasionally will push the player or other objects around as they do their business.
The best known workaround is to install I'm Walkin' Here, which will (mostly) prevent critters from colliding with the player.
The critters probably won't work right, if at all, in modded areas lacking a navmesh.
Getter critters have a tendency to wander into areas that most other actors would have no reason to do so, and in doing so have a good chance to discover bad navmeshes, which may cause your game to crash. If you find that casting the spell in a particular area consistently crashes, you may want to try again with all other mods deactivated, and try enabling a few mods at a time until you find where the trouble is. To fix this would require renavmeshing the area by hand, which is a pain.
Papyrus logs are noisy, and this mod sometimes contributes to that noise. All of the errors listed below are harmless. Note that your line numbers will most likely be different than the ones below because of script version differences:
Spoiler:
Show
[07/28/2019 - 09:55:52PM] Error: Unable to call RegisterForSingleUpdate - no native object bound to the script object, or object is of incorrect type stack: [None].IH_HarvestSpellScript.RegisterForSingleUpdate() - "<native>" Line ? [None].IH_HarvestSpellScript.OnUpdate() - "IH_HarvestSpellScript.psc" Line 119 When you stop casting the spell, this occasionally comes up in the log. This happens because the game engine deletes the spell's ActiveMagicEffect object, as well as any attached script objects, the moment that casting stops, but does not clean up the active threads belonging to those script objects. If those unbound threads try to call any function on themselves, such as self.RegisterForSingleUpdate(), at this point self=None, because the old "self" object no longer exists, and because function calls can never be called on a None, the function call instead does nothing and logs an error. Curiously, this is perfectly normal, just a quirk of the game engine.
[08/14/2019 - 06:23:36PM] Error: Cannot divide by zero stack: [ (FF001380)].ih_gettercritterscript.GetClosestPointAtRadius() - "IH_GetterCritterScript.psc" Line 427 [ (FF001380)].ih_gettercritterscript.TranslateWithinRadiusCoords() - "IH_GetterCritterScript.psc" Line 415 [ (FF001380)].ih_gettercritterscript.OnUpdate() - "IH_GetterCritterScript.psc" Line 189 [08/14/2019 - 06:23:36PM] Error: Cannot divide by zero stack: [ (FF001380)].ih_gettercritterscript.GetClosestPointAtRadius() - "IH_GetterCritterScript.psc" Line 446 [ (FF001380)].ih_gettercritterscript.TranslateWithinRadiusCoords() - "IH_GetterCritterScript.psc" Line 415 [ (FF001380)].ih_gettercritterscript.OnUpdate() - "IH_GetterCritterScript.psc" Line 189 I have non-0 checks in both of these places, but Papyrus still throws these errors sometimes.
The first error there literally does not even have a divide, it's Papyrus complaining about a Math.sqrt(float afValue) call. For one, Math.sqrt(0) is a mathematically valid operation, and secondly, this still happens even when I explicitly check that afValue != 0 before trying to call that function. I have given up on trying to fix these, so just ignore it.