diff --git a/.gitmodules b/.gitmodules
index 2221fc41..05465fcd 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,3 +1,6 @@
[submodule "CUE4Parse"]
path = CUE4Parse
url = https://github.com/FabianFG/CUE4Parse
+[submodule "EpicManifestParser"]
+ path = EpicManifestParser
+ url = https://github.com/FModel/EpicManifestParser
diff --git a/CUE4Parse b/CUE4Parse
index 807d4712..c33075ab 160000
--- a/CUE4Parse
+++ b/CUE4Parse
@@ -1 +1 @@
-Subproject commit 807d471212cc7a5953223c337324943d0ae5281f
+Subproject commit c33075abbeb030c0a7d6fc12ea0913c982232e64
diff --git a/EpicManifestParser b/EpicManifestParser
new file mode 160000
index 00000000..0c633f3d
--- /dev/null
+++ b/EpicManifestParser
@@ -0,0 +1 @@
+Subproject commit 0c633f3d3ad6f1eed9df9cee60917e1e169a0101
diff --git a/FModel/Creator/Bases/FN/BaseCommunity.cs b/FModel/Creator/Bases/FN/BaseCommunity.cs
index 0967d38a..1f95a6bc 100644
--- a/FModel/Creator/Bases/FN/BaseCommunity.cs
+++ b/FModel/Creator/Bases/FN/BaseCommunity.cs
@@ -1,4 +1,4 @@
-using CUE4Parse.FN.Enums;
+using CUE4Parse.GameTypes.FN.Enums;
using CUE4Parse.UE4.Assets.Exports;
using CUE4Parse.UE4.Objects.GameplayTags;
using CUE4Parse.UE4.Objects.UObject;
diff --git a/FModel/Creator/Bases/FN/BaseIcon.cs b/FModel/Creator/Bases/FN/BaseIcon.cs
index 15f792e6..897fbbfd 100644
--- a/FModel/Creator/Bases/FN/BaseIcon.cs
+++ b/FModel/Creator/Bases/FN/BaseIcon.cs
@@ -2,7 +2,6 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows;
-using CUE4Parse.FN.Enums;
using CUE4Parse.UE4.Assets.Exports;
using CUE4Parse.UE4.Assets.Exports.Engine;
using CUE4Parse.UE4.Assets.Exports.Material;
@@ -13,6 +12,7 @@ using CUE4Parse.UE4.Objects.Core.Math;
using CUE4Parse.UE4.Objects.GameplayTags;
using CUE4Parse.UE4.Objects.UObject;
using CUE4Parse_Conversion.Textures;
+using CUE4Parse.GameTypes.FN.Enums;
using FModel.Settings;
using SkiaSharp;
diff --git a/FModel/Creator/Bases/FN/BaseIconStats.cs b/FModel/Creator/Bases/FN/BaseIconStats.cs
index 3a8e374f..3a25871f 100644
--- a/FModel/Creator/Bases/FN/BaseIconStats.cs
+++ b/FModel/Creator/Bases/FN/BaseIconStats.cs
@@ -1,6 +1,6 @@
using System;
using System.Collections.Generic;
-using CUE4Parse.FN.Enums;
+using CUE4Parse.GameTypes.FN.Enums;
using CUE4Parse.UE4.Assets.Exports;
using CUE4Parse.UE4.Assets.Exports.Engine;
using CUE4Parse.UE4.Assets.Objects;
diff --git a/FModel/FModel.csproj b/FModel/FModel.csproj
index dddd4b49..ce82fa53 100644
--- a/FModel/FModel.csproj
+++ b/FModel/FModel.csproj
@@ -111,7 +111,6 @@
-
@@ -128,6 +127,7 @@
+
diff --git a/FModel/FModel.sln b/FModel/FModel.sln
index 238d1b59..52492681 100644
--- a/FModel/FModel.sln
+++ b/FModel/FModel.sln
@@ -9,6 +9,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CUE4Parse", "..\CUE4Parse\C
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CUE4Parse-Conversion", "..\CUE4Parse\CUE4Parse-Conversion\CUE4Parse-Conversion.csproj", "{D0E1E8F7-F56D-469A-8E24-C2439B9FFD83}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EpicManifestParser", "..\EpicManifestParser\src\EpicManifestParser\EpicManifestParser.csproj", "{D4958A8B-815B-421D-A988-2A4E8E2B582D}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -27,6 +29,10 @@ Global
{D0E1E8F7-F56D-469A-8E24-C2439B9FFD83}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D0E1E8F7-F56D-469A-8E24-C2439B9FFD83}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D0E1E8F7-F56D-469A-8E24-C2439B9FFD83}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D4958A8B-815B-421D-A988-2A4E8E2B582D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D4958A8B-815B-421D-A988-2A4E8E2B582D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D4958A8B-815B-421D-A988-2A4E8E2B582D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D4958A8B-815B-421D-A988-2A4E8E2B582D}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/FModel/Settings/UserSettings.cs b/FModel/Settings/UserSettings.cs
index 785fe030..6cc6e7c8 100644
--- a/FModel/Settings/UserSettings.cs
+++ b/FModel/Settings/UserSettings.cs
@@ -46,7 +46,7 @@ namespace FModel.Settings
return false;
endpoint = endpoints[(int) type];
- return endpoint.IsValid;
+ return endpoint.Overwrite || endpoint.IsValid;
}
private bool _showChangelog = true;
@@ -140,7 +140,7 @@ namespace FModel.Settings
set => SetProperty(ref _isLoggerExpanded, value);
}
- private GridLength _avalonImageSize = GridLength.Auto;
+ private GridLength _avalonImageSize = new (200);
public GridLength AvalonImageSize
{
get => _avalonImageSize;
diff --git a/FModel/ViewModels/CUE4ParseViewModel.cs b/FModel/ViewModels/CUE4ParseViewModel.cs
index 440a821e..91384f6f 100644
--- a/FModel/ViewModels/CUE4ParseViewModel.cs
+++ b/FModel/ViewModels/CUE4ParseViewModel.cs
@@ -334,7 +334,7 @@ public class CUE4ParseViewModel : ViewModel
FLogger.AppendInformation();
FLogger.AppendText($"Mappings pulled from '{endpoint.FilePath.SubstringAfterLast("\\")}'", Constants.WHITE, true);
}
- else
+ else if (endpoint.IsValid)
{
var mappingsFolder = Path.Combine(UserSettings.Default.OutputDirectory, ".data");
var mappings = _apiEndpointView.DynamicApi.GetMappings(cancellationToken, endpoint.Url, endpoint.Path);
diff --git a/FModel/ViewModels/ModelViewerViewModel.cs b/FModel/ViewModels/ModelViewerViewModel.cs
index 34018f77..d19d5dce 100644
--- a/FModel/ViewModels/ModelViewerViewModel.cs
+++ b/FModel/ViewModels/ModelViewerViewModel.cs
@@ -315,7 +315,7 @@ public class ModelViewerViewModel : ViewModel
st.Materials[SelectedModel.SelectedGeometry.MaterialIndex] = obj;
break;
case USkeletalMesh sk:
- sk.Materials[SelectedModel.SelectedGeometry.MaterialIndex].Material = obj;
+ sk.SkeletalMaterials[SelectedModel.SelectedGeometry.MaterialIndex].Material = obj;
break;
case UMaterialInstance:
SelectedModel.SwapExport(materialInstance);