– 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.



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.


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.

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.

Main Files

Size: 229 KB
Uploaded: 22 September, 2022 10:30
Downloaded: 821 times

Optional Files

Artifact Tracker INI

Optional INI configuration. You only need to download this once, any new settings will be added automatically.

Size: 252 B
Uploaded: 16 July, 2022 21:33
Downloaded: 822 times

Compatibility Patches

General Stores Patch 1.1

Mod page | 1.1 - Added tracking of alchemy and food containers.

Size: 422 B
Uploaded: 20 October, 2022 21:40
Downloaded: 21 times

Solitude Museum Patch 1.0

Mod page | Requires Artifact Tracker 1.0.2+

Size: 5 KB
Uploaded: 15 July, 2022 20:14
Downloaded: 775 times

LotD Patch 1.0

Mod page | Incompatible with The Curator's Companion. Item lists of AT and LotD DO NOT MATCH: the green mark is shown on items displayed in the museum and/or stored at home, some displayable items may not be tracked by Artifact Tracker.

Size: 4 KB
Uploaded: 15 July, 2022 23:30
Downloaded: 70 times

Enderal SE Patch 1.0

Mod page | Requires Artifact Tracker 1.0.5+ | Marks as home houses in Ark and Riverville. Adds to the list of persistent containers: Secure Chest, Spectral Chest, Blueprint Collection.

Size: 3 KB
Uploaded: 18 July, 2022 13:33
Downloaded: 35 times

Leave a Reply

Your email address will not be published. Required fields are marked *

Enter Captcha Here :


  1. 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!

    1. 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).

  2. 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…

    1. 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.

      1. 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 😀

  3. 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?

    1. 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.

    2. 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.

  4. 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?

    1. 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.

      1. 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.

            1. LotD actually uses only four containers to store all artifacts. All activators put or pull items from them.

        1. This gives me an idea to add a formlist of _cells_, where all persistent containers are automatically tracked.

          1. yes, that would be a great feature, a lot of mods like skyrimlazz ones has activators that can’t be tracked without a patch.

  5. 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 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 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.

    1. 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.

  6. I added your suggested patch to the So from the Artifact Tracker Log:

    [info] ArtifactTracker 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.

  7. 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.

    1. 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

    2. 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.

      1. 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.

        1. Open Documents\My Games\Skyrim Special Edition\SKSE and check files ArtifactTracker.log and po3_KeywordItemDistributor.log, what do they say?

            1. – 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

              1. 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.

                1. 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?

  8. 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

    1. 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