help
help
#Overview
name: help
This variable is created as a Console Variable (cvar).
- type:
Cmd
- help:
Outputs some helptext to the console and the log
It is referenced in 19
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of “help” is to provide assistance and information to users or developers about available commands, options, or functionalities within the Unreal Engine 5 environment. It serves as a built-in documentation and guidance system accessible through various interfaces.
This setting variable is utilized across multiple Unreal Engine subsystems, plugins, and modules, including:
- Core Engine functionality
- Console command system
- Build Patch Tool
- Plastic Source Control plugin
- MainFrame editor module
- Automation tools
- UnrealPackageTool
- UnrealTraceServer
The value of this variable is typically set when a user or system requests help, often through console commands, command-line arguments, or UI interactions.
Other variables that interact with “help” include various command-line switches and options specific to different tools and modules.
Developers should be aware that:
- The “help” functionality is implemented differently across various tools and modules.
- It’s often used as a default action when no specific command is provided.
- In some cases, it’s tied to command-line parsing and can affect the execution flow of tools.
Best practices when using this variable:
- Ensure comprehensive and up-to-date help documentation for all commands and tools.
- Implement consistent help formatting across different modules for a unified user experience.
- Use the help system to provide context-sensitive information based on the current state or module.
- Consider implementing different levels of help (e.g., basic and advanced) for different user types.
- Regularly review and update help content to reflect changes in functionality or new features.
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Source/Runtime/Engine/Private/UnrealEngine.cpp:5541
Scope: file
Source code excerpt:
}
static FAutoConsoleCommandWithWorld GConsoleCommandHelp(
TEXT("help"),
TEXT("Outputs some helptext to the console and the log"),
FConsoleCommandWithWorldDelegate::CreateStatic(DumpHelp)
);
bool UEngine::HandleDumpConsoleCommandsCommand( const TCHAR* Cmd, FOutputDevice& Ar, UWorld* InWorld )
{
#Loc: <Workspace>/Engine/Plugins/CmdLinkServer/Source/CmdLinkServer/Private/CmdLinkServer.cpp:296
Scope (from outer to inner):
file
function bool FCmdLinkServerModule::Execute
Source code excerpt:
{
// if a command wasn't sent, assume they need help
Command = TEXT("help");
}
// try running command on every command executor until one is successful (this allows us to run both engine and python commands)
TArray<IConsoleCommandExecutor*> CommandExecutors = IModularFeatures::Get().GetModularFeatureImplementations<IConsoleCommandExecutor>(TEXT("ConsoleCommandExecutor"));
for (IConsoleCommandExecutor* CommandExecutor : CommandExecutors)
{
#Loc: <Workspace>/Engine/Plugins/Developer/PlasticSourceControl/Source/PlasticSourceControl/Private/PlasticSourceControlConsole.cpp:29
Scope (from outer to inner):
file
function void FPlasticSourceControlConsole::ExecutePlasticConsoleCommand
Source code excerpt:
if (a_args.Num() < 1)
{
ExecutePlasticConsoleCommand(TArray<FString>({TEXT("help")}));
return;
}
FString Results;
FString Errors;
const FString Command = a_args[0];
#Loc: <Workspace>/Engine/Source/Editor/MainFrame/Private/Frame/MainFrameActions.cpp:677
Scope (from outer to inner):
file
function void FMainFrameActionCallbacks::BrowseCVars
Source code excerpt:
void FMainFrameActionCallbacks::BrowseCVars()
{
GEditor->Exec(GEditor->GetEditorWorldContext().World(), TEXT("help"));
}
void FMainFrameActionCallbacks::VisitCommunityHome()
{
FString URL;
if (FUnrealEdMisc::Get().GetURL(TEXT("CommunityHomeURL"), URL))
#Loc: <Workspace>/Engine/Source/Programs/BuildPatchTool/Private/ToolModes/AutomationMode.cpp:131
Scope (from outer to inner):
file
class class FAutomationToolMode : public IToolMode
function bool ProcessCommandline
Source code excerpt:
FCommandLine::Parse(FCommandLine::Get(), Tokens, Switches);
bHelp = ParseOption(TEXT("help"), Switches);
if (bHelp)
{
return true;
}
if (!PARSE_SWITCH(TestList) || TestList.Contains(TEXT(";")))
{
#Loc: <Workspace>/Engine/Source/Programs/BuildPatchTool/Private/ToolModes/ChunkDeltaOptimiseMode.cpp:70
Scope (from outer to inner):
file
class class FChunkDeltaOptimiseMode : public IToolMode
function bool ProcessCommandline
Source code excerpt:
FCommandLine::Parse(FCommandLine::Get(), Tokens, Switches);
bHelp = ParseOption(TEXT("help"), Switches);
if (bHelp)
{
return true;
}
// Get all required parameters.
#Loc: <Workspace>/Engine/Source/Programs/BuildPatchTool/Private/ToolModes/CompactifyMode.cpp:67
Scope (from outer to inner):
file
class class FCompactifyToolMode : public IToolMode
function bool ProcessCommandline
Source code excerpt:
FCommandLine::Parse(FCommandLine::Get(), Tokens, Switches);
bHelp = ParseOption(TEXT("help"), Switches);
if (bHelp)
{
return true;
}
// Get all required parameters
#Loc: <Workspace>/Engine/Source/Programs/BuildPatchTool/Private/ToolModes/DiffManifestMode.cpp:90
Scope (from outer to inner):
file
class class FDiffManifestToolMode : public IToolMode
function bool ProcessCommandLine
Source code excerpt:
FCommandLine::Parse(FCommandLine::Get(), Tokens, Switches);
bHelp = ParseOption(TEXT("help"), Switches);
if (bHelp)
{
return true;
}
// Get all required parameters.
#Loc: <Workspace>/Engine/Source/Programs/BuildPatchTool/Private/ToolModes/EnumerationMode.cpp:69
Scope (from outer to inner):
file
class class FEnumerationToolMode : public IToolMode
function bool ProcessCommandline
Source code excerpt:
FCommandLine::Parse(FCommandLine::Get(), Tokens, Switches);
bHelp = ParseOption(TEXT("help"), Switches);
if (bHelp)
{
return true;
}
// Check for deprecated ManifestFile param.
#Loc: <Workspace>/Engine/Source/Programs/BuildPatchTool/Private/ToolModes/MergeManifestMode.cpp:61
Scope (from outer to inner):
file
class class FMergeManifestToolMode : public IToolMode
function bool ProcessCommandline
Source code excerpt:
FCommandLine::Parse(FCommandLine::Get(), Tokens, Switches);
bHelp = ParseOption(TEXT("help"), Switches);
if (bHelp)
{
return true;
}
// Get all required parameters
#Loc: <Workspace>/Engine/Source/Programs/BuildPatchTool/Private/ToolModes/PackageChunksMode.cpp:100
Scope (from outer to inner):
file
class class FPackageChunksToolMode : public IToolMode
function bool ProcessCommandline
Source code excerpt:
FCommandLine::Parse(FCommandLine::Get(), Tokens, Switches);
bHelp = ParseOption(TEXT("help"), Switches);
if (bHelp)
{
return true;
}
// Grab the FeatureLevel. This is required param but safe to default, we can change this to a warning after first release, and then an error later, as part of a friendly roll out.
#Loc: <Workspace>/Engine/Source/Programs/BuildPatchTool/Private/ToolModes/PatchGenerationMode.cpp:242
Scope (from outer to inner):
file
class class FPatchGenerationToolMode : public IToolMode
function bool ProcessCommandline
Source code excerpt:
FCommandLine::Parse(FCommandLine::Get(), Tokens, Switches);
bHelp = ParseOption(TEXT("help"), Switches);
if (bHelp)
{
return true;
}
// Grab the FeatureLevel. This is required param but safe to default, we can change this to a warning after first release, and then an error later, as part of a friendly roll out.
#Loc: <Workspace>/Engine/Source/Programs/BuildPatchTool/Private/ToolModes/VerifyChunksMode.cpp:58
Scope (from outer to inner):
file
class class FVerifyChunksToolMode : public IToolMode
function bool ProcessCommandline
Source code excerpt:
FCommandLine::Parse(FCommandLine::Get(), Tokens, Switches);
bHelp = ParseOption(TEXT("help"), Switches);
if (bHelp)
{
return true;
}
// Get all required parameters.
#Loc: <Workspace>/Engine/Source/Programs/UnrealPackageTool/UnrealPackageTool.cpp:1263
Scope (from outer to inner):
file
function INT32_MAIN_INT32_ARGC_TCHAR_ARGV
Source code excerpt:
if (App.get_subcommands().size() == 0)
{
Out->Logf(TEXT("%s"), UTF8_TO_TCHAR(App.help().c_str()));
}
}
}
catch (CLI::CallForAllHelp& e)
{
Out->Logf(TEXT("%s"), UTF8_TO_TCHAR(App.help("", CLI::AppFormatMode::All).c_str()));
Ret = e.get_exit_code();
}
catch (CLI::CallForHelp& e)
{
Out->Logf(TEXT("%s"), UTF8_TO_TCHAR(App.help().c_str()));
Ret = e.get_exit_code();
}
catch (CLI::Error& e)
{
Out->Logf(TEXT("%s"), UTF8_TO_TCHAR(e.what()));
Ret = e.get_exit_code();
#Loc: <Workspace>/Engine/Source/Programs/UnrealTraceServer/src/Main.cpp:264
Scope (from outer to inner):
file
function void PrintHelp
Source code excerpt:
if (!CurrentCommand)
{
HelpText = Options.help({"dummy"});
}
else
{
std::vector<std::string> HelpGroups;
for (auto Group : CurrentCommand->HelpGroups)
{
HelpGroups.push_back(Group);
}
HelpText = Options.help(HelpGroups);
}
fputs(HelpText.c_str(), stdout);
}
#Loc: <Workspace>/Engine/Source/Programs/UnrealTraceServer/thirdparty/cxxopts/src/example.cpp:79
Scope (from outer to inner):
file
function void parse
Source code excerpt:
if (result.count("help"))
{
std::cout << options.help({"", "Group"}) << std::endl;
exit(0);
}
if (apple)
{
std::cout << "Saw option ‘a’ " << result.count("a") << " times " <<
#Loc: <Workspace>/Engine/Source/Programs/UnrealTraceServer/thirdparty/cxxopts/test/options.cpp:743
Scope: file
Source code excerpt:
});
cxxopts::Option help{"h,help", "Help"};
options.add_options("TEST_GROUP", {
{"t, test", "test option"},
help
});
Argv argv({
"test",
"--address",
"10.0.0.1",
#Loc: <Workspace>/Engine/Source/Programs/Unsync/Private/UnsyncMain.cpp:398
Scope (from outer to inner):
file
function UNSYNC_THIRD_PARTY_INCLUDES_END namespace unsync { static FPath GExePath; int InnerMain
function int InnerMain
Source code excerpt:
if (Cli.get_subcommands().size() == 0)
{
wprintf(L"%hs", Cli.help().c_str());
}
FTimingLogger TimingLogger("Total time", ELogLevel::Info);
// Configure default output mehtod based on subcommand.
// In machine-readable mode, all verbose logging is directed to stderr.
#Loc: <Workspace>/Engine/Source/Runtime/Engine/Private/UnrealEngine.cpp:5278
Scope (from outer to inner):
file
function bool UEngine::HandleStatCommand
Source code excerpt:
{
#if STATS
if (FParse::Command(&Cmd, TEXT("help")))
{
const TSet<FName>& StatGroupNames = FStatGroupGameThreadNotifier::Get().StatGroupNames;
TArray<FString> StatNames;
for (const FName& StatName : StatGroupNames)
{
FString StatNameStr = StatName.ToString();