From b6c7e8e0b60b36affb0678206ac5615435fc0168 Mon Sep 17 00:00:00 2001 From: Zach Metcalf Date: Tue, 11 Nov 2025 15:35:46 -0800 Subject: [PATCH 1/3] Update ImGuiContext.cpp // #AllowImGuiIni // When DISABLE_NONUFS_INI_WHEN_COOKED is defined, FPakPlatformFile::IsNonPakFilenameAllowed rejects all free .ini files except for GameUserSettings.ini via a relatively hacky code path // ImGui.ini is effectively ImGui's equivalent, so we can piggyback off of this, and read our file in packaged builds, if we name it ImGuiGameUserSettings.ini --- Source/ImGui/Private/ImGuiContext.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/ImGui/Private/ImGuiContext.cpp b/Source/ImGui/Private/ImGuiContext.cpp index 02ace64..1305d3d 100644 --- a/Source/ImGui/Private/ImGuiContext.cpp +++ b/Source/ImGui/Private/ImGuiContext.cpp @@ -371,7 +371,7 @@ void FImGuiContext::Initialize() #endif // Ensure each PIE session has a uniquely identifiable context - const FString ContextName = (PieSessionId > 0 ? FString::Printf(TEXT("ImGui_%d"), PieSessionId) : TEXT("ImGui")); + const FString ContextName = (GPlayInEditorID > 0 ? FString::Printf(TEXT("ImGuiGameUserSettings_%d"), static_cast(GPlayInEditorID)) : TEXT("ImGuiGameUserSettings")); const FString IniFilename = FPaths::GeneratedConfigDir() / FPlatformProperties::PlatformName() / ContextName + TEXT(".ini"); FPlatformString::Convert(reinterpret_cast(IniFilenameUtf8), UE_ARRAY_COUNT(IniFilenameUtf8), *IniFilename, IniFilename.Len() + 1); From 2b2e35e767ebbd1f7139d8965e01a0e2e6df4674 Mon Sep 17 00:00:00 2001 From: Zach Metcalf Date: Tue, 11 Nov 2025 15:42:01 -0800 Subject: [PATCH 2/3] Revert "Update ImGuiContext.cpp" This reverts commit b6c7e8e0b60b36affb0678206ac5615435fc0168. --- Source/ImGui/Private/ImGuiContext.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/ImGui/Private/ImGuiContext.cpp b/Source/ImGui/Private/ImGuiContext.cpp index 1305d3d..02ace64 100644 --- a/Source/ImGui/Private/ImGuiContext.cpp +++ b/Source/ImGui/Private/ImGuiContext.cpp @@ -371,7 +371,7 @@ void FImGuiContext::Initialize() #endif // Ensure each PIE session has a uniquely identifiable context - const FString ContextName = (GPlayInEditorID > 0 ? FString::Printf(TEXT("ImGuiGameUserSettings_%d"), static_cast(GPlayInEditorID)) : TEXT("ImGuiGameUserSettings")); + const FString ContextName = (PieSessionId > 0 ? FString::Printf(TEXT("ImGui_%d"), PieSessionId) : TEXT("ImGui")); const FString IniFilename = FPaths::GeneratedConfigDir() / FPlatformProperties::PlatformName() / ContextName + TEXT(".ini"); FPlatformString::Convert(reinterpret_cast(IniFilenameUtf8), UE_ARRAY_COUNT(IniFilenameUtf8), *IniFilename, IniFilename.Len() + 1); From 3b7a6faa5856112eeea7d4e9d4b6eb48a6065050 Mon Sep 17 00:00:00 2001 From: Zach Metcalf Date: Tue, 11 Nov 2025 15:42:30 -0800 Subject: [PATCH 3/3] Update ImGuiContext.cpp --- Source/ImGui/Private/ImGuiContext.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/ImGui/Private/ImGuiContext.cpp b/Source/ImGui/Private/ImGuiContext.cpp index 02ace64..746321c 100644 --- a/Source/ImGui/Private/ImGuiContext.cpp +++ b/Source/ImGui/Private/ImGuiContext.cpp @@ -371,7 +371,7 @@ void FImGuiContext::Initialize() #endif // Ensure each PIE session has a uniquely identifiable context - const FString ContextName = (PieSessionId > 0 ? FString::Printf(TEXT("ImGui_%d"), PieSessionId) : TEXT("ImGui")); + const FString ContextName = (PieSessionId > 0 ? FString::Printf(TEXT("ImGuiGameUserSettings_%d"), PieSessionId) : TEXT("ImGuiGameUserSettings")); const FString IniFilename = FPaths::GeneratedConfigDir() / FPlatformProperties::PlatformName() / ContextName + TEXT(".ini"); FPlatformString::Convert(reinterpret_cast(IniFilenameUtf8), UE_ARRAY_COUNT(IniFilenameUtf8), *IniFilename, IniFilename.Len() + 1);