UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FProjectEditorRecord Struct Reference

#include <ProjectEditorRecords.h>

Public Member Functions

PROJECTS_API const TSharedPtr< FJsonObjectFindOrAddProperty (const FString &InProperty)
 

Static Public Member Functions

static PROJECTS_API void QueueUpdate (TUniqueFunction< void(FProjectEditorRecord &)> &&InUpdateFunction)
 
static PROJECTS_API FProjectEditorRecord Load ()
 
static PROJECTS_API TSharedPtr< FJsonObjectMakeDefaultProperties ()
 
static PROJECTS_API void TearDown ()
 

Public Attributes

TSharedPtr< FJsonObjectProjectEditorJson
 

Static Public Attributes

static PROJECTS_API const FString ProjectsProperty = TEXT("Projects")
 
static PROJECTS_API const FString SubProjectProperty = TEXT("SubProjects")
 
static PROJECTS_API const FString EngineLocationProperty = TEXT("EngineLocation")
 
static PROJECTS_API const FString BaseDirProperty = TEXT("BaseDir")
 
static PROJECTS_API const FString TimestampProperty = TEXT("LastAccessed")
 
static PROJECTS_API const FString EpicAppProperty = TEXT("EpicApp")
 

Detailed Description

Struct specifying the structure of the records file, this is used to maintain an association between recently opened projects and the location of the editor engine used to open them. This is meant to be a machine wide record to facilitate locating the right engine executable.

Usage:

  • QueueUpdate to update the record
  • Load to read from the record

Member Function Documentation

◆ FindOrAddProperty()

const TSharedPtr< FJsonObject > FProjectEditorRecord::FindOrAddProperty ( const FString &  InProperty)

Finds or adds an object property to the root of the json

Parameters
Thename of the property to find or add
Returns
Shared pointer to the json object corresponding to the property input

◆ Load()

FProjectEditorRecord FProjectEditorRecord::Load ( )
static

Loads a project editor record from disk, using the default location LOCALAPPDATA%/UnrealEngine/Editor/ProjectEditorRecords.json location can be overriden by cvar r.Editor.ProjectEditorRecordsFile

Returns
The struct loaded from disk, or an empty one.

◆ MakeDefaultProperties()

TSharedPtr< FJsonObject > FProjectEditorRecord::MakeDefaultProperties ( )
static

Creates a JsonObject containing the default entries

  • Path to the UnrealEditor.exe used when calling this function (meant to be UnrealEditor.exe)
  • Path to the base directory when calling this function
  • Current timestamp
Returns
JsonObject containing the default entries for a project

◆ QueueUpdate()

void FProjectEditorRecord::QueueUpdate ( TUniqueFunction< void(FProjectEditorRecord &)> &&  InUpdateFunction)
static

This is the main way to interact with the json contents to add entries in a safe way.

QueueUpdate schedules a task that will try to run in another thread and perform these operations:

  • Acquires a system wide lock
  • Loads the latest records from disk
  • Runs the function passed as a parameter with the loaded contents
  • Saves the records to disk
  • Releases system wide lock
Parameters
Functionused to update the records in a worker thread

◆ TearDown()

void FProjectEditorRecord::TearDown ( )
static

Waits for any queued async tasks to finish if there are any

Member Data Documentation

◆ BaseDirProperty

const FString FProjectEditorRecord::BaseDirProperty = TEXT("BaseDir")
static

Property used to specify the path of the base dir of the engine used for the project

◆ EngineLocationProperty

const FString FProjectEditorRecord::EngineLocationProperty = TEXT("EngineLocation")
static

Property used to specify the path of the engine used to open the project

◆ EpicAppProperty

const FString FProjectEditorRecord::EpicAppProperty = TEXT("EpicApp")
static

Property used to specify an Epic App

◆ ProjectEditorJson

TSharedPtr<FJsonObject> FProjectEditorRecord::ProjectEditorJson

The json contents of the records loaded/saved to disk

◆ ProjectsProperty

const FString FProjectEditorRecord::ProjectsProperty = TEXT("Projects")
static

Property used to specify a Projects list

◆ SubProjectProperty

const FString FProjectEditorRecord::SubProjectProperty = TEXT("SubProjects")
static

Property used to specify a SubProjects list

◆ TimestampProperty

const FString FProjectEditorRecord::TimestampProperty = TEXT("LastAccessed")
static

Property used to specify a last accessed timestamp


The documentation for this struct was generated from the following files: