– 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.
Compatibility
- 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.
Requirements
- Skyrim SE 1.5.97 or 1.6.353
- SKSE
- 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.
Credits
- 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.
INI Settings
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.
Localization
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.
Recommended mods
- USSEP and WACCF greatly improve keyword consistency. USSEP also fixes item multiplying bugs in bookshelves and mannequins.
- Immersive Display Overhaul allows to place items on racks via the gift menu.
Back to Skyrim again, another slew of updates has made this plugin out-of-date with latest SKSE. Any chance of an update? Normally downgrading isn’t so bad but is a huge pain with Wabbajack install lists.
Still my favorite utility mod!
Just saw the latest comments below, will test too!
any chance of update to the latest se version, i really miss this mod a lot.
There is an untested build in my git, but I’m busy with another project to test and publish it. You can replace the DLL in 1.0.7, I think I tested it briefly in 1.6.640 (Steam), but not in 1.6.659 (GOG).
great, thanks. tried it, works great on 1.6.640 (Steam).
really appreciate it.
Thanks to you for publishing a great mod.
Is it possible to use TCC for basic tracker and other simple mods for Artifact Tracker?
Examples: Cheesemod, Narrative Loot, Additional Hearthfire Dolls, Inn Soaps, SUDs, etc…
Unfortunately, AT is completely incompatible with TCC because they use the same method of integrating with MoreHUD. To achieve this, either I will have to write my own system hooking into Skyrim UI, or Ahzaab could write an API, supporting multiple mods instead of only one.
Thank you for your quick reply.
I see that using both at the same time is not feasible with the current specification of moreHUD. You have great ideas and skills, and I look forward to your future mods development đ
If an item gets distributed both the “ETR_NotArtifact” and “ETR_ExtraArtifact” keywords, what happens?
Like, “VendorItemClutter” is excluded from the default distribution, but if I wanted to include specific items which feature this keyword, would it work to just add “ETR_ExtraArtifact” for these?
Oh, brain blast…
Think I could first distribute the âETR_ExtraArtifactâ keywords I need, then modify the âVendorItemClutterâ lines to ignore anything that already has the âETR_ExtraArtifactâ keyword.
Just a theory, but I’m thinking that should work.
Different types have different order of precedence, for now consult plugin’s source code.Added order of precedence to the description. In case of misc items, ETR_ExtraArtifact will win.
hi, great great mod.
i have an issue, i have a house mod that has activator for weapons, armor, treausre maps, etc, but when i put my weapons on them the mod doesnt register them as displayed.
so how can i make this mod recognize i?
Make a simple test – drop a weapon while inside.
If its status changed to “stored”, that activator sends items to containers somewhere outside, and therefore needs a patch. REFRs of the containers must be added to the ETR_PersistentStorageList formlist.
If the status hasn’t changed, your house either does not have a location assigned, or its location is missing the LocTypePlayerHouse keyword.
thanks for the reply.
yes, the mod is working fine in the house and its containers, only the activators for weapons and armors aren’t recognized.
so i need to add the REFRs of the containers to the ETR_PersistentStorageList formlist?
is there any anyway to copy the REFRs of the containers all at once, cuz there are alot of activators which will take forever to copy them all.
Only a custom xEdit script for this task comes to mind.
so how did you patch legacy of the dragonborn? cuz those activators act like the activators in legacy.
LotD actually uses only four containers to store all artifacts. All activators put or pull items from them.
i see, thanks for your patience and answers.
This gives me an idea to add a formlist of _cells_, where all persistent containers are automatically tracked.
yes, that would be a great feature, a lot of mods like skyrimlazz ones has activators that can’t be tracked without a patch.
The webpage isn’t letting me add a direct reply to your last, so here…
Used the new DLL, and it failed to detect KID:
[info] ArtifactTracker 1.0.6.0 is loading…
[info] ArtifactTracker has finished loading.
[info] [DEFAULT] DumpItemList = false
[info] [DEFAULT] NewArtifactNotifications = false
[info] [DEFAULT] WarnMissingKID = true
[info] [DEFAULT] WarnMissingMoreHUD = true
[info] [INI] DumpItemList = true
[info] [INI] NewArtifactNotifications = true
[info] [INI] WarnMissingKID = true
[info] [INI] WarnMissingMoreHUD = true
[info] Detected Ahzaab’s moreHUD Plugin v5010100
[info] Registering icons in MoreHUD…
[info] Detected Ahzaab’s moreHUD Inventory Plugin v2000400
[info] Registering icons in MoreHUD Inventory Edition…
[info] Keyword Item Distributor has NOT been detected, using the baseline configuration.
[info] Total artifacts: 13619
Exact same behavior as the current DLL though in terms of which items are tagged and which are skipped, so that makes me think something is happening with detecting KID. When I use the original DLL, there is no message about KID in the dump log:
[info] ArtifactTracker 1.0.5.0 is loading…
[info] ArtifactTracker has finished loading.
[info] [DEFAULT] DumpItemList = false
[info] [DEFAULT] NewArtifactNotifications = false
[info] [INI] DumpItemList = true
[info] [INI] NewArtifactNotifications = true
[info] Detected Ahzaab’s moreHUD Plugin v5010100
[info] Registering icons in MoreHUD…
[info] Detected Ahzaab’s moreHUD Inventory Plugin v2000400
[info] Registering icons in MoreHUD Inventory Edition…
[info] Total artifacts: 13619
But again, they have the exact same behaviors in terms of tagging items, so that makes me think in both cases, KID installed properly or not, it’s using the default rules. But I’m just doing trial and error at this point, not sophisticated.
That all said, manually adding the ETR_ExtraArtifact keyword to any item, mod keywords also present or not, Artifact Tracker finds and tags these items and it is reflected in the dump:
[info] [1D000D6F] Ammonite Fossil
And just as a sanity check, I stripped everything out of the load order except the strict dependencies, same behavior, so at least it doesn’t appear to be anything other that this interaction. Last – thanks for all your help with this, truly think Skyrim SE needs more injected mods – I’m working with a 1400 plugin load order which is mostly patches…ridiculous.
KID for AE has a different internal name! Even though it shares a cmake config and a FOMOD installer with the SE version. When KID is properly detected, Artifact Tracker waits for it to distribute keywords. When it’s not, AT goes with the baseline.
Thank you for help, I just released an update.
And now it all works! Perfect, love this mod.
I added your suggested patch to the So from the Artifact Tracker Log:
[info] ArtifactTracker 1.0.5.0 is loading…
[info] ArtifactTracker has finished loading.
[info] [DEFAULT] DumpItemList = false
[info] [DEFAULT] NewArtifactNotifications = false
[info] [INI] DumpItemList = true
[info] [INI] NewArtifactNotifications = true
[info] Detected Ahzaab’s moreHUD Plugin v5010100
[info] Registering icons in MoreHUD…
[info] Detected Ahzaab’s moreHUD Inventory Plugin v2000400
[info] Registering icons in MoreHUD Inventory Edition…
[info] Total artifacts: 13747
…and the list of registered artifacts.
Then the po3_KeywordItemDistributor v2.0.0.1 log:
[18:32:04:747] loaded plugin
[18:32:04:764] *************INI**************
[18:32:04:782] 2 matching inis found
[18:32:04:782] INI : Data\Artifact Tracker Patches_KID.ini
[18:32:04:782] INI : Data\Artifact Tracker_KID.ini
[18:32:15:585] ************LOOKUP************
…and then the lookups. It does seem to recognize the correct plugin though:
[18:32:15:607] Filter (Fossilsyum.esp) INFO – mod found
Weirdest bit is Bad Gremlin Collection misc items (fairy bottles and whatnot) DO get icons sans any patch, whereas the Fossils still do not have icons with the patch you provided in your reply. I even just tried removing any attempt at a patch by commenting out the line, hoping it would work by default like the Bad Gremlin Collection, but still no dice. Really not sure what’s happening here, so any help would be awesome.
Love this idea, just trying to get the patches to work right…
I cannot get your patched file nor my custom patches (based on your pre-patched files) to work. Basically I’m using the exact same patch but for Fossil Mining – here’s what I’ve got:
Keyword = ETR_ExtraArtifact|Misc|Fossilsyum.esp
Keyword = ETR_ExtraArtifact|Ore|Fossilsyum.esp
And added these lines to Artifact Tracker Patches_KID.ini and left it in the root of Artifact Tracker mod folder…but no icons. My load order is just SkyUI, standard utilities (SKSE, KID 2.0, etc.) and QUI for testing. Any help here would be incredible.
Your mods are a standard in my load order, keep it up.
Hm, I play with Fossilsyum myself, how come I haven’t included it. I will add it to the next patch for sure.
——————-
KID syntax is off, see documentation.
Allowed types in the middle section: ï»żWeapon, Armor, Ammo, Magic Effect, Potion, Scroll, Location, Ingredient, Book, Misc Item
Hence, just
Keyword = ETR_ExtraArtifact|Misc Item|Fossilsyum.esp
is sufficient. Misc Item already covers ore.
——————-
Fossilsyum.esp alone in the 3rd section is fine if you are doing a patch only for yourself. If you are going to share it, you need the trick I described in Artifact Tracker Patches_KID.ini:
Keyword = ETR_ExtraArtifact|Misc Item|Fossilsyum.esp,TGMark
Wait a minute. Because of your comment, I assumed fossils have the VendorItemOreIngot keyword, and therefore should have been added explicitly. They do not, Fossilsyum is automatically supported without any configuration.
If you do not see icons, check if you downloaded proper KID and MoreHUD versions for your Skyrim.
I’m keeping my previous comment as a reference how a patch can be made.
Thanks for the reply – it’s definitely my syntax somewhere and a dependency issue. I’ll work on it tonight and use your clarification above to at least get the syntax correct. Though I definitely use many other mods that utilize KID and MoreHUD…maybe something odd is happening. I’ll post here if it’s a one-off conflict with another mod, though I don’t know what that would be.
Open Documents\My Games\Skyrim Special Edition\SKSE and check files ArtifactTracker.log and po3_KeywordItemDistributor.log, what do they say?
Ack, started a new thread above. Apologies.
– Search “Fossil” in the dumped list. Are they in the list?
– The Curator’s Companion is not installed, correct? I realized I haven’t added a sanity check for it.
– Try including them by keyword:
Keyword = ETR_ExtraArtifact|Misc Item|FOS_T1,FOS_T2,FOS_T3,FOS_T4
Ok made some progress, but first your questions:
1.) No “Fossil” in the dumped list (yet – see below)
2.) Curator’s Companion not installed
3.) Tried including by keywords, and some other things like:
Keyword = ETR_ExtraArtifact|Misc Item|FOS_T1,FOS_T2,FOS_T3,FOS_T4
Keyword = ETR_ExtraArtifact|Misc Item|Fossilsyum.esp
Keyword = ETR_ExtraArtifact|Misc Item|FOS_TinyFish,FOS_Amber,FOS_Ammonite
but still no icons.
Then I noticed the Legacy Patches modified a single record of Fossilsyum.esp by removing the FOS_T3 keyword from a single fossil record (the Opalized Dragon Fossil). THAT single fossil did receive an icon, even when the patch was removed from the KID.ini. Removing the FOS_T1,FOS_T2,FOS_T3,FOS_T4 keywords from the fossils records allows Artifact Tracker to find and assign the icon/keyword.
I think this also is the case with other mods like Reforging – To the Masses (Weapon Expansion) where a lot of the weapons are missing icons from Artifact Tracker when they otherwise should because a keyword from the mod is preventing Artifact Tracker from doing its thing…or something. Some of this is a little beyond my knowhow. Anyway I don’t know what removing these mod-added keywords does, but it does give me icons…which is cool. But some more robust guidance here would be better.
I know where it skips fossils (here), but I can’t figure out why, the logic is sound and it works on my end.
———
According to this condition, misc items are added, when:
– They have no keywords (this one works).
– KID isn’t loaded and ETR_ExtraArtifact is assigned.
– KID is loaded, ETR_NotArtifact isn’t assigned.
– KID is loaded, both ETR_NotArtifact and ETR_ExtraArtifact are assigned (ETR_ExtraArtifact wins).
———
So, the only feasible scenario for it to fail is when KID is not detected. Replace your DLL with this new build and check in the log if it detects KID. If it does, the only way it would fail if it assigns ETR_NotArtifact instead of ETR_ExtraArtifact đ Try adding ETR_ExtraArtifact to a fossil manually in xEdit, what happens?
great mod as always
if I wanted to filter out mundane items from having keywords, would I make an ini file with lines like this?
Keyword = ETR_NotArtifact|Weapon||-E
Keyword = ETR_NotArtifact|Book||-S,-AV
Keyword = ETR_NotArtifact|Weapon||-E
This is correct, it excludes all unenchanted weapons.
——————-
Keyword = ETR_NotArtifact|Book||-S,-AV
Excludes ALL books, except the skill ones (spell tomes are excluded by default).
ETR_NotArtifact on books overrides ETR_ExtraArtifact, this means it will exclude recipes and treasure maps I included in Artifact Tracker_KID.ini.
——————–
To keep recipes tracked, you can do this:
Keyword = ETR_NotArtifact|Book||-S,-AV,-VendorItemRecipe
——————–
To include spell tomes, add them explicitly:
Keyword = ETR_ExtraArtifact|Book||S
thank you