diff --git a/SKSE/Plugins/ArtifactTracker.dll b/SKSE/Plugins/ArtifactTracker.dll index 6f81115..233f3c4 100644 Binary files a/SKSE/Plugins/ArtifactTracker.dll and b/SKSE/Plugins/ArtifactTracker.dll differ diff --git a/Source/ArtifactTrackerDLL/src/Main.cpp b/Source/ArtifactTrackerDLL/src/Main.cpp index e1610e8..e6b7756 100644 --- a/Source/ArtifactTrackerDLL/src/Main.cpp +++ b/Source/ArtifactTrackerDLL/src/Main.cpp @@ -29,11 +29,13 @@ namespace { { GetMessagingInterface()->RegisterListener([](MessagingInterface::Message* message) { if (message->type == MessagingInterface::kPostLoad) { - SKSE::GetModCallbackEventSource()->AddEventSink(EventListener::GetSingleton()); - } else if (message->type == MessagingInterface::kNewGame || message->type == MessagingInterface::kPreLoadGame) { - ArtifactTracker::Init(); // if KID is not installed + SKSE::GetModCallbackEventSource()->AddEventSink(EventListener::GetSingleton()); // runs, if KID is installed + } else if (message->type == MessagingInterface::kDataLoaded) { + if (const auto pluginInfo = ArtifactTracker::g_loadInterface->GetPluginInfo("po3_KeywordItemDistributor"); !pluginInfo) { + ArtifactTracker::Init(); // if KID is not installed + } } else if (message->type == MessagingInterface::kPostLoadGame) { - ArtifactTracker::OnGameLoad(); // refresh g_persistentMap from savegame + ArtifactTracker::OnGameLoad(); // save-specific updates } }); }