Skip to content

Instantly share code, notes, and snippets.

@fanghAMD
Created March 9, 2021 05:58
Show Gist options
  • Save fanghAMD/531fc24096163ba4492dbf663a8d75e1 to your computer and use it in GitHub Desktop.
Save fanghAMD/531fc24096163ba4492dbf663a8d75e1 to your computer and use it in GitHub Desktop.
UE4 Key global constants
/**
* Structure to define all the layers of the config system. Layers can be expanded by expansion files (NoRedist, etc), or by ini platform parents
* (coming soon from another branch)
*/
struct FConfigLayer
{
// Used by the editor to display in the ini-editor
const TCHAR* EditorName;
// Path to the ini file (with variables)
const TCHAR* Path;
// Path to the platform extension version
const TCHAR* PlatformExtensionPath;
// Special flag
EConfigLayerFlags Flag;
} GConfigLayers[] =
{
/**************************************************
**** CRITICAL NOTES
**** If you change this array, you need to also change EnumerateConfigFileLocations() in ConfigHierarchy.cs!!!
**** And maybe UObject::GetDefaultConfigFilename(), UObject::GetGlobalUserConfigFilename()
**************************************************/
// Engine/Base.ini
{ TEXT("AbsoluteBase"), TEXT("{ENGINE}Base.ini"), TEXT(""), EConfigLayerFlags::Required },
// Engine/Base*.ini
{ TEXT("Base"), TEXT("{ENGINE}{ED}{EF}Base{TYPE}.ini") },
// Engine/Platform/BasePlatform*.ini
{ TEXT("BasePlatform"), TEXT("{ENGINE}{ED}{PLATFORM}/{EF}Base{PLATFORM}{TYPE}.ini"), TEXT("{EXTENGINE}/{ED}{EF}Base{PLATFORM}{TYPE}.ini"), },
// Project/Default*.ini
{ TEXT("ProjectDefault"), TEXT("{PROJECT}{ED}{EF}Default{TYPE}.ini"), TEXT(""), EConfigLayerFlags::AllowCommandLineOverride | EConfigLayerFlags::GenerateCacheKey },
// Engine/Platform/Platform*.ini
{ TEXT("EnginePlatform"), TEXT("{ENGINE}{ED}{PLATFORM}/{EF}{PLATFORM}{TYPE}.ini"), TEXT("{EXTENGINE}/{ED}{EF}{PLATFORM}{TYPE}.ini") },
// Project/Platform/Platform*.ini
{ TEXT("ProjectPlatform"), TEXT("{PROJECT}{ED}{PLATFORM}/{EF}{PLATFORM}{TYPE}.ini"), TEXT("{EXTPROJECT}/{ED}{EF}{PLATFORM}{TYPE}.ini") },
// UserSettings/.../User*.ini
{ TEXT("UserSettingsDir"), TEXT("{USERSETTINGS}Unreal Engine/Engine/Config/User{TYPE}.ini") },
// UserDir/.../User*.ini
{ TEXT("UserDir"), TEXT("{USER}Unreal Engine/Engine/Config/User{TYPE}.ini") },
// Project/User*.ini
{ TEXT("GameDirUser"), TEXT("{PROJECT}User{TYPE}.ini"), TEXT(""), EConfigLayerFlags::GenerateCacheKey },
};
@fanghAMD
Copy link
Author

fanghAMD commented Mar 9, 2021

{ENGINE} - EngineConfigDir = L"../../../Engine/Config/"
{TYPE} - L"Scalability"
{USERSETTINGS} - FPlatformProcess::UserSettingsDir() - L"C:/Users/USERNAME/AppData/Local/"
{USER} - FPlatformProcess::UserDir() - L"C:/Users/USERNAME/Documents/"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment