– Mom, can we have the Dwarven Sword?
– No, honey, we have a Dwarven Sword at home.
Artifact Tracker brings item tracking to non-LotD modlists, keeping track of new, found, and stored artifacts and showing special icons in MoreHUD, in a similar way The Curator’s Companion works for museum artifacts.
To mark an item as stored, stash it at home – store in a container, place on a rack or mannequin, or simply drop. Pick it up, and it will be marked as “found” again. Dispose of it outside of home, the status will change to “new”.
Artifact Tracker does not use pre-defined item lists and tracks items from all loaded mods. Running by itself, it counts as artifacts:
- all playable weapons,
- all playable apparel,
- all books, excluding spell tomes, notes, and journals,
- misc items are conditional: when Keyword Item Distributor (KID) is not loaded, AT tracks only misc items without keywords, when it is, it’s the opposite – all misc items are included, expecting a KID config to filter out certain keywords.
Food, potions, ingredients, and soul gems are not tracked by default, but certain items and keywords can be included explicitly via a KID config.
This is the baseline without any configuration present. To further customize this list, we use two custom keywords – ETR_ExtraArtifact (adds items to list) and ETR_NotArtifact (removes items from list). They are injected into Update.esm, so modders could copy them into their mods and mark items through hard edits without adding AT as master.
Obviously, adding the keywords manually at this scale is not practical. Use Keyword Item Distributor by powerofthree to assign the keywords en masse. I have included two KID configs, customizing the artifact list. You can review them from my git (they may be a bit ahead of the release versions):
- Artifact Tracker_KID.ini – general tweaks. The most significant filter is exclusion of disenchantable items, in my setup it brings the total number of tracked items from 29242 down to 7721. It also excludes all unenchanted clothing.
- Artifact Tracker Patches_KID.ini patches a few mods I use. For instance, it registers treasure maps (because they are notes, which are excluded by default) and Cheesemod collectibles (because food is also not included by default).
My KID configs are in no way comprehensive, I cannot cover thousands of Skyrim mods, you may need to make your own additions. See the KID page for usage instructions and questions. There is usually no need to explicitly register new weapons, armor, books, and misc items, because, as I mentioned earlier, these types are checked and tracked automatically.
What happens when an item has both artifact keywords? This depends on the item’s form type:
- Weapons, armor, misc items – ETR_ExtraArtifact wins.
- Books, food, potions, ingredients, soul gems – ETR_NotArtifact wins.
Items on followers are accounted for and are marked as “found”. Changes in follower’s status (hired/fired/dead/waiting) are not instant and generally get updated after changing location or save reload.
- All vanilla and Creation Club homes are compatible.
- Skyrim SE (1.5.97) and AE (1.6.x) are both supported. VR is probably, too, haven’t had an occasion to test.
- Legacy of the Dragonborn is compatible with the patch below, but I strongly recommend using TCC instead for more curated experience. Plus, the green mark has different meanings in TCC and Artifact Tracker, AT will mark as stored items displayed in the museum and/or stored at home, which can be unintuitive.
Incompatibilities arise, when items are stored in a remote cell or when a container is moving between cells. Examples:
- General Stores keeps all items in a special cell, inaccessible to player.
- Some mods add a summonable chest for your stuff.
- Elysium Estate uses “linked containers”, allowing to open the same storage from its main hall, basement, and outside.
Good news is, all these cases can be patched. To make them compatible, their persistent container references (REFR) must be added to the ETR_PersistentStorageList formlist. See the General Stores patch for example. When left unpatched, stored items will be marked as “new”.
What if your mod-added house is not recognized as home? Skyrim uses location keywords to determine what kind of location you are in. LocTypePlayerHouse marks player homes. If a mod author never paid attention to Skyrim conventions, they might leave the house unmarked, and Artifact Tracker won’t be able to distinguish it from, for instance, a cave. Either patch it by yourself, or ask the author to add the keyword. I have included a template location record in Artifact Tracker.esp, which you can copy and add to the house cell.
This should go without saying: if you are using multiple patches from the section below, you should merge ETR_PersistentStorageList changes into your manual patch in xEdit (do standard conflict resolution), otherwise only the last one loaded will work.
- Skyrim SE 1.5.97 or 1.6.353
- Address Library for SKSE Plugins
- MoreHUD SE 3.8+
- MoreHUD Inventory Edition 1.0.17+
- Keyword Item Distributor 2.0+
MoreHUD and KID are soft requirements, Artifact Tracker can work without them in case you need to use its formlists in your mod for something else.
- Ryan McKenzie, powerofthree, CharmedBaryon and other contributors for CommonLibSSE and CommonLibSSE-NG.
- icecreamassassin and Ic0nIc0de for The Curator’s Companion.
- Ahzaab for convenient icon registration in MoreHUD.
- 0xC0000005 for Fix Note icon for SkyUI.
- All the people who make their SKSE plugins open source. This is my first C++ plugin, and it wouldn’t happen without looking at other modders’ work.
The optional INI configuration allows to toggle the following features:
- NewArtifactNotifications = true enables corner notifications about newly found artifacts.
- DumpItemList = true writes names of all detected artifacts to “My Documents\My Games\Skyrim Special Edition\SKSE\ArtifactTracker.log”. Helps to debug custom KID settings.
- WarnMissingKID = true and WarnMissingMoreHUD = true enable notifications about missing requirements.
Currently, the only part of AT, which may require translation, is notifications.
Notifications are implemented through Papyrus scripts ETR_*Notification. To translate them, edit the scripts in the Creation Kit.