< {name: "a.AnimNode.AimOffsetLookAt.Debug", help:"Toggle LookAt AimOffset debug", type:"Var"}, {name: "a.AccumulateLocalSpaceAdditivePose.ISPC", help:"Whether to use ISPC optimizations for accumulating local space additive pose", type:"Var"}, {name: "a.AllowClearingCompressedDataDuringCook", help:"Values: 0/1\nControls whether or not to compressed data is cleared/free-ed during cook.", type:"Var"}, {name: "a.AnimNode.AimOffsetLookAt.Debug", help:"Toggle LookAt AimOffset debug", type:"Var"}, {name: "a.AnimNode.ControlRig.Debug", help:"Set to 1 to turn on debug drawing for AnimNode_ControlRigBase", type:"Var"}, {name: "a.AnimNode.DeadBlending.Enable", help:"Enable / Disable DeadBlending", type:"Var"}, {name: "a.AnimNode.HandIKRetargeting.Enable", help:"Enable / Disable Hand IK retargeting", type:"Var"}, {name: "a.AnimNode.Inertialization.Enable", help:"Enable / Disable Inertialization", type:"Var"}, {name: "a.AnimNode.Inertialization.IgnoreDeficit", help:"Ignore inertialization time deficit caused by interruptions", type:"Var"}, {name: "a.AnimNode.Inertialization.IgnoreVelocity", help:"Ignore velocity information during Inertialization (effectively reverting to a quintic diff blend)", type:"Var"}, {name: "a.AnimSequencer.DirectControlRigMode", help:"1 = FKControl rig uses Direct method for setting Control transforms. 0 = FKControl rig uses Replace method (transform offsets) for setting Control transforms", type:"Var"}, {name: "a.AnimSequencer.ValidationMode", help:"1 = Enables validation after operations to test data integrity against legacy version. 0 = validation disabled", type:"Var"}, {name: "a.AuditLoadedAnimGraphs", help:"Audit memory breakdown of currently loaded anim graphs. Writes results to the log.", type:"Cmd"}, {name: "a.BlendCurves.ISPC", help:"Whether to use ISPC optimizations for curve blending", type:"Var"}, {name: "a.BlendPoseAccumulate.ISPC", help:"Whether to use ISPC optimizations for accumulation pose blending", type:"Var"}, {name: "a.BlendPoseOverwrite.ISPC", help:"Whether to use ISPC optimizations for over-write pose blending", type:"Var"}, {name: "a.BlendPosesPerBoneFilter.ISPC", help:"Whether to use ISPC optimizations for blending poses with a per-bone filter", type:"Var"}, {name: "a.BonePose.ISPC", help:"Whether to use ISPC optimizations in bone pose calculations", type:"Var"}, {name: "a.CacheLocalSpaceBounds", help:"If 1 (default) local-space bounds are calculated and cached, otherwise worldspace bounds are built and cached (and inverse transformed to produce local bounds).", type:"Var"}, {name: "a.CheckRetargetSourceAssetData", help:"Checks if Anim Sequences and Pose Assets RetargetSourceAsset is valid. Type: \'a.CheckRetargetSourceAssetData /Game\' to check assets in the Game (Content) folder. \'a.CheckRetargetSourceAssetData /Game true\' to check and fix all the assets in the Game (Content) folder.", type:"Cmd"}, {name: "a.Compression.CompressibleDataOutput", help:"Whether to output any JSON file containing the compressible data. (comma delimited)\n position: output track positional data\n rotation: output track rotational data\n scale: output track scale data\n curve: output rich curve data\n", type:"Var"}, {name: "a.Compression.ValidateCompressedRichCurveEvaluation", help:"1 = runs validation, evaluating the compressed rich curve at animation its sampling rate comparing against the MaxCurveError. 0 = validation disabled", type:"Var"}, {name: "a.ConstantKeyLerp.ISPC", help:"Whether to use ISPC optimizations in constant key anim encoding", type:"Var"}, {name: "a.ConvertMeshRotationPoseToLocalSpace.ISPC", help:"Whether to use ISPC optimizations for converting mesh space rotations to local space", type:"Var"}, {name: "a.ConvertPoseToAdditive.ISPC", help:"Whether to use ISPC optimizations for converting poses to additive poses", type:"Var"}, {name: "a.ConvertPoseToMeshRotation.ISPC", help:"Whether to use ISPC optimizations for converting local space rotations to mesh space", type:"Var"}, {name: "a.DisablePoseWatchRendering", help:"Disable all active pose watches from being drawn.", type:"Var"}, {name: "a.EnableAnimStreamable", help:"1 = Enables ability to make Anim Streamable assets. 0 = off", type:"Var"}, {name: "a.EnableQueuedAnimEventsOnServer", help:"Whether to enable queued anim events on servers. In most cases, when the server is doing a full anim graph update, queued notifies aren\'t triggered by the server, but this will enable them. Enabling this is recommended in projects using Listen Servers. \n0: Disable, 1: Enable", type:"Var"}, {name: "a.ForceEvalRawData", help:"Values: 0/1\nControls whether or not to forcefully sample non-compressed anim data.", type:"Var"}, {name: "a.KeepNotifyAndCurvesOnAnimationRecord", help:"If nonzero we keep anim notifies, curves and sync markers when animation recording, if 0 we discard them before recording.", type:"Var"}, {name: "a.LerpBoneTransforms.ISPC", help:"Whether to use ISPC optimizations for interpolating bone transforms", type:"Var"}, {name: "a.MarkLayerAsGarbageOnUninitialize", help:"Whether to mark the layers as garbage after uinitializing them.", type:"Var"}, {name: "a.Montage.EarlyOutMontageWhenUninitialized", help:"Exit early when playing or stopping montage(s) if the animation instance was uninitialized while we are performing the action due to triggering montage events. Use this to avoid reading from bad memory.", type:"Var"}, {name: "a.Montage.EndSectionRequiresTimeRemaining", help:"Montage EndOfSection is only checked if there is remaining time (default false).", type:"Var"}, {name: "a.Montage.FlushCompletedMontagesOnPlay", help:"Whether we should flush all completed montages IMMEDIATELY when a new montage stomps the group. Use this to prevent accumulating montages when animation tick is paused, and firing all at once when we unpause.", type:"Var"}, {name: "a.MotionTrajectory.Debug", help:"Turn on debug drawing for motion trajectory", type:"Var"}, {name: "a.MotionTrajectory.Options", help:"Toggle motion trajectory sample information:\n 0. Disable Text\n 1. Index\n2. Accumulated Time\n 3. Position\n 4. Velocity\n 5. Acceleration", type:"Var"}, {name: "a.MotionTrajectory.Stride", help:"Configure the sample stride when displaying information", type:"Var"}, {name: "a.OutputMontageFrameRateWarning", help:"If true will warn the user about Animation Montages/Composites composed of incompatible animation assets (incompatible frame-rates).", type:"Var"}, {name: "a.Sharing.DebugStates", help:"Values: 0/1/2/3\nControls whether and which animation sharing debug features are enabled.\n0: Turned off.\n1: Turns on active master-components and blend with material coloring, and printing state information for each actor above their capsule.\n2: Turns printing state information about currently active animation states, blend etc. Also enables line drawing from slave-components to currently assigned master components.", type:"Var"}, {name: "a.PerTrackCompression.ISPC", help:"Whether to use ISPC optimizations in per track anim encoding", type:"Var"}, {name: "a.RecordExternalMorphTargets", help:"Record the external morph target weights inside animation insights. On default this is disabled, because it can slow down recording.", type:"Var"}, {name: "a.Sharing.DebugStates", help:"Values: 0/1/2/3\nControls whether and which animation sharing debug features are enabled.\n0: Turned off.\n1: Turns on active leader-components and blend with material coloring, and printing state information for each actor above their capsule.\n2: Turns printing state information about currently active animation states, blend etc. Also enables line drawing from follower-components to currently assigned leader components.", type:"Var"}, {name: "a.Sharing.ToggleVisibility", help:"Toggles the visibility of the Master Pose Components.", type:"Cmd"}, {name: "a.Sharing.ToggleVisibility", help:"Toggles the visibility of the Leader Pose Components.", type:"Cmd"}, {name: "a.SkeletalMesh.ISPC", help:"Whether to use ISPC optimizations in animation skeletal mesh components. Deprecated, please switch to a.SkinnedAsset.ISPC", type:"Var"}, {name: "a.Skeleton.AllowIncompatibleSkeletalMeshMerge", help:"When importing or otherwise merging in skeletal mesh bones, allow \'incompatible\' hierarchies with bone insertions.", type:"Var"}, {name: "a.SkinnedAsset.ISPC", help:"Whether to use ISPC optimizations on skinned assets", type:"Var"}, {name: "a.SkinWeightProfile.LoadByDefaultMode", help:"Enables/disables run-time optimization to override the original skin weights with a profile designated as the default to replace it. Can be used to optimize memory for specific platforms or devices0 = static disabled1 = static enabled2 = dynamic disabled3 = dynamic enabled", type:"Var"}, {name: "a.SkinWeightProfile.LoadByDefaultMode", help:"Enables/disables run-time optimization to override the original skin weights with a profile designated as the default to replace it. Can be used to optimize memory for specific platforms or devices-1 = disabled0 = static disabled1 = static enabled2 = dynamic disabled3 = dynamic enabled", type:"Var"}, {name: "a.SkipDDC", help:"1 = Skip DDC during compression. 0 = Include DDC results during compression ", type:"Var"}, {name: "a.StripAdditiveRefPose", help:"1 = Strip additive ref poses on cook. 0 = off", type:"Var"}, {name: "a.VariableKeyLerp.ISPC", help:"Whether to use ISPC optimizations in variable key anim encoding", type:"Var"}, {name: "ACL.ListAnimSequences", help:"Dumps statistics about animation sequences to the log.", type:"Cmd"}, {name: "ACL.ListCodecs", help:"Dumps statistics about animation codecs to the log.", type:"Cmd"}, {name: "ACL.SetDatabaseVisualFidelity", help:"Sets the visual fidelity of all ACL databases. Argument: Highest (default if no argument is provided), Medium, Lowest", type:"Cmd"}, {name: "Actor.IncludeSCSModifiedPropertiesInDiff", help:"True to include SCS modified properties in any transaction diffs, or False to skip them", type:"Var"}, {name: "AddWork", help:"", type:"Cmd"}, {name: "ai.debug.DrawPaths", help:"Should AI paths be drawn", type:"Var"}, {name: "ai.debug.EQS.RefreshInterval", help:"Interval (in seconds) at which data will be collected.", type:"Var"}, {name: "ai.debug.nav.DirtyAreaAroundPlayer", help:"Dirty all tiles in a square area around the local player using provided value as extent (in cm), using 10 meters if not specified.", type:"Cmd"}, {name: "ai.debug.nav.DisplaySize", help:"Area to display in tiles (DisplaySize x DisplaySize) in gameplay debugger. Size will round up to an odd number of tiles. Culling distance can be modified using \'ai.debug.nav.DrawDistance\'.", type:"Var"}, {name: "ai.debug.nav.DrawDistance", help:"Sets the culling distance used by the navmesh rendering for lines and labels.", type:"Cmd"}, {name: "ai.debug.nav.DumpOctreeElements", help:"Iterates through all nodes of the navigation octree and log details about each element to the output device.", type:"Cmd"}, {name: "ai.debug.nav.RefreshInterval", help:"Interval (in seconds) at which data will be collected.", type:"Var"}, {name: "ai.debug.nav.validateConsistencyWhenAddingOctreeNode", help:"Used to validate that registered FNavigationElement matches the values returned by INavRelevantInterface when processing pending updates to add elements to the octree.", type:"Var"}, {name: "ai.debug.nav.validateNavigationElementInitialization", help:"Used to validate that the values returned by INavRelevantInterface when initializing the FNavigationElement makes sense.Those warnings might not be critical since an update can be sent after and update then pending element but might still worth investigating the use case to reduce redundant operations.", type:"Var"}, {name: "ai.DestroyNavDataInCleanUpAndMarkPendingKill", help:"If set to 1 NavData will be destroyed in CleanUpAndMarkPendingKill rather than being marked as garbage.\n", type:"Var"}, {name: "ai.nav.AllowLinkGeneration", help:"Set to false to force disabling link generation.", type:"Var"}, {name: "ai.nav.bNavmeshAllowPartitionedBuildingFromEditor", help:"Enable experimental navmesh partition building.", type:"Var"}, {name: "ai.nav.EnableNavMeshResolutions", help:"When set to false, navmesh resoutions will be ignored.", type:"Var"}, {name: "ai.nav.EnableSpanHeightRasterizationFix", help:"Active by default. Enable rasterization fix for span height.", type:"Var"}, {name: "ai.nav.GNavmeshDebugTileX", help:"", type:"Var"}, {name: "ai.nav.GNavmeshDebugTileY", help:"", type:"Var"}, {name: "ai.nav.GNavmeshGenerateDebugTileOnly", help:"", type:"Var"}, {name: "ai.nav.GNavmeshSynchronousTileGeneration", help:"", type:"Var"}, {name: "ai.nav.NavmeshUseOodleCompression", help:"Use Oodle for run-time tile cache compression/decompression. Optimized for size in editor, optimized for speed in standalone.", type:"Var"}, {name: "ai.nav.RecentlyBuildTileDisplayTime", help:"Time (in seconds) to display tiles that have recently been built.", type:"Var"}, {name: "ai.nav.UseAsymetricBorderSizes", help:"Active by default. When generating links, use asymetric tile border sizes to improve generation speed.", type:"Var"}, {name: "ai.nav.UseTightBoundExpansion", help:"Active by default. Use an expansion of one AgentRadius. Set to false to revert to the previous behavior (2 AgentRadius).", type:"Var"}, {name: "AllowAsyncRenderThreadUpdatesEditorGameWorld", help:"Used to control async renderthread updates in an editor game world.", type:"Var"}, {name: "AllowVirtualKeyboard", help:"Allow the use of a virtual keyboard despite platform main screen being non-touch", type:"Var"}, {name: "AnalyticsET.PayloadFlushTimeSecForWarning", help:"Time in seconds that flushing an EventCache payload can take before it will trigger a warning message, listing the events in the payload. This is intended to be used to investigate spammy or slow telemetry.", type:"Var"}, {name: "AnalyticsET.PayloadPercentageOfMaxForWarning", help:"Percentage of the maximum payload for an EventCache that will trigger a warning message, listing the events in the payload. This is intended to be used to investigate spammy or slow telemetry.", type:"Var"}, {name: "AnalyticsET.PreventMultipleFlushesInOneFrame", help:"When true, prevents more than one AnalyticsProviderET instance from flushing in the same frame, allowing the flush and HTTP cost to be amortized.", type:"Var"}, {name: "AnalyticsET.UserAgentCommentsEnabled", help:"Whether comments are supported in the analytics user agent string", type:"Var"}, {name: "Android.DeviceDetectionPollInterval", help:"The number of seconds between polling for connected Android devices.\nDefault: 10", type:"Var"}, {name: "AnimMode.PendingFocusMode", help:"Force setting focus on the hovered viewport when entering a key.", type:"Var"}, {name: "AnimRecorder.SampleRate", help:"Sets the sample rate for the animation recorder system", type:"Var"}, {name: "AnimRecorder.SampleRate", help:"Argument: valid Frame Rate format\nSets the sample frame-rate for the animation recorder system", type:"Cmd"}, {name: "APEXVIS", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "AssertDisable", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "ApproximateActors.RenderCapture", help:"Determines whether or not to trigger a render capture.\n0: Turned Off\n1: Turned On", type:"Var"}, {name: "AssetDataSource.AllowInternalParallelism", help:"Set to 0 to disable internal parallelism inside data source in case of threading issues.", type:"Var"}, {name: "AssetDataSource.OptimizeEnumerateInMemoryAssets", help:"1: Explicitly fetch fresh asset data for only new/dirty assets. 0: Fetch fresh asset data for all loaded assets.", type:"Var"}, {name: "AssetHeaderPatcher.DebugDumpDir", help:"\'Before\'/\'After\' text representations of each package processed during patching will be written out to the provided absolute filesystem path. Useful for comparing what was patched.", type:"Var"}, {name: "AssetManager.DumpBundlesForAsset", help:"Shows a list of all bundles for the specified primary asset by primary asset id (i.e. Map:Entry)", type:"Cmd"}, {name: "AssetManager.UnloadPrimaryAssetsWithType", help:"Loads all assets of a given type", type:"Cmd"}, {name: "AssetManager.UnloadPrimaryAssetsWithType", help:"Unloads all assets of a given type", type:"Cmd"}, {name: "AssetManagerEditor.OpenReferenceViewerInNewTab", help:"Whether to use multiple Reference Viewer Tabs (one per asset selection) or not.", type:"Var"}, {name: "AssetRegistry.BlockPackagesWithMarkOfTheWeb", help:"Whether package files with mark of the web are blocked from the asset registry", type:"Var"}, {name: "AssetRegistry.GetByClass", help:"Query the asset registry for assets matching the supplied class", type:"Cmd"}, {name: "AssetRegistry.GetByName", help:"Query the asset registry for assets matching the supplied package name", type:"Cmd"}, {name: "AssetRegistry.GetByPath", help:"Query the asset registry for assets matching the supplied package path", type:"Cmd"}, {name: "AssetRegistry.GetByTag", help:"Query the asset registry for assets matching the supplied tag and value", type:"Cmd"}, {name: "AssetRegistry.GetDependencies", help:"Query the asset registry for dependencies for the specified package", type:"Cmd"}, {name: "AssetRegistry.GetReferencers", help:"Query the asset registry for referencers for the specified package", type:"Cmd"}, {name: "au.3dVisualize.ActiveSounds", help:"Visualization mode for active sounds. \n0: Not Enabled, 1: Volume (Lin), 2: Volume (dB), 3: Distance, 4: Random color", type:"Var"}, {name: "AssetRegistry.DeferDependencySort", help:"If true, the dependency lists on dependency nodes will not be sorted until after the initial load is complete", type:"Var"}, {name: "AssetRegistry.DeferReferencerSort", help:"If true, the referencer list on dependency nodes will not be sorted until after the initial load is complete", type:"Var"}, {name: "AssetRegistry.DumpAllocatedSize", help:"Dump the allocations of the asset registry state to the log", type:"Cmd"}, {name: "AssetRegistry.DumpState", help:"Dump the state of the asset registry to a file. Pass -log to dump to the log as well. Extra string parameters: All, ObjectPath, PackageName, Path, Class, Tag, Dependencies, DependencyDetails, PackageData, AssetBundles, AssetTags", type:"Cmd"}, {name: "AssetRegistry.GetByClass", help:"<ClassName> //Query the asset registry for assets matching the supplied class", type:"Cmd"}, {name: "AssetRegistry.GetByName", help:"<PackageName> //Query the asset registry for assets matching the supplied package name", type:"Cmd"}, {name: "AssetRegistry.GetByPath", help:"<Path> //Query the asset registry for assets matching the supplied package path", type:"Cmd"}, {name: "AssetRegistry.GetByTag", help:"<TagName> <TagValue> //Query the asset registry for assets matching the supplied tag and value", type:"Cmd"}, {name: "AssetRegistry.GetDependencies", help:"<PackageName> //Query the asset registry for dependencies for the specified package", type:"Cmd"}, {name: "AssetRegistry.GetReferencers", help:"<ObjectPath> //Query the asset registry for referencers for the specified package", type:"Cmd"}, {name: "AssetRegistry.IgnoreEmptyDirectories", help:"If true, completely empty leaf directories are ignored by the asset registry while scanning", type:"Var"}, {name: "AssetRegistry.ManagementPathsPackageDebugName", help:"If set, when manage references are set, the chain of references that caused this package to become managed will be printed to the log", type:"Var"}, {name: "AssetRegistry.MaxSecondsPerFrame", help:"Maximum amount of time allowed for Asset Registry processing, in seconds", type:"Var"}, {name: "AssetRegistry.MaxSecondsPerTickBackgroundThread", help:"Maximum amount of time allowed for Asset Registry processing, in seconds, per iteration on the background thread. Very large values could result in main thread delays due to the background thread holding locks.", type:"Var"}, {name: "AssetRegistry.ScanPath", help:"<PathToScan> //Scan the given filename or directoryname for package files and load them into the assetregistry. Extra string parameters: -forcerescan, -ignoreDenyLists, -asfile, -asdir", type:"Cmd"}, {name: "AssetTools.EnablePublicAssetFeature", help:"Enables the Experimental Public Asset Feature (False: disabled, True:enabled", type:"Var"}, {name: "AssetTools.FollowRedirectorsWhenImporting", help:"When set, if you import an asset at a location with a redirector, you\'ll instead import to the redirector\'s destination location", type:"Var"}, {name: "AssetTools.LogFolderPermissions", help:"Logs the read and write permissions for folders", type:"Cmd"}, {name: "AssetTools.UseHeaderPatchingAdvancedCopy", help:"If set to true, this will use Header Patching to copy the files instead of performing a full load.", type:"Var"}, {name: "AssetTools.UseNewPackageMigration", help:"When set, The package migration will use the new implementation made for 5.1.", type:"Var"}, {name: "AssetView.AllowAsync", help:"Whether to allow the asset view to perform work with async tasks (rather than time-sliced)", type:"Var"}, {name: "AssetView.AllowParallelism", help:"Whether to allow the asset view to perform work in parallel (e.g. ParallelFor)", type:"Var"}, {name: "Async.ParallelFor.YieldingTimeout", help:"The timeout (in ms) when background priority parallel for task will yield execution to give higher priority tasks the chance to run.", type:"Var"}, {name: "AsyncReadFile.CacheHandleForPakFilesOnly", help:"Control how Async read handle caches the underlying platform handle for files.\n0: Cache the underlying platform handles for all files.\n1: Cache the underlying platform handle for .pak files only (default).\n", type:"Var"}, {name: "au.3dVisualize.ActiveSounds", help:"Visualization mode for active sounds. \n0: Not Enabled, 1: Volume (Lin), 2: Volume (dB), 3: Distance, 4: Random color, 5: Occlusion", type:"Var"}, {name: "au.3dVisualize.Attenuation", help:"Whether or not attenuation spheres are visible when 3d visualize is enabled. \n0: Not Enabled, 1: Enabled", type:"Cmd"}, {name: "au.3dVisualize.Listeners", help:"Whether or not listeners are visible when 3d visualize is enabled. \n0: Not Enabled, 1: Enabled", type:"Var"}, {name: "au.ActorSoundParameterInterface.GatherImplementers", help:"When true, allows the interface to search for attached components and actors that implement the interface.", type:"Var"}, {name: "au.adpcm.ADPCMReadFailiureTimeout", help:"Sets the number of ADPCM decode attempts we\'ll try before stopping the sound wave altogether.\n", type:"Var"}, {name: "au.adpcm.ChanceForIntentionalChunkMiss", help:"If this is set > 0 we will intentionally drop chunks. Used for debugging..\n", type:"Var"}, {name: "au.adpcm.DisableSeekForwardOnReadMisses", help:"When there is a seek pending and this CVar is set to 0, we will scan forward in the file.\n", type:"Var"}, {name: "au.adpcm.DisableSeeking", help:"Disables seeking with ADPCM.\n", type:"Var"}, {name: "au.adpcm.OnlySeekForwardOneChunk", help:"When set to 1, we will not continue to seek forward after failing to load two chunks in a row.\n", type:"Var"}, {name: "au.Ambisonics.VirtualIntermediateChannels", help:"Enables decoding to a virtual 7.1 speaker config before mixdown.\n0: Decode directly to output device configuration, 1: Enabled", type:"Var"}, {name: "au.AudioSourceManager.HangDiagnostics", help:"", type:"Cmd"}, {name: "au.AudioThreadCommand.ChokeCommandQueue", help:"", type:"Cmd"}, {name: "au.AudioThreadCommand.ChokeMPSCCommandQueue", help:"", type:"Cmd"}, {name: "au.AudioThreadCommand.ExecutionTimeWarningThresholdInMs", help:"If a command took longer to execute than this number (in milliseconds) then we log a warning", type:"Var"}, {name: "au.AudioThreadCommand.LogEveryExecution", help:"Extremely verbose logging of each Audio Thread command caller and it\'s execution time", type:"Var"}, {name: "au.AudioThreadCommand.SpamCommandQueue", help:"", type:"Cmd"}, {name: "au.BusReaderPatchWaitTimeout", help:"The maximum amount of time the audio bus reader node will wait for its patch output to receive samples.", type:"Var"}, {name: "au.BypassAllSubmixEffects", help:"When set to 1, all submix effects will be bypassed.\n1: Submix Effects are disabled.", type:"Var"}, {name: "au.ClearMutesAndSolos", help:"Clears any solo-ing/mute-ing sounds", type:"Cmd"}, {name: "au.CommandBufferFlushWaitTimeMs", help:"How long to wait for the command buffer flush to complete.\n", type:"Var"}, {name: "au.CommandBufferInitialCapacity", help:"How many elements to initialize the command buffer capacity with", type:"Var"}, {name: "au.CommandBufferMaxSizeInMb", help:"How big to allow the command buffer to grow before ignoring more commands", type:"Var"}, {name: "au.compression.AsyncCompression", help:"1: Allow async compression of USoundWave when supported by the codec.\n0: Disable async compression.", type:"Var"}, {name: "au.Concurrency.MinVolumeScale", help:"Volume threshold considered silent for volume scaling (linear scale).\n", type:"Var"}, {name: "au.Debug.Audio3dVisualize", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "au.Debug.AudioDebugSound", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "au.Debug.AudioGetDynamicSoundVolume", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "au.Debug.AudioMemReport", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "au.Debug.AudioMixerDebugSound", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "au.Debug.AudioResetAllDynamicSoundVolumes", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "au.Debug.AudioResetDynamicSoundVolume", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "au.Debug.AudioSetDynamicSoundVolume", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "au.Debug.AudioSoloSoundClass", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "au.Debug.AudioSoloSoundCue", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "au.Debug.AudioSoloSoundWave", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "au.debug.bufferdiagnostics", help:"Enables per buffer sample diagnostics (Nans/denorms/Infs)", type:"Cmd"}, {name: "au.Debug.ClearSoloAudio", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "au.Debug.DisableHPF", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "au.Debug.DisableLPF", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "au.Debug.DisableRadio", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "au.Debug.Display.X", help:"X position on screen of debug statistics. \nDefault: 100", type:"Var"}, {name: "au.Debug.Display.Y", help:"X position on screen of debug statistics. \nDefault: -1 (Disabled, uses default debug position)", type:"Var"}, {name: "au.Debug.DumpSoundInfo", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "au.Debug.EnableRadio", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "au.Debug.Generator", help:"Enables/disables debug sound generation.\n0: Disabled, 1: SinTone, 2: WhiteNoise", type:"Var"}, {name: "au.Debug.Generator.Amp", help:"Sets.\nDefault: 0.2f", type:"Var"}, {name: "au.Debug.Generator.Channel", help:"Sets channel output index of debug audio. If number provided is above supported number, uses left.\n0: Left, 1: Right, etc.", type:"Var"}, {name: "au.Debug.Generator.Freq", help:"Sets debug sound generation frequency.\n0: Not Disabled, 1: SinTone, 2: WhiteNoise", type:"Var"}, {name: "au.Debug.IsolateDryAudio", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "au.Debug.IsolateReverb", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "au.Debug.ListAudioComponents", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "au.Debug.ListSoundClasses", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "au.Debug.ListSoundClassVolumes", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "au.Debug.ListSoundDurations", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "au.Debug.ListWaves", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "au.Debug.Modulation", help:"Post Audio Modulation information to viewport(s).\n0: Disable, 1: Enable\n(Optional) -AllViews: Enables/Disables for all viewports, not just those associated with the current world", type:"Cmd"}, {name: "au.Debug.PlayAllPIEAudio", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "au.Debug.PlaySoundCue", help:"Plays a SoundCue:\n-Name <SoundName>: If a debug sound with the short name is specified in AudioSettings, plays that sound.\n-Path <ObjectPath>: Finds SoundCue asset at the provided path and if found, plays that sound.\n-Radius <Distance>: If set, enables sound spatialization and sets radial distance between listener and source emitting sound.\n-Azimuth <Angle>: If set, enables sound spatialization and sets azimuth angle between listener and source emitting sound (in degrees, where 0 is straight ahead, negative to left, positive to right).\n-Elevation <Angle>: If set, enables sound spatialization and sets azimuth angle between listener and source emitting sound (in degrees, where 0 is straight ahead, negative to left, positive to right).\n-AllViews: If option provided, plays sound through all viewports.\n-LogSubtitles: If option provided, logs sounds subtitle if set\n", type:"Cmd"}, {name: "au.Debug.PlaySoundWave", help:"Plays a SoundWave:\n-Name <SoundName>: If a debug sound with the short name is specified in AudioSettings, plays that sound.\n-Path <ObjectPath>: Finds SoundWave asset at the provided path and if found, plays that sound.\n-Radius: If set, enables sound spatialization and sets radial distance between listener and source emitting sound.\n-Azimuth <Angle>: If set, enables sound spatialization and sets azimuth angle between listener and source emitting sound (in degrees, where 0 is straight ahead, negative to left, positive to right).\n-Elevation <Angle>: If set, enables sound spatialization and sets azimuth angle between listener and source emitting sound (in degrees, where 0 is straight ahead, negative to left, positive to right).\n-AllViews: If option provided, plays sound through all viewports.\n-LogSubtitles: If option provided, logs sounds subtitle if set\n", type:"Cmd"}, {name: "au.Debug.ResetSoundState", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "au.Debug.SetBaseSoundMix", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "au.Debug.ShowSoundClassHierarchy", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "au.Debug.SoloAudio", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "au.Debug.SoundClassFixup", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "au.Debug.SoundCues", help:"Post SoundCue information to viewport(s).\n0: Disable, 1: Enable\n(Optional) -AllViews: Enables/Disables for all viewports, not just those associated with the current world", type:"Cmd"}, {name: "au.Debug.SoundCues.Minimal", help:"Use the compact view of sound cue debug when enabled. \n0: Not Enabled, 1: Enabled", type:"Var"}, {name: "au.Debug.Soundcues.ShowDistance", help:"Display distance of sound cue when enabled.\n0: Not Enabled, 1: Enabled", type:"Var"}, {name: "au.Debug.Soundcues.ShowPath", help:"Display full path of sound cue when enabled.\n0: Not Enabled, 1: Enabled", type:"Var"}, {name: "au.Debug.SoundCues.Spacing.Char", help:"Size of character (in pixels) with compact view. \nDefault: 7", type:"Var"}, {name: "au.Debug.SoundCues.Spacing.Tab", help:"Size of tab (in characters) with compact view. \nDefault: 5", type:"Var"}, {name: "au.Debug.SoundMixes", help:"Post SoundMix information to viewport(s).\n0: Disable, 1: Enable\n(Optional) -AllViews: Enables/Disables for all viewports, not just those associated with the current world", type:"Cmd"}, {name: "au.Debug.SoundReverb", help:"Post SoundReverb information to viewport(s).\n0: Disable, 1: Enable\n(Optional) -AllViews: Enables/Disables for all viewports, not just those associated with the current world", type:"Cmd"}, {name: "au.Debug.Sounds", help:"Post Sound information to viewport(s).\n0: Disable, 1: Enable\n(Optional) -AllViews: Enables/Disables for all viewports, not just those associated with the current world", type:"Cmd"}, {name: "au.Debug.Sounds.Max", help:"Max number of sounds to display in full sound debugger view. \nDefault: 32", type:"Var"}, {name: "au.Debug.Sounds.ShowPath", help:"Display full path of sound when enabled.\n0: Not Enabled, 1: Enabled", type:"Var"}, {name: "au.Debug.Sounds.Sort", help:"Value to sort by and display when sound stats are active. \nClass, Distance, Name (Default), Priority (Highest of wave instances per sound), Time, Waves, Volume", type:"Var"}, {name: "au.Debug.Sounds.TextColor", help:"Color of body text in audio debug views. \nWhite, Red, Orange, Yellow, Blue, Magenta, Purple, Black", type:"Var"}, {name: "au.Debug.SoundWaves", help:"Post SoundWave information to viewport(s).\n0: Disable, 1: Enable\n(Optional) -AllViews: Enables/Disables for all viewports, not just those associated with the current world", type:"Cmd"}, {name: "au.Debug.StopSound", help:"Stops debug sound.\n-AllViews: If option provided, stops all debug sounds in all viewports.\n", type:"Cmd"}, {name: "au.Debug.Streaming", help:"Post Stream Caching information to viewport(s).\n0: Disable, 1: Enable\n(Optional) -AllViews: Enables/Disables for all viewports, not just those associated with the current world", type:"Cmd"}, {name: "au.Debug.TestLFEBleed", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "au.Debug.TestLPF", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "au.Debug.ToggleHRTFForAll", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "au.Debug.ToggleSpatExt", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "au.DefaultModulationPlugin", help:"Name of default modulation plugin to load and use (overridden by platform-specific implementation name in config.\n", type:"Var"}, {name: "au.DisableAppVolume", help:"Disables application volume when set to 1.\n0: App volume enabled, 1: App volume disabled", type:"Var"}, {name: "au.DisableConcurrencyStopSilentForLoops", help:"Disables (1) or enables (0) audio concurrency for loops subscribing to stop silent.\n", type:"Var"}, {name: "au.DisableQuadReverbLegacy", help:"Disables quad reverb in surround.\n0: Not Disabled, 1: Disabled", type:"Var"}, {name: "au.DisableReverbSubmixLegacy", help:"Disables the reverb submix.\n0: Not Disabled, 1: Disabled", type:"Var"}, {name: "au.DisableSubmixEffectEQ", help:"Disables the eq submix.\n0: Not Disabled, 1: Disabled", type:"Var"}, {name: "au.DisableSubmixEffectEQ", help:"Disables the eq submix (true by default as of 5.0).\n0: Not Disabled, 1: Disabled", type:"Var"}, {name: "au.DisableSubmixMutationLock", help:"Disables the submix mutation lock.\n0: Not Disabled (Default), 1: Disabled", type:"Var"}, {name: "au.DSP.DelayResetFadeLengthSamples", help:"Controls fade length (in samples) when clearing internal memory with ResetWithFade().\n", type:"Var"}, {name: "au.DSP.InitialFDelayAllocationSeconds", help:"Override the inital delay line allocation in seconds, it will grow up to InBufferLengthSec.\n", type:"Var"}, {name: "au.DumpActiveSounds", help:"Outputs data about all the currently active sounds.", type:"Cmd"}, {name: "au.editor.CookOverrideCachingInterval", help:"This sets the max latency between when a cook override is changed in the project settings and when it is applied to new audio sources.\nn: Time between caching intervals, in seconds.", type:"Var"}, {name: "au.editor.ForceAudioNonStreaming", help:"When set to 1, forces any audio played to be non-streaming May force a DDC miss.\n0: Honor the Play When Silent flag, 1: stop all silent non-procedural sources.", type:"Var"}, {name: "au.editor.SoundWaveOwnerLoadingBehaviorCacheOnStartup", help:"Disables searching the asset registry on startup of the singleton. Otherwise it will incrementally fill cache", type:"Var"}, {name: "au.editor.SoundWaveOwnerLoadingBehaviorEnable", help:"Enables or disables the Soundwave owner loading behavior tagging", type:"Var"}, {name: "au.EnableOcclusionFilterScale", help:"Whether or not we scale occlusion by 0.25f to compensate for change in filter cutoff frequencies in audio mixer. \n0: Not Enabled, 1: Enabled", type:"Var"}, {name: "au.EnableRelativeRenderCostVoiceLimit", help:"Enables or disables using the relative render cost of rendering sources to count toward max channels culling.", type:"Var"}, {name: "au.EnableReverbStereoFlipForQuadLegacy", help:"Enables doing a stereo flip for quad reverb when in surround.\n0: Not Enabled, 1: Enabled", type:"Var"}, {name: "au.EnableUserSoundwaveImport", help:"Enables letting the user import soundwaves in editor.\n0: Disabled, 1: Enabled", type:"Var"}, {name: "au.ExtraAudioMixerDeviceLogging", help:"Enables extra logging for audio mixer device running \n0: no logging, 1: logging every 500 callbacks \n", type:"Var"}, {name: "au.ExtraResonanceLogging", help:"If non-zero, will log extra information about the state of Resonance HRTF processing.\n0: Disable, >0: Enable", type:"Var"}, {name: "au.FadeOutTimeoutMSec", help:"Amount of time to wait for the FadeOut Event to fire. \n", type:"Var"}, {name: "au.FloatArrayMath.ISPC", help:"Whether to use ISPC optimizations in audio float array math operations", type:"Var"}, {name: "au.FlushAudioRenderCommandsOnSuspend", help:"When set to 1, ensures that we pump through all pending commands to the audio thread and audio render thread on app suspension.\n0: Not Disabled, 1: Disabled", type:"Var"}, {name: "au.FlushAudioRenderThreadOnGC", help:"When set to 1, every time the GC runs, we flush all pending audio render thread commands.\n", type:"Var"}, {name: "au.FocusData.InitializeFocusFactorOnFirstUpdate", help:"When set to 1, focus factor will be initialized on first update to the proper value, instead of interpolating from 0 to the proper value.\n0: Disabled, 1: Enabled (default)", type:"Var"}, {name: "au.IsUsingAudioMixer", help:"Whether or not we\'re currently using the audio mixer. Change to dynamically toggle on/off. Note: sounds will stop. Looping sounds won\'t automatically resume. \n0: Not Using Audio Mixer, 1: Using Audio Mixer", type:"Var"}, {name: "au.ForceSyncAudioDecodes", help:"Disables using async tasks for processing sources.\n0: Not Disabled, 1: Disabled", type:"Var"}, {name: "au.ForceSynchronizedAudioTaskKick", help:"Force all Audio Tasks created in one \"audio render frame\" to be queued until they can all be \"kicked\" at once at the end of the frame.\n0: Don\'t Force, 1: Force", type:"Var"}, {name: "au.IgnoreUserResonanceSubmix", help:"When set to 1, the resonance project setting will be bypassed.\n1: Submix Effects are disabled.", type:"Var"}, {name: "au.InteriorData.UseAudioVolumes", help:"When set to 1, allows gathering of interior data from audio volumes (Legacy).\n0: Disabled, 1: Enabled (default)", type:"Var"}, {name: "au.InteriorData.UseIActiveSoundUpdate", help:"When set to 1, allows gathering of interior data from subsystems that implement the IActiveSoundUpdate interface.\n0: Disabled, 1: Enabled (default)", type:"Var"}, {name: "au.LinearGainScalarForFinalOutut", help:"Linear gain scalar applied to the final float buffer to allow for hotfixable mitigation of clipping \nDefault is 1.0f \n", type:"Var"}, {name: "au.LogSubmixAutoDisable", help:"Enables logging of submix disable and enable state.\n1: Submix enablement logging is on. 0: Submix enablement/disablement logging is off.", type:"Var"}, {name: "au.MaxWorldDistance", help:"Maximum world distance used in audio-related calculations (eg. attenuation).\n", type:"Var"}, {name: "au.MetaSound.AutoUpdate.NativeClassesOfEqualVersion", help:"If true, node references to native classes that share a version number will attempt to auto-update if the interface is different, which results in slower graph load times.\n0: Don\'t auto-update native classes of the same version with interface discrepancies, !0: Auto-update native classes of the same version with interface discrepancies (default)", type:"Var"}, {name: "au.MetaSound.BlockRate", help:"Sets block rate (blocks per second) of MetaSounds.\nDefault: 100.0f, Min: 1.0f, Max: 1000.0f", type:"Var"}, {name: "au.MetaSound.Debug.EnableOperatorMissingOverrideLog", help:"Enables additional logging on operators with missing overrides\nDefault: false", type:"Var"}, {name: "au.MetaSound.DisableAsyncGraphRegistration", help:"Disables async registration of MetaSound graphs\nDefault: false", type:"Var"}, {name: "au.MetaSound.DisableWaveCachePriming", help:"Disables MetaSound Wave Cache Priming.\n0 (default): Enabled, 1: Disabled", type:"Var"}, {name: "au.MetaSound.Editor.Debug.ShowNodeDebugData", help:"If enabled, shows debug data such as node IDs, vertex IDs, vertex names, and class names when hovering over node titles and pins in the MetaSound asset editor.\n0: Disabled (default), !0: Enabled", type:"Var"}, {name: "au.MetaSound.Editor.EnableAssetValidation", help:"Enables MetaSound specific asset validation.\nDefault: 1 (Enabled)", type:"Var"}, {name: "au.MetaSound.EnableAllVersionsNodeClassCreation", help:"Enable creating nodes for major versions of deprecated MetaSound classes in the Editor.\n0: Disabled (default), !0: Enabled", type:"Var"}, {name: "au.MetaSound.EnableAsyncGeneratorBuilder", help:"Enables async building of FMetaSoundGenerators\nDefault: true", type:"Var"}, {name: "au.MetaSound.EnableCommandletExecution", help:"If application is a commandlet, enables execution of MetaSounds irrespective of whether sound is rendered to hardware or not. (Ignored if cooking)Default: 0", type:"Var"}, {name: "au.MetaSound.EnableGeneratorInvalidSampleValueLogging", help:"Enables logging of audio samples values produced from a FMetaSoundGenerator which exceed the absolute sample value threshold\nDefault: false", type:"Var"}, {name: "au.MetaSound.EnableGeneratorNonFiniteLogging", help:"Enables logging of non-finite (NaN/inf) audio samples values produced from a FMetaSoundGenerator\nDefault: false", type:"Var"}, {name: "au.MetaSound.Experimental.DynamicOperatorTransformTimeoutInSeconds", help:"Sets the number of seconds allowed to process pending dynamic graph transformations for a single MetaSound render cycle .\n[Less than zero]: Disabled, [Greater than zero]: Enabled, (disabled by default)", type:"Var"}, {name: "au.MetaSound.Experimental.EnableAutoCachingForAllOperators", help:"Enables auto-caching of all MetaSound operators.\n(see MetasoundOperatorCacheSubsystem.h for manual path).\nDefault: false", type:"Var"}, {name: "au.MetaSound.Experimental.EnableAutoCachingForOneShotOperators", help:"Enables auto-caching of MetaSound operators using the OneShot source interface.\n(see MetasoundOperatorCacheSubsystem.h for manual path).\nDefault: false", type:"Var"}, {name: "au.MetaSound.Experimental.EnableRuntimePresetGraphInflation", help:"Enables experimental feature of MetaSounds which reduces overhead of preset graphs\nDefault: false", type:"Var"}, {name: "au.MetaSound.Experimental.OperatorPool.SetMaxNumOperators", help:"Set the maximum number of operators in the MetaSound operator cache.", type:"Cmd"}, {name: "au.MetaSound.Frontend.DiscardStreamedRegistryTransactions", help:"If enabled, MetaSound registry transactions are discarded after they have been streamed.\n0: Disabled, !0: Enabled (default)", type:"Var"}, {name: "au.MetaSound.GeneratorSampleValueThreshold", help:"If invalid sample value logging is enabled, this sets the maximum abs value threshold for logging samples\nDefault: 2.0", type:"Var"}, {name: "au.MetaSound.MuteMetaSound", help:"Mutes all given MetaSounds.", type:"Cmd"}, {name: "au.MetaSound.OperatorCache.EnablePrecache", help:"If precaching metasound operators via the UMetaSoundCacheSubsystem is enabled.", type:"Var"}, {name: "au.MetaSound.OperatorPool.CacheMissCsvStatsEnabled", help:"Record which metasounds incur a cache miss when building their graph.", type:"Var"}, {name: "au.MetaSound.OperatorPool.CsvStatsEnabled", help:"If we should record operator pool stats to the csv.", type:"Var"}, {name: "au.MetaSound.OperatorPoolHitRateWindowSeconds", help:"Control how long hit/miss results matter for the success rate reporting.\n", type:"Var"}, {name: "au.MetaSound.OperatorPoolSyncGraphRetrieval", help:"Retrieves graph on the requesting thread prior to asynchronous task to create instance.\n", type:"Var"}, {name: "au.MetaSound.Pages.SetTarget", help:"Sets the target page to that with the given name. If name not specified or not found, command is ignored.\n", type:"Cmd"}, {name: "au.MetaSound.Parameter.EnableWarningOnIgnoredParameter", help:"If enabled, a warning will be logged when a parameters sent to a MetaSound is ignored.\n0: Disabled (default), !0: Enabled", type:"Var"}, {name: "au.MetaSound.ProfileAllGraphs", help:"Enable profiling of all MetaSound graphs. NOTE: If the node filter is set it will still apply (see au.Metasound.AddProfileNode)\n0: Disabled (default), !0: Enabled", type:"Var"}, {name: "au.Metasound.Profiling.AddNodes", help:"Adds the specified node class name(s) to the list of metasound nodes that will be profiled and visible in Insights.", type:"Cmd"}, {name: "au.Metasound.Profiling.ListNodes", help:"Lists the node class names that will be profiled and visible in Insights.", type:"Cmd"}, {name: "au.Metasound.Profiling.RemoveNodes", help:"Removes the specified node class name(s) (or ALL if no names are provided) from the list of node types that will be profiled and visible in Insights.", type:"Cmd"}, {name: "au.MetaSound.RecordActiveMetasoundsToCsv", help:"Record the name of each active Metasound when csv profiling is recording.", type:"Var"}, {name: "au.MetaSound.SampleRate", help:"Overrides the sample rate of metasounds. Negative values default to audio mixer sample rate.\nDefault: 0, Min: 8000, Max: 48000", type:"Var"}, {name: "au.MetaSound.SoloMetaSound", help:"Mutes all other MetaSounds. Only the first argument is accepted.", type:"Cmd"}, {name: "au.MetaSound.WavePlayer.DeinterleaveBlockSizeInFrames", help:"Block size in frames used for deinterleaving audio in the MetaSound wave player node.\nDefault: 512", type:"Var"}, {name: "au.MetaSound.WavePlayer.MaxDecodeSizeInFrames", help:"Max size in frames used for decoding audio in the MetaSound wave player node.\nDefault: 1024", type:"Var"}, {name: "au.MinLogTimeBetweenUnderrunWarnings", help:"Min time between underrun warnings (globally) in MS\nSet the time between each subsequent underrun log warning globaly (defaults to 10secs)", type:"Var"}, {name: "au.Modulation.SetPitchRange", help:"Sets max final modulation range of pitch (in semitones). Default: 96 semitones (+/- 4 octaves)", type:"Cmd"}, {name: "au.MultithreadedPatching.PushCallsPerOutputCleanupCheck", help:"Number of push calls (usually corrisponding to audio block updates)\nbefore checking if an output is ready to be destroyed. Default = 256", type:"Var"}, {name: "au.NeverMuteNonRealtimeAudioDevices", help:"When set to 1, nonrealtime audio devices will be exempt from normal audio device muting (for example, when a window goes out of focus.\n0: Not Disabled, 1: Disabled", type:"Var"}, {name: "au.PatchBufferBlocks", help:"Determines the number of blocks that fit in a patch buffer.", type:"Var"}, {name: "au.Quartz.bAlwaysTakeVoiceSlot", help:"Always take voice slot immediately without trying to cache the request on the component\ndefault = 1: always forward the request to the audio engine immediately. - 0: attempt to cache play requests on the component until closer to the deadline.", type:"Var"}, {name: "au.Quartz.DecrementSlotIndexOnStarted", help:"Defaults to 1 to enable the delegate leak fix. Set to 0 to revert to pre-fix behavior.\n1: New Behavior, 0: Old Behavior", type:"Var"}, {name: "au.Quartz.HeadlessClockSampleRate", help:"Sample rate to use for Quartz Clocks/Metronomes when no Mixer Device is present.\n0: Not Enabled, 1: Enabled", type:"Var"}, {name: "au.Quartz.MaxSubscribersToUpdatePerTick", help:"Limits the number of Quartz subscribers to update per Tick.\n<= 0: No Limit, >= 1: Limit", type:"Var"}, {name: "au.Quartz.SimulateNoAudioDevice", help:"If enabled, the QuartzSubsystem will assume no audio device, and will run new clocks in headless mode.\n0: Not Enabled, 1: Enabled", type:"Var"}, {name: "au.Quartz.TimeToTakeUpVoiceSlot", help:"TheEQuartzCommandQuantization type (default: EQuartzCommandQuantization::EighthNote) before playing that a queued sound should take up a voice slot for\nValue: The EQuartzCommandQuantization index of the desired duration", type:"Var"}, {name: "au.RecoverRecordingOnShutdown", help:"When set to 1, we will attempt to bounce the recording to a wav file if the game is shutdown while a recording is in flight.\n0: Disabled, 1: Enabled", type:"Var"}, {name: "au.RecycleThreads", help:"Keeps threads to reuse instead of create/destroying them0 off, 1 on", type:"Var"}, {name: "au.RenderThreadAffinity", help:"Override audio render thread affinity.\n0: Disabled (Default), otherwise overriden thread affinity.", type:"Var"}, {name: "au.ReportAudioDevices", help:"This will log any active audio devices (instances of the audio engine) alive right now.", type:"Cmd"}, {name: "au.resonance.quality", help:"Override the quality of resonance sound sources. Will not increase quality levels. The quality used will be min of the quality in the resonance source settings and this override.\n0: Quality is not overridden, 1: Stereo Panning, 2: Low Quality, 3: Medium Quality, 4: High Quality", type:"Var"}, {name: "au.Resonance.UsingReverb", help:"Allows Resonance to Query AudioVolumes for reverb effects.\n0: Disable, 1: Enable (default)", type:"Var"}, {name: "au.SoundWaveImportLengthLimitInSeconds", help:"When set to a value > 0.0f, Soundwaves with durations greater than the value will fail to import.\nif the value is < 0.0f, the length will be unlimited", type:"Var"}, {name: "au.SoundWaveProxyReader.SimulateSeek", help:"If true, SoundWaves which are not of a seekable format will simulate seek calls by reading and discarding samples.\n0: Do not simulate seek, !0: Simulate seek", type:"Var"}, {name: "au.SourceFadeMin", help:"Sets the length (in samples) of minimum fade when a sound source is stopped. Must be divisible by 4 (vectorization requirement). Ignored for some procedural source types. (Default: 512, Min: 4). \n", type:"Cmd"}, {name: "au.spatialization.ListAvailableSpatialPlugins", help:"This will output a list of currently available/active spatialization plugins", type:"Cmd"}, {name: "au.spatialization.SetCurrentSpatialPlugin", help:"Attempt to swap to the named spatialization plugin (au.spatialization.ListAvailableSpatialPlugins to see what is availible)", type:"Cmd"}, {name: "au.streamcache.BlockOnChunkLoadCompletion", help:"When set to 1, USoundWaves we will always attempt to synchronously load a chunk after a USoundWave request has finished.\n0: Don\'t try to block after a SoundWave has completed loading a chunk, 1: Block after a USoundWave\'s chunk request has completed.", type:"Var"}, {name: "au.streamcache.DisableRetaining", help:"When set to 1, USoundWaves will not retain chunks of their own audio.\n0: Don\'t disable retaining, 1: disable retaining.", type:"Var"}, {name: "au.streamcache.DispatchToGameThreadOnChunkRequest", help:"When set to 1, we will always dispatch a callback to the game thread whenever a USoundWave request has finished. This may cause chunks of audio to be evicted by the time we need them.\n0: as soon as the chunk is loaded, capture the audio chunk. 1: As soon as the chunk is loaded, dispatch a callback to the gamethread.", type:"Var"}, {name: "au.streamcache.priming.BypassRetainFromSoundCues", help:"When set to 1, we ignore the loading behavior of sound classes set on a Sound Cue directly.\n", type:"Var"}, {name: "au.streamcache.priming.ManuallyPrimeChildNodes", help:"When set to 1, we ignore the loading behavior of sound classes set on a Sound Cue directly.\n", type:"Var"}, {name: "au.streamcache.priming.PrimeDelayNodes", help:"When set to 1, sounds will be loaded into the cache automatically when a delay node is hit.\n", type:"Var"}, {name: "au.streamcache.priming.PrimeRandomNodes", help:"When set to 1, sounds will be loaded into the cache automatically when a random node is hit.\n", type:"Var"}, {name: "au.streamcache.SoundWaveDefaultLoadingBehavior", help:"This can be set to define the default behavior when a USoundWave is loaded.\n1: Retain audio data on load, 2: prime audio data on load, 3: load on demand (No audio data is loaded until a USoundWave is played or primed).", type:"Var"}, {name: "au.streamcaching.AlwaysLogCacheMisses", help:"When set to a nonzero value, all cache misses will be added to the audiomemreport.\n0: Don\'t log cache misses until au.streamcaching.StartProfiling is called. 1: Always log cache misses.", type:"Var"}, {name: "au.streamcaching.BlockForPendingLoadOnCacheOverflow", help:"This cvar sets the default request priority for audio chunks that are about to play back, but aren\'t in the cache.\n0: When we blow the cache we clear any soundwave retainers. 1:When we blow the cache we attempt to cancel a load in flight.", type:"Var"}, {name: "au.streamcaching.ChunkSlotNumScalar", help:"This allows scaling the number of chunk slots pre-allocated.\n1.0: is the lower limit", type:"Var"}, {name: "au.streamcaching.DebugView", help:"Controls Drawing the Debug Display for the Stream Cache.\n0: Legacy, 1: Default, 2: Averaged View, 3: High Detail View", type:"Var"}, {name: "au.streamcaching.EnableExhaustiveCacheSearches", help:"Enables an exhaustive search of the cache in FindElementForKey.\n0: Rely on chunk offset. 1: Search using linear search", type:"Var"}, {name: "au.streamcaching.EnableTrimmingRetainedAudio", help:"When set > 0, we will trim retained audio when the stream cache goes over the memory limit.\n0: never trims retained audio, >0: will trim retained audio.", type:"Var"}, {name: "au.streamcaching.FlushAudioCache", help:"This will flush any non retained audio from the cache when Stream Caching is enabled.", type:"Cmd"}, {name: "au.streamcaching.ForceBlockForLoad", help:"When set to a nonzero value, blocks GetLoadedChunk until the disk read is complete.\n", type:"Var"}, {name: "au.streamcaching.KeepCacheMissBufferOnFlush", help:"If set to 1, this will maintain the buffer of recorded cache misses after calling AudioMemReport. Otherwise, calling audiomemreport will flush all previous recorded cache misses.\n1: All cache misses from the whole session will show up in audiomemreport. 0: Only cache misses since the previous call to audiomemreport will show up in the current audiomemreport.", type:"Var"}, {name: "au.streamcaching.MaxCachesToDisplay", help:"Sets the max amount of stream chunks to display on screen.\nn: Number of elements to display on screen.", type:"Var"}, {name: "au.streamcaching.MemoryLimitTrimPercentage", help:"When set > 0.0, we will trim percentage of memory cache audio per trim call audio when the stream cache goes over the memory limit.\n0.0: trims only the amount needed to allocate a single chunk, >0: that percentage of memory limit.", type:"Var"}, {name: "au.streamcaching.MinimumCacheUsage", help:"This value is the minimum potential usage of the stream cache we feasibly want to support. Setting this to 0.25, for example, cause us to potentially be using 25% of our cache size when we start evicting chunks, worst cast scenario.\n0.0: limit the number of chunks to our (Cache Size / Max Chunk Size) [0.01-0.99]: Increase our number of chunks to limit disk IO when we have lots of small sounds playing.", type:"Var"}, {name: "au.streamcaching.NumSoundWavesToClearOnCacheOverflow", help:"When set > 0, we will attempt to release retainers for only that many sounds every time we have a cache overflow.\n0: reset all retained sounds on cache overflow, >0: evict this many sounds on any cache overflow.", type:"Var"}, {name: "au.streamcaching.PlaybackRequestPriority", help:"This cvar sets the default request priority for audio chunks that are about to play back, but aren\'t in the cache.\n0: High, 1: Normal, 2: Below Normal, 3: Low, 4: Min", type:"Var"}, {name: "au.streamcaching.PrimeSoundOnAudioComponents", help:"When set to 1, automatically primes a USoundBase when a UAudioComponent is spawned with that sound, or when UAudioComponent::SetSound is called.\n", type:"Var"}, {name: "au.streamcaching.ReadRequestPriority", help:"This cvar sets the default request priority for audio chunks when Stream Caching is turned on.\n0: High, 1: Normal, 2: Below Normal, 3: Low, 4: Min", type:"Var"}, {name: "au.streamcaching.ResizeAudioCacheTo", help:"This will try to cull enough audio chunks to shrink the audio stream cache to the new size if neccessary, and keep the cache at that size.", type:"Cmd"}, {name: "au.streamcaching.SaveAudiomemReportOnCacheOverflow", help:"When set to one, we print an audiomemreport when the cache has overflown.\n0: Disabled, 1: Enabled", type:"Var"}, {name: "au.streamcaching.SearchUsingChunkArray", help:"If performing an exhaustive search of the cache, use the chunk array instead of the LRU (we give up knowing how far down the cache an element was).\n0: Search using LRU (linked list). 1: Search using Chunk Pool (TArray)", type:"Var"}, {name: "au.streamcaching.StartProfiling", help:"This will start a performance-intensive profiling mode for this streaming manager. Profile stats can be output with audiomemreport.", type:"Cmd"}, {name: "au.streamcaching.StopProfiling", help:"This will start a performance-intensive profiling mode for this streaming manager. Profile stats can be output with audiomemreport.", type:"Cmd"}, {name: "au.streamcaching.StreamCacheSizeOverrideMB", help:"This cvar can be set to override the size of the cache.\n0: use cache size from project settings. n: the new cache size in megabytes.", type:"Var"}, {name: "au.streamcaching.TrimCacheWhenOverBudget", help:"When set to a nonzero value, TrimMemory will be called in AddOrTouchChunk to ensure we never go over budget.\n", type:"Var"}, {name: "au.submix.audibledefaultendpoints", help:"Allows audio sent to defaulted (typically silent) endpoint submixes to be audible via master. (useful for debugging)\n0: Disabled (Default), 1: Enabled", type:"Var"}, {name: "au.submix.clearbrokensubmixassets", help:"If set, will verify that we don\'t have a submix that lists a child submix that is no longer its child, and the former children will not erroneously list their previous parents.\n0: Disable, >0: Enable", type:"Var"}, {name: "au.submix.drawgraph", help:"Draws the submix heirarchy for this world to the debug output", type:"Cmd"}, {name: "au.Submix.Effects.DynamicsProcessor.Bypass", help:"If non-zero, bypasses all submix dynamics processors currently active.\n", type:"Var"}, {name: "au.ThreadedSwapDebugExtraTime", help:"Simulate a slow device swap by adding addional time to the swap task", type:"Var"}, {name: "au.UnderrunTimeoutMSec", help:"Amount of time to wait for the render thread to generate the next buffer before submitting an underrun buffer. \n", type:"Var"}, {name: "au.UseCachedDeviceInfoCache", help:"Uses a Cache of the DeviceCache instead of asking the OS0 off, 1 on", type:"Var"}, {name: "au.UseThreadedDeviceSwap", help:"Lets Device Swap go wide.0 off, 1 on", type:"Var"}, {name: "au.VirtualLoops.ForceUpdateListenerMoveDistance", help:"Sets distance threshold required to force an update to check for virtualized sounds to realize if listener moves in a single frame over the given distance.\n", type:"Var"}, {name: "au.VirtualLoops.ForceUpdateListenerMoveDistance", help:"Sets distance threshold required to force an update on virtualized sounds to check for if listener moves in a single frame over the given distance.\n", type:"Var"}, {name: "au.voip.AlwaysPlayVoiceComponent", help:"When set to 1, guarantees that voip components won\'t get deprioritized. \n0: Let voip components get killed, 1: force VOIP components to be higher priority than all other audio sources.", type:"Var"}, {name: "au.vorbis.ReadFailiureTimeout", help:"When set to 1, we bail on decoding Ogg Vorbis sounds if we were not able to successfully decode them after several attempts.\n", type:"Var"}, {name: "au.WaveInstanceMinVolume", help:"Sets the minimum volume for a wave instance to be considered active\nDefault is 0.0001 (-80 dB)", type:"Var"}, {name: "au.WorldlessGetAudioTimeBehavior", help:"Determines the return value of GetAudioTime when an audio component does not belong to a world.\n0: 0.f (default), 1: Application\'s CurrentTime", type:"Var"}, {name: "Audio.DumpActiveSounds", help:"Outputs data about all the currently active sounds.", type:"Cmd"}, {name: "AudioCommand.FenceWaitTimeMs", help:"Sets number of ms for fence wait", type:"Var"}, {name: "AudioThread.BatchCommands", help:"Batch audio commands that are created from the audio thread and executed on the game thread so that they are executed in a single task.", type:"Var"}, {name: "AudioThread.TaskPriority", help:"Takes a single parameter of value `High`, `Normal`, `BackgroundHigh`, `BackgroundNormal` or `BackgroundLow`.", type:"Cmd"}, {name: "AudioThread.WaitWarningThresholdMs", help:"Sets number of ms to wait before logging audio thread stall.", type:"Var"}, {name: "AudioThread.UseSafeRunCommandOnGameThread", help:"When active, limit commands sent to the game thread to run at a safe place inside a tick", type:"Var"}, {name: "Automation.CaptureLogEvents", help:"Consider warning/error log events during a test as impacting the test itself", type:"Var"}, {name: "Automation.EnableStereoTestVariants", help:"Whether to enable stereo test variants for screenshot functional tests", type:"Var"}, {name: "Automation.LightweightStereoTestVariants", help:"Whether to skip variants when the baseline test fails, and skip saving screenshots for successful variants", type:"Var"}, {name: "Automation.LogBPTestMetadata", help:"Whether to output blueprint functional test metadata to the log when test is running", type:"Var"}, {name: "Automation.LogTestStateTrace", help:"Whether to enable or disable logging of test state trace", type:"Var"}, {name: "Automation.SkipStackWalk", help:"Whether to skip any stack issues that the automation test framework triggers", type:"Var"}, {name: "Automation.TestTagGlobalFilter", help:"Only include tests marked with Tags matching this filter string, using the Advanced Search Syntax", type:"Var"}, {name: "AutomationAllowFrameTraceCapture", help:"Allow automation to capture frame traces.", type:"Var"}, {name: "beacon.DelayFinishHandshake", help:"Delay time before finishing handshake by calling client RPC\nTime in seconds. A value of 0 means no delay, and a negative value means never call it.", type:"Var"}, {name: "beacon.DelayFinishHandshakeBeaconType", help:"The type of beacon to apply the handshake delay to.\nLeave blank for all.", type:"Var"}, {name: "beacon.RequireInitiatorIsPartyLeader", help:"Enforce RPC validation which checks whether the initiator of a reservation RPC is the party leader\nEnabled", type:"Var"}, {name: "BehaviorTree.ApplyAuxNodesFromFailedSearches", help:"Apply Aux Nodes From Failed Searches", type:"Var"}, {name: "BehaviorTree.EnsureOnScheduleExecutionUpdateWithInvalidExecutionRequest", help:"Should we ensure when pending execution and execution node are invalid when scheduling execution update.", type:"Var"}, {name: "BLUEPRINTIFY", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "BitReader.LogFatalOnOverflow", help:"LogFatal if BitReader Overflows", type:"Var"}, {name: "BP.ActionMenuFilterCacheLeafCapacity", help:"The number of action menu contexts to cache simultaniously. raising this number will increase the memory footprint but decrease how often the cache is blown", type:"Var"}, {name: "bp.AuditFunctionCallsForBlueprint", help:"Audit all functions called by a specified blueprint. Single argument supplies the asset to audit. Writes results to the log.", type:"Cmd"}, {name: "bp.AuditThreadSafeFunctions", help:"Audit currently loaded thread safe functions. Writes results to the log.", type:"Cmd"}, {name: "BP.bAllowConversionOfComparisonOps", help:"If true, then allow the user to convert between comparison operators on the UK2Node_PromotableOperator", type:"Var"}, {name: "BP.bEnableSkelReinstUpdate", help:"If true the Reinstancing of SKEL classes will use the new FBlueprintCompileReinstancer::MoveDependentSkelToReinst(o(n)) instead of the old MoveSkelCDOAside (o(n^2))", type:"Var"}, {name: "BP.bForceAllDependenciesToRecompile", help:"If true all dependencies will be bytecode-compiled even when all referenced functions have no signature changes. Intended for compiler development/debugging purposes.", type:"Var"}, {name: "bp.bForcePastedComponentsToSCS", help:"Setting this to True will change instanced components pasted into blueprints to be SCS components", type:"Var"}, {name: "bp.BlamePrintString", help:"When true, prints the Blueprint Asset and Function that generated calls to Print String. Useful for tracking down screen message spam.", type:"Var"}, {name: "BP.ContextMenu.CategoryWeight", help:"The amount of weight placed on categories that match what the user has typed in", type:"Var"}, {name: "BP.ContextMenu.ContainerBonus", help:"The bonus given if the dragged from pin matches the same container type of the action", type:"Var"}, {name: "BP.ContextMenu.DescriptionWeight", help:"The amount of weight placed on search items description", type:"Var"}, {name: "BP.ContextMenu.FavoriteBonus", help:"The bonus given if node is a favorite", type:"Var"}, {name: "BP.ContextMenu.KeywordWeight", help:"The amount of weight placed on search items keyword", type:"Var"}, {name: "BP.ContextMenu.MatchingFromPinCategory", help:"The amount of weight placed on actions with the same category as the node being dragged off of", type:"Var"}, {name: "BP.ContextMenu.MaxWordLength", help:"Maximum length to count while awarding short word weight", type:"Var"}, {name: "BP.ContextMenu.NodeTitleWeight", help:"The amount of weight placed on the search items title", type:"Var"}, {name: "BP.ContextMenu.PercentageMatchWeightMultiplier", help:"A multiplier for how much weight to give something based on the percentage match it is", type:"Var"}, {name: "BP.ContextMenu.ShorterWeight", help:"Increasing this weight will make shorter words preferred", type:"Var"}, {name: "BP.ContextMenu.StartsWithBonusWeightMultiplier", help:"The multiplier given if the keyword starts with a term the user typed in", type:"Var"}, {name: "BP.ContextMenu.WordContainsLetterWeightMultiplier", help:"The multiplier given if the keyword only contains a term the user typed in", type:"Var"}, {name: "bp.DebuggerEnableExternalSearch", help:"Allows the Blueprint Debugger TreeView widget to search external objects", type:"Var"}, {name: "bp.DebuggerMaxSearchDepth", help:"The maximum search depth of Blueprint Debugger TreeView widgets (set to <= 0 for infinite depth)", type:"Var"}, {name: "bp.DefaultSubobjectValidationDisabled", help:"Disable Blueprint class default subobject validation at editor load/save time.", type:"Var"}, {name: "bp.DisableSearchDataUpdateOnSave", help:"Don\'t update Blueprint search metadata on save (for QA/testing purposes only). On an editor relaunch, it should include the BP in the unindexed count after the first search.", type:"Var"}, {name: "BP.DumpAllRegisteredNamespacePaths", help:"Dumps all registered namespace paths.", type:"Cmd"}, {name: "BP.EnableActionMenuFilterCaching", help:"If enabled, action filter tests with the CacheResults flag set will have their results cached", type:"Var"}, {name: "bp.EnableDeprecatedWarningForComponentDelegateNodes", help:"Show Deprecated warning for component delegate event nodes", type:"Var"}, {name: "BP.EnableNamespaceFilteringFeatures", help:"Enables namespace filtering features in the Blueprint editor (experimental).", type:"Var"}, {name: "BP.EnableNamespaceImportingFeatures", help:"Enables namespace importing features in the Blueprint editor (experimental).", type:"Var"}, {name: "bp.ForceOldSearchDataFormatVersionOnSave", help:"Force Blueprint search metadata to use an old format version on save (for QA/testing purposes only). On an editor relaunch, it should include the BP in the out-of-date count after the first search.", type:"Var"}, {name: "bp.GenerateFieldNotifyBroadcastForOnRepFunction", help:"When needed, generate a Broadcast FieldNotification node when the OnRep function is called.", type:"Var"}, {name: "BP.ImportParentClassNamespaces", help:"Enables import of parent class namespaces when opening a Blueprint for editing.", type:"Var"}, {name: "bp.MaxFunctionStatDepth", help:"Script stack threshold for recording per function stats.\n", type:"Var"}, {name: "bp.NativePropertyInitFastPathDisabled", help:"Disable the native property initialization fast path.", type:"Var"}, {name: "bp.PinValidityCheck.bDisplayInvalidPinWarning", help:"CVar controls pin validity warning which will throw when a macro graph is silently failing", type:"Var"}, {name: "bp.PinValidityCheck.bDisplayMissingBoundComponentWarning", help:"CVar controls pin validity warning which will throw when a bound event has no matching component", type:"Var"}, {name: "bp.ScriptRecurseLimit", help:"Sets the number of recursions before script is considered in an infinite loop.\n", type:"Var"}, {name: "bp.ShortScriptWarnings", help:"Shorten the blueprint exception logs.\n", type:"Var"}, {name: "BP.ToggleUsePackagePathAsDefaultNamespace", help:"Toggle the use of a type\'s package path as its default namespace when not explicitly assigned. Otherwise, all types default to the global namespace.", type:"Cmd"}, {name: "bp.UseLegacyAnimInstanceReinstancingBehavior", help:"Use the legacy re-instancing behavior for anim instances where the instance is destroyed and re-created.", type:"Var"}, {name: "brush.ForceNavmeshGenerationOnStaticBrush", help:"Force exporting static brush\'s geometry data to Navigation System regardless of CanEverAffectNavigation and CollisionPreset values. Enabled by default to be backward compatible with brushes on legacy maps.", type:"Var"}, {name: "BugIt", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "buildidoverride", help:"Sets build id used for matchmaking ", type:"Var"}, {name: "BuildPatchFileConstructor.bStallWhenFileSystemThrottled", help:"Whether to stall if the file system is throttled", type:"Var"}, {name: "BuildPatchFileConstructor.SleepTimeWhenFileSystemThrottledSeconds", help:"The amount of time to sleep if the destination filesystem is throttled.", type:"Var"}, {name: "cac.ExperimentalAllowPerInstanceChildActorProperties", help:"[EXPERIMENTAL] If true, allows properties to be modified on a per-instance basis for child actors.", type:"Var"}, {name: "CancelAllTasks", help:"", type:"Cmd"}, {name: "CancelRecordingTake", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "Chaos.Debug.RadialImpulseDistributeToChildren", help:"When one and applied to a geometry collection cluster, the impulse will be divided equally betweemn all the children", type:"Var"}, {name: "Chaos.Debug.StrainModifier", help:"(Deprecated) When using radial impulse, compute the strain by multiplier the impulse by this factor", type:"Var"}, {name: "ChaosGeometryMemory", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "CleanupUnitTestWorlds", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "ClusterUnion.ApplyReplicatedRigidStateOnCreatePhysicsState", help:"When physics state is created, apply replicated rigid state. Useful because sometimes the initial OnRep will have been called before a proxy exists, so initial properties will be unset", type:"Var"}, {name: "ClusterUnion.DirtyRigidStateOnlyIfChanged", help:"Add a check for changed rigid state before marking it dirty and updating the replicated data. No need to flush an update if there was no change.", type:"Var"}, {name: "ClusterUnion.FlushNetDormancyOnSyncProxy", help:"When there is a new rigid state on the authority, flush net dormancy so that even if this object is net dorman the rigid state will come through to the client.", type:"Var"}, {name: "ClusterUnion.LocalBoneDataMapGrowFactor", help:"Grow factor to apply to the size of bone data array of pre-existing component when preallocating the local bones data map", type:"Var"}, {name: "ClusterUnion.PreAllocateLocalBoneDataMap", help:"If true, it will reserve an expected size for the local map used to cache updated bone data", type:"Var"}, {name: "ClusterUnion.SkipZeroStateInOnRep", help:"Whether we skip 0 (uninitialized) states when running the onrep for the replicated rigid state of the cluster union", type:"Var"}, {name: "ClusterUnion.StressSolver.EnableDebugDraw", help:"When enabled, this will draw visual debug information for about the stress solver execution.", type:"Var"}, {name: "ClusterUnion.StressSolver.StrengthScalar", help:"Materioal strength scalar ( <1: weaker, >1: stronger)", type:"Var"}, {name: "ClusterUnion.UseAccelerationStructure", help:"Whether component level sweeps and overlaps against cluster unions should use an acceleration structure instead.", type:"Var"}, {name: "ClusterUnion.UseLocalRoleForAuthorityCheck", help:"If true, we will only check this component\'s owner local role to determine authority", type:"Var"}, {name: "Collections.MaxCLDescriptionPathCount", help:"Sets the maximum number of paths reported in a changelist when checking in a collection that adds or removes entries.", type:"Var"}, {name: "Compat.MAX_GPUSKIN_BONES", help:"Max number of bones that can be skinned on the GPU in a single draw call. Cannot be changed at runtime.", type:"Var"}, {name: "Compat.MAX_GPUSKIN_BONES", help:"Max number of bones that can be skinned on the GPU in a single draw call. This setting clamp the per platform project setting URendererSettings::MaxSkinBones. Cannot be changed at runtime.", type:"Var"}, {name: "ComputeKernel.ShowShaderCompilerWarnings", help:"When set to 1, will display all warnings from ComputeKernel shader compiles.", type:"Var"}, {name: "Concert.AlwaysCloseGamePlayerOnCloseEvent", help:"Force this player to close even if other editors have it open. This CVar only works on `-game` instances.", type:"Var"}, {name: "Concert.AlwaysSuspendBroadcastUndoRedo", help:"Always suspend the undo/redo broadcast message. Can help with transactions that steal user focus.", type:"Var"}, {name: "Concert.DelayTransactionsWhileEditing", help:"Focus is lost by the editor when a transaction is applied. This variable suspends applying a transaction until the user has removed focus on editable UI.", type:"Var"}, {name: "Concert.DelayTransactionsWhileEditingTimeout", help:"When Concert.DelayTransactionsWhileEditing is enabled we make sure the user has not been idle too long to prevent transactions from stacking up. The timeout value is specified in seconds.", type:"Var"}, {name: "Concert.DisplayPresence", help:"Enable display of Concert Presence from remote users.", type:"Var"}, {name: "Concert.EmitPresence", help:"Enable display update of Concert Presence to remote users.", type:"Var"}, {name: "Concert.EnableCloseRemoteSequencer", help:"Enable Concert remote Sequencer closing.", type:"Var"}, {name: "Concert.EnableLoopingOnPlayer", help:"Enable Looping Sequence Players when sequencer looping is enabled.", type:"Var"}, {name: "Concert.EnableOpenRemoteSequencer", help:"Enable Concert remote Sequencer opening.", type:"Var"}, {name: "Concert.EnablePresenceInGame", help:"Enable Concert Presence in Game", type:"Var"}, {name: "Concert.EnableSequencePlayer", help:"Enable Concert Sequence Players on `-game` client.", type:"Var"}, {name: "Concert.EnableSequencerPlaybackSync", help:"Enable Concert Sequencer Playback Syncing of opened Sequencer.", type:"Var"}, {name: "Concert.EnableUndefinedSequencerMessages", help:"Enable undefined sequencer messages to be sent.", type:"Var"}, {name: "Concert.EnableUnrelatedTimelineSync", help:"Enable syncing unrelated sequencer timeline.", type:"Var"}, {name: "Concert.IgnoreTransactionFilters", help:"Ignore Transaction Object Allow List Filtering", type:"Var"}, {name: "Concert.Replication.LogAuthorityRequestsAndResponsesOnClient", help:"Whether to log changes to authority.", type:"Var"}, {name: "Concert.Replication.LogChangeClientEventsOnClient", help:"Whether to log messages from the server that notify us that the client\'s content has changed.", type:"Var"}, {name: "Concert.Replication.LogChangeClientsRequestsAndResponsesOnClient", help:"Whether to log requests and responses that change multiple clients in one go.", type:"Var"}, {name: "Concert.Replication.LogMuteRequestsAndResponsesOnClient", help:"Whether to log changes to the mute state.", type:"Var"}, {name: "Concert.Replication.LogReceivedObjects", help:"Enable Concert logging for received replicated objects.", type:"Var"}, {name: "Concert.Replication.LogRestoreContentRequestsAndResponsesOnClient", help:"Whether to log restore content requests and responses.", type:"Var"}, {name: "Concert.Replication.LogSentObjects", help:"Enable Concert logging for sent replicated objects.", type:"Var"}, {name: "Concert.Replication.LogStreamRequestsAndResponsesOnClient", help:"Whether to log changes to streams.", type:"Var"}, {name: "Concert.Replication.SimulateAuthorityRejection", help:"Whether the client should pretend that authority change requests were rejected.", type:"Var"}, {name: "Concert.Replication.SimulateAuthorityTimeouts", help:"Whether the client should pretend that authority requests timed out instead of sending to the server.", type:"Var"}, {name: "Concert.Replication.SimulateJoinTimeouts", help:"Whether the client should pretend that join requests timed out instead of sending to the server.", type:"Var"}, {name: "Concert.Replication.SimulateMuteRejection", help:"Whether the client should pretend that mute change requests were rejected.", type:"Var"}, {name: "Concert.Replication.SimulateQueryTimeouts", help:"Whether the client should pretend that query requests timed out instead of sending to the server.", type:"Var"}, {name: "Concert.Replication.SimulateStreamChangeTimeouts", help:"Whether the client should pretend that stream change requests timed out instead of sending to the server.", type:"Var"}, {name: "Concert.SendSequencerStateEventsAsUnreliable", help:"Enable sending sequencer events in unreliable mode. Note this ", type:"Var"}, {name: "Concert.SequencerStatePacingDuration", help:"Duration we use (in seconds) to pace sequencer state events to clients.", type:"Var"}, {name: "Concert.SequencerStatePacingEnabled", help:"Use sequencer state pacing to prevent too many messages sent to the server.", type:"Var"}, {name: "Concert.SetCompressionFlags", help:"Specify the flags to use when compression is enabled. A value of 0 means no flags. A value of 1 favors smaller sizes. Any other value favors faster encoding.", type:"Var"}, {name: "Concert.SetCompressionSizeLimit", help:"The compressor incurs a performance cost and will only be used if the package size is less than the amount specified (default 32 MB). A value of 0 or less will always compress.", type:"Var"}, {name: "Concert.SetCompressionType", help:"Specify the type of compression to use when serializing data. A value of 0 means compression is off. A value of 1 = Oodle. All other values = Zlib.", type:"Var"}, {name: "CONFIG", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "console.CmdLink.enable", help:"Opens a pipe that runs commands passed as command line args to CmdLink.exe", type:"Var"}, {name: "console.CmdLink.key", help:"Changes the name of the pipe used for a connection to CmdLink.exe", type:"Var"}, {name: "console.searchmode.legacy", help:"Use the legacy search behaviour for console commands \n", type:"Var"}, {name: "Constraints.DebugDependencies", help:"Print debug info about dependencies when creating a new constraint.", type:"Var"}, {name: "Constraints.DebugEvaluationGraph", help:"Print debug info about constraitns evaluation graph.", type:"Var"}, {name: "Constraints.ForceChildDependency", help:"Force child dependency on the current constraint.", type:"Var"}, {name: "Constraints.IncludeTarget", help:"Include target when getting child\'s existing constraints.", type:"Var"}, {name: "Constraints.PreEvaluateChild", help:"Force child evaluation before constraint computation.", type:"Var"}, {name: "Constraints.PreTickChild", help:"Force child ticking before constraint computation.", type:"Var"}, {name: "Constraints.UseEvaluationGraph", help:"Use Evaluation Graph to update constraints when manipulating.", type:"Var"}, {name: "ContentBrowser.Debug.ConvertInternalPathToVirtual", help:"Convert internal path", type:"Cmd"}, {name: "ContentBrowser.Debug.TryConvertVirtualPath", help:"Try to convert virtual path", type:"Cmd"}, {name: "ContentBrowser.HideSaveCollectionButton", help:"Hide the Content Browser button to save search as a dynamic collection.", type:"Var"}, {name: "ContentBrowser.ShowCustomVirtualFolderIcon", help:"Whether to show a special icon for custom virtual folders added for organizational purposes in the content browser. E.g. EditorCustomVirtualPath field in plugins", type:"Var"}, {name: "ContentBrowser.ShowPluginFolderIcon", help:"Whether to show a special icon for plugin folders in the content browser.", type:"Var"}, {name: "CONVERTMATINEES", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "ConvertTireTypes", help:"Convert legacy TireTypes to new TireConfigs", type:"Cmd"}, {name: "ContextMenu.CategoryWeight", help:"The amount of weight placed on categories that match what the user has typed in", type:"Var"}, {name: "ContextMenu.DescriptionWeight", help:"The amount of weight placed on search items description", type:"Var"}, {name: "ContextMenu.KeywordWeight", help:"The amount of weight placed on search items keyword", type:"Var"}, {name: "ContextMenu.NodeTitleWeight", help:"The amount of weight placed on the search items title", type:"Var"}, {name: "ContextMenu.PrintDebugInfo", help:"Print the debug info about the context menu selection", type:"Var"}, {name: "ContextMenu.WholeMatchLocalizedWeightMultiplier", help:"The multiplier given if there is an exact localized match to the search term", type:"Var"}, {name: "ContextMenu.WholeMatchWeightMultiplier", help:"The multiplier given if there is an exact match to the search term", type:"Var"}, {name: "Controller.AlwaysNotifyClientOnControllerChange", help:"If true, OnRep_Controller and NotifyControllerChanged are always called on the client when a pawn\'s controller changes.\nIf false, use backward compatible controller notification logic that does not handle networking properly.", type:"Var"}, {name: "Controller.InvalidControlRotationMagnitude", help:"If any component of an FRotator passed to SetControlRotation is larger than this magnitude, ignore the value. Huge values are usually from uninitialized variables and can cause NaN/Inf to propagate later.", type:"Var"}, {name: "Controller.IsPushBased", help:"If true, AController\'s replicated properties will use push-based networking, and will therefore need to be marked dirty when changed.", type:"Var"}, {name: "ControlRig.CreateFloatControlsForCurves", help:"If nonzero we create a float control for each curve in the curve container, useful for debugging low level controls.", type:"Var"}, {name: "ControlRig.DisableExecutionInAnimNode", help:"if nonzero we disable the execution of Control Rigs inside an anim node.", type:"Var"}, {name: "ControlRig.DisableExecutionInComponent", help:"if nonzero we disable the execution of Control Rigs inside a ControlRigComponent.", type:"Var"}, {name: "ControlRig.EnableAnimNodePerformanceOptimizations", help:"if nonzero we enable the (experimental) execution performance optimizations of Control Rig AnimNodes.", type:"Var"}, {name: "ControlRig.EnableDrawInterfaceInGame", help:"If nonzero debug drawing will be enabled during play.", type:"Var"}, {name: "ControlRig.Hierarchy.EnableRotationOrder", help:"enables the rotation order for controls", type:"Var"}, {name: "ControlRig.Hierarchy.Modules", help:"enables the modular rigging functionality", type:"Var"}, {name: "ControlRig.Hierarchy.Physics", help:"enables physics support for the rig hierarchy", type:"Var"}, {name: "ControlRig.Hierarchy.Trace", help:"Traces changes in a hierarchy for a provided number of executions (defaults to 1).\nYou can use ControlRig.Hierarchy.TraceCallstack to enable callstack tracing as part of this.", type:"Cmd"}, {name: "ControlRig.Hierarchy.TraceAlways", help:"if nonzero we will record all transform changes.", type:"Var"}, {name: "ControlRig.Hierarchy.TraceCallstack", help:"if nonzero we will record the callstack for any trace entry.\nOnly works if(ControlRig.Hierarchy.TraceEnabled != 0)", type:"Var"}, {name: "ControlRig.Hierarchy.TraceOnSpawn", help:"sets the number of frames to trace when a new hierarchy is spawned", type:"Var"}, {name: "ControlRig.Hierarchy.TracePrecision", help:"sets the number digits in a float when tracing hierarchies.", type:"Var"}, {name: "ControlRig.LoadAllAssets", help:"Loads all control rig assets.", type:"Cmd"}, {name: "ControlRig.Preview.ShowSchematicPanelOverlay", help:"When true we\'ll add an overlay to the persona viewport to show modular rig information.", type:"Var"}, {name: "ControlRig.Sequencer.AutoGenerateTrack", help:"When true automatically create control rig tracks in Sequencer when a control rig is added to a level.", type:"Var"}, {name: "ControlRig.Sequencer.ClickSelectThroughGizmo", help:"When false you can\'t click through a gizmo and change selection if you will select the gizmo when in Animation Mode, default to false.", type:"Var"}, {name: "ControlRig.Sequencer.EnableAdditiveControlRigs", help:"When true it is possible to add an additive control rig to a skeletal mesh component.", type:"Var"}, {name: "ControlRig.Sequencer.SelectedKeysSelectControls", help:"When true when we select a key in Sequencer it will select the Control, by default false.", type:"Var"}, {name: "ControlRig.Sequencer.SelectedSectionSetsSectionToKey", help:"When true when we select a channel in a section, if it\'s the only section selected we set it as the Section To Key, by default false.", type:"Var"}, {name: "ControlRig.Test.EnableTestingToolbar", help:"When true we\'ll show the testing toolbar in Control Rig Editor.", type:"Var"}, {name: "cook.AllowASTCHDRProfile", help:"whether to allow ASTC HDR profile, the hdr format is only supported on some devices, e.g. Apple A13, Mali-G72, Adreno (TM) 660", type:"Var"}, {name: "Cook.AllowContentValidation", help:"True to allow content validation to run during cook (if requested), or false to disable it.", type:"Var"}, {name: "cook.ASTCTextureCompressor", help:"0: IntelISPC, 1: Arm", type:"Var"}, {name: "Cook.CookAllByDefault", help:"When FilesInPath is empty. Cook all packages by default.", type:"Var"}, {name: "Cook.display.diagnostictime", help:"Controls the time between cooker diagnostics messages.\n", type:"Var"}, {name: "cook.displaymode", help:"Controls the display for cooker logging of packages:\n 0: No display\n 1: Display packages remaining\n 2: Display each package by name\n 3: Both\n", type:"Var"}, {name: "cook.display.updatetime", help:"Controls the time before the cooker will send a new progress message.\n", type:"Var"}, {name: "Cook.display.warnbusytime", help:"Controls the time before the cooker will issue a warning that there is a deadlock in a busy queue.\n", type:"Var"}, {name: "cook.displaymode", help:"Controls the display for cooker logging of packages:\n 0: No display\n 1: Display the Count of packages remaining\n 2: Display each package by Name\n 3: Display Names and Count\n 4: Display the Instigator of each package\n 5: Display Instigators and Count\n 6: Display Instigators and Names\n 7: Display Instigators and Names and Count\n", type:"Var"}, {name: "cook.PollAsyncPeriod", help:"Minimum time in seconds between PollPendingCookedPlatformDatas.", type:"Var"}, {name: "Cook.retrybusytime", help:"Controls the time between retry attempts at save and load when the save and load queues are busy and there is no other work to do.\n", type:"Var"}, {name: "cook.SkipAsyncLoaderForCookedData", help:"If true, skip the async loader and load package header synchronously to reduce ping/pong between threads.", type:"Var"}, {name: "cook.StripGraphNodeComments", help:"1 = Strip graph node comments on cook. 0 = off", type:"Var"}, {name: "Core.bFastDecimalFormatLargeFloatSupport", help:"True implies we perform additional processing for floating point types over 9223372036854775807 to prevent clipping to this value.", type:"Var"}, {name: "core.EnsureAlwaysEnabled", help:"Set to false to turn ensureAlways into regular ensure", type:"Var"}, {name: "core.EnsuresAreErrors", help:"True means failed ensures are logged as errors. False means they are logged as warnings.", type:"Var"}, {name: "CoreUObject.AttemptToFindShortTypeNamesInMetaData", help:"Finds short type names stored in known MetaData entries", type:"Cmd"}, {name: "CoreUObject.EnsureAgainstLargeProperties", help:"Ensure (warn) against properties that could possibly break in future versions of the Engine due a reduction in the max size of FProperty::ElementSize.", type:"Var"}, {name: "CoreUObject.NonNullableBehavior", help:"Sets the behavior when a non-null property cannot be resolved into an object reference - 0=Leave property null and log a warning, 1=Leave property null and log an error, 2=Create a default object and log a warning if successful, or leave it null and log an error if unsuccessful", type:"Var"}, {name: "cpfuo.AuditAggressiveReferenceReplacment", help:"Whether to audit and report on reference replacements that come from the aggressive replacement path.\n", type:"Var"}, {name: "cpfuo.UseAggressiveReferenceReplacment", help:"Whether to aggressively replace references. This behavior is being deprecated but being left with the ability to toggle back on in case issues arise.\n", type:"Var"}, {name: "CreateDummyFileInPersistentStorage", help:"Create a dummy file with specified size in specified persistent storage folder", type:"Cmd"}, {name: "crn.quality", help:"Set the quality of the crunch texture compression. [0, 255], default: 128", type:"Var"}, {name: "csv.AggregateTaskWorkerStats", help:"If enabled, stats recorded on task worker threads are aggregated instead of outputting a single stat per thread.\r\nThis reduces CSV bloat when there are large numbers of worker threads and makes stat data more intelligible", type:"Var"}, {name: "csv.AlwaysShowFrameCount", help:"If enabled, we show the frame count in non-shipping builds, even if screen messages are disabled", type:"Var"}, {name: "csv.ForceExit", help:"If 1, do a forced exit when if exitOnCompletion is enabled", type:"Var"}, {name: "csv.FramesToBuffer", help:"Defines the minimum amount of frames to keep in memory before flushing them.", type:"Var"}, {name: "csv.MaxPerThreadStatDataSlackKB", help:"Max amount of per thread slack data to allow during a capture.\r\nHigher values result in better performance due to fewer allocations but higher memory overhead", type:"Var"}, {name: "csv.NamedEventsExclusive", help:"Determines whether to emit named events for exclusive stats", type:"Var"}, {name: "csv.NamedEventsTiming", help:"Determines whether to emit named events for non-exclusive timing stats", type:"Var"}, {name: "csv.PauseProcessingThread", help:"Debug only - When 1, blocks the processing thread to simulate starvation", type:"Var"}, {name: "csv.RecordActorCountThreshold", help:"Number of instances of a native Actor class required before recording to a CSV stat", type:"Var"}, {name: "csv.TargetFrameRateOverride", help:"If 0, Defaults to calculating the target frame rate using rhi.SyncInterval and Max refresh rate.", type:"Var"}, {name: "csv.trackWaitsAllThreads", help:"Determines whether to track waits on all threads. Note that this incurs a lot of overhead", type:"Var"}, {name: "csv.trackWaitsGT", help:"Determines whether to track game thread waits. Note that this incurs overhead", type:"Var"}, {name: "csv.trackWaitsRT", help:"Determines whether to track render thread waits. Note that this incurs overhead", type:"Var"}, {name: "CsvCategory", help:"Changes whether a CSV category is included in captures.", type:"Cmd"}, {name: "CurveEditor.DrawCurveKeys", help:"When true we draw curve keys, when false we do not.", type:"Var"}, {name: "CurveEditor.DrawCurveLines", help:"When true we draw curve lines, when false we do not.", type:"Var"}, {name: "CurveEditor.UseCurveCache", help:"When true we cache curve values, when false we always regenerate.", type:"Var"}, {name: "d3d11.ZeroBufferSizeInMB", help:"The D3D11 RHI needs a static allocation of zeroes to use when streaming textures asynchronously. It should be large enough to support the largest mipmap you need to stream. The default is 4MB.", type:"Var"}, {name: "CustomTimeStep.reset", help:"Resets the current custom step.", type:"Cmd"}, {name: "D3D12.AdjustTexturePoolSizeBasedOnBudget", help:"Indicates if the RHI should lower the texture pool size when the application is over the memory budget provided by the OS. This can result in lower quality textures (but hopefully improve performance).", type:"Var"}, {name: "d3d12.AllowDiscardResources", help:"Whether to call DiscardResources after transient aliasing acquire. This is not needed on some platforms if newly acquired resources are cleared before use.", type:"Var"}, {name: "d3d12.AllowPoolAllocateIndirectArgBuffers", help:"Allow indirect args to be pool allocated (otherwise they will be committed resources) (default: 0)", type:"Var"}, {name: "d3d12.BatchResourceBarriers", help:"Whether to allow batching resource barriers", type:"Var"}, {name: "D3D12.Bindless.GarbageCollectLatency", help:"Amount of update cycles before heap is freed", type:"Var"}, {name: "D3D12.Bindless.ResourceDescriptorHeapSize", help:"Bindless resource descriptor heap size", type:"Var"}, {name: "D3D12.Bindless.SamplerDescriptorHeapSize", help:"Bindless sampler descriptor heap size", type:"Var"}, {name: "D3D12.BindlessOnlineDescriptorHeapBlockSize", help:"Block size for sub allocations on the global view descriptor heap.", type:"Var"}, {name: "D3D12.BindlessOnlineDescriptorHeapSize", help:"Online descriptor heap size", type:"Var"}, {name: "d3d12.BindResourceLabels", help:"Whether to enable binding of debug names to D3D12 resources.", type:"Var"}, {name: "D3D12.DumpRayTracingGeometries", help:"Dump memory allocations for ray tracing resources.", type:"Cmd"}, {name: "D3D12.DumpRayTracingGeometriesToCSV", help:"Dump all memory allocations for ray tracing resources to a CSV file on disc.", type:"Cmd"}, {name: "D3D12.DumpTrackedAllocationCallstacks", help:"Dump all tracked d3d12 resource allocation callstacks.", type:"Cmd"}, {name: "D3D12.DumpTrackedAllocations", help:"Dump all tracked d3d12 resource allocations.", type:"Cmd"}, {name: "D3D12.DumpTrackedResidentAllocationCallstacks", help:"Dump all tracked resident d3d12 resource allocation callstacks.", type:"Cmd"}, {name: "D3D12.DumpTrackedResidentAllocations", help:"Dump all tracked resisdent d3d12 resource allocations.", type:"Cmd"}, {name: "D3D12.EmitRgpFrameMarkers", help:"Enables/Disables frame markers for AMD\'s RGP tool.", type:"Var"}, {name: "D3D12.EvictAllResidentResourcesInBackground", help:"Force D3D12 resource residency manager to evict all tracked unused resources when the application is not focused\n", type:"Var"}, {name: "d3d12.ExtraDepthTransitions", help:"Adds extra transitions for the depth buffer to fix validation issues. However, this currently breaks async compute", type:"Var"}, {name: "d3d12.FastAllocator.MinPagesToRetain", help:"Minimum number of pages to retain. Pages below this limit will never be released. Pages above can be released after being unused for a certain number of frames.", type:"Var"}, {name: "d3d12.FastConstantAllocatorPageSize", help:"Page size for the fast constant allocator", type:"Var"}, {name: "D3D12.GlobalResourceDescriptorHeapSize", help:"Global resource descriptor heap size", type:"Var"}, {name: "D3D12.GlobalSamplerDescriptorHeapSize", help:"Global sampler descriptor heap size", type:"Var"}, {name: "D3D12.GlobalSamplerHeapSize", help:"Global sampler descriptor heap size", type:"Var"}, {name: "D3D12.InsertOuterOcclusionQuery", help:"If true, enable a dummy outer occlusion query around occlusion query batches. Can help performance on some GPU architectures", type:"Var"}, {name: "D3D12.LocalViewHeapSize", help:"Local view heap size", type:"Var"}, {name: "D3D12.LogViewportEvents", help:"Log all the viewport events.", type:"Var"}, {name: "D3D12.MaxCommandsPerCommandList", help:"Flush command list to GPU after certain amount of enqueued commands (draw, dispatch, copy, ...) (default value 10000)", type:"Var"}, {name: "D3D12.OnlineDescriptorHeapBlockSize", help:"Block size for sub allocations on the global view descriptor heap.", type:"Var"}, {name: "D3D12.OnlineDescriptorHeapSize", help:"Online descriptor heap size", type:"Var"}, {name: "d3d12.PoolAllocator.ReadOnlyTextureMaxAllocationSize", help:"Maximum size of a single allocation in the VRAM ReadOnly Texture pool allocator (default 64MB)", type:"Var"}, {name: "d3d12.PoolAllocator.ReadOnlyTextureVRAMPoolSize", help:"Pool size of a single VRAM ReadOnly Texture memory pool (default 64MB)", type:"Var"}, {name: "d3d12.PoolAllocator.RTUAVTextureMaxAllocationSize", help:"Maximum size of a single allocation in the VRAM RTUAV Texture pool allocator (default 0MB - disabled)", type:"Var"}, {name: "d3d12.PoolAllocator.RTUAVTextureVRAMPoolSize", help:"Pool size of a single VRAM RTUAV Texture memory pool (default 0MB - disabled)", type:"Var"}, {name: "D3D12.PSO.DiskCache", help:"Enables a disk cache for Pipeline State Objects (PSOs).\nPSO descs are cached to disk so subsequent runs can create PSOs at load-time instead of at run-time.\nThis cache contains data that is independent of hardware, driver, or machine that it was created on. It can be distributed with shipping content.\n0 to disable the pipeline state disk cache\n1 to enable the pipeline state disk cache (default)\n", type:"Var"}, {name: "D3D12.PSO.DriverOptimizedDiskCache", help:"Enables a disk cache for driver-optimized Pipeline State Objects (PSOs).\nPSO descs are cached to disk so subsequent runs can create PSOs at load-time instead of at run-time.\nThis cache contains data specific to the hardware, driver, and machine that it was created on.\n0 to disable the driver-optimized pipeline state disk cache\n1 to enable the driver-optimized pipeline state disk cache\n", type:"Var"}, {name: "D3D12.PSO.StallWarningThresholdInMs", help:"Sets a threshold of when to logs messages about stalls due to PSO creation.\nValue is in milliseconds. (100 is the default)\n", type:"Var"}, {name: "D3D12.PSOPrecache.KeepLowLevel", help:"Keep in memory the d3d12 PSO blob for precached PSOs. Consumes more memory but reduces stalls.\n", type:"Var"}, {name: "D3D12.RayTracing.SerializeScene", help:"Serialize Ray Tracing Scene to disk.", type:"Cmd"}, {name: "d3d12.ReadOnlyTextureAllocator.MaxPoolSize", help:"Maximum allocation granularity (in bytes) of each size list", type:"Var"}, {name: "d3d12.ReadOnlyTextureAllocator.MinNumToPool", help:"Texture pool of each size list must be large enough to store thismany textures unless constrained by maximum allocation granularity", type:"Var"}, {name: "d3d12.ReadOnlyTextureAllocator.MinPoolSize", help:"Minimum allocation granularity (in bytes) of each size list", type:"Var"}, {name: "d3d12.ReservedResourceHeapSizeMB", help:"Size of the backing heaps for reserved resources in megabytes (default 16MB).", type:"Var"}, {name: "D3D12.ResidencyManagement", help:"Controls whether D3D12 resource residency management is active (default = on).", type:"Var"}, {name: "D3D12.SamplerWarningThreshold", help:"Threshold to start warning about creating too many sampler states", type:"Var"}, {name: "d3d12.SegListTrackLeaks", help:"1: Enable leak tracking in d3d12 seglist\'s", type:"Var"}, {name: "D3D12.StablePowerState", help:"Enable stable power state. This increases GPU timing measurement accuracy but may decrease overall GPU clock rate.\n 0 (default): off\n 1 : set during profiling\n 2 : set on startup\n", type:"Var"}, {name: "D3D12.TexturePoolOnlyAccountStreamableTexture", help:"Texture streaming pool size only account streamable texture .\n - 0: All texture types are counted in the pool (legacy, default).\n - 1: Only streamable textures are counted in the pool.\nWhen enabling the new behaviour, r.Streaming.PoolSize will need to be re-adjusted.\n", type:"Var"}, {name: "D3D12.TrackAllAllocations", help:"Controls whether D3D12 RHI should track all allocation information (default = off).", type:"Var"}, {name: "D3D12.TrackedReleasedAllocationFrameRetention", help:"Amount of frames for which we keep freed allocation data around when resource tracking is enabled", type:"Var"}, {name: "D3D12.UnsafeCrossGPUTransfers", help:"Disables cross GPU synchronization correctness, for a gain in performance (Default: true).", type:"Var"}, {name: "d3d12.UploadHeap.BigBlock.MaxAllocationSize", help:"Maximum allocation size on the big block allocator for upload memory", type:"Var"}, {name: "d3d12.UploadHeap.BigBlock.PoolSize", help:"Pool size for the upload memory big block allocator", type:"Var"}, {name: "d3d12.UploadHeap.SmallBlock.MaxAllocationSize", help:"Maximum allocation size on the small block allocator for upload memory", type:"Var"}, {name: "d3d12.UploadHeap.SmallBlock.PoolSize", help:"Pool size for the upload memory small block allocator", type:"Var"}, {name: "D3D12.UseUpdateTexture3DComputeShader", help:"If enabled, use a compute shader for UpdateTexture3D. Avoids alignment restrictions 0: off (default)\n 1: on", type:"Var"}, {name: "d3d12.VRAMBufferPoolDefrag", help:"Defrag the VRAM buffer pool", type:"Var"}, {name: "d3d12.VRAMBufferPoolDefrag.MaxCopySizePerFrame", help:"Max amount of data to copy during defragmentation in a single frame (default 32MB)", type:"Var"}, {name: "d3d12.VRAMTexturePoolDefrag", help:"Defrag the VRAM Texture pool (enabled by default)", type:"Var"}, {name: "d3d12.VRAMTexturePoolDefrag.MaxCopySizePerFrame", help:"Max amount of data to copy during defragmentation in a single frame (default 32MB)", type:"Var"}, {name: "D3D12.ZeroBufferSizeInMB", help:"The D3D12 RHI needs a static allocation of zeroes to use when streaming textures asynchronously. It should be large enough to support the largest mipmap you need to stream. The default is 4MB.", type:"Var"}, {name: "DDC.Graph", help:"Name of the graph to use for the Derived Data Cache.", type:"Var"}, {name: "DDC.LoadReplay", help:"Loads a cache replay file created by -DDC-ReplaySave=<Path>", type:"Cmd"}, {name: "debug.EnableLeakTest", help:"If set to 1, enables leak test, for testing stats based memory profiler", type:"Var"}, {name: "DebugViewModeHelpers.Enable", help:"Specifies whether to enable the debug view mode shaders. Typically only disabled for a special case editor build, if it doesn\'t require them", type:"Var"}, {name: "Demo.ActorPrioritizationEnabled", help:"Set whether or not actor prioritization is enabled on demo driver of the current world.", type:"Cmd"}, {name: "Demo.CheckpointSaveMaxMSPerFrame", help:"Set max checkpoint record time in MS on demo driver of the current world.", type:"Cmd"}, {name: "demo.DestructionInfoPriority", help:"Replay net priority assigned to destruction infos during recording.", type:"Var"}, {name: "Demo.ExceededBudgetWarningInterval", help:"When > 0, we will wait this many seconds between logging warnings for demo recording exceeding time budgets.", type:"Var"}, {name: "demo.ForceFailure", help:"", type:"Var"}, {name: "demo.ForcePersistentLevelPriority", help:"If true, force persistent level to record first when prioritizing and using streaming level fixes.", type:"Var"}, {name: "demo.LateDestructionInfoPrioritize", help:"If true, process destruction infos at the end of the prioritization phase.", type:"Var"}, {name: "Demo.MaxDesiredRecordTimeMS", help:"Set max desired record time in MS on demo driver of the current world.", type:"Cmd"}, {name: "demo.MaximumRecDestructionInfoTime", help:"Maximum percentage of frame to use replicating destruction infos, if per frame limit is enabled.", type:"Var"}, {name: "demo.RecordUnicastRPCs", help:"When true, also record unicast client rpcs on actors that share a net driver name with the demo driver.", type:"Var"}, {name: "Demo.SetLocalViewerOverride", help:"Set first local player controller as the viewer override on demo driver of the current world.", type:"Cmd"}, {name: "Demo.TestWriteEvent", help:"Add or update a test replay event on the currently recording replay, with an optional argument for event size in bytes", type:"Cmd"}, {name: "demo.ViewTargetPriorityScale", help:"Scale view target priority by this value when prioritization is enabled.", type:"Var"}, {name: "demo.WithGameSpecificFrameData", help:"If true, allow game specific data to be recorded with each demo frame.", type:"Var"}, {name: "DEMOCHECKPOINT", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "DetailsPanel.Style.EnableCardLayout", help:"Specifies whether the card layout is in effect for the Details View.", type:"Var"}, {name: "DetailsPanel.UI.ForceShowComponentEditor", help:"If true, forces the component editor to show in the main viewport and blueprint details panel for UObjects which normally have it hidden.", type:"Var"}, {name: "diff", help:"diff two assets against one another.\nformat: \'diff <lhs> <rhs>", type:"Cmd"}, {name: "DisplayCVarList", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "DoPooledThreadWaitTimeouts", help:"If enabled, uses the old behaviour for waking up pool threads every 10ms. Otherwise, lets pooled threads sleep until data arrives.", type:"Var"}, {name: "dpcvar", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "dpdump", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "dpdumppreview", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "dppreview", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "dpreapply", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "dpreload", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "dprestore", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "DumpCCmds", help:"Lists all CVars (or a subset) and their values. Can also show help, and can save to .csv.\nUsage: DumpCCmds [Prefix] [-showhelp] [-csv=[path]]\nIf -csv does not have a file specified, it will create a file in the Project Logs directory", type:"Cmd"}, {name: "DumpClassSchemas", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "DumpCVars", help:"Lists all CVars (or a subset) and their values. Can also show help, and can save to .csv.\nUsage: DumpCVars [Prefix] [-showhelp] [-csv=[path]]\nIf -csv does not have a file specified, it will create a file in the Project Logs directory", type:"Cmd"}, {name: "DumpDetailedPrimitives", help:"Writes the detailed information of all primitives tracked by the PrimitiveDebugger to a CSV file", type:"Cmd"}, {name: "DUMPFIBINDEXCACHE", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "DumpGPU", help:"Dump one frame of rendering intermediary resources to disk.", type:"Cmd"}, {name: "DumpLLM", help:"Logs out the current and peak sizes of all tracked LLM tags", type:"Cmd"}, {name: "DumpNiagaraWorldManager", help:"Dump Information About the Niagara World Manager Contents", type:"Cmd"}, {name: "DumpPackagePayloadInfo", help:"Writes out information about a package\'s payloads to the log.", type:"Cmd"}, {name: "DumpPersistentStorage", help:"Dumps PersistentStorage", type:"Cmd"}, {name: "DumpPrimitiveDrawCalls", help:"Writes the draw call count of all primitives tracked by the PrimitiveDebugger to a CSV file", type:"Cmd"}, {name: "DumpRenderAssetStreamingStats", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "DumpShaderCompileStats", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "DumpTextureStreamingStats", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "EditableMesh.InterpolateFVarsToLimit", help:"Whether to interpolate face-varying vertex data for subdivision meshes all the way to their limit surface position. Otherwise, we stop at the most refined mesh.", type:"Var"}, {name: "EditableMesh.InterpolatePositionsToLimit", help:"Whether to interpolate vertex positions for subdivision meshes all the way to their limit surface position. Otherwise, we stop at the most refined mesh position.", type:"Var"}, {name: "EditableMesh.OctreeIncrementalUpdateLimit", help:"If more than this scalar percentage of polygons have changed, we\'ll rebuild the octree from scratch instead of incrementally updating it.", type:"Var"}, {name: "EditableMesh.UseBoundlessOctree", help:"If enabled, the octree for editable meshes will have a huge bounding box. Otherwise, we\'ll compute a tightly wrapped bounds. However, the bounds will not be able to grow beyond it\'s original size.", type:"Var"}, {name: "Editor.OverrideDPIBasedEditorViewportScaling", help:"Sets whether or not we should globally override screen percentage in editor and PIE viewports", type:"Var"}, {name: "Editor.AllowPlayWorldFeature", help:"When true play world is allowed.", type:"Var"}, {name: "Editor.AsyncAssetCompilation", help:"1 - Async assets compilation is enabled.\n2 - Async assets compilation is enabled but on pause (for debugging).\nWhen enabled, assets will be replaced by placeholders until they are ready\nto reduce stalls on the game thread and improve overall editor performance.", type:"Var"}, {name: "Editor.AsyncAssetCompilationFinishAll", help:"Finish all assets compilations", type:"Cmd"}, {name: "Editor.AsyncAssetCompilationMaxConcurrency", help:"Set the maximum number of concurrent assets compilation, -1 for unlimited.", type:"Var"}, {name: "Editor.AsyncAssetCompilationMaxMemoryUsage", help:"0 - No hard memory limit, will be tuned against system available memory (recommended default).\nN - Try to limit total memory usage for asset compilation to this amount (in GB).\nTry to stay under specified memory limit for asset compilation by reducing concurrency when under memory pressure.\n", type:"Var"}, {name: "Editor.AsyncAssetCompilationMemoryPerCore", help:"How much memory (in GB) should tasks reserve that report a required memory amount Unknown (-1).\n", type:"Var"}, {name: "Editor.AsyncAssetCompilationResume", help:"Number of queued work to resume while paused.", type:"Var"}, {name: "Editor.AsyncAssetDumpStallStacks", help:"Dump all the callstacks that have caused waits on async compilation.", type:"Cmd"}, {name: "Editor.AsyncGroomBindingCompilation", help:"1 - Async groom bindings compilation is enabled.\n2 - Async groom bindings compilation is enabled but on pause (for debugging).\nWhen enabled, groom bindings will be replaced by placeholders until they are ready\nto reduce stalls on the game thread and improve overall editor performance.", type:"Var"}, {name: "Editor.AsyncGroomBindingCompilationFinishAll", help:"Finish all groom bindings compilations", type:"Cmd"}, {name: "Editor.AsyncGroomBindingCompilationMaxConcurrency", help:"Set the maximum number of concurrent groom bindings compilation, -1 for unlimited.", type:"Var"}, {name: "Editor.AsyncGroomBindingCompilationResume", help:"Number of queued work to resume while paused.", type:"Var"}, {name: "Editor.AsyncSkinnedAssetCompilation", help:"1 - Async skinned assets compilation is enabled.\n2 - Async skinned assets compilation is enabled but on pause (for debugging).\nWhen enabled, skinned assets will be replaced by placeholders until they are ready\nto reduce stalls on the game thread and improve overall editor performance.", type:"Var"}, {name: "Editor.AsyncSkinnedAssetCompilationFinishAll", help:"Finish all skinned assets compilations", type:"Cmd"}, {name: "Editor.AsyncSkinnedAssetCompilationMaxConcurrency", help:"Set the maximum number of concurrent skinned assets compilation, -1 for unlimited.", type:"Var"}, {name: "Editor.AsyncSkinnedAssetCompilationResume", help:"Number of queued work to resume while paused.", type:"Var"}, {name: "Editor.AsyncSoundWaveCompilation", help:"1 - Async soundwaves compilation is enabled.\n2 - Async soundwaves compilation is enabled but on pause (for debugging).\nWhen enabled, soundwaves will be replaced by placeholders until they are ready\nto reduce stalls on the game thread and improve overall editor performance.", type:"Var"}, {name: "Editor.AsyncSoundWaveCompilationFinishAll", help:"Finish all soundwaves compilations", type:"Cmd"}, {name: "Editor.AsyncSoundWaveCompilationMaxConcurrency", help:"Set the maximum number of concurrent soundwaves compilation, -1 for unlimited.", type:"Var"}, {name: "Editor.AsyncSoundWaveCompilationResume", help:"Number of queued work to resume while paused.", type:"Var"}, {name: "Editor.AsyncStaticMeshCompilation", help:"1 - Async static meshes compilation is enabled.\n2 - Async static meshes compilation is enabled but on pause (for debugging).\nWhen enabled, static meshes will be replaced by placeholders until they are ready\nto reduce stalls on the game thread and improve overall editor performance.", type:"Var"}, {name: "Editor.AsyncStaticMeshCompilationFinishAll", help:"Finish all static meshes compilations", type:"Cmd"}, {name: "Editor.AsyncStaticMeshCompilationMaxConcurrency", help:"Set the maximum number of concurrent static meshes compilation, -1 for unlimited.", type:"Var"}, {name: "Editor.AsyncStaticMeshCompilationResume", help:"Number of queued work to resume while paused.", type:"Var"}, {name: "Editor.AsyncStaticMeshPlayInEditorDebugDraw", help:"0 - Debug draw for async static mesh compilation is disabled.\n1 - Debug draw for async static mesh compilation is enabled.\nThe collision sphere around the player is drawn in white and can be adjusted with Editor.AsyncStaticMeshPlayInEditorDistance\nAny static meshes affecting the physics that are still being compiled will have their bounding box drawn in green.\nAny static meshes that were waited on due to being too close to the player will have their bounding box drawn in red for a couple of seconds.", type:"Var"}, {name: "Editor.AsyncStaticMeshPlayInEditorDistance", help:"Scale applied to the player bounding sphere to determine how far away to force meshes compilation before resuming play.\nThe effect can be seen during play session when Editor.AsyncStaticMeshPlayInEditorDebugDraw = 1.\n", type:"Var"}, {name: "Editor.AsyncStaticMeshPlayInEditorMode", help:"0 - Wait until all static meshes are built before entering PIE. (Slowest but causes no visual or behavior artifacts.) \n1 - Wait until all static meshes affecting navigation and physics are built before entering PIE. (Some visuals might be missing during compilation.)\n2 - Wait only on static meshes affecting navigation and physics when they are close to the player. (Fastest while still preventing falling through the floor and going through objects.)\n", type:"Var"}, {name: "Editor.AsyncTextureCompilation", help:"1 - Async textures compilation is enabled.\n2 - Async textures compilation is enabled but on pause (for debugging).\nWhen enabled, textures will be replaced by placeholders until they are ready\nto reduce stalls on the game thread and improve overall editor performance.", type:"Var"}, {name: "Editor.AsyncTextureCompilationFinishAll", help:"Finish all textures compilations", type:"Cmd"}, {name: "Editor.AsyncTextureCompilationMaxConcurrency", help:"Set the maximum number of concurrent textures compilation, -1 for unlimited.", type:"Var"}, {name: "Editor.AsyncTextureCompilationResume", help:"Number of queued work to resume while paused.", type:"Var"}, {name: "Editor.ComponentVisualizer.AutoSelectComponent", help:"Automatically adds the spline component to the selection set if avaialable when a point is selected on the spline", type:"Var"}, {name: "Editor.Debug.SlowTask.Simulate", help:"Runs a busy loop for N seconds. Will tick the slow task every 100ms until it is complete", type:"Cmd"}, {name: "Editor.EnableInViewportMenu", help:"Enables the new in-viewport property menu", type:"Cmd"}, {name: "Editor.EnableITFCursorOverrideSupport", help:"Enable support for the EditorModeManager to query the InteractiveToolsContext for tool customized cursor overrides.", type:"Var"}, {name: "Editor.HDRNITLevel", help:"Sets The desired NIT level of the editor when running on HDR", type:"Var"}, {name: "Editor.HDRSupport", help:"Sets whether or not we should allow the editor to run on HDR monitors", type:"Var"}, {name: "Editor.ObjectReverseLookupMask", help:"-1 - Does validation on all objects type (slowest) \n0 - Skip validation on all objects type \n1 - Perform validation on Texture to Textures lookups \n2 - Perform validation on Texture to Materials lookups \n4 - Perform validation on Material to Primitives lookups \n8 - Perform validation on StaticMesh To Components lookups \n16 - Perform validation on Material to Materials lookups \n", type:"Var"}, {name: "Editor.ObjectReverseLookupMode", help:"0 - Reverse lookup tables are computed every time they are needed (slower behavior) \n1 - Maintain permanent reverse lookup tables (faster behavior) \n2 - Comparison mode (slowest to do validation between both mode) \n", type:"Var"}, {name: "Editor.ObjectReverseLookupValidate", help:"Compare objects contained in the reverse lookup against the old scanning method to see if there is any discrepenties.", type:"Cmd"}, {name: "Editor.ReflectEditorLevelVisibilityWithGame", help:"Enables the transaction of game visibility state when editor visibility state changes.\n0 - game state is *not* reflected with editor.\n1 - game state is relfected with editor.\n", type:"Var"}, {name: "Editor.ResizeMainFrame", help:"", type:"Cmd"}, {name: "Editor.UseLegacyGetReferencersForDeletion", help:"Choose the algorithm to be used when detecting referencers of any assets/objects being deleted.\n\n0: Use the most optimized version (default)\n1: Use the slower legacy version (for debug/comparison)", type:"Var"}, {name: "EditorDomain.DumpClassDigests", help:"Write to the log the digest information for each class.", type:"Cmd"}, {name: "Editorpaths.Enabled", help:"Enable experimental Editor Path support.", type:"Var"}, {name: "ELEMENT", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "EnableGDT", help:"Toggles Gameplay Debugger Tool", type:"Cmd"}, {name: "EnableLeakTest", help:"If set to 1, enables leak test, for testing stats based memory profiler", type:"Var"}, {name: "Engine.DoAsyncLoadingWhileWaitingForVSync", help:"If true process async loading while we wait for vsync.", type:"Var"}, {name: "Engine.DelayTrimMemoryDuringMapLoadMode", help:"0: TrimMemory during LoadMap as normal\n1: Delay TrimMemory until the end of LoadMap (initial boot up)\n2: Delay TrimMemory in _every_ LoadMap call", type:"Var"}, {name: "Engine.FlushRTAndRHIBeforeGCInTrimMemory", help:"Flush Rendering and RHI before GC in trim memory in case there are some UStreamableRenderAssets with pending RenderAssetUpdate RHI tasks (default: 1)", type:"Var"}, {name: "Engine.VerifyLoadMapWorldCleanup.Severity", help:"Controls severity of logging when the engine detects that a UWorld was leaked during LoadMap.\n0 - all reference tracing and logging is disabled\n1 - logs an error\n2 - ensure\n3 - fatal error\n", type:"Var"}, {name: "Engine.VerifyLoadMapWorldCleanup.TraceMode", help:"Controls detail level of reference tracing when the engine detects that a world was leaked during LoadMap.\n0 - direct references only\n1 - full reference trace", type:"Var"}, {name: "EnhancedInput.bEnableAutoUpgrade", help:"Should your project automatically be set to use Enhanced Input if it is currently using the legacy input system?", type:"Var"}, {name: "EnhancedInput.bEnableNameValidation", help:"Flag to enable or disable name validation in the editor for UPlayerMappableKeySettings assets", type:"Var"}, {name: "enhancedInput.bp.bShouldWarnOnUnsupportedInputPin", help:"Should the Enhanced Input event node throw a warning if a \"Unsuported\" pin has a connection?", type:"Var"}, {name: "enhancedInput.bp.ShouldValidateWidgetBlueprintSettings", help:"Should the Enhanced Input event node throw an error if a widget blueprint does not have bAutomaticallyRegisterInputOnConstruction set to true?", type:"Var"}, {name: "EnhancedInput.bShouldLogAllWorldSubsystemInputs", help:"Should each InputKey call to the World subsystem be logged?", type:"Var"}, {name: "EnhancedInput.DumpKeyProfileToLog", help:"", type:"Cmd"}, {name: "EnhancedInput.Editor.EnableMappingNameValidation", help:"Enables editor validation on player mapping names", type:"Var"}, {name: "EnhancedInput.EnableDefaultMappingContexts", help:"Should the UEnhancedInputDeveloperSettings::DefaultMappingContexts be applied to every UEnhancedPlayerInput?", type:"Var"}, {name: "EnhancedInput.Mappings.bCheckForEmptyKeyMappingsDuringValidation", help:"When true, Enhanced Input key mappings will throw an error during validation if they are mapped to an empty key.", type:"Var"}, {name: "EnhancedInput.OnlyTriggerLastActionInChord", help:"Should only the last action in a ChordedAction trigger be fired? If this is disabled, then the dependant chords will be fired as well", type:"Var"}, {name: "EnhancedInput.ReconcileRemovedMappingDelegates", help:"When the mappings are rebuilt, they have been \'in process\'. If this is true, we will set their value to zero so that they fire the \'Canceled\' event on their next evaluation.", type:"Var"}, {name: "EnhancedInput.SaveKeyProfilesToSlot", help:"Save the user input settings object with the Save Game to slot system", type:"Cmd"}, {name: "EnhancedInput.Triggers.bCheckInitalStateForComboTrigger", help:"When true, combo triggers will check initial state (First input action in the combo array) and return \'Ongoing\' if the Combo Step Completion State is met. Note: Setting this to true was Combo trigger behavior as of 5.4 and before.", type:"Var"}, {name: "EntityManager.PrintArchetypes", help:"Prints information about all archetypes in the current world", type:"Cmd"}, {name: "EOSSDK", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "ExternalPluginCookedAssetRootPath", help:"Root path to use when estimating the cooked path external plugin assets, or empty to use the standard engine/project root.", type:"Var"}, {name: "Fab.ClearCache", help:"Clear download cache for Fab plugin", type:"Cmd"}, {name: "Fab.Login", help:"Trigger a manual login for Fab plugin", type:"Cmd"}, {name: "Fab.Logout", help:"Trigger a manual logout for Fab plugin", type:"Cmd"}, {name: "Fab.SetEnvironment", help:"Set Fab plugin environment", type:"Cmd"}, {name: "Fab.ShowSettings", help:"Display the Fab settings window", type:"Cmd"}, {name: "fc.BlockSize", help:"Size of each block in KB in the global file cache object\nShould match packaging compression block size for optimal reading from packege", type:"Var"}, {name: "fc.NumBlocks", help:"Number of blocks in the global file cache object", type:"Var"}, {name: "FName.Dump", help:"Dump all base FName strings to a file. Pass -num=n to dump the most recent n names.", type:"Cmd"}, {name: "FName.DumpNumbered", help:"Dump all numbered FNames to a file (only when UE_FNAME_OUTLINE_NUMBER is set). Pass -num=n to dump the most recent n names.", type:"Cmd"}, {name: "FName.HashCsv", help:"Write FName hash stats to a csv file.", type:"Cmd"}, {name: "FName.List", help:"List all base FName strings to the output device. Pass -num=n to list the most recent n names.", type:"Cmd"}, {name: "FName.ListNumbered", help:"List all numbered FNames to the output devicce (only when UE_FNAME_OUTLINE_NUMBER is set). Pass -num=n to list the most recent n names.", type:"Cmd"}, {name: "FName.Stats", help:"Write FName stats to the output device.", type:"Cmd"}, {name: "FName.UseMmap", help:"Whether to use mmap instead of malloc for block allocations", type:"Var"}, {name: "foliage.CullDistanceScale", help:"Controls the cull distance scale. Foliage must opt-in to cull distance scaling through the foliage type.", type:"Var"}, {name: "foliage.DebugBuildTreeAsyncDelayInSeconds", help:"Adds a delay (in seconds) to BuildTreeAsync tasks for debugging", type:"Var"}, {name: "foliage.DiscardDataOnLoad", help:"1: Discard scalable foliage data on load (disables all scalable foliage types); 0: Keep scalable foliage data (requires reloading level)", type:"Var"}, {name: "foliage.DiscardDataOnLoad", help:"1: Discard foliage data on load if the foliage type has it enabled; 0: Keep foliage data regardless of whether the foliage type has it enabled or not (requires reloading level)", type:"Var"}, {name: "foliage.MaxEndCullDistance", help:"Max distance for end culling (0 disabled).", type:"Var"}, {name: "ForceDecompressionFails", help:"If > 0, then force decompression failures to test the panic sync read fallback.", type:"Var"}, {name: "ForcePakProcessReads", help:"If true, then Asynchronous reads from pak files will always used the FPakProcessedReadRequest system that is ordinarily only used on compressed files.", type:"Var"}, {name: "fx.AllowFastPathFunctionLibrary", help:"If > 0 Allow the graph to insert custom fastpath operations into the graph.\n", type:"Var"}, {name: "fx.Budget.AdjustedUsageDecayRate", help:"Rate at which the FX budget adjusted usage value is allowed to decay. This helps prevent FX flipping off/on if the usage oscilates over the cull threshold as the FX are culled/enabled.", type:"Var"}, {name: "fx.Budget.AdjustedUsageMax", help:"Max value for FX Budget adjusted usage. Prevents one very long frame from keeping the usage above 1.0 for long periods under budget.", type:"Var"}, {name: "fx.Budget.Debug.GameThreadConcurrentTimeOverride", help:"When >= 0.0 overrides the reported time for FX on the GameThreadConcurrent. Useful for observing/debugging the impact on other systems.", type:"Var"}, {name: "fx.Budget.Debug.GameThreadTimeOverride", help:"When >= 0.0 overrides the reported time for FX on the GameThread. Useful for observing/debugging the impact on other systems.", type:"Var"}, {name: "fx.Budget.Debug.RenderThreadTimeOverride", help:"When >= 0.0 overrides the reported time for FX on the RenderThread. Useful for observing/debugging the impact on other systems.", type:"Var"}, {name: "fx.Budget.Enabled", help:"Controls whether we track global FX budgets.", type:"Var"}, {name: "fx.Budget.EnabledInEditor", help:"Controls whether we track global FX budgets in editor builds.", type:"Var"}, {name: "fx.Budget.GameThread", help:"Budget (in ms) for all combined FX work that runs only on the gamethread. As this budget is approached or exceeded, various FX systems will attempt to scale down more and mroe agressively to remain in budget.", type:"Var"}, {name: "fx.Budget.GameThreadConcurrent", help:"Budget (in ms) for all combined FX work that runs on the gamethread or on a concurrent task spawned from the game thread. As this budget is approached or exceeded, various FX systems will attempt to scale down more and mroe agressively to remain in budget.", type:"Var"}, {name: "fx.Budget.HistoryFrames", help:"Number of frames the global FX budget tracking will hold to work out it\'s average frame time.", type:"Var"}, {name: "fx.Budget.RenderThread", help:"Budget (in ms) for all combined FX work that runs on the Render Thread. As this budget is approached or exceeded, various FX systems will attempt to scale down more and mroe agressively to remain in budget.", type:"Var"}, {name: "fx.Cascade.BeamRenderingEnabled", help:"Controls if beam rendering is enabled for Cascade", type:"Var"}, {name: "fx.Cascade.GpuSpriteDynamicAllocations", help:"Controls if gpu sprite are allocated dynamically", type:"Var"}, {name: "fx.Cascade.GpuSpriteRenderingEnabled", help:"Controls if gpu sprite rendering is enabled for Cascade", type:"Var"}, {name: "fx.Cascade.MeshRenderingEnabled", help:"Controls if mesh rendering is enabled for Cascade", type:"Var"}, {name: "fx.Cascade.SetTemplateDenyList", help:"Set the template deny List to use. (i.e. P_SystemA,P_SystemB)", type:"Var"}, {name: "fx.Cascade.SkipZeroDeltaTime", help:"When enabled a delta tick time of nearly 0.0 will cause us to skip the component update.\nThis fixes issue like PSA_Velocity aligned sprites, but could cause issues with things that rely on accurate velocities (i.e. TSR).", type:"Var"}, {name: "fx.Cascade.SpriteRenderingEnabled", help:"Controls if sprite rendering is enabled for Cascade", type:"Var"}, {name: "fx.Cascade.TrailRenderingEnabled", help:"Controls if trail rendering is enabled for Cascade", type:"Var"}, {name: "fx.Cascade.UseVelocityForMotionBlur", help:"When enabled velocity will be used to approximate velocity for vertex factories that support this.", type:"Var"}, {name: "fx.DetailedCSVStats", help:"If true, we write detailed partilce stats to the CSV profiler.", type:"Var"}, {name: "fx.DetailedCSVStats.MemoryMode", help:"Gathers approximate memory information depending on the mode.\n0 = Disabled (default).\n1 = Component Approximate Size (low perf impact).\n2 = Asset Size + Component Approximate Size (low perf impact).\n3 = Asset Size + Component Resource Size (high performance impact).", type:"Var"}, {name: "fx.DumpCompileIdDataForAsset", help:"Dumps data relevant to generating the compile id for an asset.", type:"Cmd"}, {name: "fx.DumpEmitterDepencenciesInFolder", help:"Dumps emitter dependencies for all systems in the supplied folder and sub-folders.", type:"Cmd"}, {name: "fx.DumpGraphKeyGen", help:"If > 0 the key generation will be dumped to the log. \n", type:"Var"}, {name: "FX.DumpNCPoolInfo", help:"Dump Niagara System Pooling Info", type:"Cmd"}, {name: "fx.DumpNiagaraScalabilityState", help:"Dumps state information for all Niagara Scalability Mangers.", type:"Cmd"}, {name: "fx.DumpParticleData", help:"If > 0 current frame particle data will be dumped after simulation. \n", type:"Var"}, {name: "fx.DumpParticleParameterStores", help:"If > 0 current frame particle parameter stores will be dumped when updated. \n", type:"Var"}, {name: "fx.DumpRapidIterationParametersForAsset", help:"Dumps the values of the rapid iteration parameters for the specified asset by path.", type:"Cmd"}, {name: "fx.DumpSystemData", help:"If > 0, results of system simulations will be dumped to the log. \n", type:"Var"}, {name: "fx.EnableCircularAnimTrailDump", help:"Controls logging for when circular links are discovered in anim trails.\n0 = No logging.\n1 = Minimal logging.\n2 = Verbose logging.", type:"Var"}, {name: "fx.EnableEmitterMergeChangeIdLogging", help:"If > 0 verbose change id information will be logged to help with debuggin merge issues. \n", type:"Var"}, {name: "fx.EnableNiagaraCRHandler", help:"If > 0 Niagara will push some state into the crash reporter. This is not free so should not be used unless actively tracking a crash in the wild. Even then it should only be enabled on the platforms needed etc. \n", type:"Var"}, {name: "fx.EnableNiagaraLightRendering", help:"If == 0, Niagara Light Renderers are disabled. \n", type:"Var"}, {name: "fx.EnableNiagaraMeshRendering", help:"If == 0, Niagara Mesh Renderers are disabled. \n", type:"Var"}, {name: "fx.EnableNiagaraRibbonRendering", help:"If == 0, Niagara Ribbon Renderers are disabled. \n", type:"Var"}, {name: "fx.EnableNiagaraRuntimeCycleCounts", help:"Toggle for runtime cylce counts tracking Niagara\'s frame time. \n", type:"Var"}, {name: "fx.EnableNiagaraSpriteRendering", help:"If == 0, Niagara Sprite Renderers are disabled. \n", type:"Var"}, {name: "fx.EnableVerboseNiagaraChangeIdLogging", help:"If > 0 Verbose change id logging info will be printed. \n", type:"Var"}, {name: "fx.ExecVMScripts", help:"If > 0 VM scripts will be executed, otherwise they won\'t, useful for looking at the bytecode for a crashing compiled script. \n", type:"Var"}, {name: "fx.ForceCompileOnLoad", help:"If > 0 emitters will be forced to compile on load. \n", type:"Var"}, {name: "fx.ForceExecVMPath", help:"If < 0, the legacy VM path will be used, if > 0 the experimental version will be used, and the default if 0. \n", type:"Var"}, {name: "fx.ForceFailIfPreviouslyNotSetOnMerge", help:"If > 0, when merging in from parent emitters swap linked variables in the stack to be \"Fail If Previously Not Set\" for their default type. \n", type:"Var"}, {name: "fx.ForceMergeOnLoad", help:"If > 0 emitters will be forced to merge on load. \n", type:"Var"}, {name: "fx.ForceNiagaraCacheDump", help:"If > 0 all cached graph traversal data will be dumped \n", type:"Var"}, {name: "fx.ForceNiagaraCompileToFail", help:"If > 0 emitters will go through the motions of a compile, but will never set valid bytecode. \n", type:"Var"}, {name: "fx.ForceNiagaraSpawnAttachedSolo", help:"If > 0 Niagara systems which are spawned attached will be force to spawn in solo mode for debugging.\n", type:"Var"}, {name: "fx.ForceNiagaraTranslatorDump", help:"If > 0 all translation generated HLSL will be dumped \n", type:"Var"}, {name: "fx.ForceNiagaraTranslatorSingleThreaded", help:"If > 0 all translation will occur one at a time, useful for debugging. \n", type:"Var"}, {name: "fx.ForceNiagaraVMBinaryDump", help:"If > 0 all translation generated binary text will be dumped \n", type:"Var"}, {name: "fx.ForceSafeScriptAttributeTrim", help:"If > 0 attribute trimming will use a less aggressive algorithm for removing script attributes. \n", type:"Var"}, {name: "fx.FXAllowParticleMeshLODs", help:"If we allow particle meshes to use LODs or not", type:"Var"}, {name: "fx.GPUSimulationDynTextureSizeXY", help:"GPU Particle simulation texture XY dimension when dynamic resizing is enabled (default=16)", type:"Var"}, {name: "fx.GPUSort.BufferSlack", help:"Slack ratio when resizing GPU sort buffers. Must be bigger than 1 (default=2)", type:"Var"}, {name: "fx.GPUSort.FrameCountBeforeShrinking", help:"Number of consecutive frames where the GPU sort buffer is considered oversized before allowing shrinking. (default=100)", type:"Var"}, {name: "fx.GPUSort.MinBufferSize", help:"Minimum GPU sort buffer size, in particles (default=8192)", type:"Var"}, {name: "fx.GPUSort.StressTest", help:"Force a stress test on the GPU sort by release persistent data every frame (default=0)", type:"Var"}, {name: "fx.InvalidateCachedScripts", help:"Invalidate Niagara script cache by making a unique change to NiagaraShaderVersion.ush which is included in common.usf.To initiate actual the recompile of all shaders use \"recompileshaders changed\" or press \"Ctrl Shift .\".\nThe NiagaraShaderVersion.ush file should be automatically checked out but it needs to be checked in to have effect on other machines.", type:"Cmd"}, {name: "fx.InvalidateNiagaraPerfBaselines", help:"Invalidates all Niagara performance baseline data.", type:"Cmd"}, {name: "fx.LastRenderTimeSafetyBias", help:"The time to bias the LastRenderTime value to allow for the delay from it being written by the RT.", type:"Var"}, {name: "fx.LoadAllNiagaraSystemsInFolder", help:"Loads all niagara systems in the supplied directory and sub-directories.", type:"Cmd"}, {name: "fx.LogCompileIdGeneration", help:"If > 0 all compile id generation will be logged. If 2 or greater, log detailed info. \n", type:"Var"}, {name: "fx.LogCompileStaticVars", help:"If > 0 all compile id generation dealing with static variables will be logged. \n", type:"Var"}, {name: "fx.LogNiagaraSystemChanges", help:"If > 0 Niagara Systems will be written to a text format when opened and closed in the editor. \n", type:"Var"}, {name: "fx.LWCTileRecache", help:"When we cross this number of LWC tiles from where we started the FX we need to recache the LWC tile to avoid artifacts.\nWhen this occurs the system may need to reset, cull particles too far away, or do some additional processing to handle it.\nSetting this value to 0 will remove this behavior but could introduce rendering & simulation artifacts.\n", type:"Var"}, {name: "fx.MaxNiagaraCPUParticlesPerEmitter", help:"The max number of supported CPU particles per emitter in Niagara. \n", type:"Var"}, {name: "fx.MaxNiagaraGPUParticlesSpawnPerFrame", help:"The max number of GPU particles we expect to spawn in a single frame.\n", type:"Var"}, {name: "fx.MaxNiagaraNeighborGridCells", help:"The max number of supported grid cells in Niagara. Overflowing this threshold will cause the sim to warn and fail. \n", type:"Var"}, {name: "fx.MaxNiagaraRasterizationGridCells", help:"The max number of supported grid cells in Niagara. Overflowing this threshold will cause the sim to warn and fail. \n", type:"Var"}, {name: "fx.Niagara.AllowAllDeviceProfiles", help:" \n", type:"Var"}, {name: "fx.Niagara.AllowAsyncWorkToEndOfFrame", help:"Allow async work to continue until the end of the frame, if false it will complete within the tick group it\'s started in.", type:"Var"}, {name: "fx.Niagara.AllowCullProxies", help:"Toggles whether Niagara will use Cull Proxy systems in place of systems culled by scalability.", type:"Var"}, {name: "fx.Niagara.AllowDeferredReset", help:"If we are running async work when a reset is requested we will instead queue for the finalize to perform, this avoid stalling the GameThread.", type:"Var"}, {name: "fx.Niagara.AllowPrimedPools", help:"Allow Niagara pools to be primed.", type:"Var"}, {name: "fx.Niagara.AllowVisibilityCullingForDynamicBounds", help:"Allow async work to continue until the end of the frame, if false it will complete within the tick group it\'s started in.", type:"Var"}, {name: "fx.Niagara.Analytics.ReportOnCook", help:"If true then basic system info will be gathered and reported as part of the editor analytics for every cooked system.", type:"Var"}, {name: "fx.Niagara.Array.PositionDebugRadius", help:"When using the Niagara Debugger the radius of position array debug display", type:"Var"}, {name: "fx.Niagara.AsyncGpuTrace.GlobalSdfEnabled", help:"If disabled AsyncGpuTrace will not be supported against Global SDF.", type:"Var"}, {name: "fx.Niagara.AsyncGpuTrace.HWRayTrace.Inline", help:"If disabled AsyncGpuTrace will not be supported against the HW ray tracing scene.", type:"Var"}, {name: "fx.Niagara.AsyncGpuTrace.HWRayTraceEnabled", help:"If disabled AsyncGpuTrace will not be supported against the HW ray tracing scene.", type:"Var"}, {name: "fx.Niagara.AsyncTrace.CountsScratchPadBucketSize", help:"Scratch bucket size for the async gpu trace counts buffer. This buffer requires 4. \n", type:"Var"}, {name: "fx.Niagara.AsyncTrace.ScratchPadBucketSize", help:"Size (in elements) for async gpu traces scratch buffer buckets. \n", type:"Var"}, {name: "fx.Niagara.BaselineGenerationDelay", help:"Time we delay before match start for generating niagara perfoamnce baselines in a cooked game. \n", type:"Var"}, {name: "fx.Niagara.Batcher.DebugLogging", help:"Enables a lot of spew to the log to debug the batcher.", type:"Var"}, {name: "fx.Niagara.Batcher.TickFlush.MaxPendingTicks", help:"The maximum number of unprocess ticks before we process them.\nThe larger the number the more data we process in a single frame.", type:"Var"}, {name: "fx.Niagara.Batcher.TickFlush.MaxQueuedFrames", help:"The number of unprocessed frames with queued ticks before we process them.\nThe larger the number the more data we process in a single frame, this is generally only a concern when the application does not have focus.", type:"Var"}, {name: "fx.Niagara.Batcher.TickFlush.Mode", help:"What to do when we go over our max queued frames.\n0 = Keep ticks queued, can result in a long pause when gaining focus again.\n1 = (Default) Process all queued ticks with dummy view / buffer data, may result in incorrect simulation due to missing depth collisions, etc.\n2 = Kill all pending ticks, may result in incorrect simulation due to missing frames of data, i.e. a particle reset.\n", type:"Var"}, {name: "fx.Niagara.Collision.CPUEnabled", help:"Controls if CPU collisions are enabled or not.", type:"Var"}, {name: "fx.Niagara.Compilation.MaxActiveTaskCount", help:"The maximum number of active Niagara system compilations that can be going concurrantly.", type:"Var"}, {name: "fx.Niagara.Compilation.StalledTaskWarningTime", help:"The length of time a task is being processed before warnings are generated.", type:"Var"}, {name: "fx.Niagara.CompileDDCWaitTimeout", help:"During script compilation, how long do we wait for the ddc to answer in seconds before starting shader compilation?", type:"Var"}, {name: "fx.Niagara.CompileDumpTimings", help:"If enabled a file containing compile metrics for the different compiled scripts will be dumped to the log folder", type:"Var"}, {name: "fx.Niagara.CompileHashAllDataInterfaces", help:"Forces Niagara to include all data interfaces as part of compile hash generation.\n0 = Disabled.\n1 = Enabled, but hash once, better for perf.\n2 = Enabled, generated hash always good for iteration on Niagara work.", type:"Var"}, {name: "fx.Niagara.CompileValidateMode", help:"Controls how the validate compile mode will report differences it encounters when comparing default/async compiles", type:"Var"}, {name: "fx.Niagara.CompileWaitLoggingCap", help:"During automation, how many times do we log before failing compilation?", type:"Var"}, {name: "fx.Niagara.CompileWaitLoggingThreshold", help:"During automation, how long do we wait for a compile result before logging.", type:"Var"}, {name: "fx.Niagara.ComponentRenderComponentCountWarning", help:"The max number of allowed components before a ui warning is shown in the component renderer.", type:"Var"}, {name: "fx.Niagara.ComponentRenderPoolInactiveTimeLimit", help:"The time in seconds an inactive component can linger in the pool before being destroyed.", type:"Var"}, {name: "fx.Niagara.ComponentWarnAsleepCullReaction", help:"When enabled we will warn if a NiagaraComponent completes naturally but has Asleep mode set for cullreaction.", type:"Var"}, {name: "fx.Niagara.ComponentWarnNullAsset", help:"When enabled we will warn if a NiagaraComponent is activate with a null asset. This is sometimes useful for tracking down components that can be removed.", type:"Var"}, {name: "fx.Niagara.CompressScriptByteCode", help:"Should we compress script bytecode to save memory. Will be uncompressed on demand.", type:"Var"}, {name: "fx.Niagara.CSVSplitTime", help:"Length of Niagara\'s split time events passed to the CSV profiler. There are used to give check more confined stat averages.", type:"Var"}, {name: "fx.Niagara.DataChannels.AllowAsyncLoad", help:"True if we should attempt to load systems etc asynchronosly.", type:"Var"}, {name: "fx.Niagara.DataChannels.AllowLazyHandlerInit", help:"True if we allow lazy initialization of NDC handlers.", type:"Var"}, {name: "fx.Niagara.DataChannels.AutoUploadGPUSpawnData", help:"When true we will automatically upload any CPU NDC data to the GPU if it has been used to spawn GPU particles.", type:"Var"}, {name: "fx.Niagara.DataChannels.BlockAsyncLoadOnUse", help:"True if we should block on any pending async loads when those assets are used.", type:"Var"}, {name: "fx.Niagara.DataChannels.DebugDumpWriterDI", help:" \n", type:"Var"}, {name: "fx.Niagara.DataChannels.DumpHandlerTick", help:" \n", type:"Var"}, {name: "fx.Niagara.DataChannels.DumpWriteLog", help:"Dump all the currently stored writes to the log (see fx.Niagara.DataChannels.FrameDataToCapture on how many frames are captured)", type:"Cmd"}, {name: "fx.Niagara.DataChannels.Enabled", help:"If true, Niagara Data Channels will be enabled. \n", type:"Var"}, {name: "fx.Niagara.DataChannels.ForceReadPrevFrame", help:"When true this will force Niagara systems with NDC read DIs to read from the previous frame.", type:"Var"}, {name: "fx.Niagara.DataChannels.ForceReadTickGroup", help:"When >= 0 this will force Niagara systems with NDC read DIs to tick in the given Tick Group.", type:"Var"}, {name: "fx.Niagara.DataChannels.FrameDataToCapture", help:"The number of frames the debugger will capture for write requests.", type:"Var"}, {name: "fx.Niagara.DataChannels.LogWritesToOutputLog", help:"0=Disabled, 1=Log write summary, 2=Also write data; If >0, the NDC debugger will print all data channel writes to the output log.", type:"Var"}, {name: "fx.Niagara.DataChannels.ResetLayoutInfo", help:"Resets all data channel layout info used by data interfaces to access data channels.", type:"Cmd"}, {name: "fx.Niagara.DataChannels.WarnOnLateWrites", help:"If true, late writes to NDCs will generate warnings. Late meaning after their final allowed tick group.", type:"Var"}, {name: "fx.Niagara.DataChannels.WriteDIZeroCPUBuffersMode", help:"Controls how CPU buffers are zeroed for the NDC Write DI\n0 = Do not Zero CPU buffers.\n1 = Zero only when calling \"Write\" function.\n2 = Zero always.\n", type:"Var"}, {name: "fx.Niagara.Debug.GlobalLoopTime", help:"If > 0 all Niagara FX will reset every N seconds. \n", type:"Var"}, {name: "fx.Niagara.Debug.Hud", help:"Set options for debug hud display", type:"Cmd"}, {name: "fx.Niagara.Debug.KillSpawned", help:"Kills all spawned compoonents", type:"Cmd"}, {name: "fx.Niagara.Debug.PlaybackMode", help:"Set playback mode\n0 - Play\n1 - Paused\n2 - Step\n", type:"Cmd"}, {name: "fx.Niagara.Debug.PlaybackRate", help:"Set playback rate\n", type:"Cmd"}, {name: "fx.Niagara.Debug.SpawnComponent", help:"Spawns a NiagaraComponent using the given parameters", type:"Cmd"}, {name: "fx.Niagara.DebugDraw.Enabled", help:"Enable or disable the Debug Draw Data Interface, note does not fully disable the overhead.", type:"Var"}, {name: "fx.Niagara.DecalRenderer.DrawDebug", help:"When none zero will draw debug information.", type:"Var"}, {name: "fx.Niagara.DecalRenderer.Enabled", help:"If == 0, Niagara Decal Renderers are disabled.", type:"Var"}, {name: "fx.Niagara.DelayScriptAsyncOptimization", help:"Should we delay the async optimization until the emitter is activated?", type:"Var"}, {name: "fx.Niagara.DeletePythonFilesOnError", help:"This determines whether we keep the intermediate python used by module/emitter versioning around when they were executed and resulted in an error.", type:"Var"}, {name: "fx.Niagara.DigestGraphCacheSize", help:"Defines the size of the cache for digested Niagara graphs.", type:"Var"}, {name: "fx.Niagara.DumpComponents", help:"Dump Information about all Niagara Components", type:"Cmd"}, {name: "fx.Niagara.DumpNans", help:"If not 0 any NaNs will be dumped always.\n", type:"Var"}, {name: "fx.Niagara.DumpNansOnce", help:"If not 0 any NaNs will be dumped for the first emitter that encounters NaNs.\n", type:"Var"}, {name: "fx.Niagara.Emitter.ComputePSOPrecacheMode", help:"Controlls how PSO precaching should be done for Niagara compute shaders\n0 = Disabled (Default).\n1 = Enabled if r.PSOPrecaching is also enabled. Emitters are not allowed to run until they complete if r.PSOPrecache.ProxyCreationWhenPSOReady=1\n2 = Force Enabled.\n3 = Force Enabled, emitters are not allowed to run until they complete.", type:"Var"}, {name: "fx.Niagara.Emitter.MaxGPUBufferElements", help:"Maximum elements per GPU buffer, for example 4k elements would restrict a float buffer to be 16k maximum per buffer.\nNote: If you request something smaller than what will satisfy a single unit of work it will be increased to that size.\nDefault 0 which will allow the buffer to be the maximum allowed by the RHI.\n", type:"Var"}, {name: "fx.Niagara.EmitterBounds.DynamicExpandMultiplier", help:"Multiplier used on dynamic bounds gathering, i.e. 1 means no change, 1.1 means increase by 10%.\nThis value is applied after we calculate any dynamic bounds snapping.", type:"Var"}, {name: "fx.Niagara.EmitterBounds.DynamicSnapValue", help:"The value used to snap (round up) dynamic bounds calculations to.For example, a snap of 128 and a value of 1 would result in 128", type:"Var"}, {name: "fx.Niagara.EmitterBounds.FixedExpandMultiplier", help:"Multiplier used on fixed bounds gathering, i.e. 1 means no change, 1.1 means increase by 10%.", type:"Var"}, {name: "fx.Niagara.EnableCustomInlineDynamicInputFormats", help:"If > 0 and experimental inline editors for dynamic input trees are enabled, custom formats which are defined on scripts will be applied.\n", type:"Var"}, {name: "fx.Niagara.EnableExperimentalInlineDynamicInputs", help:"If > 0 experimental inline editors for dynamic input trees will be available via right click menu in the stack.\n", type:"Var"}, {name: "fx.Niagara.EventSpawnsUpdateAttributeInitialValues", help:"If > 0 Niagara Event Spawn Scripts will update the Initial.* values for particle attributes. \n", type:"Var"}, {name: "fx.Niagara.FailIfNotSetSeverity", help:"The severity of messages emitted by Parameters with Default Mode \"Fail If Not Set\". 3 = Error, 2 = Warning, 1= Log, 0 = Disabled.\n", type:"Var"}, {name: "fx.Niagara.FailStaticMeshDataInterface", help:"When enabled we will fail out using static mesh data interfaces.", type:"Var"}, {name: "fx.Niagara.FixDuplicateVariableGuids", help:"Validates and fixes the script guids of a given script, if duplicates exist.", type:"Cmd"}, {name: "fx.Niagara.ForceLastTickGroup", help:"Force Niagara ticks to be in the last tick group, this mirrors old behavour and can be useful to test for async overlapping issues.", type:"Var"}, {name: "fx.Niagara.ForceWaitForCompilationOnActivate", help:"When a component is activated it will stall waiting for any pending shader compilation.", type:"Var"}, {name: "fx.Niagara.GeometryComponentRenderPoolInactiveTimeLimit", help:"The time in seconds an inactive component can linger in the pool before being destroyed.", type:"Var"}, {name: "fx.Niagara.GpuComputeDebug.DrawDebugEnabled", help:"Should we draw any of the debug information or not.", type:"Var"}, {name: "fx.Niagara.GpuComputeDebug.FourComponentMode", help:"Adjust how we visualize four component types\n0 = Visualize RGB (defaut)\n1 = Visualize A\n", type:"Var"}, {name: "fx.Niagara.GpuComputeDebug.MaxLineInstances", help:"Maximum number of line draw we support in a single frame.", type:"Var"}, {name: "fx.Niagara.GpuComputeDebug.MaxTextureHeight", help:"The maximum height we will visualize a texture at, this is to avoid things becoming too large on screen.", type:"Var"}, {name: "fx.Niagara.GpuComputeDebug.MinTextureHeight", help:"The minimum height we will visualize a texture at, smaller textures will be scaled up to match this.", type:"Var"}, {name: "fx.Niagara.GpuComputeDebug.OccludedLineColorScale", help:"Scalar value to adjust occluded lines, where 0 means transparent and 1 is opaque. Default is 0.05 or 5%", type:"Var"}, {name: "fx.Niagara.GpuComputeDebug.ShowNaNInf", help:"When enabled will show NaNs as flashing colors.", type:"Var"}, {name: "fx.Niagara.GpuEmitterCheckFloat16Support", help:"When enabled we check to see if the RHI has support for Float16 UAV read / write, if it doesn\'t GPU emitters that use Float16 are banned from running.", type:"Var"}, {name: "fx.Niagara.GpuProfiling.Enabled", help:"Primary control to allow Niagara to use GPU profiling or not.\n", type:"Var"}, {name: "fx.Niagara.GpuScriptsCompiledBySystem", help:"If true GPU shaders for Niagara scripts will be compiled along with the NiagaraSystem (when using AsyncTask compilation mode). \n", type:"Var"}, {name: "fx.Niagara.GraphDataCacheSize", help:"Maximum number of elements to store within the GraphDataCache.", type:"Var"}, {name: "fx.Niagara.GraphDataCacheValidation", help:"If true will perform validation on retrieving data from the data FNiagaraGraphDataCache.", type:"Var"}, {name: "fx.Niagara.Grid2D.CubicInterpMethod", help:"0=Bridson, 1=monotonic/Fedkiw.\n", type:"Var"}, {name: "fx.Niagara.Grid2D.OverrideFormat", help:"Optional override for all grids to use this format.\n", type:"Var"}, {name: "fx.Niagara.Grid2D.ResolutionMultiplier", help:"Optional global modifier to grid resolution\n", type:"Var"}, {name: "fx.Niagara.Grid3D.OverrideFormat", help:"Optional override for all grids to use this format.\n", type:"Var"}, {name: "fx.Niagara.Grid3D.ResolutionMultiplier", help:"Optional global modifier to grid resolution\n", type:"Var"}, {name: "fx.Niagara.Grid3D.UseRGBAGrid", help:"Use RGBA textures when possible\n", type:"Var"}, {name: "fx.Niagara.IndirectArgsPool.AllowShrinking", help:"Allow the indirect args pool to shrink after a number of frames below a low water mark.", type:"Var"}, {name: "fx.Niagara.IndirectArgsPool.BlockSizeFactor", help:"Multiplier on the indirect args pool size when needing to increase it from running out of space. (default=2.0)", type:"Var"}, {name: "fx.Niagara.IndirectArgsPool.LowWaterAmount", help:"Percentage (0-1) of the indirect args pool that is considered low and worthy of shrinking", type:"Var"}, {name: "fx.Niagara.IndirectArgsPool.LowWaterFrames", help:"The number of frames to wait to shrink the indirect args pool for being below the low water mark. (default=150)", type:"Var"}, {name: "fx.Niagara.IndirectArgsPool.MinSize", help:"Minimum number of draw indirect args allocated into the pool. (default=256)", type:"Var"}, {name: "fx.Niagara.Landscape.MaxRegionCaptureCount", help:"The maximum number of collision components that will be captured by the Landscape DI.", type:"Var"}, {name: "fx.Niagara.Landscape.MaxRegionSearchCount", help:"The maximum number of collision components that will be evaluated for capture by the Landscape DI.", type:"Var"}, {name: "fx.Niagara.LeakDetector.DebugMessageTime", help:"Time we display the debug message for on screen.", type:"Var"}, {name: "fx.Niagara.LeakDetector.Enabled", help:"Enables or disables the leak detector.", type:"Var"}, {name: "fx.Niagara.LeakDetector.GrowthCountThreshold", help:"We need to see growth this many times without a drop in count before we consider it a leak.", type:"Var"}, {name: "fx.Niagara.LeakDetector.ReportActiveLeaks", help:"How do we report active components leaks?0 - Never report.1 - Report immediately. (default)2 - Report on GC.\n", type:"Var"}, {name: "fx.Niagara.LeakDetector.ReportTotalLeaks", help:"How do we report total components leaks?0 - Never report.1 - Report immediately.2 - Report on GC. (default)\n", type:"Var"}, {name: "fx.Niagara.LeakDetector.TickDeltaSeconds", help:"The time in seconds that must pass before we sample the component information.", type:"Var"}, {name: "fx.Niagara.LegacyDeviceProfile", help:"This is a special case CVar that allows us to use CVar conditions to maintain behavior with legacy device profiles.\nDo not use directly for new content.\nLegacy device profiles can be given a specific value for this CVarand then CVar conditions used to enable / disable as appropriate to match with legacy assets with enabled / disabled content based on them. \n", type:"Var"}, {name: "fx.Niagara.LogFoundButNotAllowedAssets", help:"If > 0 assets which are found, but not allowed in the current editor context will be printed to the log.", type:"Var"}, {name: "fx.Niagara.LogVerboseWarnings", help:"Enable to output more verbose warnings to the log file, these are considered dismissable warnings but may provide information when debugging.\nDefault is enabled in editor builds and disabled in non editor builds.\n", type:"Var"}, {name: "fx.Niagara.LUT.OptimizeThreshold", help:"Error Threshold used when optimizing Curve LUTs, setting to 0.0 or below will result in no optimization\n", type:"Var"}, {name: "fx.Niagara.LUT.VerifyPostLoad", help:"Enable to verify LUTs match in PostLoad vs the Loaded Data\n", type:"Var"}, {name: "fx.Niagara.MaxCompilePollTimePerFrame", help:"When a lot of system compile tasks queue up, this is the max time per frame that is used to advance them.", type:"Var"}, {name: "fx.Niagara.MaxStatRecordedFrames", help:"The number of frames recorded for the stat performance display of niagara cpu and gpu scripts. \n", type:"Var"}, {name: "fx.Niagara.MeshRenderer.CalcMeshUsedParticleCount", help:"Optimization which will inspect renderer vis / mesh index to determine which set of meshes we can potential render with.", type:"Var"}, {name: "fx.Niagara.NDIExport.GPUMaxReadbackCount", help:"Maximum buffer instance count for the GPU readback when in PerParticleMode, where <= 0 means ignore.", type:"Var"}, {name: "fx.Niagara.NDISpline.GDisableLUTs", help:"Should we turn off all LUTs on CPU?", type:"Var"}, {name: "fx.Niagara.NDIStaticMesh.UseInlineLODsOnly", help:"When enabled Niagara will never use streaming LOD levels, only inline LODs.0 = Streaming LODs can be sampled.1 = Only inlined LODs can be sampled.2 = Only inlined LODs can be sampled by default but each DI can override this if desired. ", type:"Var"}, {name: "fx.Niagara.ObjectNeedsLoadMode", help:"How we decide to handle objects that need loading\n0 - Do nothing\n1 - Validate objects are loaded\n2 - Validate objects are loaded and force preload\n", type:"Var"}, {name: "fx.Niagara.OnDemandCompileEnabled", help:"Compiles Niagara Systems on demand rather than on post load.", type:"Var"}, {name: "fx.Niagara.ParallelGDME", help:"Allow Niagara to run parallel in GDME.", type:"Var"}, {name: "fx.Niagara.ParticleRead.IgnoreUnsafeReads", help:"When enabled we will allow unsafe reads to compile with a warning, however the read result will be invalid.", type:"Var"}, {name: "fx.Niagara.PerfTestFrames", help:"How many frames to gather in each performance test. \n", type:"Var"}, {name: "fx.Niagara.PreloadSelectablePluginAssetsOnDemand", help:"If > 0 then niagara system, emitter, and script assets provided by the niagara plugin will be preloaded when a dialog is opened to select them. This is a temoporary workaround for asset registry issues in cooked editor builds.\n", type:"Var"}, {name: "fx.Niagara.PruneEmittersOnCook", help:"If > 0 this platform will prune disabled emitters during cook. \n", type:"Var"}, {name: "fx.Niagara.PSOPrecache.ReverseCulling", help:"Also Precache PSOs with with reverse culling set when not 2 sided. (default 1)", type:"Var"}, {name: "fx.Niagara.QualityLevel", help:"The quality level for Niagara Effects. \n", type:"Var"}, {name: "fx.Niagara.QualityLevel.Max", help:"The Maximum quality level for Niagara Effects. \n", type:"Var"}, {name: "fx.Niagara.QualityLevel.Min", help:"The minimum quality level for Niagara Effects. \n", type:"Var"}, {name: "fx.Niagara.Renderer.CookOutStaticEnabledBinding", help:"If none zero renderers with static variables used for enabled binding will cook out if they are not enabled.", type:"Var"}, {name: "fx.Niagara.RenderTarget.IgnoreCookedOut", help:"Ignores create render targets for cooked out emitter, i.e. ones that are not used by any GPU emitter.", type:"Var"}, {name: "fx.Niagara.RenderTarget.OverrideFormat", help:"Optional global format override for all Niagara render targets", type:"Cmd"}, {name: "fx.Niagara.RenderTarget.ResolutionMultiplier", help:"Optional global modifier to Niagara render target resolution.", type:"Var"}, {name: "fx.Niagara.RenderTarget2D.SimCacheCompressed", help:"When enabled compression is used for the sim cache data.", type:"Var"}, {name: "fx.Niagara.RenderTargetVolume.SimCacheCompressed", help:"When enabled compression is used for the sim cache data.", type:"Var"}, {name: "fx.Niagara.RenderTargetVolume.SimCacheDataStorageMode", help:"Backing storage type for Volume RT sim cache data. 0 uses raw data, 1 uses OpenVDB, 2 uses SVT", type:"Var"}, {name: "fx.Niagara.RenderTargetVolume.SimCacheEnabled", help:"When enabled we can write data into the simulation cache.", type:"Var"}, {name: "fx.Niagara.RenderTargetVolume.SimCacheUseOpenVDBFloatGrids", help:"Use OpenVDB float grids as output.", type:"Var"}, {name: "fx.Niagara.Scalability.ApplyInstanceCountsRigidly", help:"If true we\'ll apply instance counts more rigidly. Un-culled Systems wil not be able to activate until overall systems fall below the instance count. \n", type:"Var"}, {name: "fx.Niagara.Scalability.CanPreventCullingOnPlayerFX", help:"When enabled Niagara can optionally prevent scalability culling on FX linked to the player.", type:"Var"}, {name: "fx.Niagara.Scalability.CullingMode", help:"Set scalability culling mode\n0 - Enabled. Culling is enabled as normal.\n1 - Paused. No culling will occur but FX will still be tracked internally so culling can be resumed correctly later.\n2 - Disabled. No culling will occur and no FX will be tracked. Culling may not work correctly for some FX if enabled again after this.\n", type:"Cmd"}, {name: "fx.Niagara.Scalability.DistanceCulling", help:"When non-zero, high level scalability culling based on distance is enabled.", type:"Var"}, {name: "fx.Niagara.Scalability.GlobalBudgetCulling", help:"When non-zero, high level scalability culling based on global time budget is enabled.", type:"Var"}, {name: "fx.Niagara.Scalability.InstanceCountCulling", help:"When non-zero, high level scalability culling based on instance count is enabled.", type:"Var"}, {name: "fx.Niagara.Scalability.MinMaxDistance", help:"Minimum value for Niagara\'s Max distance value. Primariy to prevent divide by zero issues and ensure a sensible distance value for sorted significance culling.", type:"Var"}, {name: "fx.Niagara.Scalability.VisibilityCulling", help:"When non-zero, high level scalability culling based on visibility is enabled.", type:"Var"}, {name: "fx.Niagara.SetEmitterDenyList", help:"Set the emitter deny list to use. (i.e. NS_SystemA:EmitterA,NS_SystemB:EmitterA)", type:"Var"}, {name: "fx.Niagara.SetGpuDataInterfaceDenyList", help:"Set the Gpu data interface deny list to use. (i.e. UMyDataInteraceA,UMyDataInteraceB)", type:"Var"}, {name: "fx.Niagara.SetGpuDenyList", help:"Set Gpu deny list to use, more targetted than to allow comparing OS,OSVersion,CPU,GPU.\nFormat is OSLabel,OSVersion,CPU,GPU| blank entries are assumed to auto pass matching.\nFor example, =\",,MyCpu,MyGpu+MyOS,,,\" would match MyCpu & MyGpu or MyOS.", type:"Var"}, {name: "fx.Niagara.SetGpuEmitterDenyList", help:"Set the Gpu emitter deny list to use. (i.e. NS_SystemA:EmitterA,NS_SystemB:EmitterA)", type:"Var"}, {name: "fx.Niagara.SetGpuRHIAdapterDenyList", help:"Set Gpu RHI Adapter deny list to use, comma separated and uses wildcards, i.e. (*MyGpu*) would exclude anything that contains MyGpu", type:"Var"}, {name: "fx.Niagara.SetGpuRHIDenyList", help:"Set Gpu RHI deny list to use, comma separated and uses wildcards, i.e. (*MyRHI*) would exclude anything that contains MyRHI", type:"Var"}, {name: "fx.Niagara.SetOverridePlatformName", help:"Sets which platform we should override with, no args means reset to default", type:"Cmd"}, {name: "fx.Niagara.SetOverrideQualityLevel", help:"Sets which quality level we should override with, no args means clear the override and return to non overriden quality level). Valid levels are 0-4 (Low-Cinematic)", type:"Cmd"}, {name: "fx.Niagara.SetSystemDenyList", help:"Set the system deny List to use. (i.e. NS_SystemA,NS_SystemB)", type:"Var"}, {name: "fx.Niagara.Shader.ForceBindEverything", help:"Forces Niagara to display errors about missing shader bindings.", type:"Var"}, {name: "fx.Niagara.ShowAllocationWarnings", help:"If not 0 then frequent reallocations and over-allocations of particle memory will cause warnings in the log.\n", type:"Var"}, {name: "fx.Niagara.Solo.AllowAsyncWorkToEndOfFrame", help:"Allow async work to continue until the end of the frame for solo Niagara instances, if false it will complete within the tick group it started in.", type:"Var"}, {name: "fx.Niagara.Solo.TickEarly", help:"When enabled will tick kin the first available tick group.", type:"Var"}, {name: "fx.Niagara.StripByteCodeOverride", help:"Overrides project settings to strip byte code from the script on load..\n-1 = Enabled, strips Experimental VM.\n0 = Disabled.\n1 = Enabled, strips original VM.\n", type:"Var"}, {name: "fx.Niagara.SystemSimulation.AllowASync", help:"If > 0, system post tick is parallelized. \n", type:"Var"}, {name: "fx.Niagara.SystemSimulation.BatchGPUTickSubmit", help:"The if non zero we allow GPU Ticks to be submitted to the Render Thread in batches.", type:"Var"}, {name: "fx.Niagara.SystemSimulation.ConcurrentGPUTickInit", help:"The if non zero we allow GPU Ticks to be initialized in the System\'s concurrent tick rather than on the game thread.", type:"Var"}, {name: "fx.Niagara.SystemSimulation.MaxTickSubsteps", help:"The max number of possible substeps per frame when a system uses a fixed tick delta.", type:"Var"}, {name: "fx.Niagara.SystemSimulation.SkipTickDeltaSeconds", help:"When none zero we skip all ticks with a delta seconds less than equal to this number.", type:"Var"}, {name: "fx.Niagara.SystemSimulation.TaskStallTimeout", help:"Timeout in microseconds for Niagara simulation tasks to be considered stalled.\nWhen this is > 0 we busy wait as opposed to joining the TG so avoid using execpt for debugging.", type:"Var"}, {name: "fx.Niagara.SystemSimulation.TickBatchSize", help:"The number of system instances to process per async task. \n", type:"Var"}, {name: "fx.Niagara.SystemSimulation.TickTaskAllowFrameOverlap", help:"When enabled we allow ticks to overlap beyond PostActorTick until either EOF updates or the next tick.", type:"Var"}, {name: "fx.Niagara.SystemSimulation.TickTaskShouldWait", help:"When enabled the tick task will wait for concurrent work to complete, when disabled the task is complete once the GT tick is complete.", type:"Var"}, {name: "fx.Niagara.SystemSimulation.UpdateOnSpawn", help:"If > 0, system simulations are given a small update after spawn. \n", type:"Var"}, {name: "fx.Niagara.TaskPriorities.Background", help:"Task Priority When Set to Background\nArguments are three characters: [ThreadPriority][TaskPriority][TaskPriorityIfForcedToNormalThreadPriority] where ThreadPriority is \'h\' or \'n\' or \'b\' (high/normal/background) and TaskPriority is \'h\' or \'n\' (high/normal). Example: fx.Niagara.TaskPriorities.Background bnh", type:"Var"}, {name: "fx.Niagara.TaskPriorities.Dump", help:"Dump currently set priorities", type:"Cmd"}, {name: "fx.Niagara.TaskPriorities.High", help:"Task Priority When Set to High\nArguments are three characters: [ThreadPriority][TaskPriority][TaskPriorityIfForcedToNormalThreadPriority] where ThreadPriority is \'h\' or \'n\' or \'b\' (high/normal/background) and TaskPriority is \'h\' or \'n\' (high/normal). Example: fx.Niagara.TaskPriorities.High bnh", type:"Var"}, {name: "fx.Niagara.TaskPriorities.Low", help:"Task Priority When Set to Low\nArguments are three characters: [ThreadPriority][TaskPriority][TaskPriorityIfForcedToNormalThreadPriority] where ThreadPriority is \'h\' or \'n\' or \'b\' (high/normal/background) and TaskPriority is \'h\' or \'n\' (high/normal). Example: fx.Niagara.TaskPriorities.Low bnh", type:"Var"}, {name: "fx.Niagara.TaskPriorities.Normal", help:"Task Priority When Set to Normal\nArguments are three characters: [ThreadPriority][TaskPriority][TaskPriorityIfForcedToNormalThreadPriority] where ThreadPriority is \'h\' or \'n\' or \'b\' (high/normal/background) and TaskPriority is \'h\' or \'n\' (high/normal). Example: fx.Niagara.TaskPriorities.Normal bnh", type:"Var"}, {name: "fx.Niagara.TaskPriorities.PerfCapturePriority", help:"Priority to use if performance captures are enabled. Reduces the amount of context switching for Niagara to make performance measurements more reliable.Default is 1, set to -1 to not override the default priorities.", type:"Var"}, {name: "fx.Niagara.TaskPriorities.PostActorTickPriority", help:"Any tasks we execute, such as spawning, in post actor tick will run at this priority.", type:"Var"}, {name: "fx.Niagara.TaskPriorities.RunTest", help:"Run a test set of priorites", type:"Cmd"}, {name: "fx.Niagara.TaskPriorities.TickGroupPriority", help:"Set tick group priories for Niagara.For example, TG_PrePhysics:2,TG_DuringPhysics:2", type:"Var"}, {name: "fx.Niagara.UseFastSetUserParametersToDefaultValues", help:"When a component is activated we will check the surpession list.", type:"Var"}, {name: "fx.Niagara.UseGlobalFXBudget", help:"If true, Niagara will track performace data into the global FX budget and feed the global budget values into scalability. \n", type:"Var"}, {name: "fx.Niagara.ValidateDuplicateVariableGuids", help:"Validate the script guids of a given script.", type:"Cmd"}, {name: "fx.Niagara.VolumeRenderer.Enabled", help:"If == 0, Niagara Volume Renderers are disabled.", type:"Var"}, {name: "fx.Niagara.WaitOnPreGC", help:"Toggles whether Niagara will wait for all async tasks to complete before any GC calls.", type:"Var"}, {name: "fx.Niagara.WarnComponentRenderCount", help:"The max number of components that a single system can spawn before a log warning is shown.", type:"Var"}, {name: "fx.Niagara.WorldManager.FirstHighPriTickGroup", help:"Defines which tick groups should be set to high priority for the world manager.\n0 - (Default) all tick groups will run high priority.\n1 - The first tick group will be normal priority, all others high, etc.", type:"Var"}, {name: "fx.Niagara.WorldManager.KillUniqueSims", help:"System simulations will be removed when unique rather that waiting for GC.", type:"Var"}, {name: "fx.Niagara.WorldManager.ObjectPoolEnabled", help:"Should we pool objects, yay or nay.", type:"Var"}, {name: "fx.Niagara.WorldManager.SpawnPerTickGroup", help:"Will attempt to spawn new systems earlier (default enabled).", type:"Var"}, {name: "fx.NiagaraAllowComputeShaders", help:"If true, allow the usage compute shaders within Niagara.", type:"Var"}, {name: "fx.NiagaraAllowGPUParticles", help:"If true, allow the usage of GPU particles for Niagara.", type:"Var"}, {name: "fx.NiagaraAllowRuntimeScalabilityChanges", help:"If > 0 this platform allows niagara scalability settings changes at runtime. \n", type:"Var"}, {name: "fx.NiagaraBatcher.FreeBufferEarly", help:"Will take the path to release GPU buffers when possible.\nThis will reduce memory pressure but can result in more allocations if you buffers ping pong from zero particles to many.", type:"Var"}, {name: "FX.NiagaraComponentPool.CleanTime", help:"How often should the pool be cleaned (in seconds).", type:"Var"}, {name: "FX.NiagaraComponentPool.Enable", help:"How many Particle System Components to preallocate when creating new ones for the pool.", type:"Var"}, {name: "FX.NiagaraComponentPool.KeepComponentsRegistered", help:"If non-zero, components returend to the pool are kept registered with the world but set invisible. This will reduce the cost of pushing/popping components int.", type:"Var"}, {name: "FX.NiagaraComponentPool.KillUnusedTime", help:"How long a pooled particle component needs to be unused for before it is destroyed.", type:"Var"}, {name: "FX.NiagaraComponentPool.Validation", help:"Enables pooling validation.", type:"Var"}, {name: "fx.NiagaraDataBufferMinSize", help:"Niagara data buffer minimum allocation size in bytes (Default=512).", type:"Var"}, {name: "fx.NiagaraDataBufferShrinkFactor", help:"Niagara data buffer size threshold for shrinking. (Default=3) \nThe buffer will be reallocated when the used size becomes 1/F of the allocated size.", type:"Var"}, {name: "fx.NiagaraEditor.ReinitializeStyle", help:"Reinitializes the style for the niagara editor module. Used in conjuction with live coding for UI tweaks. May crash the editor if style objects are in use.", type:"Cmd"}, {name: "fx.NiagaraEditorWidgets.ReinitializeStyle", help:"Reinitializes the style for the niagara editor widgets module. Used in conjuction with live coding for UI tweaks. May crash the editor if style objects are in use.", type:"Cmd"}, {name: "fx.NiagaraEnablePrecompilerNamespaceDatasetCulling", help:"Force the namespace fixup precompiler process to cull unused Dataset parameters. Only enabled if fx.NiagaraEnablePrecompilerNamespaceFixup is also enabled. \n", type:"Var"}, {name: "fx.NiagaraEnablePrecompilerNamespaceFixup", help:"Enable a precompiler stage to discover parameter name matches and convert matched parameter hlsl name tokens to appropriate namespaces. \n", type:"Var"}, {name: "fx.NiagaraGlobalSystemCountScale", help:"A global scale on system count thresholds for culling in Niagara. \n", type:"Var"}, {name: "fx.NiagaraGPUDataBufferChunkSize", help:"Niagara GPU data buffer allocation chunk size used to round GPU allocations in bytes, must be power of 2 (Default=4096)\n", type:"Var"}, {name: "fx.NiagaraGPUDataBufferShrinkFactor", help:"Niagara GPU data buffer size threshold for shrinking. (Default=2) \nThe buffer will be reallocated when the used size becomes 1/F of the allocated size. \n", type:"Var"}, {name: "fx.NiagaraGPUDataWarningSize", help:"Allocation size where we should log a warning.", type:"Var"}, {name: "fx.NiagaraGpuLowLatencyTranslucencyEnabled", help:"When enabled translucent materials can use the current frames simulation data no matter which tick pass Niagara uses.\nThis can result in an additional data buffer being required but will reduce any latency when using view uniform buffer / depth buffer / distance fields / etc", type:"Var"}, {name: "fx.NiagaraGpuSubmitCommandHint", help:"If greater than zero, we use this value to submit commands after the number of dispatches have been issued.", type:"Var"}, {name: "fx.NiagaraLogNamespaceFixup", help:"Log matched variables and pin name changes in precompile. \n", type:"Var"}, {name: "fx.NiagaraMaxStatInstanceReports", help:"The max number of different instances from which stat reports are aggregated.", type:"Var"}, {name: "fx.NiagaraOptimizeCrossGPUTransfer", help:"Optimizes fence waits for cross GPU transfers when rendering views on multiple GPUs via nDisplay. (Default = 1)", type:"Var"}, {name: "fx.NiagaraPerfReporting", help:"0 = Disabled \n1 = Text Perf Report on world Transitions. \n2 = Text Report for every test with poor or bad perf.\n3 = As 2 but screenshots are also generated for each bad test.", type:"Var"}, {name: "fx.NiagaraRegenBaselinesOnWorldChange", help:"If > 0 performance baselines for Niagara will be regenerated on every level change. \n", type:"Var"}, {name: "fx.NiagaraReleaseBuffersOnReset", help:"Will release all memory associated with data buffers when the dataset is reset.", type:"Var"}, {name: "fx.NiagaraRuntimeCycleHistorySize", help:"How many frames history to use in Niagara\'s runtime performance trackers. \n", type:"Var"}, {name: "fx.NiagaraScalabilityUpdateTime_High", help:"Time in seconds between updates to scalability states for Niagara systems set to update at High frequency. \n", type:"Var"}, {name: "fx.NiagaraScalabilityUpdateTime_Low", help:"Time in seconds between updates to scalability states for Niagara systems set to update at Low frequency. \n", type:"Var"}, {name: "fx.NiagaraScalabilityUpdateTime_Medium", help:"Time in seconds between updates to scalability states for Niagara systems set to update at Medium frequency. \n", type:"Var"}, {name: "fx.NiagaraScriptStatTracking", help:"If > 0 stats tracking operations will be compiled into Niagara Scripts. \n", type:"Var"}, {name: "fx.NiagaraStateless.ComputeManager.CPUThreshold", help:"When lower than this particle count prefer to use the CPU over dispatching a compute shader.", type:"Var"}, {name: "fx.NiagaraStateless.ComputeManager.UseCache", help:"When enabled we will attempt to reuse allocated buffers between frames.", type:"Var"}, {name: "fx.NiagaraStateless.Distribution.OptimizeLUTs", help:"When enabled we optimize the LUT generation.", type:"Var"}, {name: "fx.NiagaraStateless.Distribution.ReduceLUTTimeRange", help:"When LUT optimization is enabled we will try to reduce the start / end time if we get duplicate keys, this can improve resolution in the area that matters.", type:"Var"}, {name: "fx.NiagaraStateless.Feature.ExecuteCPU", help:"When enabled simulations are allowed to execute on the CPU", type:"Var"}, {name: "fx.NiagaraStateless.Feature.ExecuteGPU", help:"When enabled simulations are allowed to execute on the GPU", type:"Var"}, {name: "fx.NiagaraStateless.UI.ShowRawObject", help:"When enabled we will show the raw object in the stateless emitter UI.", type:"Var"}, {name: "fx.NiagaraVectorFieldUseIspc", help:"When enabled VectorField will use ISPC for sampling if appropriate.", type:"Var"}, {name: "fx.NumFramesBetweenRuntimePerfSamples", help:"How many frames between each sample of Niagara runtime perf. \n", type:"Var"}, {name: "fx.ParticleDefaultLightInverseExposureBlend", help:"Blend Factor used to blend between Intensity and Intensity / Exposure.", type:"Var"}, {name: "fx.ParticlePerfStats.Enabled", help:"Used to control if stat gathering is enabled or not.\n", type:"Var"}, {name: "fx.ParticlePerfStats.RunTest", help:"Runs for a number of frames then logs out the results.\nArg0 = NumFrames.\nArg1 = Gather World Stats (default 0).\nArg2 = Gather System Stats (default 1).\nArg3 = Gather Component Stats (default 0).", type:"Cmd"}, {name: "fx.PerfBaselineThreshold_Bad", help:"Ratio to the baseline perf that we consider a system to have bad perf and warn strongly about it. \n", type:"Var"}, {name: "fx.PerfBaselineThreshold_Poor", help:"Ratio to the baseline perf that we consider a system to have poor perf and warn about it. \n", type:"Var"}, {name: "fx.PreventAllSystemRecompiles", help:"Loads all of the systems in the project and forces each system to refresh all it\'s dependencies so it won\'t recompile on load. This may mark multiple assets dirty for re-saving.", type:"Cmd"}, {name: "fx.PreventSystemRecompile", help:"Forces the system to refresh all it\'s dependencies so it won\'t recompile on load. This may mark multiple assets dirty for re-saving.", type:"Cmd"}, {name: "fx.RebuildDirtyScripts", help:"Go through all loaded assets and force them to recompute their script hash. If dirty, regenerate.", type:"Cmd"}, {name: "fx.ScalabilityManParallelThreshold", help:"Number of instances required for a niagara significance manger to go parallel for it\'s update. \n", type:"Var"}, {name: "fx.ScalabilityMaxUpdatesPerFrame", help:"Number of instances that can be processed per frame when updating scalability state. -1 for all of them. \n", type:"Var"}, {name: "fx.ShowNiagaraDeveloperWindows", help:"If > 0 the niagara system, emitter, and script editors will show additional developer windows.\nThese windows are for niagara tool development and debugging and editing the data\n directly in these windows can cause instability.\n", type:"Var"}, {name: "fx.SkipVectorVMBackendOptimizations", help:"If 1, skip HLSLCC\'s backend optimization passes during VectorVM compilation. \n", type:"Var"}, {name: "fx.SuppressNiagaraSystems", help:"If > 0 Niagara particle systems will not be activated. \n", type:"Var"}, {name: "fx.TestCompileNiagaraScript", help:"Compiles the specified script on disk for the niagara vector vm", type:"Cmd"}, {name: "FX.Trail.MaxDistanceTessellation", help:"Maximum tessellation steps allowed for distance based tessellation.", type:"Var"}, {name: "FX.Trail.MaxTangentTessellation", help:"Maximum tessellation steps allowed for tangent based tessellation.", type:"Var"}, {name: "fx.TriggerDebugCrash", help:"If > 0 we deliberately crash to test Crash Reporter integration.", type:"Var"}, {name: "fx.UpgradeAllNiagaraAssets", help:"Loads all Niagara assets and preforms any data upgrade processes required. This may mark multiple assets dirty for re-saving.", type:"Cmd"}, {name: "fx.UseNewGraphHash", help:"If > 0 a hash of the graph node state will be used, otherwise will use the older code path. \n", type:"Var"}, {name: "fx.WaitForAsyncStallWarnThresholdMS", help:"If we stall in WaitForAsync for longer than this threshold then we emit a stall warning message.", type:"Var"}, {name: "g.bEnablePendingCleanupObjectsCommandBatching", help:"Enable batching PendingCleanupObjects destruction.", type:"Var"}, {name: "GameFeaturePlugin.LeakedAssetTrace.MaxReportCount. Deprecated use PluginManager.LeakedAssetTrace.MaxReportCount instead", help:"Max number of assets to report when we find leaked assets.\n", type:"Var"}, {name: "GameFeaturePlugin.LeakedAssetTrace.RenameLeakedPackages. Deprecated used PluginManager.LeakedAssetTrace.RenameLeakedPackages instead", help:"Should packages which are leaked after the Game Feature Plugin is unloaded or unmounted.", type:"Var"}, {name: "GameFeaturePlugin.LeakedAssetTrace.Severity", help:"Controls severity of logging when the engine detects that assets from an Game Feature Plugin were leaked during unloading or unmounting. . Deprecated use GameFeaturePlugin.LeakedAssetTrace instead\n0 - all reference tracing and logging is disabled\n1 - logs an error\n2 - ensure\n3 - fatal error\n", type:"Var"}, {name: "GameFeaturePlugin.LeakedAssetTrace.TraceMode", help:"Controls detail level of reference tracing when the engine detects that assets from a Game Feature Plugin were leaked during unloading or unmounting. Deprecated used PluginManager.LeakedAssetTrace.TraceMode instead\n0 - direct references only\n1 - full reference trace", type:"Var"}, {name: "GameFeaturePlugin.VerifyUnload", help:"Verify plugin assets are no longer in memory when unloading. Deprecated use PluginManager.VerifyUnload instead", type:"Var"}, {name: "GameplayCameras.AutoRotate.SnapThreshold", help:"", type:"Var"}, {name: "GameplayCameras.CriticalDamper.StabilizationThreshold", help:"(Default: 0.00001f (in meters and meters/sec). Determines when to clamp a critical damper to 0 to stabilize it.", type:"Var"}, {name: "GameplayCameras.Debug.BackgroundDepthSortKey", help:"Default: 1. The sort key for drawing the background behind debug text and debug cards.", type:"Var"}, {name: "GameplayCameras.Debug.BackgroundOpacity", help:"", type:"Var"}, {name: "GameplayCameras.Debug.BlendStack.ShowUnchanged", help:"", type:"Var"}, {name: "GameplayCameras.Debug.BlendStack.ShowVariableIDs", help:"", type:"Var"}, {name: "GameplayCameras.Debug.CardGap", help:"Default: 10px. The gap between the debug cards (e.g. graphs, clocks, etc.)", type:"Var"}, {name: "GameplayCameras.Debug.CardHeight", help:"Default: 250px. The height of the debug cards (e.g. graphs, clocks, etc.)", type:"Var"}, {name: "GameplayCameras.Debug.CardWidth", help:"Default: 200px. The width of the debug cards (e.g. graphs, clocks, etc.)", type:"Var"}, {name: "GameplayCameras.Debug.Categories", help:"(Default: nodes. Specifies which debug categories to display the GamplayCameras system.", type:"Var"}, {name: "GameplayCameras.Debug.ColorScheme", help:"", type:"Var"}, {name: "GameplayCameras.Debug.ContextInitialResult.ShowUnchanged", help:"", type:"Var"}, {name: "GameplayCameras.Debug.DefaultCoordinateSystemAxesLength", help:"Default: 100. The default length of coordinate system axes.", type:"Var"}, {name: "GameplayCameras.Debug.DrawBackground", help:"", type:"Var"}, {name: "GameplayCameras.Debug.Enable", help:"(Default: false. Enables debug drawing for the GamplayCameras system.", type:"Var"}, {name: "GameplayCameras.Debug.Indent", help:"(Default: 20px. The indent for rendering Gameplay Cameras debug text.", type:"Var"}, {name: "GameplayCameras.Debug.InnerMargin", help:"(Default: 10px. The inner margin for rendering Gameplay Cameras debug text.", type:"Var"}, {name: "GameplayCameras.Debug.LeftMargin", help:"(Default: 10px. The left margin for rendering Gameplay Cameras debug text.", type:"Var"}, {name: "GameplayCameras.Debug.MaxCardColumns", help:"Default: 2. The number of columns to layout the debug cards (e.g. graphs, clocks, etc.)", type:"Var"}, {name: "GameplayCameras.Debug.NodeTree.Filter", help:"(Default: . Filters the debug camera node tree by node name/type.", type:"Var"}, {name: "GameplayCameras.Debug.OrientationInitialization.ShowLastTargetPreservation", help:"", type:"Var"}, {name: "GameplayCameras.Debug.PoseStats.ShowUnchanged", help:"", type:"Var"}, {name: "GameplayCameras.Debug.PoseStats.ShowVariableIDs", help:"", type:"Var"}, {name: "GameplayCameras.Debug.RightMargin", help:"(Default: 10px. The right margin for rendering Gameplay Cameras debug text.", type:"Var"}, {name: "GameplayCameras.Debug.TopMargin", help:"(Default: 10px. The top margin for rendering Gameplay Cameras debug text.", type:"Var"}, {name: "GameplayCameras.Debug.Trace", help:"(Default: false. Enables background tracing of GamplayCameras system debug info.", type:"Var"}, {name: "GameplayCameras.Debug.Viewfinder.GuidesGapFactor", help:"", type:"Var"}, {name: "GameplayCameras.Debug.Viewfinder.ReticleInnerSizeFactor", help:"", type:"Var"}, {name: "GameplayCameras.Debug.Viewfinder.ReticleNumSides", help:"", type:"Var"}, {name: "GameplayCameras.Debug.Viewfinder.ReticleSizeFactor", help:"Default: 0.1. The size of the viewfinder reticle, as a factor of the screen\'s vertical size.", type:"Var"}, {name: "GameplayCameras.DebugClock.ArrowThickness", help:"Default: 3px. The thickness of the clock arrow.", type:"Var"}, {name: "GameplayCameras.DebugClock.Margin", help:"Default: 10px. The uniform padding inside the debug clock card.", type:"Var"}, {name: "GameplayCameras.DebugGraph.DefaultHistoryTime", help:"Default: 2s. The default amount of the time in seconds displayed by a debug graph.", type:"Var"}, {name: "GameplayCameras.DebugGraph.Padding", help:"Default: 10px. The uniform padding inside the debug graph card.", type:"Var"}, {name: "GameplayCameras.DefaultMinFstop", help:"(Default: 0. Minimum camera lens aperture (f-stop) that defines the curvature of the diaphragm blades.", type:"Var"}, {name: "GameplayCameras.Framing.UnlockRadiusEpsilon", help:"(Default: 0.0001. The epsilon to determine whether we have reached the framing unlock circle.", type:"Var"}, {name: "GameplayCameras.OrbitBlend.DeactivationSmoothingTime", help:"(Default: 0.3 seconds. The time to smooth out any differences between a deactivated orbit blend and its underlying blend.", type:"Var"}, {name: "GameplayCameras.TargetRayCastLength", help:"(Default: 100000cm. Sets the length of the line trace test that determines the camera\'s target distance.", type:"Var"}, {name: "GameplayControlRotation.DebugArrowLength", help:"", type:"Var"}, {name: "GameplayDebugger.AutoCreateGameplayDebuggerManager", help:"When false it stops auto-spawning the Gameplay Debugger Manager.", type:"Var"}, {name: "GameplayTags.DumpTagList", help:"Writes out a csv with all tags to Reports/TagList.csv", type:"Cmd"}, {name: "GameplayTags.DumpSources", help:"Dumps all known sources of gameplay tags", type:"Cmd"}, {name: "GameplayTags.DumpTagList", help:"Writes out a csvs with all tags to Reports/TagList.csv, Reports/TagReferencesList.csv and Reports/TagSourcesList.csv", type:"Cmd"}, {name: "GameplayTags.EnableDetailedStats", help:"Runtime toggle for verbose CPU profiling stats", type:"Var"}, {name: "GameplayTags.OldReplaysUseFastReplication", help:"When loading an outdated replay (before dynamic replication), do we assume it used fast replication?", type:"Var"}, {name: "GameplayTags.PrintReplicationFrequencyReport", help:"Prints the frequency each tag is replicated.", type:"Cmd"}, {name: "GameplayTags.PrintReplicationIndicies", help:"Prints the index assigned to each tag for fast network replication.", type:"Cmd"}, {name: "gc.AllowParallelGC", help:"sed to control parallel GC.", type:"Var"}, {name: "gc.BlueprintClusteringEnabled", help:"Whether to allow Blueprint classes to create GC clusters.", type:"Var"}, {name: "gc.CollectGarbageEveryFrame", help:"Used to debug garbage collection...Collects garbage every frame if the value is > 0.", type:"Var"}, {name: "gc.ActorClusteringFixStalePointers", help:"Enables fix for stale pointers.", type:"Var"}, {name: "gc.AdditionalFinishDestroyTimeGC", help:"Additional wait time in seconds to allow FinishDestroy to complete.", type:"Var"}, {name: "gc.AllowIncrementalGather", help:"Set to control incremental Gather Unreachable Objects (experimental)", type:"Var"}, {name: "gc.AllowIncrementalReachability", help:"Set to control incremental Reachability Analysis (experimental)", type:"Var"}, {name: "gc.AllowParallelGC", help:"Used to control parallel GC.", type:"Var"}, {name: "gc.AssetClustreringEnabled", help:"If true, the engine will attempt to create clusters from asset files.", type:"Var"}, {name: "gc.CalculateHistorySize", help:"", type:"Cmd"}, {name: "gc.CollectGarbageEveryFrame", help:"Used to debug garbage collection...Collects garbage every N frames if the value is > 0.", type:"Var"}, {name: "gc.ContinuousIncrementalGC", help:"Used to debug garbage collection...Kicks off Incremental Garbage Collection as soon as the previous one finishes.", type:"Var"}, {name: "gc.DumpPoolStats", help:"Dumps count and size of GC Pools", type:"Cmd"}, {name: "gc.DebugGraphHide", help:"Hide GC debug graph.", type:"Cmd"}, {name: "gc.DebugGraphSafeDurationThresholdMs", help:"GC Debug Graph: Safe GC duration threshold (in milliseconds).", type:"Var"}, {name: "gc.DebugGraphShow", help:"Show GC debug graph. (See also: DebugGraphSafeDurationThresholdMs)", type:"Cmd"}, {name: "gc.DelayReachabilityIterations", help:"Causes the Garbage Collector to delay incremental reachability iterations by the provided number of frames.", type:"Var"}, {name: "gc.DumpAnalyticsToLog", help:"Dumps Garbage Collection analytics to log at the end of each GC.", type:"Var"}, {name: "gc.DumpMemoryStats", help:"Print GC memory usage", type:"Cmd"}, {name: "gc.DumpObjectCountsToLogWhenMaxObjectLimitExceeded", help:"If not 0 dumps UObject counts to log when maximum object count limit has been reached.", type:"Var"}, {name: "gc.DumpSchemaStats", help:"Print GC schema statistics", type:"Cmd"}, {name: "gc.ForceEnableGCProcessor", help:"Force garbage collection to use the debug processor which may provide additional information during GC crashes.", type:"Var"}, {name: "gc.GarbageEliminationEnabled", help:"If true, objects marked as Garbage will be automatically nulled and destroyed by Garbage Collector.", type:"Var"}, {name: "gc.GarbageReferenceTrackingEnabled", help:"Causes the Garbage Collector to track and log unreleased garbage objects. If 1, will dump every reference. If 2, will dump a sample of the references to highlight problematic properties.", type:"Var"}, {name: "gc.GenerateReachabilityStressData", help:"Allocate deeply-nested UObject tree to stress test reachability analysis.", type:"Cmd"}, {name: "gc.HistorySize", help:"", type:"Cmd"}, {name: "gc.IncrementalGatherTimeLimit", help:"Override Incremental Gather Time Limit (in seconds).", type:"Var"}, {name: "gc.IncrementalGCTimePerFrame", help:"How much time is allowed for incremental GC each frame in seconds", type:"Var"}, {name: "gc.IncrementalReachabilityTimeLimit", help:"Time in seconds (game time) we should allow for incremental GC (experimental).", type:"Var"}, {name: "gc.LowMemory.IncrementalGCTimePerFrame", help:"How much time is allowed for incremental GC each frame in seconds if memory is low", type:"Var"}, {name: "gc.LowMemory.TimeBetweenPurgingPendingLevels", help:"Time in seconds (game time) we should wait between GC when we\'re low on memory and there are levels pending unload", type:"Var"}, {name: "gc.MaxFinishDestroyTimeoutObjectsToLog", help:"Maximum number of objects to log out when object destruction takes longer than expected", type:"Var"}, {name: "gc.MinDesiredObjectsPerSubTask", help:"Minimum number of objects to spawn a GC sub-task for.", type:"Var"}, {name: "gc.MaxTimeForFinishDestroyGC", help:"Max time in seconds GC waits on pending objects to be destroyed (default is 10 seconds).", type:"Var"}, {name: "gc.MultithreadedDestructionEnabled", help:"If true, the engine will free objects\' memory from a worker thread", type:"Var"}, {name: "gc.SizeOfPermanentObjectPool", help:"Placeholder console variable, currently not used in runtime.", type:"Var"}, {name: "gc.PerformGCWhileAsyncLoading", help:"Allow performing GC even if there\'s async loading in progress.", type:"Var"}, {name: "gc.SuggestClusters", help:"Searches for assets which contain many internal objects which are not clustered.", type:"Cmd"}, {name: "gc.UseDisregardForGCOnDedicatedServers", help:"If false, DisregardForGC will be disabled for dedicated servers.", type:"Var"}, {name: "gc.UnlinkReachabilityStressData", help:"Unlink previously-generated reachability analysis stress test data for collection in the next cycle.", type:"Cmd"}, {name: "gc.VerifyAssumptions", help:"Whether to verify GC assumptions (disregard for GC, clustering) on each GC.", type:"Var"}, {name: "gc.VerifyAssumptionsChance", help:"Chance (0-1) to randomly verify GC assumptions on each GC.", type:"Var"}, {name: "gc.VerifyAssumptionsOnFullPurge", help:"Whether to verify GC assumptions (disregard for GC, clustering) on full purge GCs.", type:"Var"}, {name: "gc.VerifyNoUnreachableObjects", help:"Enables or disables no unreachable objects are reachable verification", type:"Var"}, {name: "gc.VerifyObjectsDestroyed", help:"Enables or disables verification if all objects have been destroyed", type:"Var"}, {name: "gc.VerifyUObjectsAreNotFGCObjects", help:"If true, the engine will throw a warning when it detects a UObject-derived class which also derives from FGCObject or any of its members is derived from FGCObject", type:"Var"}, {name: "gdt.Enable", help:"Enable Gameplay Debugger Tool", type:"Cmd"}, {name: "gdt.EnableCategoryName", help:"Enables/disables categories matching given substring. Use: gdt.EnableCategoryName <CategoryNamePart> [Enable]", type:"Cmd"}, {name: "gdt.fontsize", help:"Configures gameplay debugger\'s font size. Usage: gdt.fontsize <fontSize> (default = 10)", type:"Cmd"}, {name: "gdt.SelectLocalPlayer", help:"Selects the local player for debugging", type:"Cmd"}, {name: "gdt.SelectNextRow", help:"Selects next row", type:"Cmd"}, {name: "gdt.SelectPreviousRow", help:"Selects previous row", type:"Cmd"}, {name: "gdt.Toggle", help:"Toggles Gameplay Debugger Tool", type:"Cmd"}, {name: "gdt.ToggleCategory", help:"Toggles specific category index", type:"Cmd"}, {name: "geometry.CombineInstances.DebugRemoveHiddenStrategy", help:"Configure hidden-removal strategy via (temporary debug)", type:"Var"}, {name: "geometry.CombineInstances.Verbose", help:"Enable Verbose logging in Combine Mesh Instances, also disables parallel LOD processing", type:"Var"}, {name: "geometry.DynamicMesh.AllowDistanceFieldGeneration", help:"Whether to allow distance field generation for dynamic mesh components", type:"Var"}, {name: "geometry.DynamicMesh.AllowMeshCardGeneration", help:"Whether to allow mesh card generation for dynamic mesh components", type:"Var"}, {name: "geometry.DynamicMesh.ClearDebugMeshes", help:"Discard all debug meshes currently stored in the FDynamicMesh3 Global Debug Mesh set. This command only works in the Editor.", type:"Cmd"}, {name: "geometry.DynamicMesh.DupeStashTimeout", help:"Timeout in seconds for references held by internal UDynamicMesh duplication helper system. See FDynamicMeshCopyHelper.", type:"Var"}, {name: "geometry.DynamicMesh.EnableDebugMeshes", help:"Enable/Disable FDynamicMesh3 Global Debug Mesh support. Debug Mesh support is only available in the Editor.", type:"Var"}, {name: "geometry.DynamicMesh.MaxComplexCollisionTriCount", help:"If a DynamicMeshCompnent\'s UDynamicMesh has a larger triangle count than this value, it will not be passed to the Physics system to be used as Complex Collision geometry. A negative value indicates no limit.", type:"Var"}, {name: "geometry.DynamicMesh.MaxPoolSize", help:"Maximum number of meshes a UDynamicMeshPool will allow to be in the pool before running garbage collection", type:"Var"}, {name: "geometry.DynamicMesh.TextBasedDupeTriThreshold", help:"Triangle count threshold for text-based UDynamicMesh duplication using Base64. Large values are quite slow.", type:"Var"}, {name: "geometry.MeshSceneAdapter.SingleThreaded", help:"Determines whether or not to use multi-threading in MeshSceneAdapter.\n", type:"Var"}, {name: "GeometryCache.Streamer.BlockTillFinishStreaming", help:"Force the GeometryCache streamer to block until it has finished streaming all the requested frames", type:"Var"}, {name: "GeometryCache.Streamer.ShowNotification", help:"Show notification while the GeometryCache streamer is streaming data", type:"Var"}, {name: "GeometryCollection.BuildProximityDatabase", help:"Build the Proximity information in the GeometryGroup for the selected collection.", type:"Cmd"}, {name: "GeometryCollection.ClusterAlongYZPlane", help:"Debuigging command to split the unclustered geometry collection along the YZPlane.", type:"Cmd"}, {name: "GeometryCollection.CreateFromSelectedActors", help:"Creates a GeometryCollection from the selected Actors that contain Skeletal and Statict Mesh Components", type:"Cmd"}, {name: "GeometryCollection.CreateFromSelectedAssets", help:"Creates a GeometryCollection from the selected Skeletal Mesh and Static Mesh Assets", type:"Cmd"}, {name: "GeometryCollection.DeleteCoincidentVertices", help:"Delete coincident vertices on a GeometryCollection. WARNING: The collection can be very large.", type:"Cmd"}, {name: "GeometryCollection.DeleteGeometry", help:"Delete geometry by transform name.", type:"Cmd"}, {name: "GeometryCollection.DeleteHiddenFaces", help:"Delete hidden faces on a GeometryCollection. WARNING: The collection can be very large.", type:"Cmd"}, {name: "GeometryCollection.DeleteStaleVertices", help:"Delete stale vertices on a GeometryCollection. WARNING: The collection can be very large.", type:"Cmd"}, {name: "GeometryCollection.DeleteZeroAreaFaces", help:"Delete zero area faces on a GeometryCollection. WARNING: The collection can be very large.", type:"Cmd"}, {name: "GeometryCollection.Heal", help:"Tries to fill holes in go.", type:"Cmd"}, {name: "GeometryCollection.PrintDetailedStatistics", help:"Prints detailed statistics of the contents of the collection.", type:"Cmd"}, {name: "GeometryCollection.PrintDetailedStatisticsSummary", help:"Prints detailed statistics of the contents of the selected collection(s).", type:"Cmd"}, {name: "GeometryCollection.PrintStatistics", help:"Prints statistics of the contents of the collection.", type:"Cmd"}, {name: "GeometryCollection.SelectAllGeometry", help:"Select all geometry in hierarchy.", type:"Cmd"}, {name: "GeometryCollection.SelectInverseGeometry", help:"Deselect inverse of currently selected geometry in hierarchy.", type:"Cmd"}, {name: "GeometryCollection.SelectLessThenVolume", help:"Select all geometry with a volume less than specified.", type:"Cmd"}, {name: "GeometryCollection.SelectNone", help:"Deselect all geometry in hierarchy.", type:"Cmd"}, {name: "GeometryCollection.SetNamedAttributeValues", help:"Command to set attributes within a named group.", type:"Cmd"}, {name: "GeometryCollection.SetupNestedBoneAsset", help:"Converts the selected GeometryCollectionAsset into a test asset.", type:"Cmd"}, {name: "GeometryCollection.SetupTwoClusteredCubesAsset", help:"Addes two clustered cubes to the selected actor.", type:"Cmd"}, {name: "GeometryCollection.ToString", help:"Dump the contents of the collection to the log file. WARNING: The collection can be very large.", type:"Cmd"}, {name: "GeometryCollection.WriteToHeaderFile", help:"Dump the contents of the collection to a header file. WARNING: The collection can be very large.", type:"Cmd"}, {name: "GeometryCollection.WriteToOBJFile", help:"Dump the contents of the collection to an OBJ file. WARNING: The collection can be very large.", type:"Cmd"}, {name: "Gizmos.DebugDraw", help:"Displays debugging information.", type:"Var"}, {name: "Gizmos.DotThreshold", help:"Dot threshold for determining whether the rotation plane is perpendicular to the camera view [0.2, 1.0]", type:"Var"}, {name: "Gizmos.ProjectIndirect", help:"Project to the nearest point of the curve when handling indirect rotation.", type:"Var"}, {name: "GPUDebugCrash", help:"Crash GPU intentionally for debugging.", type:"Cmd"}, {name: "grass.DrawExclusionVolumes", help:"Whether we should draw the exclusion volumes or not", type:"Var"}, {name: "grass.DumpGrassData", help:"[optional: -csv -detailed -byproxy -bycomponent -bygrasstype -full] - Dumps a report of all grass data being currently used on landscape components. \t\t-csv formats the report in a CSV-friendly way. \t\t-fullnames displays the listed objects\' full names, rather than the user-friendly version. \t\t-showempty will dump info even from components with no grass data \t\t-detailed shows a detailed report of all grass data, for all grass types, in all landscape components. \t\t-byproxy shows a report of grass data per landscape proxy. \t\t-bycomponent shows a report of grass data per landscape component. \t\t-bygrasstype shows a report of grass data per grass type. \t\t-full enables all sub-reports. \t\tIf no report type option specified, assume full report is requested.", type:"Cmd"}, {name: "grass.GrassCreationPrioritizedMultipler", help:"Multiplier applied to MaxCreatePerFrame and MaxAsyncTasks when grass creation is prioritized.", type:"Var"}, {name: "grass.GrassMap.AlwaysBuildRuntimeGenerationResources", help:"By default we only compile shaders and build resources for runtime generation when runtime generation is enabled. Set this to 1 to always build them for all platforms, allowing you to toggle runtime generation in a cooked build.", type:"Var"}, {name: "grass.GrassMap.GuardBandDiscardMultiplier", help:"Used to control discarding in the grass map runtime generation system. Approximate range, 1-4. Multiplied by the cull distance to control when we discard grass maps.", type:"Var"}, {name: "grass.GrassMap.GuardBandMultiplier", help:"Used to control discarding in the grass map runtime generation system. Approximate range, 1-4. Multiplied by the cull distance to control when we add grass maps.", type:"Var"}, {name: "grass.GrassMap.MaxComponentsForBlockingUpdate", help:"How many landscape components can update simultaneously when running a blocking grass map update (i.e. on editor save).", type:"Var"}, {name: "grass.GrassMap.MaxComponentsRendering", help:"How many landscape components can be rendering grass maps at once, when using amortized runtime generation.", type:"Var"}, {name: "grass.GrassMap.MaxComponentsStreaming", help:"How many landscape components can be streaming their textures at once for grass map renders, when using amortized runtime generation.", type:"Var"}, {name: "grass.GrassMap.MaxDiscardChecksPerFrame", help:"How many landscape components are checked if they should discard their grass maps each frame.", type:"Var"}, {name: "grass.GrassMap.PrioritizedMultiplier", help:"Multiplier applied to MaxComponentsStreaming and MaxComponentsRendering when grass creation is prioritized.", type:"Var"}, {name: "grass.GrassMap.RenderCaptureNextDraws", help:"Trigger render captures during the next N grassmap draw calls.", type:"Var"}, {name: "grass.GrassMap.UseAsyncFetch", help:"Enable async fetch tasks to readback the runtime grass maps from the GPU. When disabled, it the fetch is performed on the game thread, when enabled it uses an async task instead.", type:"Var"}, {name: "grass.GrassMap.UseRuntimeGeneration", help:"Enable runtime grass map generation to save disk space and runtime memory. When enabled the grass density maps are not serialized and are built on the fly at runtime.", type:"Var"}, {name: "grass.MaxAsyncTasks", help:"Used to control the number of hierarchical components created at a time.", type:"Var"}, {name: "grass.MaxInstancesPerComponent", help:"Used to control the number of hierarchical components created. More can be more efficient, but can be hitchy as new components come into range", type:"Var"}, {name: "grass.MaxAsyncTasks", help:"Used to control the number of grass components created at a time.", type:"Var"}, {name: "grass.MaxCreatePerFrame", help:"Maximum number of Grass components to create per frame", type:"Var"}, {name: "grass.MaxInstancesPerComponent", help:"Used to control the number of grass components created. More can be more efficient, but can be hitchy as new components come into range", type:"Var"}, {name: "grass.UseHaltonDistribution", help:"Used to control the distribution of grass instances. If non-zero, use a halton sequence.", type:"Var"}, {name: "grass.UpdateAllOnRebuild", help:"", type:"Var"}, {name: "GroomCache.EnableStreaming", help:"Enable groom cache streaming and prebuffering. Do not switch while groom caches are in use.", type:"Var"}, {name: "health.logHealthSnapshot", help:"Log health snapshot)\n", type:"Var"}, {name: "HMD", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "HMDPOS", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "HMDVERSION", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "ImageWriteQueue.MaxConcurrency", help:"The maximum number of aysnc image writes allowable at any given time.", type:"Var"}, {name: "ImageWriteQueue.MaxQueueSize", help:"The maximum number of queued image write tasks allowable before the queue will block when adding more.", type:"Var"}, {name: "http.CurlAllowHTTP2", help:"Whether to allow HTTP/2 for curl requests", type:"Var"}, {name: "http.CurlEventLoopEnableChance", help:"Enable chance of event loop, from 0 to 100", type:"Var"}, {name: "http.CurlReadContentLengthWhenFinish", help:"Whether to read content length from curl handle when finish request", type:"Var"}, {name: "http.CurlSetResponseCodeWhenMarkAsCompleted", help:"Set response code in when mark as completed, instead of setting it in FinishRequest.", type:"Var"}, {name: "http.DefaultUserAgentCommentsEnabled", help:"Whether comments are supported in the defualt user agent string", type:"Var"}, {name: "Http.InsecureProtocolEnabled", help:"Enable insecure http protocol", type:"Var"}, {name: "http.LogJsonResponseOnly", help:"When log response payload, log json content only", type:"Var"}, {name: "http.MaxConcurrentRequests", help:"The max number of http requests to run in parallel", type:"Var"}, {name: "Http.RetrySystemNonGameThreadSupportEnabled", help:"Enable retry system non-game thread support", type:"Var"}, {name: "http.SetGeneralFailureReasonFromCommonCode", help:"Temporary hotfixable cvar: when enabled, set general failure reason from common code instead.", type:"Var"}, {name: "http.ThreadPriority", help:"Thread priority of the Http Manager thread: 0=Lowest, 1=BelowNormal, 2=SlightlyBelowNormal, 3=Normal, 4=AboveNormal\nNote that this is switchable at runtime", type:"Var"}, {name: "http.UrlPatternsToLogResponse", help:"List of url patterns to log headers and json content: \"epicgames.com unrealengine.com ...\"", type:"Var"}, {name: "http.UrlPatternsToMockFailure", help:"List of url patterns to mock failure with response code, 0 indicates ConnectionError: \"epicgames.com->0 unrealengine.com->503 ...\"", type:"Var"}, {name: "IA.ValidateAccessFromGameThread", help:"If set errors will get reported when trying to resolve or access the handle from non game threads.", type:"Var"}, {name: "Ias.AbandonCache", help:"Abandon the local file cache", type:"Cmd"}, {name: "ias.CompleteMaterializeTaskPriority", help:"Task priority for the CompleteMaterialize task (0 = foreground/high, 1 = foreground/normal, 2 = background/high, 3 = background/normal, 4 = background/low).", type:"Var"}, {name: "ias.DisplayOnScreenStatistics", help:"Enables display of Ias on screen statistics", type:"Var"}, {name: "ias.DistributedEndpointAttemptCount", help:"Number of times we should try to resolve a distributed endpoint befor eusing the fallback url (if there is one)", type:"Var"}, {name: "ias.DistributedEndpointFallbackUrl", help:"CDN url to be used if a distributed endpoint cannot be reached (overrides IoStoreOnDemand.ini)", type:"Var"}, {name: "ias.DistributedEndpointRetryWaitTime", help:"How long to wait (in seconds) after failing to resolve a distributed endpoint before retrying", type:"Var"}, {name: "ias.DistributedEndpointTimeout", help:"How long to wait (in seconds) for a distributed endoint resolve request before timing out", type:"Var"}, {name: "ias.HttpAllowChunkedXfer", help:"Enable/disable IAS\' support for chunked transfer encoding", type:"Var"}, {name: "ias.HttpChangeEndpointAfterSuccessfulRetry", help:"Whether to change the current endpoint after a sucessful retry", type:"Var"}, {name: "ias.HttpConcurrentRequests", help:"Number of concurrent requests in the http client.", type:"Var"}, {name: "ias.HttpConnectionCount", help:"Number of open HTTP connections to the on demand endpoint(s).", type:"Var"}, {name: "ias.HttpEnabled", help:"Enables individual asset streaming via HTTP", type:"Var"}, {name: "ias.HttpErrorHighWater", help:"High water mark when HTTP streaming will be disabled", type:"Var"}, {name: "ias.HttpErrorSampleCount", help:"Number of samples for computing the moving average of failed HTTP requests", type:"Var"}, {name: "ias.HttpFailTimeOutMs", help:"Fail infinite network waits that take longer than this (in ms, 0=disabled)", type:"Var"}, {name: "ias.HttpHealthCheckWaitTime", help:"Number of milliseconds to wait before reconnecting to avaiable endpoint(s)", type:"Var"}, {name: "ias.HttpIdleMs", help:"Time in seconds to close idle connections or fail waits", type:"Var"}, {name: "ias.HttpOptionalBulkDataEnabled", help:"Enables optional bulk data via HTTP", type:"Var"}, {name: "ias.HttpPollTimeoutMs", help:"Http tick poll timeout in milliseconds", type:"Var"}, {name: "ias.HttpPrimaryEndpoint", help:"Primary endpoint to use returned from the distribution endpoint", type:"Var"}, {name: "ias.HttpRangeRequestMinSizeKiB", help:"Minimum chunk size for partial chunk request(s)", type:"Var"}, {name: "ias.HttpRateLimitKiBPerSecond", help:"Http throttle limit in KiBPerSecond", type:"Var"}, {name: "ias.HttpRecvBufKiB", help:"Recv buffer size", type:"Var"}, {name: "ias.HttpRecvWorkThresholdKiB", help:"Threshold of data remaining at which next request is sent (in KiB)", type:"Var"}, {name: "ias.HttpRetryCount", help:"Number of HTTP request retries before failing the request (if connected to a service url rather than distributed endpoints).", type:"Var"}, {name: "ias.HttpSocksIp", help:"Routes all IAS HTTP traffic through the given SOCKS proxy", type:"Var"}, {name: "ias.HttpSocksPort", help:"Port of the SOCKS proxy to use", type:"Var"}, {name: "ias.HttpSocksVersion", help:"SOCKS proxy protocol version to use", type:"Var"}, {name: "ias.HttpTimeOutMs", help:"Time out value for HTTP requests in milliseconds", type:"Var"}, {name: "ias.MaxEndpointTestCountAtStartup", help:"Number of endpoint(s) to test at startup", type:"Var"}, {name: "ias.onDemandBackendThreadPriority", help:"Thread priority of the on demand backend thread: 0=Lowest, 1=BelowNormal, 2=SlightlyBelowNormal, 3=Normal, 4=AboveNormal\nNote that this is switchable at runtime", type:"Var"}, {name: "ias.ReportAnalytics", help:"Enables reporting statics to the analytics system", type:"Var"}, {name: "ias.ReportCacheAnalytics", help:"Enables reporting statics on our file cache usage to the analytics system", type:"Var"}, {name: "ias.ReportHttpAnalytics", help:"Enables reporting statics on our http traffic to the analytics system", type:"Var"}, {name: "ias.StatisticsLogInterval", help:"Enables and sets interval for periodic logging of statistics", type:"Var"}, {name: "IDO.Enable", help:"Allows property bags and IDOs to be created for supported classes.", type:"Var"}, {name: "IDO.ExcludedLoosePropertyTypes", help:"Comma separated list of property types that will be excluded from loose properties in IDOs.", type:"Var"}, {name: "ImageWriteQueue.MaxConcurrency", help:"The maximum number of async image writes allowable at any given time.Default is to use the number of cores available.", type:"Var"}, {name: "ImageWriteQueue.MaxQueueSize", help:"The maximum number of queued image write tasks allowable before the queue will block when adding more.Default is to use 4 times the number of cores available or 16 when multithreading is disabled on the command line.", type:"Var"}, {name: "ImgMedia.FieldOfViewMultiplier", help:"Multiply the field of view for active cameras by this value, generally to increase the frustum overall sizes to mitigate missing tile artifacts.\n", type:"Var"}, {name: "ImgMedia.FrameInvalidationMaxCount", help:"Maximum number of cached frames that can be invalidated when missing the latest mips/tiles.", type:"Var"}, {name: "ImgMedia.ICVFX.InnerOnlyTiles", help:"This CVar will ignore tile calculation for all viewports except for Display Cluster inner viewports. User should enable upscaling on Media plate to display lower quality mips instead, otherwise other viewports will only display tiles loaded specifically for inner viewport and nothing else. \n", type:"Var"}, {name: "ImgMedia.MipMapDebug", help:"Display debug on mipmaps and tiles used by the ImgMedia plugin.\n 0: off (default)\n 1: on\n", type:"Var"}, {name: "ImgMedia.MipMapLevelPadding", help:"Value padded onto the estimated (minimum and maximum) mipmap levels used by the loader.\n", type:"Var"}, {name: "ini.TimeToUnloadConfig", help:"If > 0, when a config branch hasn\'t been accessed in this many seconds, SafeUnload the branch", type:"Var"}, {name: "ini.UseNewDynamicLayers", help:"If true, use the new dynamic layers that load/unload, with GameFeatures and Hotfixes", type:"Var"}, {name: "ini.UseNewSaveTracking", help:"If true, use the new method for tracking modifications to GConfig when saving", type:"Var"}, {name: "Input.+action", help:"Provide the named action with a constant input value each frame", type:"Cmd"}, {name: "Input.+key", help:"Provide the named key with a constant input value each frame", type:"Cmd"}, {name: "Input.-action", help:"Stop forcing the named action value each frame", type:"Cmd"}, {name: "Input.-key", help:"Stop forcing the named key each frame", type:"Cmd"}, {name: "Input.AutoReconcilePressedEventsOnFirstRepeat", help:"If true, then we will automatically mark a IE_Pressed event if we receive an IE_Repeat event but have not received a pressed event first.\nNote: This option will be removed in a future update.", type:"Var"}, {name: "Input.AxisEventsCanBeConsumed", help:"If true and all FKey\'s for a given Axis Event are consumed, then the axis delegate will not fire.", type:"Var"}, {name: "input.bRemapDeviceIdForOffsetPlayerGamepadIds", help:"If true, then when bOffsetPlayerGamepadIds is true we will create a new Input Device Id\nas needed for the next local player. This fixes the behavior in split screen.\nNote: This CVar will be removed in a future release, this is a temporary wrapper for bug fix behavior.", type:"Var"}, {name: "Input.ClearAxisValueIfConsumed", help:"If true, we will clear the value of any FInputAxisKeyBinding whose FKey has been previously consumed.\nNote: This option will be removed in a future update.", type:"Var"}, {name: "Input.Debug.ShowBindingNames", help:"True to show binding names in the input binding editor.", type:"Var"}, {name: "Input.Debug.ShowTouches", help:"Whether to show touch input on screen.", type:"Var"}, {name: "input.GlobalAxisConfigMode", help:"Whether or not to apply Global Axis Config settings. 0 = Default (Mouse Only), 1 = All, 2 = None", type:"Var"}, {name: "Input.ListAllHardwareDevices", help:"Log all the platform\'s currently available FHardwareDeviceIdentifier", type:"Cmd"}, {name: "Input.ShouldAlwaysEvaluateForceFeedbackDuration", help:"Should the duration of a force feedback effect be evaluated every time it is called?", type:"Var"}, {name: "Insights.RecordAllWorldTypes", help:"Gameplay Insights recording by default only records Game and PIE worlds.Toggle this value to 1 to record other world types.", type:"Var"}, {name: "InstancedStruct.MaxCachedReplicationStateDescriptors", help:"How many ReplicationStateDescriptors the InstancedStructNetSerializer is allowed to cache for InstancedStructs without a type allow list. Warning: A value <= 0 means an unlimited amount of descriptors.", type:"Var"}, {name: "Interchange.FeatureFlags.Import.BMP", help:"Whether BMP support is enabled.", type:"Var"}, {name: "Interchange.FeatureFlags.Import.DDS", help:"Whether DDS support is enabled.", type:"Var"}, {name: "Interchange.FeatureFlags.Import.DefaultHideCardsView", help:"Whether the import dialog should hide the basic cards view.", type:"Var"}, {name: "Interchange.FeatureFlags.Import.DefaultShowEssentialsView", help:"Whether the import dialog starts by default in essential pipeline properties layout.", type:"Var"}, {name: "Interchange.FeatureFlags.Import.DefaultShowSettingsView", help:"Whether the import dialog shows the settings by default. Settings mode is always shown if GInterchangeDefaultHideCardsView is true.", type:"Var"}, {name: "Interchange.FeatureFlags.Import.Enable", help:"Whether Interchange import is enabled.", type:"Var"}, {name: "Interchange.FeatureFlags.Import.EXR", help:"Whether OpenEXR support is enabled.", type:"Var"}, {name: "Interchange.FeatureFlags.Import.FBX", help:"Whether FBX support is enabled.", type:"Var"}, {name: "Interchange.FeatureFlags.Import.FBX.ToLevel", help:"Whether support for FBX level import is enabled.", type:"Var"}, {name: "Interchange.FeatureFlags.Import.HDR", help:"Whether HDR support is enabled.", type:"Var"}, {name: "Interchange.FeatureFlags.Import.IES", help:"Whether IES support is enabled.", type:"Var"}, {name: "Interchange.FeatureFlags.Import.JPG", help:"Whether JPG support is enabled.", type:"Var"}, {name: "Interchange.FeatureFlags.Import.MipMapImage", help:"Whether Mip Mapped Image support is enabled.", type:"Var"}, {name: "Interchange.FeatureFlags.Import.MTLX", help:"Whether MaterialX support is enabled.", type:"Var"}, {name: "Interchange.FeatureFlags.Import.OBJ", help:"Whether OBJ support is enabled.", type:"Var"}, {name: "Interchange.FeatureFlags.Import.PNG", help:"Whether PNG support is enabled.", type:"Var"}, {name: "Interchange.FeatureFlags.Import.PSD", help:"Whether PSD support is enabled.", type:"Var"}, {name: "Interchange.FeatureFlags.Import.ShowConflictWarningsOnCardsView", help:"Whether the import conflict warnings will be shown on cards view.", type:"Var"}, {name: "Interchange.FeatureFlags.Import.Substrate", help:"Enable or disable support of Substrate with Interchange (only works if Substrate is enabled in the Project Settings). Enabled by default.", type:"Var"}, {name: "Interchange.FeatureFlags.Import.TGA", help:"Whether TGA support is enabled.", type:"Var"}, {name: "Interchange.FeatureFlags.Import.TIFF", help:"Whether TIFF support is enabled.", type:"Var"}, {name: "Interchange.FeatureFlags.Import.UEJPEG", help:"Whether UEJPEG support is enabled.", type:"Var"}, {name: "Interchange.FeatureFlags.Import.USD", help:"Whether USD support is enabled.", type:"Var"}, {name: "Interchange.FeatureFlags.Translator.UseWorker.FBX", help:"Whether FBX translator can be execute in parallel using the InterchangeWorker process.", type:"Var"}, {name: "iostore.CacheUsage", help:"print cache usage", type:"Cmd"}, {name: "IoStore.OnDemand.ForceSyncIO", help:"Whether to force using synchronous file reads even if cache block is immutable", type:"Var"}, {name: "iostore.OnDemandInstallCacheEnabled", help:"Whether the on-demand install cache is enabled.", type:"Var"}, {name: "iostore.PurgeOnDemandInstallCache", help:"Purge On Demand Install Cache", type:"Cmd"}, {name: "iostore.TreatMissingOnDemandChunksAsError", help:"Whether to treat missing chunks as error when installing on-demand content.", type:"Var"}, {name: "ism.Editor.DumpISMPartitionActors", help:"Output stats about ISMPartitionActor(s)", type:"Cmd"}, {name: "Landscape.Combine", help:"Set landscape component combining mode : 0 = Default, 1 = Combine All, 2 = Disabled", type:"Cmd"}, {name: "landscape.AllowGrassStripping", help:"Enables the conditional stripping of grass data during cook. Disabling this means the bStripGrassWhenCooked* will be ignored.", type:"Var"}, {name: "landscape.AllowNonNaniteVirtualShadowMapInvalidation", help:"For non-Nanite landscape, cached virtual shadow map pages need to be invalidated when the vertex morphing introduces a height difference that is too large. This enables or disables this behavior entirely", type:"Var"}, {name: "landscape.AllowPhysicsStripping", help:"Enables the conditional stripping of physics data during cook. Disabling this means the bStripPhysicsWhenCooked* will be ignored.", type:"Var"}, {name: "landscape.ApplyPhysicalMaterialChangesImmediately", help:"Applies physical material task changes immediately rather than during the next cook/PIE.", type:"Var"}, {name: "landscape.BatchedMerge.VisualLog.Alpha", help:"Alpha value to use when visualizing batched merge info in the viewport via the visual logger ([0.0, 1.0] range)", type:"Var"}, {name: "landscape.BatchedMerge.VisualLog.OffsetIncrement", help:"Offset (in unreal units) for visualizing each operation of the batched merge in the viewport via the visual logger.", type:"Var"}, {name: "landscape.BatchedMerge.VisualLog.ShowAllRenderItems", help:"Allows to visualize all render items : use in conjunction with landscape.BatchedMerge.VisualLog.ShowRenderItemsType (if true, all render items will be displayed. If false, only those that participate to the render will be", type:"Var"}, {name: "landscape.BatchedMerge.VisualLog.ShowComponentDependencies", help:"Allows to visualize the dependencies between landscape components when using batched merge (0 = no visual log, 1 = show component coordinates + area affecting component, 2 = show component coordinates + renderer name + area affecting component)", type:"Var"}, {name: "landscape.BatchedMerge.VisualLog.ShowComponentDependenciesFilter", help:"Allows to visualize all the dependency graph for the component specified : use the \"X= Y=\" format to specify the component for which to show the dependencies", type:"Var"}, {name: "landscape.BatchedMerge.VisualLog.ShowMergeProcess", help:"Allows to visualize the merge process in the visual logger (batches, affected components, etc.)", type:"Var"}, {name: "landscape.BatchedMerge.VisualLog.ShowMergeType", help:"Filter what to visualize in the visual logger when using batched merge (0 = no visual log, 1 = show heightmaps only, 2 = show weightmaps only, 3 = show all", type:"Var"}, {name: "landscape.BatchedMerge.VisualLog.ShowRenderItemsEditLayerRendererFilter", help:"Allows to filter the elements added to the visual log to only those pertaining to a given edit layer renderer : use in conjunction with landscape.BatchedMerge.VisualLog.ShowRenderItemsType (empty : display all elements, otherwise, only display the items related to the edit layer renderer if its name matches (partial match)", type:"Var"}, {name: "landscape.BatchedMerge.VisualLog.ShowRenderItemsType", help:"Allows to visualize the edit layer renderers\' render items in the visual logger when using batched merge (0 = no visual log, 1 = show input areas, 2 = show output areas, 3 = show all)", type:"Var"}, {name: "landscape.BrushFramePadding", help:"The number of frames to wait before pushing a full Landscape update when a brush is calling RequestLandscapeUpdate", type:"Var"}, {name: "landscape.BrushOptim", help:"This will enable landscape layers optim.", type:"Var"}, {name: "Landscape.ClearDirty", help:"Clears all Landscape Dirty Debug Data", type:"Cmd"}, {name: "landscape.CollisionMesh.HeightOffset", help:"Offsets the collision mesh wireframe to assist in viewing from distances where the lower landscape lods might hide it.", type:"Var"}, {name: "landscape.CollisionMesh.Show", help:"Selects which heightfield to visualize when ShowFlags.Collision is used. 0 to disable, 1 for simple, 2 for complex, 3 for editor only.", type:"Var"}, {name: "landscape.CollisionMesh.ShowPhysicalMaterial", help:"When enabled, vertex colors of the collision mesh are chosen based on the physical material", type:"Var"}, {name: "Landscape.DumpLODs", help:"Will dump the current status of LOD value and current texture streaming status", type:"Cmd"}, {name: "landscape.OutputLayersDebugDrawCallName", help:"This will output the name of each draw call for Scope Draw call event. This will allow readable draw call info through RenderDoc, for example.", type:"Var"}, {name: "landscape.DirtyHeightmapHeightThreshold", help:"Threshold to avoid imprecision issues on certain GPUs when detecting when a heightmap height changes, i.e. only a height difference > than this threshold (N over 16-bits uint height) will be detected as a change.", type:"Var"}, {name: "landscape.DirtyHeightmapNormalThreshold", help:"Threshold to avoid imprecision issues on certain GPUs when detecting when a heightmap normal changes, i.e. only a normal channel difference > than this threshold (N over each 8-bits uint B & A channels independently) will be detected as a change.", type:"Var"}, {name: "landscape.DirtyWeightmapThreshold", help:"Threshold to avoid imprecision issues on certain GPUs when detecting when a weightmap changes, i.e. only a difference > than this threshold (N over each 8-bits uint weightmap channel).", type:"Var"}, {name: "landscape.DumpDiffDetails", help:"When dumping diffs for heightmap (landscape.DumpHeightmapDiff) or weightmap (landscape.DumpWeightmapDiff), dumps additional details about the pixels being different", type:"Var"}, {name: "landscape.DumpHeightmapDiff", help:"This will save images for readback heightmap textures that have changed in the last edit layer blend phase. (= 0 No Diff, 1 = Mip 0 Diff, 2 = All Mips Diff", type:"Var"}, {name: "landscape.DumpLODs", help:"Will dump the current status of LOD value and current texture streaming status", type:"Cmd"}, {name: "landscape.DumpWeightmapDiff", help:"This will save images for readback weightmap textures that have changed in the last edit layer blend phase. (= 0 No Diff, 1 = Mip 0 Diff, 2 = All Mips Diff", type:"Var"}, {name: "landscape.EditLayersLocalMerge.ClearBeforeEachWriteToScratch", help:"Debug to help with RenderDoc debugging : clear each time we\'re about to write on a scratch render target (since those are reused and can be used to write RTs of different resolutions", type:"Var"}, {name: "landscape.EditLayersLocalMerge.Enable", help:"Setting this to 1 will allow the local merge algorithm (that merges layers at the landscape component level) to be used on landscapes that support it. This is a temporary measure while waiting for non-compatible landscapes to be deprecated.\n\t\tSetting this to 2 will allow the batched merge algorithm (that merges layers in batches). Supports all landscape types. This is also a temporary measure but will be the default once it\'s stable.", type:"Var"}, {name: "landscape.EditLayersLocalMerge.MaxComponentsPerHeightmapResolveBatch", help:"Number of components being rendered in a single batch when resolving heightmaps. The higher the number, the more heightmaps can be resolved in a single batch (and the higher the GPU memory consumption since more transient textures will be needed in memory at a time)", type:"Var"}, {name: "landscape.EditLayersLocalMerge.MaxComponentsPerWeightmapResolveBatch", help:"Number of components being rendered in a single batch when resolving weightmaps. The higher the number, the more weightmaps can be resolved in a single batch (and the higher the GPU memory consumption since more transient textures will be needed in memory at a time)", type:"Var"}, {name: "landscape.EditLayersLocalMerge.MaxResolutionPerRenderBatch", help:"Maximum supported resolution for merging edit layers in a single batch. The higher the number, the more components can be resolved in a single batch (and the higher the GPU memory consumption since merging requires several temporary textures)", type:"Var"}, {name: "landscape.EnableGPUCulling", help:"Whether to use landscape GPU culling when it\'s supported. Allows to toggle culling at runtime", type:"Var"}, {name: "landscape.EnableGPUCullingShadows", help:"Whether to use landscape GPU culling for a shadow views when it\'s supported. Allows to toggle shadow views culling at runtime", type:"Var"}, {name: "landscape.EnableRetopologizeTool", help:"Enable the Retopologize tool. The tool will be fully deprecated in UE5.6, but this cvar will enable it for 5.5", type:"Var"}, {name: "Landscape.FixSplines", help:"One off fix for bad layer width", type:"Cmd"}, {name: "landscape.ForceFlush", help:"This will force a render flush every frame when landscape editing.", type:"Var"}, {name: "landscape.ForceInvalidateNaniteOnLoad", help:"Trigger a rebuild of Nanite representation on load (for debugging purposes)", type:"Var"}, {name: "landscape.ForceLayersUpdate", help:"This will force landscape edit layers to be update every frame, rather than when requested only.", type:"Var"}, {name: "landscape.HeightmapCompressionMode", help:"Defines whether compression is applied to landscapes.\n 0: use the per-landscape setting bUseCompressedHeightmapStorage (default)\n 1: force enable heightmap compression on all landscapes\n -1: force disable heightmap compression on all landscapes\n", type:"Var"}, {name: "landscape.MobileWeightTextureArray", help:"Use Texture Arrays for weights on Mobile platforms", type:"Var"}, {name: "landscape.Nanite.AsyncDebugWait", help:"Time in seconds to pause the async Nanite build. Used for debugging", type:"Var"}, {name: "landscape.Nanite.LiveRebuildOnModification", help:"Trigger a rebuild of Nanite representation immediately when a modification is performed (World Partition Maps Only)", type:"Var"}, {name: "landscape.Nanite.MaxAsyncProxyBuildsPerSecond", help:"Number of Async nanite proxies to dispatch per second", type:"Var"}, {name: "landscape.Nanite.MaxSimultaneousMultithreadBuilds", help:"Max number of simultaneous Nanite static mesh tasks (-1 = unlimited )", type:"Var"}, {name: "landscape.Nanite.MultithreadBuild", help:"Multithread nanite landscape build in (World Partition Maps Only)", type:"Var"}, {name: "landscape.Nanite.UpdateLag", help:"Time to wait in seconds after the last landscape update before triggering a nanite rebuild", type:"Var"}, {name: "landscape.NaniteExportCacheMaxQuadCount", help:"The maximum number of quads in a landscape proxy that will use the DDC cache when exporting the nanite mesh (any larger landscapes will be uncached). Set to a negative number to always cache.", type:"Var"}, {name: "landscape.NonNaniteVirtualShadowMapInvalidationLODAttenuationExponent", help:"For non-Nanite landscape, controls the shape of the curve of the attenuation of the virtual shadow map pages\' invalidation rate (1 - X^N), where X is the relative LOD value (LODValue/NumMips in the [0,1] range) and N, the CVar", type:"Var"}, {name: "landscape.Optim", help:"This will enable landscape layers optim.", type:"Var"}, {name: "landscape.OverrideLOD0Distribution", help:"When > 0, force override the LOD0DistributionSetting property on all landscapes, and ignore r.LandscapeLOD0DistributionScale", type:"Var"}, {name: "landscape.OverrideLOD0ScreenSize", help:"When > 0, force override the landscape LOD0ScreenSize property on all landscapes", type:"Var"}, {name: "landscape.OverrideLODBlendRange", help:"When > 0, force the LODBlendRange property on all landscapes", type:"Var"}, {name: "landscape.OverrideLODDistribution", help:"When > 0, force override the landscape LODDistributionSetting property on all landscapes, and ignore r.LandscapeLODDistributionScale", type:"Var"}, {name: "landscape.OverrideNonNaniteVirtualShadowMapConstantDepthBiasOverride", help:"When > 0, force override the landscape NonNaniteVirtualShadowMapConstantDepthBias property on all landscapes", type:"Var"}, {name: "landscape.OverrideNonNaniteVirtualShadowMapInvalidationHeightErrorThreshold", help:"When > 0, force override the landscape NonNaniteVirtualShadowMapInvalidationHeightErrorThreshold property on all landscapes", type:"Var"}, {name: "landscape.OverrideNonNaniteVirtualShadowMapInvalidationScreenSizeLimit", help:"When > 0, force override the landscape NonNaniteVirtualShadowMapInvalidationScreenSizeLimit property on all landscapes", type:"Var"}, {name: "Landscape.ShadowMapWorldUnitsToTexelFactor", help:"Used to specify tolerance factor for mesh size related to cascade shadow resolution", type:"Var"}, {name: "landscape.ReadbackPoolSizeMB", help:"Minimum pool size (in MB) for the editor readbacks. This ensures a minimum amount of readback textures are left in the pool when reclaiming memory, which avoids severe hiccups when reallocating a lot of resources.", type:"Var"}, {name: "landscape.RemoveEmptyPaintLayersOnEdit", help:"This will analyze weightmaps on readback and remove unneeded allocations (for unpainted layers).", type:"Var"}, {name: "landscape.RenderCaptureLayersNextHeightmapDraws", help:"Trigger N render captures during the next heightmap draw calls.", type:"Var"}, {name: "landscape.RenderCaptureLayersNextPhysicalMaterialDraws", help:"Trigger N render captures during the next landscape physical material draw calls.", type:"Var"}, {name: "landscape.RenderCaptureLayersNextWeightmapDraws", help:"Trigger N render captures during the next weightmap draw calls.", type:"Var"}, {name: "landscape.RenderCaptureNextMergeRenders", help:"Trigger a render capture during the next N RenderHeightmap/RenderWeightmap(s) draws", type:"Var"}, {name: "landscape.RenderNanite", help:"Render Landscape using Nanite.", type:"Var"}, {name: "landscape.ShowDirty", help:"This will highlight the data that has changed during the layer blend phase.", type:"Var"}, {name: "landscape.SilenceSharedPropertyDeprecationFixup", help:"Silently performs the fixup of discrepancies in shared properties when handling data modified before the enforcement introduction.", type:"Var"}, {name: "landscape.SimulateAlphaBrushTextureLoadFailure", help:"Debug utility to simulate a loading failure (e.g. invalid source data, which can happen in cooked editor or with a badly virtualized texture) when loading the alpha brush texture", type:"Var"}, {name: "landscape.SplineFalloffModulation", help:"Enable Texture Modulation fo Spline Layer Falloff.", type:"Var"}, {name: "Landscape.Splines.ApplyToSplineComponentMaxIterations", help:"Max possible iterations when converting a landscape spline into a spline component", type:"Var"}, {name: "landscape.StripLayerMipsOnLoad", help:"Remove (on load) the mip chain from textures used in layers which don\'t require them", type:"Var"}, {name: "landscape.SupportGPUCulling", help:"Whether to support landscape GPU culling", type:"Var"}, {name: "landscape.SupressMapCheckWarnings.Nanite", help:"Issue MapCheck Info messages instead of warnings if Nanite Data is out of date", type:"Var"}, {name: "landscape.TrackDirty", help:"This will track the accumulation of data changes during the layer blend phase.", type:"Var"}, {name: "landscape.UpdateProxyActorRenderMethodOnTickAtRuntime", help:"Update landscape proxy\'s rendering method (nanite enabled) when ticked. Always enabled in editor.", type:"Var"}, {name: "landscape.ValidateProxyWeightmapUsages", help:"This will validate that weightmap usages in landscape proxies and their components don\'t get desynchronized with the landscape component layer allocations.", type:"Var"}, {name: "landscape.VisualLog.ShowBrushPhysics", help:"When visual log is active, allows to leave a visual log of the physics queries made for the purpose of the landscape brush", type:"Var"}, {name: "LatentActions.GuaranteeNextTickDelay", help:"If true, latent actions delayed until next tick will guarantee the engine frame has advanced. If false, these would always run at the end of the same engine tick (default behavior prior to 5.5).", type:"Var"}, {name: "LayoutUV.TracePackingForInputHash", help:"Activate tracing for the input hash specified in the value.\n", type:"Var"}, {name: "LazyLoad.PrintUnresolvedObjects", help:"Prints a list of all unresolved objects from the object handle index.", type:"Cmd"}, {name: "LevelSequence.DefaultDisplayRate", help:"Specifies default a display frame rate for newly created level sequences; also defines frame locked frame rate where sequences are set to be frame locked. Examples: 30 fps, 120/1 (120 fps), 30000/1001 (29.97), 0.01s (10ms).", type:"Var"}, {name: "LevelSequence.DefaultEvaluationType", help:"0: Playback locked to playback frames\n1: Unlocked playback with sub frame interpolation", type:"Var"}, {name: "LevelSequence.DefaultTickResolution", help:"Specifies default a tick resolution for newly created level sequences. Examples: 30 fps, 120/1 (120 fps), 30000/1001 (29.97), 0.01s (10ms).", type:"Var"}, {name: "levelinstance.debug.forcelevelstreaming", help:"Set to 1 to force Level Instance to be streamed instead of embedded in World Partition grid.", type:"Var"}, {name: "LevelInstance.ForceEditorWorldMode", help:"Allow -game instances to behave like an editor with temporary root object attached to instance. This will prevent HLOD from working in -game. This feature is only supported on non WP worlds.", type:"Var"}, {name: "LevelSequence.DefaultClockSource", help:"Specifies the default clock source for newly created level sequences. 0: Tick, 1: Platform, 2: Audio, 3: RelativeTimecode, 4: Timecode, 5: Custom", type:"Var"}, {name: "LevelSequence.DefaultDisplayRate", help:"Specifies the default display frame rate for newly created level sequences; also defines frame locked frame rate where sequences are set to be frame locked. Examples: 30 fps, 120/1 (120 fps), 30000/1001 (29.97), 0.01s (10ms).", type:"Var"}, {name: "LevelSequence.DefaultLockEngineToDisplayRate", help:"0: Playback locked to playback frames\n1: Unlocked playback with sub frame interpolation", type:"Var"}, {name: "LevelSequence.DefaultTickResolution", help:"Specifies the default tick resolution for newly created level sequences. Examples: 30 fps, 120/1 (120 fps), 30000/1001 (29.97), 0.01s (10ms).", type:"Var"}, {name: "LevelSequence.EnableReadableActorLabelsForSpawnables", help:"If true, in the editor during PIE, Sequencer will set the DisplayName of spawned actors to match their Spawnable name in Sequencer, mimicking edit-time behavior. This helps with identifying spawnables more reliably, but isn\'t available in packaged builds. Try disabling this if you see async loads being flushed during actor spawning in PIE.\n0: off, 1: on", type:"Var"}, {name: "LevelSequence.InvalidBindingTagWarnings", help:"Whether to emit a warning when invalid object binding tags are used to override bindings or not.\n", type:"Var"}, {name: "LevelSequence.MarkSequencePlayerAsGarbageOnDestroy", help:"Whether to flag the sequence player object as garbage when the actor is being destroyed", type:"Var"}, {name: "LevelStreaming.AllowIncrementalRemovalWhilePendingVisibility", help:"Whether incremental removal of a streaming level can be done while there\'s a pending visible streaming level being processed.\n0: Disable, 1: Enable", type:"Var"}, {name: "LevelStreaming.DefaultAllowClientUseMakingInvisibleTransactionRequests", help:"Flag combined with world support to use making invisible transaction requests to the server\nthat determines whether the client should wait for the server to acknowledge visibility update before making streaming levels invisible.\n0: Disable, 1: Enable", type:"Var"}, {name: "LevelStreaming.DefaultAllowClientUseMakingVisibleTransactionRequests", help:"Flag combined with world support to use making visible transaction requests to the server\nthat determines whether the client should wait for the server to acknowledge visibility update before making streaming levels visible.\n0: Disable, 1: Enable", type:"Var"}, {name: "LevelStreaming.Profiling.Enabled", help:"Whether to enable the LevelStreamingProfilingSubsystem automatically.", type:"Var"}, {name: "LevelStreaming.Profiling.LateStreamingDistanceSquared", help:"The squared distance (e.g. from world partition cell bounds) below which a level is considered to have streamed in late.", type:"Var"}, {name: "LevelStreaming.Profiling.StartAutomatically", help:"Whether to start recording level streaminge events as soon as the subsystem is created.", type:"Var"}, {name: "LevelStreaming.ShouldReuseUnloadedButStillAroundLevels", help:"Whether level streaming will reuse the unloaded levels that aren\'t GC\'d yet.\n0: Disable, 1: Enable", type:"Var"}, {name: "LevelStreaming.ShouldServerUseMakingVisibleTransactionRequest", help:"Whether server should wait for client to acknowledge visibility update before treating streaming levels as visible by the client.\n0: Disable, 1: Enable", type:"Var"}, {name: "linker.AllowDynamicClasses", help:"If true, linkers will attempt to use dynamic classes instead of class assets.", type:"Var"}, {name: "linker.EnableFullBlueprintPreloading", help:"If true, Blueprint class regeneration will perform a complete preload of all dependencies.", type:"Var"}, {name: "linker.TreatVerifyImportErrorsAsWarnings", help:"If true, the errors emitted due to verify import failures will be warnings instead.", type:"Var"}, {name: "LIST ISM", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "LIST ISM PHYSICS", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "list skincacheusage", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "LIST SQ", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "ListShaderLibraries", help:"Spits out a csv table containing stats of all shader libraries", type:"Cmd"}, {name: "ListShaderMaps", help:"Spits out a csv table containing stats of all shadermaps", type:"Cmd"}, {name: "ListSounds", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "LiveCoding.CompileSync", help:"Initiates a live coding compile and waits for completion", type:"Cmd"}, {name: "LiveLink.Client.MaxNewFrameDataPerUpdate", help:"Maximun number of new frame data that can be added in a single UE frame.", type:"Var"}, {name: "LiveLink.Client.MaxNewStaticDataPerUpdate", help:"Maximun number of new static data that can be added in a single UE frame.", type:"Var"}, {name: "LiveLink.Component.EnableLiveLinkEvaluation", help:"Whether LiveLink components should evaluate their subject.", type:"Var"}, {name: "LiveLink.HideDebugInfo", help:"Hide debug information for LiveLink Sources and Subjects", type:"Cmd"}, {name: "LiveLink.Log.DisableMessage", help:"Disable a LiveLink Message ID.Use: \"LiveLink.Log.DisableMessage MessageID\"", type:"Cmd"}, {name: "LiveLink.Log.EnableMessage", help:"Enable a LiveLink Message ID that was previously disabled.Use: \"LiveLink.Log.EnableMessage MessageID\"", type:"Cmd"}, {name: "LiveLink.Log.LogRepeated", help:"Log all messages event if they are not log for the first time.To log: \"LiveLink.Log.LogRepeated\"To set: \"LiveLink.Log.LogRepeated TRUE|FALSE\"", type:"Cmd"}, {name: "LiveLink.Log.SilentMode", help:"Silent all log from LiveLink.To silent: \"LiveLink.Log.SilentMode\"To set: \"LiveLink.Log.SilentMode TRUE|FALSE\"", type:"Cmd"}, {name: "LiveLink.Preset.Add", help:"Add a LiveLinkPreset. Use: LiveLink.Preset.Add Preset=/Game/Folder/MyLiveLinkPreset.MyLiveLinkPreset", type:"Cmd"}, {name: "LiveLink.Preset.Apply", help:"Apply a LiveLinkPreset. Use: LiveLink.Preset.Apply Preset=/Game/Folder/MyLiveLinkPreset.MyLiveLinkPreset", type:"Cmd"}, {name: "LiveLink.ShowDebugInfo", help:"Show debug information for LiveLink Sources and Subjects", type:"Cmd"}, {name: "LiveLink.TimedDataInput.MaxBufferSize", help:"The max size the timed data input is allowed to set the buffer size.", type:"Var"}, {name: "LiveLink.TimedDataInput.MinBufferSize", help:"The min size the timed data input is allowed to set the buffer size.", type:"Var"}, {name: "LiveLink.TimedDataInput.NumFramesForSmoothOffset", help:"The fractional number of source frames used an offset to achieve smooth evaluation time.", type:"Var"}, {name: "LiveLink.TimedDataInput.UpdateClockOffset", help:"By default, clock offset is continuously updated for each source. You can pause it if desired with this cvar and offset will be fixed to its value.", type:"Var"}, {name: "LLM.CsvFlushEveryRow", help:"Whether to flush the CSV with every row written. If disabled we only flush on a crash", type:"Var"}, {name: "LLM.LLMHeaderMaxSize", help:"The maximum total number of characters allowed for all of the LLM titles", type:"Var"}, {name: "LLMEM", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "LLM.TrackPeaks", help:"Track peak memory in each category since process start rather than current frame\'s value.", type:"Var"}, {name: "LLMSnapshot", help:"Takes a single LLM Snapshot of one frame. This command requires the commandline -llmdisableautopublish", type:"Cmd"}, {name: "LoadPackage", help:"Loads packages by names. Usage: LoadPackage <package name> [<package name> ...]", type:"Cmd"}, {name: "LoadPackageAsync", help:"Loads packages async by names. Usage: LoadPackageAsync <package name> [<package name> ...]", type:"Cmd"}, {name: "Localization.AlwaysLoadNativeLocalizationDataDuringInitialization", help:"True to load the native localization data during initialization, even if we\'re not starting in the native language. This ensures that all gathered text will load some localization data, even if not fully translated.", type:"Var"}, {name: "Localization.AsyncLoadLocalizationData", help:"True to load localization data asynchronously (non-blocking), or False to load it synchronously (blocking)", type:"Var"}, {name: "Localization.AsyncLoadLocalizationDataOnLanguageChange", help:"True to load localization data asynchronously (non-blocking) when the language changes, or False to load it synchronously (blocking)", type:"Var"}, {name: "Localization.DisplayStringSupport", help:"Is display string support enabled? 0: Auto (default), 1: Enabled, 2: Disabled", type:"Var"}, {name: "Localization.DumpLiveTable", help:"Dumps the current live table state to the log, optionally filtering it based on wildcard arguments for \'Namespace\', \'Key\', or \'DisplayString\', eg) -Key=Foo, or -DisplayString=\"This is some text\", or -Key=Bar*Baz -DisplayString=\"This is some other text\"", type:"Cmd"}, {name: "Localization.ForceLoadGameLocalizationInEditor", help:"True to force load game localization data in an editor", type:"Var"}, {name: "Localization.GatherTextFromAssetsCommandlet.ParallelizeIncludeExcludePathFiltering", help:"True to parallelize the include exclude path filtering. False to force the include exclu de process to be single threaded for easier debugging.", type:"Var"}, {name: "lod.CompensateForFOV", help:"When not 0 account for FOV in LOD calculations.", type:"Var"}, {name: "Localization.Message.AllowTextArgumentModifiers", help:"Whether to allow message -> text conversion to use text-style argument modifiers (default: false)", type:"Var"}, {name: "Localization.SetDisplayString", help:"Add/Update DisplayString in the live table given required arguments: \'Namespace\', \'Key\', and \'DisplayString\'. \'SourceString\' is optional, but needed if adding a new display string.", type:"Cmd"}, {name: "Localization.SpanishUsesMinTwoGrouping", help:"False: 1234 will use a group separator, True: 1234 will not use a group separator (default).", type:"Var"}, {name: "Localization.SpanishUsesRAENumberFormat", help:"False: Disabled (CLDR format), True: Enabled (RAE format, default).", type:"Var"}, {name: "Localization.UGC.AlwaysExportFullGatherLog", help:"True to export the full gather log from running localization commandlet, even if there we no errors", type:"Var"}, {name: "Localization.UseLocaleSpecificDigitCharacters", help:"False: Locales will always use Arabic digit characters (eg, 1234), True: Locales will use the digit characters specified in their CLDR data (default).", type:"Var"}, {name: "log.flushInterval", help:"Logging interval in seconds", type:"Var"}, {name: "LogBits", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "LogCVarList", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "LogHex", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "LogTrace", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "m.SyncAudioAfterDropouts", help:"Skip over delayed contiguous audio samples.\n0: Not Enabled, 1: Enabled", type:"Var"}, {name: "LWI.Editor.GridSize", help:"Sets the size of a grid that LWI managers will be generated with.", type:"Var"}, {name: "MagicLeap.debug.EnableEyetrackingDebug", help:"0 - Eyetracking debug visualizations are disabled. 1 - Eyetracking debug visualizations are enabled.", type:"Var"}, {name: "MagicLeap.FovealRegionAngleDegrees", help:"A larger value here will lead to the GTOM system considering a larger area around the gaze point. Refer to this link to see what values are reasonable: https://en.wikipedia.org/wiki/Fovea_centralis#/media/File:Macula.svg", type:"Var"}, {name: "Mainframe.ShowRestoreAssetsPromptInPIE", help:"Restore asset windows when running with PIE at startup (default: false). This doesn\'t work with immersive mode or if Mainframe.ShowRestoreAssetsPromptOnStartup is set to false.", type:"Var"}, {name: "Mainframe.ShowRestoreAssetsPromptOnStartup", help:"", type:"Var"}, {name: "MallocBinned.FlushRegisteredThreadCachesOnOneThread", help:"Wether or not to attempt to flush registered thread caches on one thread (enabled by default).", type:"Var"}, {name: "MallocBinned.FlushThreadCacheMaxWaitTime", help:"The threshold of time before warning about FlushCurrentThreadCache taking too long (seconds).", type:"Var"}, {name: "MallocBinned2.EnableLegacyCachedOSPageAllocatorFreeMemReporting", help:"Temporary. Whether or not report full amount of cached memory in CachedOSPageAllocator (legacy) or report only the amount of memory immediately available to return to the OS", type:"Var"}, {name: "MallocStomp2.Disable", help:"Disable MallocStomp2", type:"Cmd"}, {name: "MallocStomp2.Enable", help:"Enable MallocStomp2", type:"Cmd"}, {name: "MallocStomp2.MaxSize", help:"Set the maximum size MallocStomp2 should track", type:"Cmd"}, {name: "MallocStomp2.MinSize", help:"Set the minimum size MallocStomp2 should track", type:"Cmd"}, {name: "MallocStomp2.OverrunTest", help:"Overrun test for the FMallocStomp2", type:"Cmd"}, {name: "mass.AllowQueryParallelFor", help:"Controls whether EntityQueries are allowed to utilize ParallelFor construct", type:"Var"}, {name: "Mass.ConcurrentReserve.Enable", help:"Enable Mass\'s concurrent reserve feature in runtime", type:"Var"}, {name: "Mass.ConcurrentReserve.EntitiesPerPage", help:"Set number of entities per page. Must be power of 2. Larger reduces fixed memory overhead of FEntityData page lookup but requires bigger contiguous memory blocks per page", type:"Var"}, {name: "Mass.ConcurrentReserve.MaxEntityCount", help:"Set maximum number of permissible entities. Must be power of 2.", type:"Var"}, {name: "mass.debug", help:"Summon Mass Debugger UI", type:"Cmd"}, {name: "mass.debug.AllowBreakOnDebuggedEntity", help:"Guards whether MASS_BREAK_IF_ENTITY_DEBUGGED calls take effect.", type:"Var"}, {name: "mass.debug.AllowProceduralDebuggedEntitySelection", help:"Guards whether MASS_SET_ENTITY_DEBUGGED calls take effect.", type:"Var"}, {name: "mass.debug.DebugEntity", help:"ID of a Mass entity that we want to debug.Usage: \"mass.debug.DebugEntity <Entity>\"", type:"Cmd"}, {name: "mass.debug.DestroyEntity", help:"ID of a Mass entity that we want to destroy.Usage: \"mass.debug.DestoryEntity <Entity>\"", type:"Cmd"}, {name: "mass.debug.ResetDebugEntity", help:"Disables lightweight entities debugging.Usage: \"mass.debug.ResetDebugEntity\"", type:"Cmd"}, {name: "mass.debug.SetDebugEntityRange", help:"Range of lightweight entity IDs that we want to debug.Usage: \"mass.debug.SetDebugEntityRange <FirstEntity> <LastEntity>\"", type:"Cmd"}, {name: "mass.debug.TestSelectedEntityAgainstProcessorQueries", help:"Enabling will result in testing all processors\' queries against SelectedEntity (as indicated bymass.debug.DebugEntity or the gameplay debugger) and storing potential failure results to be viewed in MassDebugger", type:"Var"}, {name: "mass.debug.TrackRequirementsAccess", help:"Enables Mass processing debugging mode where we monitor thread-safety of query requirements access.", type:"Var"}, {name: "mass.FullyParallel", help:"Enables mass processing distribution to all available thread (via the task graph)", type:"Var"}, {name: "mass.LogArchetypes", help:"Dumps description of archetypes to log. Optional parameter controls whether to include or exclude non-occupied archetypes. Defaults to \'include\'.", type:"Cmd"}, {name: "mass.LogFragmentSizes", help:"Logs all the fragment types being used along with their sizes.", type:"Cmd"}, {name: "mass.LogKnownFragments", help:"Logs all the known tags and fragments along with their \"index\" as stored via bitsets.", type:"Cmd"}, {name: "mass.LogMemoryUsage", help:"Logs how much memory the mass entity system uses", type:"Cmd"}, {name: "mass.LogProcessingGraph", help:"When enabled will log task graph tasks created while dispatching processors to other threads, along with their dependencies", type:"Var"}, {name: "mass.MakePrePhysicsTickFunctionHighPriority", help:"Whether to make the PrePhysics tick function high priority - can minimise GameThread waits by starting parallel work as soon as possible", type:"Var"}, {name: "mass.PrintEntityFragments", help:"Prints all fragment types and values (uproperties) for the specified Entity index", type:"Cmd"}, {name: "mass.RecacheQueries", help:"Forces EntityQueries to recache their valid archetypes", type:"Cmd"}, {name: "mass.RuntimeSubsystemsEnabled", help:"true by default, setting to false will prevent auto-creation of game-time Mass-related subsystems. Needs to be set before world loading.", type:"Var"}, {name: "massentities.EnableCommandDetailedStats", help:"Set to true create a dedicated stat per type of command.", type:"Var"}, {name: "material dumpdebuginfo", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "MaterialBaking.ForceDisableEmissiveScaling", help:"If set to true, values stored in the emissive textures will be clamped to the [0, 1] range rather than being normalized and scaled back using the EmissiveScale material static parameter.", type:"Var"}, {name: "MaterialBaking.RenderDocCapture", help:"Determines whether or not to trigger a RenderDoc capture.\n0: Turned Off\n1: Turned On", type:"Var"}, {name: "MaterialBaking.VTWarmupFrames", help:"Number of frames to render for virtual texture warmup when material baking.", type:"Var"}, {name: "MaterialUtilities.WarmupFrames", help:"Number of frames to render before each capture in order to warmup various rendering systems (VT/Nanite/etc).", type:"Var"}, {name: "media.CachedSamplesQueueDepth", help:"How many frames to hold samples before release (default = 1).", type:"Var"}, {name: "MediaIO.PreventFieldFlipping", help:"Whether to enable an interlace field flipping fix. (Experimental)", type:"Var"}, {name: "memory.logGenericPlatformMemoryStats", help:"Report Platform Memory Stats)\n", type:"Var"}, {name: "memory.MemoryPressureCriticalThresholdMB", help:"When the available physical memory drops below this threshold memory stats will consider this to be at critical pressure.\nWhere a platform can specifically state it\'s memory pressure this test maybe ignored.\n0 (default) critical pressure will not use the threshold.", type:"Var"}, {name: "memory.WindowsPlatformMemoryGetStatsLimitTotalGB", help:"Set a synthetic platform total memory size (in GB) which will be returned as Total and Available memory from GetStats\n", type:"Var"}, {name: "memory.WindowsPlatformMemoryUseContainerMemory", help:"Set to assume that this process is running in a docker container and take the entire container\'s memory usage into consideration when computing available memory.", type:"Var"}, {name: "merge", help:"Either merge three assets or a single conflicted asset.\nformat: \'merge <remote> <local> <base> [-o out_path]\' or \'merge <local> [-o out_path]\'", type:"Cmd"}, {name: "MeshEd.OverlayOrthographicDistanceBias", help:"How much to bias distance scale by in orthograph views, regardless of distance to the viewer", type:"Var"}, {name: "MeshEd.OverlayPerspectiveDistanceBias", help:"How much to bias distance scale by in perspective views, regardless of distance to the viewer", type:"Var"}, {name: "MeshMergeUtilities.UVGenerationMethod", help:"UV generation method when creating merged or proxy meshes\n0 - Engine default - (currently Patch Builder)\n1 - Legacy\n2 - UVAtlas\n3 - XAtlas\n4 - Patch Builder\n", type:"Var"}, {name: "MessageBus.UDP.BadEndpointPeriod", help:"The period of time, in seconds, between endpoint socket errors to be considered a bad endpoint.", type:"Var"}, {name: "MessageBus.UDP.CheckForExpiredWithFullQueue", help:"Attempts to release pressure on the work queue by checking if inflight segments have expired with no acknowledgement.\n", type:"Var"}, {name: "MessageBus.UDP.ClearDenyList", help:"Clear the UDP socket deny list.", type:"Cmd"}, {name: "MessageBus.UDP.ConnectionsToError", help:"Connections to error out on when MessageBus.UDP.InduceSocketError is enabled.\nThis can be a comma separated list in the form IPAddr2:port,IPAddr3:port", type:"Var"}, {name: "MessageBus.UDP.EndpointDenyListEnabled", help:"Specifies if the endpoint deny list is enabled. If enabled, a problematic endpoint will be tagged for possible exclusion from communication.The maximum attempts allowed is determined by MessageBus.UDP.MaxRetriesForBadEndpoint", type:"Var"}, {name: "MessageBus.UDP.InduceSocketError", help:"This CVar can be used to induce a socket failure on outbound communication.\nAny non zero value will force the output socket connection to fail if the IP address matches\none of the values in MessageBus.UDP.ConnectionsToError. The list can be cleared by invoking\nMessageBus.UDP.ClearDenyList.", type:"Var"}, {name: "MessageBus.UDP.MaxRetriesForBadEndpoint", help:"The maximum number of retries that will be attempted when a socket connection fails to reach an endpoint.", type:"Var"}, {name: "MessageBus.UDP.SegmenterMaxResends", help:"The number of attempts to resend data to an endpoint. Values are clamped between 1 and 100.", type:"Var"}, {name: "MessageBus.UDP.SegmenterTimeout", help:"The number of milliseconds to wait for a segment to be acknowledge before attempting to resend. Values are clamped between 10 and 1000", type:"Var"}, {name: "MessageLog.InfoMessagesAtDisplayVerbosity", help:"MessageLog messages at level \'info\' will be mirrored to the log at \'Display\' verbosity rather than \'Log\' verbosity.", type:"Var"}, {name: "Metal.CheckCompilerToolChainSetup", help:"Should we check the Metal Compiler ToolChain Setup.", type:"Var"}, {name: "mi.MemoryResetDelay", help:"The time in milliseconds to keep recently freed memory pages inside the process for reuse. This can dramatically reduce OS overhead of memory zeroing and page faults during alloc intense workloads.", type:"Var"}, {name: "modeling.CapturePostEditChangeInTransactions", help:"When true, PostEditChange will be included in tool-target based tool transactions.", type:"Var"}, {name: "modeling.CreateMesh.IgnoreProjectSettings", help:"If enabled, do not use the preferences set in Modeling Tools\' Project Settings when constructing new mesh objects", type:"Var"}, {name: "modeling.DisableAutoUVAreaDensitySampling", help:"If set, return the behavior of AutoUV\'s PatchBuilder algorithm to the legacy behavior.", type:"Var"}, {name: "modeling.EnablePolyModel", help:"Enable prototype PolyEdit tab", type:"Var"}, {name: "modeling.EnablePresets", help:"Enable tool preset features and UX", type:"Var"}, {name: "modeling.EnablePrototypes", help:"Enable unsupported Experimental prototype Modeling Tools", type:"Var"}, {name: "modeling.EnableVolumeSnapping", help:"Enable snapping to volumes", type:"Var"}, {name: "modeling.MaxBackgroundTasksOverride", help:"Optional override for maximum allowed background tasks when generating preview results in tools. 0 to use default values. [def: 0]", type:"Var"}, {name: "modeling.PolyEdit.AllowWeldInternalBowtie", help:"If true, \"Weld\" and \"Weld To\" operations on a pair of vertices will allow the creation of non-boundary bowties. If false, then the vertices in these situations will not be welded, and will instead be moved to the destination.", type:"Var"}, {name: "modeling.PolyEdit.EdgeLimit", help:"Maximal number of edges that PolyEd and TriEd support. Meshes that would require more than this number of edges to be rendered in PolyEd or TriEd force the tools to be disabled to avoid hanging the editor.", type:"Var"}, {name: "modeling.Selection.EnableStaticMeshLocking", help:"Control whether Selection Locking is enabled by default for Static Meshes", type:"Var"}, {name: "modeling.Selection.EnableVolumeLocking", help:"Control whether Selection Locking is enabled by default for Volumes", type:"Var"}, {name: "modeling.Selection.FullHoverHighlights", help:"Use full selection hover highlights instead of simplified highlights", type:"Var"}, {name: "modeling.UVEditor.AddDebugTools", help:"Enable UV tools that can be useful for debugging (currently just the \"Unset UVs\" tool.", type:"Var"}, {name: "modeling.UVEditor.EnableLivePreviewArrangement", help:"Enable auto arranging objects in the UV Editor\'s live viewport when multiple objects are loaded from the Content Browser.", type:"Var"}, {name: "modeling.UVEditor.LivePreviewArrangementMode", help:"Pattern to use for UV Editor Live Preview auto arrangement: 0 - Line, 1 - Circular", type:"Var"}, {name: "modeling.UVEditor.UDIMSupport", help:"Enable experimental UDIM support in the UVEditor", type:"Var"}, {name: "modeling.VolumeMaxTriCount", help:"Limit on triangle count for Volumes that will be emitted by modeling tools. Meshes above this limit will be auto-simplified.", type:"Var"}, {name: "modeling.WorldRenderCapture.VTWarmupFrames", help:"Number of frames to render before each capture in order to warmup the renderer.", type:"Var"}, {name: "MovieScene.RemoveMutedTracksOnCook", help:"If 1 remove muted tracks on cook, otherwise leave as is.", type:"Var"}, {name: "n.bNavmeshAllowPartitionedBuildingFromEditor", help:"Enable experimental navmesh partition building. Deprecated 5.3: use ai.nav.bNavmeshAllowPartitionedBuildingFromEditor instead.", type:"Var"}, {name: "NaniteStats", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "net.AllowAsyncLoading", help:"Allow async loading", type:"Var"}, {name: "net.AddNetDriverInfoToNetAnalytics", help:"Automatically add NetDriver information to the NetAnalytics cache", type:"Var"}, {name: "net.AllowAsyncLoading", help:"Allow async loading of unloaded assets referenced in packets. If false the client will hitch and immediately load the asset, if true the packet will be delayed while the asset is async loaded. net.DelayUnmappedRPCs can be enabled to delay RPCs relying on async loading assets.", type:"Var"}, {name: "net.AllowEncryption", help:"If true, the engine will attempt to load an encryption PacketHandler component and fill in the EncryptionToken parameter of the NMT_Hello message based on the ?EncryptionToken= URL option and call callbacks if it\'s non-empty.", type:"Var"}, {name: "net.AllowEncryption", help:"If true, the engine will attempt to load an encryption PacketHandler component and fill in the EncryptionToken parameter of the NMT_Hello message based on the ?EncryptionToken= URL option and call callbacks if it\'s non-empty. Additionally, a value of \'2\' will make the EncryptionToken required - which is enforced serverside. (0 = Disabled, 1 = Allowed (default), 2 = Required)", type:"Var"}, {name: "net.AllowPIESeamlessTravel", help:"When true, allow seamless travels in single process PIE.", type:"Var"}, {name: "net.ContextDebug", help:"", type:"Var"}, {name: "net.AllowRPCDoSDetectionBlocking", help:"Overrides whether or not RPC DoS Detection RPC blocking is allowed. 0 = disabled, 1 = enabled.", type:"Var"}, {name: "net.AllowRPCDoSDetectionKicking", help:"Overrides whether or not RPC DoS Detection kicking is enabled. 0 = disabled, 1 = enabled.", type:"Var"}, {name: "net.AlwaysUpdateGuidReferenceMapForNetSerializeObjectStruct", help:"Requires net.TrackNetSerializeObjectReferences. If true, entries in the GuidReferenceMap for NetSerialize struct properties with object properties will always be updated, not just when the Guid changes or goes NULL. This should prevent issues with old property data being applied when an unmapped actor ref in the struct is mapped.", type:"Var"}, {name: "net.BitReader.EnsureOnOverflow", help:"Ensures if BitReader overflows. \'BitReader.LogFatalOnOverflow\' takes precedence over this, if set.", type:"Var"}, {name: "net.BlockSend", help:"When enabled, blocks packet sends on NetConnection\'s.", type:"Var"}, {name: "net.CheckNoLoadPackages", help:"If enabled, check the no load flag in GetObjectFromNetGUID before forcing a sync load on packages that are not marked IsFullyLoaded", type:"Var"}, {name: "Net.CheckPushBPRepIndexAgainstName", help:"When enabled, validates that BP generated values passed to MarkPropertyDirtyFromRepIndex match the actual property data", type:"Var"}, {name: "net.CleanUpRenamedDynamicActors", help:"When enabled, dynamic actors that change outers via Rename() on the server will close their channel or send a destruction info to clients without the actor\'s new level loaded.", type:"Var"}, {name: "net.ClientIncomingBunchFrameTimeLimitMS", help:"Time in milliseconds to limit client incoming bunch processing to. If 0, no limit. As long as we\'re below the limit, will start processing another bunch. A single bunch that takes a while to process can overshoot the limit. After the limit is hit, remaining bunches in a packet are queued, and the IpNetDriver will not process any more packets in the current frame.", type:"Var"}, {name: "net.ClientToServerUnreliableRPCQueueSize", help:"Maximum number of unreliable RPCs queued for sending from the client to the server. If more RPCs are queued then older ones will be dropped.", type:"Var"}, {name: "net.CloseTimingDebug", help:"Logs the last packet send/receive and TickFlush/TickDispatch times, on connection close - for debugging blocked send/recv paths.", type:"Var"}, {name: "net.Connection.LogAllCleanup", help:"When true log every connection CleanUp even when it was a normal socket closure.", type:"Var"}, {name: "net.ContextDebug", help:"Debugging option to set a context string during replication", type:"Var"}, {name: "net.ControlChannelDestructionInfo", help:"If enabled, send destruction info updates via the control channel instead of creating a new actor channel.0: Old behavior, use an actor channel. 1: New behavior, use the control channel", type:"Var"}, {name: "Net.CreateBandwidthGenerator", help:"", type:"Cmd"}, {name: "net.CurrentHandshakeVersion", help:"The current supported stateless handshake protocol version (numeric)", type:"Var"}, {name: "net.DebugAppendResolverAddress", help:"If this is set, all IP address resolution methods will add the value of this CVAR to the list of results.This allows for testing resolution functionality across all multiple addresses with the end goal of having a successful result(being the value of this CVAR)", type:"Var"}, {name: "net.DelayUnmappedRPCs", help:"If >0 delay received RPCs with unmapped properties", type:"Var"}, {name: "net.DebugDualIPs", help:"If true, will duplicate every packet received, and process with a new (deterministic) IP, to emulate receiving client packets from dual IP\'s - which can happen under real-world network conditions(only supports a single client on the server).", type:"Var"}, {name: "net.DebugInitialConnect", help:"When enabled, periodically logs socket-level send stats clientside, until a packet is successfully received to verify connection.", type:"Var"}, {name: "net.DebugInitialConnectLogFrequency", help:"The amount of time, in seconds, between initial connect debug logging.", type:"Var"}, {name: "net.DelayUnmappedRPCs", help:"If true delay received RPCs with unmapped object references until they are received or loaded, if false RPCs will execute immediately with null parameters. This can be used with net.AllowAsyncLoading to avoid null asset parameters during async loads.", type:"Var"}, {name: "net.DeltaInitialFastArrayElements", help:"If true, send delta struct changelists for initial fast array elements.", type:"Var"}, {name: "net.DisableBandwithThrottling", help:"Forces IsNetReady to always return true. Not available in shipping builds.", type:"Var"}, {name: "net.DisableIPv6", help:"If true, IPv6 will not resolve and its usage will be avoided when possible", type:"Var"}, {name: "net.DisableRandomNetUpdateDelay", help:"If 1, the server will not add a random delay to an actors\' NextUpdateTime.", type:"Var"}, {name: "net.DiscardTornOffActorRPCs", help:"If enabled, discard RPCs if the actor has been torn off.", type:"Var"}, {name: "net.DisconnectSimulatedConnections", help:"Disconnects some simulated connections (0 = all)", type:"Cmd"}, {name: "net.DoHandshakeVersionFallback", help:"Whether or not to (clientside) perform randomized falling-back to previous versions of the handshake protocol, upon failure.", type:"Var"}, {name: "net.DoPropertyChecksum", help:"", type:"Var"}, {name: "net.DoPropertyChecksum", help:"When true and ENABLE_PROPERTY_CHECKSUMS is defined, checksums of replicated properties are compared on client and server", type:"Var"}, {name: "net.DormancyHysteresis", help:"When > 0, represents the time we\'ll wait before letting a channel become fully dormant (in seconds). This can prevent churn when objects are going in and out of dormant more frequently than normal.", type:"Var"}, {name: "net.EnableCongestionControl", help:"Enables congestion control module.", type:"Var"}, {name: "net.EnableFlushDormantSubObjects", help:"If enabled, FlushNetDormancy will flush replicated subobjects in addition to replicated components. Only applies to objects using the replicated subobject list.", type:"Var"}, {name: "net.EnableFlushDormantSubObjectsCheckConditions", help:"If enabled, when net.EnableFlushDormantSubObjects is also true a dormancy flush will also check replicated subobject conditions", type:"Var"}, {name: "net.EnableNetInitialSubObjects", help:"Enables new SubObjects to set bNetInitial to true to make sure all replicated properties are replicated.", type:"Var"}, {name: "net.EnableNetStats", help:"Enable the calculation of network stats and storing them in the network metrics database.", type:"Var"}, {name: "net.fix.AllowListenParamSentToClient", help:"When true, allow \'?listen\' sent to the client during Travel. This would confuse the client and cause crashes with RPCs.", type:"Var"}, {name: "net.FlushDormancyUseDefaultStateForUnloadedLevels", help:"If enabled, dormancy flushing will init replicators with default object state if the client doesn\'t have the actor\'s level loaded.", type:"Var"}, {name: "Net.ForceConnectionViewerPriority", help:"Force the connection\'s player controller and viewing pawn as topmost priority.", type:"Var"}, {name: "net.IgnoreNetworkChecksumMismatch", help:"", type:"Var"}, {name: "net.ForceOnePacketPerBunch", help:"When set to true it will enable AutoFlush on all connections and force a packet to be sent for every bunch we create. This forces one packet per replicated actor and can help find rare ordering bugs", type:"Cmd"}, {name: "Net.GenerateConstantBandwidth", help:"Deliver a constant throughput every tick to generate the specified Kilobytes per sec.\nUsage:\nNet.GenerateBandwidth KilobytesPerSecond", type:"Cmd"}, {name: "Net.GeneratePeriodicBandwidthSpike", help:"Generates a spike of bandwidth every X milliseconds.\nUsage:\nNet.GeneratePeriodicBandwidthSpike SpikeInKb PeriodInMS", type:"Cmd"}, {name: "net.GracefulCloseEnabled", help:"If enabled, connections will wait for reliable bunches to be acked before cleaning up.", type:"Var"}, {name: "net.HandshakeEnforceNetworkCLVersion", help:"Whether or not the stateless handshake should enforce the Network CL version, instead of the higher level netcode.", type:"Var"}, {name: "net.HandshakeResendInterval", help:"The delay between resending handshake packets which we have not received a response for.", type:"Var"}, {name: "net.IgnoreNetworkChecksumMismatch", help:"If true, the integrity checksum on packagemap objects will be ignored, which can cause issues with out of sync data", type:"Var"}, {name: "net.IpConnectionDisableResolution", help:"If enabled, any future ip connections will not use resolution methods.", type:"Var"}, {name: "net.iris.AllowAsyncLoading", help:"Flag to allow or disallow async loading when using iris replication. Note: net.allowAsyncLoading must also be enabled.", type:"Var"}, {name: "net.Iris.AllowDestroyToCancelFlushAndTearOff", help:"When true issuing a EndReplication on an object that is already Tear-off or pending endreplication will cancel destroy/flush and destroy the replicated objects.", type:"Var"}, {name: "net.Iris.AllowPollPeriodOverrides", help:"Whether we allow poll period overrides set in ObjectReplicationBridgeConfig. Default is true.", type:"Var"}, {name: "net.Iris.AlwaysDestroyDynamicSubObjectInstancesOnDetachFromStaticRoot", help:"When true, We will always destroy instance for dynamic subobjects during EndReplication of a static rootobject.", type:"Var"}, {name: "net.Iris.Attachments.AllowSendPolicyFlags", help:"Allow use of ENetObjectAttachmentSendPolicyFlags to specify behavior of RPCs.", type:"Var"}, {name: "net.Iris.bWarnAboutStructPropertiesWithSuspectedNotReplicatedProperties", help:"Try to detect if a struct replicated as a property might contain unannotated members, disabled by default.", type:"Var"}, {name: "net.Iris.ColdResolvingRetryTimeMS", help:"Resolve unresolved cold references after this many milliseconds.", type:"Var"}, {name: "Net.Iris.CullNonRelevant", help:"When enabled will cull replicated actors that are not relevant to any client.", type:"Var"}, {name: "Net.Iris.DebugName", help:"Set a class name or object name to break on.", type:"Var"}, {name: "Net.Iris.DebugNetInternalIndex", help:"Specify an internal index that we will break on (or none to turn off).", type:"Cmd"}, {name: "Net.Iris.DebugNetRefHandle", help:"Specify a NetRefHandle ID that we will break on (or none to turn off).", type:"Cmd"}, {name: "Net.Iris.DebugRPCName", help:"Set the name of an RPC to break on.", type:"Var"}, {name: "net.Iris.DeferEndReplication", help:"bDeferEndReplication if true calls to EndReplication will be defered until after we have applied statedata. Default is true.", type:"Var"}, {name: "net.Iris.DeltaCompressInitialState", help:"if true we compare with default state when serializing inital state.", type:"Var"}, {name: "net.Iris.DispatchUnresolvedPreviouslyReceivedChanges", help:"Whether to include previously received changes with unresolved object references to data received this frame when applying state data. This can call rep notify functions to be called despite being unchanged. Default is false.", type:"Var"}, {name: "net.Iris.EnableActorLevelChanges", help:"When true the ActorReplicationBridge will process actors that change levels by updating the actor\'s level groups.", type:"Var"}, {name: "net.Iris.EnableDeltaCompression", help:"Enable delta compression for replicated objects. Default is true.", type:"Var"}, {name: "net.Iris.EnableDetailedClientProfiler", help:"Generates detailed CSV Iris stats (client only).", type:"Var"}, {name: "net.Iris.EnableDynamicNetUpdateFrequency", help:"When true changes to AActor::NetUpdateFrequency will be updated in Iris after being registered for replication.", type:"Var"}, {name: "net.Iris.EnableFilterMappings", help:"Whether we honor filter mappings set in ObjectReplicationBridgeConfig. If filter mappings are enabled then objects may also be assigned the default spatial filter even if there aren\'t any specific mappings. Default is true.", type:"Var"}, {name: "net.Iris.EnableFlushReliableRPCOnDestroy", help:"When true EEndReplicationFlags::Flush flag will be appended in EndReplication if we have pending unprocessed attachments/RPC:s when destroying a replicated object.", type:"Var"}, {name: "net.Iris.EnableForceNetUpdate", help:"When true the system only allows ForceNetUpdate to skip the poll frequency of objects. When false any MarkDirty object will be immediately polled.", type:"Var"}, {name: "net.iris.EnableIrisPackageMapNameExports", help:"If enabled, iris captures and exports fnames when calling into old serialziation code instead of serializing a strings.", type:"Var"}, {name: "net.Iris.EnableRPCs", help:"If > 0 let Iris replicate and execute RPCs.", type:"Var"}, {name: "net.Iris.EnableUpdateObjectsWithDirtyConditionals", help:"Enable the updating subobjects with conditionals.", type:"Var"}, {name: "net.Iris.EnsureIfNumGroupMembershipsExceeds", help:"If set to a positive number we will warn and ensure if an object is added to a high number of groups.", type:"Var"}, {name: "net.Iris.EnsureNetRefHandleError", help:"Chooses if we should ensure when a NetRefHandleError was reported. -1=never ensure. 0=always ensure. 1..X=ensure only for specific error type", type:"Var"}, {name: "net.Iris.ExecuteReliableRPCsBeforeApplyState", help:"If true and Iris runs in backwards compatibility mode then reliable RPCs will be executed before we apply state data on the target object unless we first need to spawn the object.", type:"Var"}, {name: "Net.Iris.Filtering.ValidateNobSubObjectInScopeWithFilteredOutRootObject", help:"Validate there are no subobjects in scope with a filtered out root object.", type:"Var"}, {name: "net.iris.ForceFullCopyAndQuantize", help:"When enabled a full copy and quantize will be used, if disabled we will only copy and quantize dirty state data.", type:"Var"}, {name: "net.iris.ForceFullDequantizeAndApply", help:"When enabled a full dequantize of dirty states will be used when applying received statedata regardless of traits set in the fragments.", type:"Var"}, {name: "net.Iris.ForcePruneBeforeUpdate", help:"Verify integrity of all tracked instances at the start of every update.", type:"Var"}, {name: "net.Iris.HotResolvingLifetimeMS", help:"An unresolved reference is considered hot if it was created within this many milliseconds, and cold otherwise.", type:"Var"}, {name: "net.Iris.IrisPreExportExistingNetTokensOnConnect", help:"If true we will enqueue all existing NetTokens for pre-export when a new connection is added.", type:"Var"}, {name: "net.Iris.LogReplicationProtocols", help:"If true, log all created replication protocols.", type:"Var"}, {name: "net.Iris.MinimumNumberOfFramesBetweenBaselines", help:"Minimum number of frames between creation of new delta compression baselines for an object. Default is 60.", type:"Var"}, {name: "net.Iris.OnlyQuantizeDirtyMembers", help:"if true we only quantize members marked as dirty unless this is a new object.", type:"Var"}, {name: "net.Iris.OnlyResetDirtinessForQuantizedObjects", help:"Only Reset Dirtiness For QuantizedObjects, optimization that only resets dirtiness for objects actually considered dirty.", type:"Var"}, {name: "net.Iris.PacketSequenceSafetyMargin", help:"How many packets to spare before considering packet sequence full. This allows a few non-DataStreamChannel packets to be sent without messing up packet acking.", type:"Var"}, {name: "Net.Iris.PrintAlwaysRelevantObjects", help:"Prints the list of netobjects always relevant to every connection", type:"Cmd"}, {name: "Net.Iris.PrintDynamicFilterClassConfig", help:"Prints the dynamic filter configured to be assigned to specific classes.", type:"Cmd"}, {name: "Net.Iris.PrintNetCullDistances", help:"Prints the list of replicated objects and their current netculldistance. Add -NumClasses=X to limit the printing to the X classes with the largest net cull distances.", type:"Cmd"}, {name: "Net.Iris.PrintPushBasedStatuses", help:"Prints the push-based statuses of all classes.", type:"Cmd"}, {name: "Net.Iris.PrintRelevantObjects", help:"Prints the list of netobjects currently relevant to any connection", type:"Cmd"}, {name: "Net.Iris.PrintRelevantObjectsToConnection", help:"Prints the list of replicated objects relevant to a specific connection. OptionalParams: WithFilter", type:"Cmd"}, {name: "Net.Iris.PrintReplicatedObjects", help:"Prints the list of replicated objects registered for replication in Iris", type:"Cmd"}, {name: "net.Iris.PruneReplicationStateDescriptorsWithArchetype", help:"If true, we will invalidate registered descriptors if archetype is no longer resolvable, otherwise we will keep them around until CDO is no longer valid.", type:"Var"}, {name: "net.Iris.PushModelMode", help:"0 = disabled but runtime togglable, 1 = enabled and not togglable, 2 = enabled but runtime togglable. Requires Net.IsPushModelEnabled is true and WITH_PUSH_MODEL > 0 to use push based dirtiness in the backwards compatibility mode.", type:"Var"}, {name: "net.Iris.RemapDynamicObjects", help:"Allow remapping of dynamic objects on the receiving end. This allows properties previously pointing to a particular object to be updated if the object is re-created. Default is true.", type:"Var"}, {name: "net.Iris.ReplicationWriter.ValidateObjectsWithDirtyChanges", help:"Ensure that we don\'t try to mark invalid objects as dirty when they shouldn\'t.", type:"Var"}, {name: "net.Iris.ReplicationWriterMaxAllowedPacketsIfNotHugeObject", help:"Allow ReplicationWriter to overcommit data if we have more data to write.", type:"Var"}, {name: "net.Iris.ReplicationWriterMaxHugeObjectsInTransit", help:"How many very large objects, one whose payload doesn\'t fit in a single packet, is allowed to be scheduled for send. Needs to be at least 1.", type:"Var"}, {name: "net.Iris.ResolvedObjectsDispatchDebugging", help:"Debug logging of resolved object state dispatching. Default is false.", type:"Var"}, {name: "net.Iris.RPC.AllowOnDormantObjects", help:"When true allow RPCs to be sent on dormant objects. When false block all RPCs from the moment the dormant change is requested.", type:"Var"}, {name: "net.Iris.RPC.AutoNetFlushOnDormantObjects", help:"When true we will make an implicit NetFlush request when an RPC is sent on a dormant object. When false no replicated properties would be sent along with the RPC.", type:"Var"}, {name: "net.Iris.SaturateBandwidth", help:"Whether to saturate the bandwidth or not. Default is false.", type:"Var"}, {name: "net.Iris.SerializeNewActorMaxBunchSize", help:"Max allowed bits that can be added to the creation header via OnSerializeNewActor.", type:"Var"}, {name: "net.Iris.Stats.ShouldIncludeSubObjectWithRoot", help:"If enabled SubObjects will reports stats with RootObject, if set to false SubObjects will be treated as separate objects.", type:"Var"}, {name: "net.Iris.ThrottleRPCWarnings", help:"Only log send failure warnings once per RPC type.", type:"Var"}, {name: "net.Iris.UseChangeMaskForTArray", help:"Enable or disable the use of a changemask for individual elements in TArrays. When enabled and packet loss occurs the received array may not reflect a state which was ever present on the sending side since the array won\'t be replicated atomically. Enabled by default.", type:"Var"}, {name: "net.Iris.UseDormancyToFilterPolling", help:"Whether we should use dormancy to filter out objects that we should not poll. Default is true.", type:"Var"}, {name: "net.Iris.UseFrequencyBasedPolling", help:"Whether to use frequency based polling or not. Default is true.", type:"Var"}, {name: "net.Iris.UseIrisReplication", help:"Enables Iris replication system. 0 will fallback to legacy replicationsystem.", type:"Var"}, {name: "net.Iris.UseNativeFastArray", help:"Enable or disable IrisNativeFastArray.", type:"Var"}, {name: "net.Iris.UseOptObjectRefTracking", help:"Use a more optimized version of FReplicationReader::UpdateObjectReferenceTracking().", type:"Var"}, {name: "net.Iris.UsePrevReceivedStateForOnReps", help:"If true OnReps will use the previous received state when doing onreps and not do any compares, if set to false we will copy the local state and do a compare before issuing onreps", type:"Var"}, {name: "net.Iris.UseResolvingHandleCache", help:"Enable the use of a hot and cold cache when resolving unresolved caches to reduce the time spent resolving references.", type:"Var"}, {name: "net.Iris.UseSupportsStructNetSerializerList", help:"If enabled structs in the SupportsStructNetSerializerList will not raise warnings even if the struct has a NetSerialize/NetDeltaSerialize but has no custom NetSerializer.", type:"Var"}, {name: "net.Iris.UseVerboseIrisCsvStats", help:"Whether to use verbose per-class csv stats. Default is false in Shipping, otherwise True.", type:"Var"}, {name: "net.Iris.WarnAboutDroppedAttachmentsToObjectsNotInScope", help:"Warn when attachments are dropped due to object not in scope. Default is false.", type:"Var"}, {name: "net.Iris.WarnAboutStructsWithCustomSerialization", help:"Warn when generating descriptors for structs with custom serialization.", type:"Var"}, {name: "Net.IsPushModelEnabled", help:"Whether or not Push Model is enabled. This networking mode allows game code to notify the networking system of changes, rather than scraping.", type:"Var"}, {name: "Net.LogPendingGuidsOnShutdown", help:"", type:"Var"}, {name: "net.LogUnhandledFaults", help:"Whether or not to warn about unhandled net faults (could be deliberate, depending on implementation). 0 = off, 1 = log once, 2 = log always.", type:"Var"}, {name: "net.MaxChannelSize", help:"The maximum number of channels.", type:"Var"}, {name: "Net.MakeBpPropertiesPushModel", help:"Whether or not properties declared in Blueprints will be forced to used Push Model", type:"Var"}, {name: "net.MaxAggregateIPLogs", help:"The maximum number of IP\'s to include in aggregated pre-connection logging, before such logging is disabled altogether (Min: 1, Max: 128).", type:"Var"}, {name: "net.MaxChannelSize", help:"The maximum number of network channels allowed across the entire server, if <= 0 the connection DefaultMaxChannelSize will be used.", type:"Var"}, {name: "net.MaxConstructedPartialBunchSizeBytes", help:"The maximum size allowed for Partial Bunches.", type:"Var"}, {name: "net.MaxIPHitLogs", help:"The maximum number of times to individually log a specific IP pre-connection, before aggregating further logs.", type:"Var"}, {name: "net.MaxNumberOfAllowedTArrayChangesPerUpdate", help:"", type:"Var"}, {name: "net.MaxNumberOfAllowedTArrayDeletionsPerUpdate", help:"", type:"Var"}, {name: "net.MaxRepArrayMemory", help:"Maximum allowable size for replicated dynamic arrays (in bytes). Value must be between 1 and 65535", type:"Var"}, {name: "net.MaxRepArraySize", help:"Maximum allowable size for replicated dynamic arrays (in number of elements). Value must be between 1 and 65535.", type:"Var"}, {name: "net.MaxRPCPerNetUpdate", help:"Maximum number of RPCs allowed per net update", type:"Var"}, {name: "net.MaxRPCPerNetUpdate", help:"Maximum number of unreliable multicast RPC calls allowed per net update, additional ones will be dropped", type:"Var"}, {name: "net.MaxSerializedNetExportGroups", help:"Maximum number of network export groups we would expect to receive in a bunch", type:"Var"}, {name: "net.MaxSerializedNetExportsPerGroup", help:"Maximum number of network exports in each group we would expect to receive in a bunch", type:"Var"}, {name: "net.MaxSerializedNetGuids", help:"Maximum number of network guids we would expect to receive in a bunch", type:"Var"}, {name: "net.MaxSerializedReplayNetGuids", help:"Maximum number of network guids we would expect to receive in replay export data.", type:"Var"}, {name: "net.MaxSimultaneousObjectsWithRPCs", help:"Maximum number of objects that can have unsent RPCs at the same time. ", type:"Var"}, {name: "net.MinHandshakeVersion", help:"The minimum supported stateless handshake protocol version (numeric).", type:"Var"}, {name: "net.NetFaultRecoveryLogQuotaChecks", help:"Whether or not to enable debug logging for quota checks (useful for debugging new net faults used with \'RegisterCounterCategory\')", type:"Var"}, {name: "net.NetPingDebugDump", help:"Whether or not to dump NetPing ping values to log every 5 seconds.", type:"Var"}, {name: "net.NetPingEnabled", help:"Whether or not the NetPing ping handling interface is enabled. Used for centralized ping tracking, and ICMP/UDP ping. (Valid values: 0 = Off, 1 = Enabled for client, 2 = Enabled for server and client, 3 = Enabled for server only)", type:"Var"}, {name: "net.NetPingICMPInterval", help:"Specifies the interval (in seconds) for performing ICMP pings.", type:"Var"}, {name: "net.NetPingTimeoutDisableThreshold", help:"The number of times to send an ICMP/UDP ping when at a failure/timeout rate of 100%, before giving up and disabling pings.", type:"Var"}, {name: "net.NetPingTypes", help:"A comma-delimited list of EPingType pings to enable, and (optionally) the EPingAverageType averaging to apply to the ping (e.g: \"RoundTrip=None,RoundTripExclFrame=PlayerStateAvg,ICMP=MovingAverage\").", type:"Var"}, {name: "net.NetPingUDPInterval", help:"Specifies the interval (in seconds) for performing UDP pings.", type:"Var"}, {name: "net.NetPingUDPPort", help:"For \'UDPQoS\' ping type, sets the port used for pinging.", type:"Var"}, {name: "net.NetServerMoveTimestampExpiredWarningThreshold", help:"Tolerance for ServerMove() to warn when client moves are expired more than this time threshold behind the server.", type:"Var"}, {name: "net.OodleClientEnableMode", help:"When to enable compression on the client (overrides the \'ClientEnableMode\' .ini setting).", type:"Var"}, {name: "net.OodleMinSizeForCompression", help:"The minimum size an outgoing packet must be, for it to be considered for compression (does not count overhead of handler components which process packets after Oodle).", type:"Var"}, {name: "net.OodleNetwork.TimeGuardLimit", help:"Sets the maximum number of OodleNetworkHandlerComponent timeguard logs.", type:"Var"}, {name: "net.OodleNetwork.TimeGuardThresholdMS", help:"Threshold in milliseconds for the OodleNetworkHandlerComponent timeguard.", type:"Var"}, {name: "net.OodleServerEnableMode", help:"When to enable compression on the server (overrides the \'ServerEnableMode\' .ini setting).", type:"Var"}, {name: "net.PacketHandlerCRCDump", help:"Enables or disables dumping of packet CRC\'s for every HandlerComponent, Incoming and Outgoing, for debugging.", type:"Var"}, {name: "net.PacketHandlerTimeguardLimit", help:"Sets the maximum number of HandlerComponent timeguard logs.\n", type:"Var"}, {name: "net.PacketHandlerTimeguardThresholdMS", help:"Threshold in milliseconds for the HandlerComponent timeguard, Incoming and Outgoing.", type:"Var"}, {name: "net.PingDisplayServerTime", help:"Show server frame time", type:"Var"}, {name: "net.PingExcludeFrameTime", help:"Calculate RTT time between NIC\'s of server and client.", type:"Var"}, {name: "net.PingDisplayServerTime", help:"Show server frame time. Not available in shipping builds.", type:"Var"}, {name: "net.PingExcludeFrameTime", help:"If true, game frame times are subtracted from calculated ping to approximate actual network ping", type:"Var"}, {name: "net.PingUsePacketRecvTime", help:"Use OS or Receive Thread packet receive time, for calculating the ping. Excludes frame time.", type:"Var"}, {name: "net.PrintNetConnections", help:"Prints information on all net connections of a NetDriver. Defaults to the GameNetDriver. Choose a different driver via NetDriverName= or NetDriverDefinition=", type:"Cmd"}, {name: "net.RandomizeSequence", help:"Randomize initial packet sequence", type:"Var"}, {name: "Net.ProfilerUseComparisonTracking", help:"", type:"Var"}, {name: "Net.PushModelPrintHandles", help:"Prints the list of replicated objects relevant to a specific connection", type:"Cmd"}, {name: "net.PushModelSkipUndirtiedFastArrays", help:"When true, include fast arrays when skipping objects that we can safely see aren\'t dirty.", type:"Var"}, {name: "net.PushModelSkipUndirtiedReplication", help:"When true, skip replicating any objects that we can safely see aren\'t dirty.", type:"Var"}, {name: "net.PushModelValidateProperties", help:"When true, we will compare all push model properties and warn if they haven\'t been marked dirty properly.", type:"Var"}, {name: "net.PushModelValidateSkipUpdate", help:"If enabled, detect when we thought we could skip an object replication based on push model state, but we sent data anyway.", type:"Var"}, {name: "net.QuantizeActorLocationOnSpawn", help:"When enabled, we will quantize Location for newly spawned actors to a single decimal of precision.", type:"Var"}, {name: "net.QuantizeActorRotationOnSpawn", help:"When enabled, we will quantize Rotation for newly spawned actors to a single decimal of precision.", type:"Var"}, {name: "net.QuantizeActorScaleOnSpawn", help:"When enabled, we will quantize Scale for newly spawned actors to a single decimal of precision.", type:"Var"}, {name: "net.QuantizeActorVelocityOnSpawn", help:"When enabled, we will quantize Velocity for newly spawned actors to a single decimal of precision.", type:"Var"}, {name: "net.QueuedBunchTimeFailsafeSeconds", help:"Amount of time in seconds to wait with queued bunches before forcibly processing them all, ignoring the NetDriver\'s HasExceededIncomingBunchFrameProcessingTime.", type:"Var"}, {name: "net.QueuedBunchTimeoutSeconds", help:"Time in seconds to wait for queued bunches on a channel to flush before logging a warning.", type:"Var"}, {name: "net.RandomizeSequence", help:"Randomize initial packet sequence, can provide some obfuscation", type:"Var"}, {name: "net.RcvThreadShouldSleepForLongRecvErrors", help:"Whether or not the receive thread should sleep for RecvFrom errors which are expected to last a long time. 0 = don\'t sleep, 1 = sleep, 2 = exit receive thread.", type:"Var"}, {name: "net.RcvThreadSleepTimeForWaitableErrorsInSeconds", help:"Time the receive thread will sleep when a waitable error is returned by a socket operation.", type:"Var"}, {name: "net.RecreateSocketCooldown", help:"The minimum amount of time, in seconds, between socket recreation attempts.", type:"Var"}, {name: "net.RecreateSocketTimeoutThreshold", help:"The amount of time, in seconds, without receiving a packet or alternatively without a send ack, before triggering socket recreation. (0.0 = off)", type:"Var"}, {name: "net.RecvMultiCapacity", help:"When RecvMulti is enabled, this is the number of packets it is allocated to handle per call - bigger is better (especially under a DDoS), but keep an eye on memory cost.", type:"Var"}, {name: "net.ReliableRPCQueueSize", help:"Maximum number of reliable RPCs queued per object. This is in addition to the send window size. This is to support very large RPCs that are split into smaller pieces.", type:"Var"}, {name: "net.RemapStableSubobjects", help:"If enabled, attempts to remap stable subobjects when net.OptimizedRemapping is also enabled.", type:"Var"}, {name: "net.Replication.DebugProperty", help:"Debugs Replication of property by namePartial name of property to debug", type:"Var"}, {name: "Net.RepGraph.ForceConnectionViewerPriority", help:"Force the connection\'s player controller and viewing pawn as topmost priority. Same as Net.ForceConnectionViewerPriority.", type:"Var"}, {name: "net.ReplicateCustomDeltaPropertiesInRepIndexOrder", help:"If false (default) custom delta properties will replicate in the same order as they\'re added to the lifetime property array during the call to GetLifetimeReplicatedProps. If true custom delta properties will be replicated in the property RepIndex order, which is typically in increasing property offset order. Note that custom delta properties are always serialized after regular properties.", type:"Var"}, {name: "net.ReplicateOnlyBeginPlay", help:"Only allow property replication of actors that had BeginPlay called on them.", type:"Var"}, {name: "net.Replication.DebugProperty", help:"Debugs Replication of property by name, this should be set to the partial name of the property to debug", type:"Var"}, {name: "net.ReservedNetGuidSize", help:"Reserved size in bytes for NetGUID serialization", type:"Var"}, {name: "net.ReportGameTickFlushTime", help:"Record and report to the perf tracking system the processing time of the GameNetDriver\'s TickFlush.", type:"Var"}, {name: "net.ReportSyncLoads", help:"If enabled, the engine will track objects loaded by the networking system and broadcast FNetDelegates::OnSyncLoadDetected to report them.By default they are logged to the LogNetSyncLoads category.", type:"Var"}, {name: "net.RequiredEncryptionNetDriverDefNames", help:"Comma-delimited list of NetDriverDefinition\'s where \'IsEncryptionRequired\' will return true, when \'net.AllowEncryption\' is 2. (specifying \'all\' will enable this for all NetDriverDefinition\'s)", type:"Var"}, {name: "net.ReservedNetGuidSize", help:"Reserved size in bytes for NetGUID serialization, used as a placeholder for later serialization", type:"Var"}, {name: "net.ResetAckStatePostSeamlessTravel", help:"If 1, the server will reset the ack state of the package map after seamless travel. Increases bandwidth usage, but may resolve some issues with GUIDs not being available on clients after seamlessly traveling.", type:"Var"}, {name: "Net.ReuseReplicatorsForDormantObjects", help:"When true, Server\'s will persist and attempt to reuse replicators for Dormant Actors and Objects. This can cut down on bandwidth by preventing redundant information from being sent when waking objects from Dormancy.", type:"Var"}, {name: "net.RPCDoSAnalyticsMaxRPCs", help:"The top \'x\' number of RPC\'s to include in RPC DoS analytics, ranked by RPC rate per Second.", type:"Var"}, {name: "net.RPCDoSDetectionOverride", help:"Overrides whether or not RPC DoS Detection is enabled per-NetDriver. 0 = disabled, 1 = enabled. Example: net.RPCDoSDetectionOverride=GameNetDriver=1,BeaconNetDriver=0", type:"Var"}, {name: "net.RPCDoSForcedRPCTracking", help:"Sets a single RPC that, when encountered, forcibly enables RPC tracking (limited to one RPC for performance). Can also specify a random chance, between 0.0 and 1.0, for when encountering the RPC enables tracking, and a length of time for leaving tracking enabled (disables the next tick, otherwise).Example (50% chance for 10 seconds): net.RPCDoSForcedRPCTracking=ServerAdmin,0.5,10", type:"Var"}, {name: "net.RPCDoSScopeDebugging", help:"Sets whether or not debugging/ensures for RPC DoS Tick/Packet scopes should be enabled.", type:"Var"}, {name: "net.SendDormantDestructionOnRemoval", help:"If true and net.SerializeNewActorOverrideLevel = 0, servers will send destruction info for dormant destroyed actors in invisible levels, regardless of how they were removed. This ensures they destroy on the client, in-case the they (or the levels they are in) were removed unexpectedly.", type:"Var"}, {name: "net.SerializeNewActorOverrideLevel", help:"If true, servers will serialize a spawned, replicated actor\'s level so the client attempts to spawn it into that level too. If false, clients will spawn all these actors into the persistent level.", type:"Var"}, {name: "net.ShareSerializedData", help:"", type:"Var"}, {name: "net.ShareSerializedData", help:"If true, enable shared serialization system used by replication to reduce CPU usage when multiple clients need the same data", type:"Var"}, {name: "net.SkipDestroyNetStartupActorsOnChannelCloseDueToLevelUnloaded", help:"Controls if Actor that is a NetStartUpActor assosciated with the channel is destroyed or not when we receive a channel close with ECloseReason::LevelUnloaded.", type:"Var"}, {name: "net.SkipMissingLevelDisconnect", help:"If true skip disconnecting a player if they have a level that doesn\'t exist on server", type:"Var"}, {name: "net.SubObjects.CompareWithLegacy", help:"When turned on we will collect the subobjects replicated by the ReplicateSubObjects method and compare them with the ones replicated via the Actor\'s registered list. If a divergence is detected it will trigger an ensure.", type:"Var"}, {name: "net.SubObjects.DefaultUseSubObjectReplicationList", help:"Do actors and actorcomponents replicate subobjects using the registration method by default.", type:"Var"}, {name: "net.SubObjects.DetectDeprecatedReplicatedSubObjects", help:"When turned on, we trigger an ensure if we detect a ReplicateSubObjects() function is still implemented in a class that is using the new SubObject list.", type:"Var"}, {name: "net.SubObjects.LogAllComparisonErrors", help:"If enabled log all the errors detected by the CompareWithLegacy cheat. Otherwise only the first ensure triggered gets logged.", type:"Var"}, {name: "net.TrackAsyncLoadingGUIDThresholdOwner", help:"When > 0, if the Net Connection\'s owning Controller or Pawn is waiting on Async Loads for longer than this threshold, we will fire a CSV Event to track it. Used for Debugging and Profiling", type:"Var"}, {name: "net.TrackDormantObjectsByLevel", help:"When true, network object list will maintain a set of dormant actors per connnection per level.", type:"Var"}, {name: "net.TrackFlushedDormantObjects", help:"If enabled, track dormant subobjects when dormancy is flushed, so they can be properly deleted if destroyed prior to the next ReplicateActor.", type:"Var"}, {name: "net.TrackNetSerializeObjectReferences", help:"If true, we will create small layouts for Net Serialize Structs if they have Object Properties. This can prevent some Shadow State GC crashes.", type:"Var"}, {name: "net.TrackQueuedActorThresholdOwner", help:"When > 0, if the Net Connection\'s owning Controller or Pawn has Queued Bunches for longer than this threshold, we will fire a CSV Event to track it. Used for Debugging and Profiling", type:"Var"}, {name: "net.UnreliableRPCQueueSize", help:"Maximum number of unreliable RPCs queued per object. If more RPCs are queued then older ones will be dropped.", type:"Var"}, {name: "net.UseRecvMulti", help:"If true, and if running on a Unix/Linux platform, multiple packets will be retrieved from the socket with one syscall, improving performance and also allowing retrieval of timestamp information.", type:"Var"}, {name: "net.UseRecvTimestamps", help:"If true and if net.UseRecvMulti is also true, on a Unix/Linux platform, the kernel timestamp will be retrieved for each packet received, providing more accurate ping calculations.", type:"Var"}, {name: "net.VerifyShareSerializedData", help:"", type:"Var"}, {name: "net.VerifyMagicHeader", help:"Whether or not verification of the magic header is performed, prior to processing a packet. Disable if transitioning to a new magic header, while wishing to continue supporting the old header for a time.", type:"Var"}, {name: "net.VerifyNetClientID", help:"Whether or not verification of the packet ClientID value is performed.", type:"Var"}, {name: "net.VerifyNetSessionID", help:"Whether or not verification of the packet SessionID value is performed.", type:"Var"}, {name: "net.VerifyShareSerializedData", help:"Debug option to verify shared serialization data during replication", type:"Var"}, {name: "net.WithArrayOnRepFix", help:"If true, attempt to prevent issues with Arrays not receiving OnRep calls until their size changes if their Archetypes have different values from instances in levels.", type:"Var"}, {name: "NetAnalytics.MinimumNumberOfPacketsForBurstTracking", help:"The minimum number of packets that must have been notified (in our out) in order to consider a frame for packet loss by percentage.See NetAnalytics.PercentOfDroppedPacketsToConsiderBurst", type:"Var"}, {name: "NetAnalytics.NumberOfConsecutiveDroppedPacketsToConsiderBurst", help:"The number of packets lost in a row (in or out) for us to consider the frame as having bursts of packet loss.Not affected by NetAnalytics.MinimumNumberOfPacketsForBurstTracking.", type:"Var"}, {name: "NetAnalytics.PercentOfDroppedPacketsToConsiderBurst", help:"The percentage of packets lost in a frame (in or out) for us to consider the frame as having bursts of packet loss.\nSee NetAnalytics.MinimumNumberOfPacketsForBurstTracking.", type:"Var"}, {name: "NetEmulation.DropAnyUnreliable", help:"Drop any sent unreliable RPCs. (optional)<0-100> to set the drop percentage (default is 20).", type:"Cmd"}, {name: "NetEmulation.DropNothing", help:"Disables any RPC drop settings previously set.", type:"Cmd"}, {name: "NetEmulation.DropUnreliableOfActorClass", help:"Drop random unreliable RPCs sent on actors of the given class type. <ActorClassName> Class name to match with (can be a substring). (optional)<0-100> to set the drop percentage (default is 20).", type:"Cmd"}, {name: "NetEmulation.DropUnreliableOfSubObjectClass", help:"Drop randomly the unreliable RPCs of a subobject of the given class. <SubObjectClassName> The name of the RPC (can be a substring). (optional)<0-100> to set the drop percentage (default is 20).", type:"Cmd"}, {name: "NetEmulation.DropUnreliableRPC", help:"Drop randomly the unreliable RPCs of the given name. <RPCName> The name of the RPC (can be a substring). (optional)<0-100> to set the drop percentage (default is 20).", type:"Cmd"}, {name: "NetEmulation.Off", help:"Turn off network emulation", type:"Cmd"}, {name: "NetEmulation.PktDup", help:"Simulates sending/receiving duplicate network packets", type:"Cmd"}, {name: "NetEmulation.PktEmulationProfile", help:"Apply a preconfigured emulation profile.", type:"Cmd"}, {name: "NetEmulation.PktIncomingLagMax", help:"Sets maximum incoming packet latency", type:"Cmd"}, {name: "NetEmulation.PktIncomingLagMin", help:"Sets minimum incoming packet latency", type:"Cmd"}, {name: "NetEmulation.PktIncomingLoss", help:"Simulates incoming packet loss", type:"Cmd"}, {name: "NetEmulation.PktJitter", help:"Simulates outgoing packet jitter", type:"Cmd"}, {name: "NetEmulation.PktLag", help:"Simulates network packet lag", type:"Cmd"}, {name: "NetEmulation.PktLagMax", help:"Sets maximum outgoing packet latency)", type:"Cmd"}, {name: "NetEmulation.PktLagMin", help:"Sets minimum outgoing packet latency", type:"Cmd"}, {name: "NetEmulation.PktLagVariance", help:"Simulates variable network packet lag", type:"Cmd"}, {name: "NetEmulation.PktLoss", help:"Simulates network packet loss", type:"Cmd"}, {name: "NetEmulation.PktOrder", help:"Simulates network packets received out of order", type:"Cmd"}, {name: "NetTrace.SetTraceVerbosity", help:"Start NetTrace with given verbositylevel.", type:"Cmd"}, {name: "niagara.AllowAllNiagaraNodesInEmitterGraphs", help:"If true, all nodes will be allowed in the Niagara emitter graphs. \n", type:"Var"}, {name: "niagara.CreateShadersOnLoad", help:"Whether to create Niagara\'s simulation shaders on load, which can reduce hitching, but use more memory. Otherwise they will be created as needed.", type:"Var"}, {name: "Niagara.EmitterStatsFormat", help:"0 shows the particles count, ms, mb and state. 1 shows particles count.", type:"Var"}, {name: "Niagara.GPUCountBufferSlack", help:"Multiplier of the GPU count buffer size to prevent frequent re-allocation.", type:"Var"}, {name: "Niagara.GPUCountManager.AllocateIncrement", help:"If we run out of space for allocations this is how many allocate rather than a single entry. (default=64)", type:"Var"}, {name: "Niagara.GPUCulling", help:"Whether to frustum and camera distance cull particles on the GPU", type:"Var"}, {name: "Niagara.GPUCulling.CPUToGPUThreshold", help:"Particle count to move from a CPU sort to a GPU cull. -1 disables. (default=0)", type:"Var"}, {name: "Niagara.GPUSorting.CPUToGPUThreshold", help:"Particle count to move from a CPU sort to a GPU sort. -1 disables. (default=-1)", type:"Var"}, {name: "Niagara.MinCulledGPUInstanceCount", help:"Minimum number of culled (per-view) instance count entries allocated in the global buffer. (default=2048)", type:"Var"}, {name: "Niagara.MinGPUInstanceCount", help:"Minimum number of instance count entries allocated in the global buffer. (default=2048)", type:"Var"}, {name: "Niagara.RadixSortThreshold", help:"Instance count at which radix sort gets used instead of introspective sort.\nSet to -1 to never use radixsort. (default=400)", type:"Var"}, {name: "Niagara.Ribbon.GpuAllocateMaxCount", help:"When enabled (default) we allocate the maximum number of required elements.This can result in memory bloat if the count is highly variable but will be more stable performance wise", type:"Var"}, {name: "Niagara.Ribbon.GpuBufferAlign", help:"When not allocating the maximum number of required elements we align up the request elements to this size to improve buffer reuse.", type:"Var"}, {name: "Niagara.Ribbon.GpuBufferCachePurgeCounter", help:"The number of frames we hold onto ribbon buffer for.Where 0 (Default) we purge them if not used next frame.Negative values will purge the buffers the same frame, essentially zero reusing.", type:"Var"}, {name: "Niagara.Ribbon.GpuEnabled", help:"Enable any GPU ribbon related code (including GPU init).", type:"Var"}, {name: "Niagara.Ribbon.GpuInitMode", help:"Modifies the GPU initialization mode used, i.e. offloading CPU calculations to the GPU.\n0 = Respect bUseGPUInit from properties (Default)\n1 = Force enabled\n2 = Force disabled", type:"Var"}, {name: "Niagara.Ribbon.MinSegmentLength", help:"Min length of niagara ribbon segments. (default=1)", type:"Var"}, {name: "Niagara.Ribbon.ShareGeneratedData", help:"Allow ribbons to share the generate data where possible.", type:"Var"}, {name: "Niagara.Ribbon.Tessellation.Enabled", help:"Determine if we allow tesellation on this platform or not.", type:"Var"}, {name: "Niagara.Ribbon.Tessellation.MaxErrorScreenPercentage", help:"Screen percentage used to compute the tessellation factor. \nSmaller values will generate more tessellation, up to max tesselltion. (default=0.002)", type:"Var"}, {name: "Niagara.Ribbon.Tessellation.MaxInterp", help:"When TessellationAngle is > 0, this is the maximum tesselation factor. \nHigher values allow more evenly divided tesselation. \nWhen TessellationAngle is 0, this is the actually tesselation factor (default=16).", type:"Var"}, {name: "Niagara.Ribbon.Tessellation.MinAbsoluteError", help:"Minimum absolute world size error when tessellating. \nPrevent over tessellating when distance gets really small. (default=0.5)", type:"Var"}, {name: "Niagara.Ribbon.Tessellation.MinAngle", help:"Ribbon segment angle to tesselate in radian. (default=15 degrees)", type:"Var"}, {name: "niagara.ShowShaderCompilerWarnings", help:"When set to 1, will display all warnings from Niagara shader compiles.", type:"Var"}, {name: "Niagara.StaticSwitch.EnableAutoRefreshOldStaticSwitches", help:"Enables auto refresh for old static switch nodes on post load and updates to enum assets. Enable this and cook assets to check how many old nodes operate on outdated enums", type:"Var"}, {name: "Niagara.WaveIntrinsics", help:"", type:"Var"}, {name: "NiagaraDebugHud", help:"Shorter version to quickly toggle debug hud modes\n No value will toggle the overview on / off\n A numberic value selects which overmode to set, where 0 is off\n", type:"Cmd"}, {name: "NiagaraReportSystemMemory", help:"Dumps some rough information about system memory breakdown", type:"Cmd"}, {name: "nne.ort.enableprofiling", help:"True if NNERuntimeORT plugin should create ORT sessions with profiling enabled.\nWhen profiling is enabled ORT will create standard performance tracing json files next to the editor executable.\nThe files will be prefixed by \'NNERuntimeORTProfile_\' and can be loaded for example using chrome://tracing.\nMore information can be found at https://onnxruntime.ai/docs/performance/tune-performance/profiling-tools.html\n", type:"Var"}, {name: "NNEDenoiser", help:"Enable the NNE Denoiser.", type:"Var"}, {name: "NNEDenoiser.Asset", help:"Defines denoiser asset to used to create the denoiser.\n 0: Use denoiser asset defined by Project Settings\n 1: OIDN Fast\n 2: OIDN Balanced\n 3: OIDN High Quality\n 4: OIDN Fast | Alpha\n 5: OIDN Balanced | Alpha\n 6: OIDN High Quality | Alpha", type:"Var"}, {name: "NNEDenoiser.Runtime.Name", help:"Defines the runtime name to run the denoiser model. Leave empty to use default.", type:"Var"}, {name: "NNEDenoiser.Runtime.Type", help:"Defines the runtime type to run the denoiser model.\n 0: CPU\n 1: GPU\n 2: RDG\n", type:"Var"}, {name: "NNEDenoiser.TemporalAsset", help:"Defines temporal denoiser asset to used to create the temporal denoiser.\n 0: Use temporal denoiser asset defined by Project Settings\n 1: OIDN Balanced\n 2: OIDN Balanced | Alpha", type:"Var"}, {name: "np2.CMC.EnableClientAuthScheduledPushForces", help:"Enable a client-authoritative network flow for adding forces to pushed physics objects, requires physics prediction to be enabled in the project settings. NOTE: This is not recommended for networked physics and can produce inconsistency bugs where the client adds multiple forces for a single physics tick on the server, especially if async physics is not enabled.", type:"Var"}, {name: "np2.EnableDebugRPC", help:"(DEPRECATED 5.4, only part of the legacy physics frame offset logic) Sends extra debug information to clients about server side input buffering", type:"Var"}, {name: "np2.EnableDefaultReplication", help:"Enable default replication in the networked physics prediction flow.", type:"Var"}, {name: "np2.NetworkPhysicsPredictionFrameOffset", help:"(DEPRECATED 5.4, use np2.PredictionAsyncFrameBuffer instead) Additional frame offset to be added to the local to server offset used by network prediction", type:"Var"}, {name: "np2.NumRedundantCmds", help:"(DEPRECATED 5.4, only part of the legacy physics frame offset logic) Number of redundant user cmds to send per frame", type:"Var"}, {name: "np2.PredictionAsyncFrameBuffer", help:"(DEPRECATED 5.5, Use np2.TickOffsetBufferTime instead) Additional frame offset to be added to the local to server offset used by network prediction", type:"Var"}, {name: "np2.PredictiveInterpolation.AlwaysHardSnap", help:"When true, predictive interpolation replication mode will always hard snap. Used as a backup measure", type:"Var"}, {name: "np2.PredictiveInterpolation.AverageReceiveIntervalSmoothing", help:"Recommended range: 1.0 - 5.0. Higher value makes the average receive interval adjust itself slower, reducing spikes in InterpolationTime.", type:"Var"}, {name: "np2.PredictiveInterpolation.CorrectConnectedBodies", help:"When true, transform corrections will also apply to any connected physics object.", type:"Var"}, {name: "np2.PredictiveInterpolation.CorrectConnectedBodiesFriction", help:"When true, transform correction on any connected physics object will also recalculate their friction.", type:"Var"}, {name: "np2.PredictiveInterpolation.CorrectionAsVelocity", help:"When true, predictive interpolation will apply positional and rotational offset correction as a velocity instead of as a transform shift.", type:"Var"}, {name: "np2.PredictiveInterpolation.DisableErrorVelocityLimits", help:"Disable the velocity limit and allow error accumulation at any velocity.", type:"Var"}, {name: "np2.PredictiveInterpolation.DisableSoftSnap", help:"When true, predictive interpolation will not use softsnap to correct the replication with when velocity fails. Hardsnap will still eventually kick in if replication can\'t reach the target.", type:"Var"}, {name: "np2.PredictiveInterpolation.DontClearTarget", help:"When true, predictive interpolation will not lose track of the last replicated state after coming to rest.", type:"Var"}, {name: "np2.PredictiveInterpolation.DrawDebugTargets", help:"Draw target states, color coded by which ServerFrame they originate from, replicated targets are large and extrapolated targets are small. There is a Z offset to the draw calls.", type:"Var"}, {name: "np2.PredictiveInterpolation.DrawDebugVectors", help:"Draw replication vectors, target velocity, replicated velocity, velocity change between replication calls etc.", type:"Var"}, {name: "np2.PredictiveInterpolation.DrawDebugZOffset", help:"Offset in Z axis for draw debug calls", type:"Var"}, {name: "np2.PredictiveInterpolation.EarlyOutAngle", help:"If object is within this rotational angle (in degrees) from the source target, early out from replication and apply sleep if replicated.", type:"Var"}, {name: "np2.PredictiveInterpolation.EarlyOutDistanceSqr", help:"Squared value. If object is within this distance from the source target, early out from replication and apply sleep if replicated.", type:"Var"}, {name: "np2.PredictiveInterpolation.EarlyOutWithVelocity", help:"If true, allow replication logic to early out if current velocities are driving replication well enough. If false, only early out if target velocity is zero.", type:"Var"}, {name: "np2.PredictiveInterpolation.ErrorAccAngVelMaxLimit", help:"If target angular velocity (in radians) is below this limit we check for desync to trigger softsnap and accumulate time to build up to a hardsnap.", type:"Var"}, {name: "np2.PredictiveInterpolation.ErrorAccLinVelMaxLimit", help:"If target velocity is below this limit we check for desync to trigger softsnap and accumulate time to build up to a hardsnap.", type:"Var"}, {name: "np2.PredictiveInterpolation.ErrorAccumulationDecreaseMultiplier", help:"Multiplier to adjust how fast we decrease accumulated error time when we no longer accumulate error.", type:"Var"}, {name: "np2.PredictiveInterpolation.ErrorAccumulationSeconds", help:"Perform a reposition if replication have not been able to cover the min expected distance towards the target for this amount of time.", type:"Var"}, {name: "np2.PredictiveInterpolation.ExtrapolationMinTime", help:"Clamps minimum extrapolation time. Value in seconds. Disable minimum clamp by setting to 0.", type:"Var"}, {name: "np2.PredictiveInterpolation.ExtrapolationTimeMultiplier", help:"Multiplier to adjust the time to extrapolate the target forward over, the time is based on current send-rate.", type:"Var"}, {name: "np2.PredictiveInterpolation.FakeTargetOnClientWakeUp", help:"When true, predictive interpolation will fake a replication target at the current transform marked as asleep, this target only apply if the client doesn\'t receive targets from the server. This stops the client from desyncing from the server if being woken up by mistake", type:"Var"}, {name: "np2.PredictiveInterpolation.InterpolationTimeMultiplier", help:"Multiplier to adjust the interpolation time which is based on the sendrate of state data from the server.", type:"Var"}, {name: "np2.PredictiveInterpolation.KinematicHardSnap", help:"When true, predictive interpolation will perform a hard snap for objects that are kinematic.", type:"Var"}, {name: "np2.PredictiveInterpolation.KinematicPrediction", help:"When true, predictive interpolation will perform predictive movement instead of interpolation for kinematic objects.", type:"Var"}, {name: "np2.PredictiveInterpolation.MinExpectedDistanceCovered", help:"Value between 0-1, in percentage where 0.25 = 25%. How much of the expected distance based on replication velocity should the object have covered in a simulation tick to Not be considered stuck.", type:"Var"}, {name: "np2.PredictiveInterpolation.PosCorrectionTimeBase", help:"Base time to correct positional offset over. RoundTripTime * PosCorrectionTimeMultiplier is added on top of this.", type:"Var"}, {name: "np2.PredictiveInterpolation.PosCorrectionTimeMin", help:"Min time to correct positional offset over. DeltaSeconds is added on top of this.", type:"Var"}, {name: "np2.PredictiveInterpolation.PosCorrectionTimeMultiplier", help:"Multiplier to adjust how much of RoundTripTime to add to positional offset correction.", type:"Var"}, {name: "np2.PredictiveInterpolation.PostResimWaitForUpdate", help:"After a resimulation, wait for replicated states that correspond to post-resim state before processing replication again.", type:"Var"}, {name: "np2.PredictiveInterpolation.RotCorrectionTimeBase", help:"Base time to correct rotational offset over. RoundTripTime * RotCorrectionTimeMultiplier is added on top of this.", type:"Var"}, {name: "np2.PredictiveInterpolation.RotCorrectionTimeMin", help:"Min time to correct rotational offset over. DeltaSeconds is added on top of this.", type:"Var"}, {name: "np2.PredictiveInterpolation.RotCorrectionTimeMultiplier", help:"Multiplier to adjust how much of RoundTripTime to add to rotational offset correction.", type:"Var"}, {name: "np2.PredictiveInterpolation.RotInterpolationTimeMultiplier", help:"Multiplier to adjust the rotational interpolation time which is based on the sendrate of state data from the server.", type:"Var"}, {name: "np2.PredictiveInterpolation.SkipReplication", help:"When true, predictive interpolation is not applied anymore letting the object simulate freely instead", type:"Var"}, {name: "np2.PredictiveInterpolation.SkipVelocityRepOnPosEarlyOut", help:"If true, don\'t run linear velocity replication if position can early out but angular can\'t early out.", type:"Var"}, {name: "np2.PredictiveInterpolation.SleepConnectedBodies", help:"When true, sleep state will be applied to any dynamic physics object connected to the replicated object.", type:"Var"}, {name: "np2.PredictiveInterpolation.SleepSecondsClearTarget", help:"Wait for the object to sleep for this many seconds before clearing the replication target, to ensure nothing wakes up the object just after it goes to sleep on the client.", type:"Var"}, {name: "np2.PredictiveInterpolation.SoftSnapPosStrength", help:"Value in percent between 0.0 - 1.0 representing how much to softsnap each tick of the remaining positional distance.", type:"Var"}, {name: "np2.PredictiveInterpolation.SoftSnapRotStrength", help:"Value in percent between 0.0 - 1.0 representing how much to softsnap each tick of the remaining rotational distance.", type:"Var"}, {name: "np2.PredictiveInterpolation.SoftSnapToSource", help:"If true, soft snap will be performed towards the source state of the current target instead of the predicted state of the current target.", type:"Var"}, {name: "np2.PredictiveInterpolation.TargetTickAlignmentClampMultiplier", help:"Multiplier to adjust clamping of target alignment via TickCount. Multiplier is performed on AverageReceiveInterval.", type:"Var"}, {name: "np2.PredictiveInterpolation.VelocityBased", help:"When true, predictive interpolation replication mode will only apply linear velocity and angular velocity", type:"Var"}, {name: "np2.ReplicationCache.LingerForNSeconds", help:"How long to keep data in the replication cache without the actor accessing it, after this we stop caching the actors state until it tries to access it again.", type:"Var"}, {name: "np2.Resim.AllowInputExtrapolation", help:"When true and not locally controlled, allow inputs to be extrapolated from last known and if there is a gap allow interpolation between two known inputs.", type:"Var"}, {name: "np2.Resim.AllowRewindToClosestState", help:"When rewinding to a specific frame, if the client doens\'t have state data for that frame, use closest data available. Only affects the first rewind frame, when FPBDRigidsEvolution is set to Reset.", type:"Var"}, {name: "np2.Resim.AngVelStabilityMultiplier", help:"Recommended range between 0.0-1.0. Lower value means more stable angular velocity corrections.", type:"Var"}, {name: "np2.Resim.ApplyDataInsteadOfMergeData", help:"When true, call ApplyData for each data instead of MergeData when having to use multiple data entries in one frame.", type:"Var"}, {name: "np2.Resim.ApplyTargetsWhileResimulating", help:"If false, target states from the server are only applied on rewind. If true, target states from the server are applied during resimulation if there are any available.", type:"Var"}, {name: "np2.Resim.CompareInputToTriggerRewind", help:"When true, compare local players predicted inputs with incoming server inputs to trigger resimulations if they differ, comparison done through FNetworkPhysicsData::CompareData.", type:"Var"}, {name: "np2.Resim.CompareStateToTriggerRewind", help:"When true, cache local players custom state struct in rewind history and compare the predicted state with incoming server state to trigger resimulations if they differ, comparison done through FNetworkPhysicsData::CompareData", type:"Var"}, {name: "np2.Resim.DisableReplicationOnInteraction", help:"If a resim object interacts with another object not running resimulation, deactivate that objects replication until interaction stops.", type:"Var"}, {name: "np2.Resim.DrawDebug", help:"Resimulation debug draw-calls", type:"Var"}, {name: "np2.Resim.EnableReliableFlow", help:"EXPERIMENTAL -- When true, allow data to be sent reliably. Also send FNetworkPhysicsData marked with FNetworkPhysicsData::bimportant reliably over the network.", type:"Var"}, {name: "np2.Resim.EnableUnreliableFlow", help:"When true, allow data to be sent unreliably. Also sends FNetworkPhysicsData not marked with FNetworkPhysicsData::bimportant unreliably over the network.", type:"Var"}, {name: "np2.Resim.PosStabilityMultiplier", help:"Recommended range between 0.0-1.0. Lower value means more stable positional corrections.", type:"Var"}, {name: "np2.Resim.RedundantInputs", help:"How many extra inputs to send with each unreliable network message, to account for packetloss.", type:"Var"}, {name: "np2.Resim.RedundantStates", help:"How many extra states to send with each unreliable network message, to account for packetloss.", type:"Var"}, {name: "np2.Resim.RotStabilityMultiplier", help:"Recommended range between 0.0-1.0. Lower value means more stable rotational corrections.", type:"Var"}, {name: "np2.Resim.RuntimeCorrectConnectedBodies", help:"If true runtime position and rotation correction will also shift transform of any connected physics objects. Used if RuntimeCorrectionEnabled is true.", type:"Var"}, {name: "np2.Resim.RuntimeCorrectionEnabled", help:"Apply positional and rotational runtime corrections while within resim trigger distance.", type:"Var"}, {name: "np2.Resim.RuntimeVelocityCorrection", help:"Apply linear and angular velocity corrections in runtime while within resim trigger distance. Used if RuntimeCorrectionEnabled is true.", type:"Var"}, {name: "np2.Resim.SimProxyRepMode", help:"All actors with a NetworkPhysicsSettingsComponent and that are running resimulation and is ROLE_SimulatedProxy will change their physics replication mode. -1 = Disabled, 0 = Default, 1 = PredictiveInterpolation, 2 = Resimulation", type:"Var"}, {name: "np2.Resim.ValidateDataOnGameThread", help:"When true, perform server-side input validation through FNetworkPhysicsData::ValidateData on the Game Thread. If false, perform the call on the Physics Thread.", type:"Var"}, {name: "np2.Resim.VelStabilityMultiplier", help:"Recommended range between 0.0-1.0. Lower value means more stable linear velocity corrections.", type:"Var"}, {name: "np2.TickOffsetBufferTime", help:"Value in milliseconds, default 60. Additional offset to be added to the local to server offset used by network prediction, this results in a buffer server-side for incoming data that uses the client/server physics offset.", type:"Var"}, {name: "np2.TickOffsetCorrectionLimit", help:"(DEPRECATED 5.5, Use np2.TickOffsetCorrectionSizeTimeLimit instead) If the client gets out of sync with physics ticks more than this limit, cut the losses and reset the offset.", type:"Var"}, {name: "np2.TickOffsetCorrectionSizeTimeLimit", help:"Value in milliseconds. Note: Keep this equal to or larger than np2.TickOffsetBufferTime. If the client gets out of sync with physics ticks and the desync is larger than this value, reset the offset.", type:"Var"}, {name: "np2.TickOffsetCorrectionTimeLimit", help:"Value in milliseconds. If the client gets out of sync with physics ticks and can\'t get in sync again for this amount of time, reset the offset.", type:"Var"}, {name: "np2.TickOffsetUpdateInterval", help:"(DEPRECATED 5.5, Use np2.TickOffsetUpdateIntervalTime instead) How many physics ticks to wait between each tick offset update. Lowest viable value = 1, which means update each tick. Deactivate physics offset updates by setting to 0 or negative value.", type:"Var"}, {name: "np2.TickOffsetUpdateIntervalTime", help:"Value in milliseconds, default 100. How long time between syncing the tick offset between client and server. Deactivate syncing by setting value 0.", type:"Var"}, {name: "np2.TimeDilationAmount", help:"Server-side CVar, Disable TimeDilation by setting to 0 | Value is in percent where 0.01 = 1% dilation. Example: 1.0/0.01 = 100, meaning that over the time it usually takes to tick 100 physics steps we will tick 99 or 101 depending on if we dilate up or down.", type:"Var"}, {name: "np2.TimeDilationEscalation", help:"Server-side CVar, Dilate the time more depending on how many ticks we need to adjust. When set to false we use the set TimeDilationAmount and wait the amount of time it takes to perform correct the offset. When set to true we multiply the TimeDilationAmount with the buffer offset count which will correct the offset in one TimeDilationAmount cycle.", type:"Var"}, {name: "np2.TimeDilationEscalationDecay", help:"Value is a multiplier, Default: 0.05. For each escalated TimeDilation amount, also decay by this much. Disable by setting to 0.", type:"Var"}, {name: "np2.TimeDilationEscalationDecayMax", help:"Value is a multiplier, Default: 0.5. The max decay value for escalated time dilation. Lower value means higher decay.", type:"Var"}, {name: "np2.TimeDilationMax", help:"Max value of the time dilation multiplier.", type:"Var"}, {name: "np2.TimeDilationMin", help:"Min value of the time dilation multiplier", type:"Var"}, {name: "oculus.mr.CastingLantency", help:"Casting Latency", type:"Var"}, {name: "oculus.mr.ChromaKeyColor_B", help:"Chroma Key Color B", type:"Var"}, {name: "oculus.mr.ChromaKeyColor_G", help:"Chroma Key Color G", type:"Var"}, {name: "oculus.mr.ChromaKeyColor_R", help:"Chroma Key Color R", type:"Var"}, {name: "oculus.mr.ChromaKeySimilarity", help:"Chroma Key Similarity", type:"Var"}, {name: "oculus.mr.ChromaKeySmoothRange", help:"Chroma Key Smooth Range", type:"Var"}, {name: "oculus.mr.ChromaKeySpillRange", help:"Chroma Key Spill Range", type:"Var"}, {name: "oculus.mr.ExternalCompositionPostProcess", help:"Enable MR external composition post process: 0=Off, 1=On", type:"Var"}, {name: "oculus.mr.OverrideParameters", help:"Use the Mixed Reality console variables", type:"Var"}, {name: "ObjectTools.MaxRecursionDepth", help:"How many times to recurse to find the object to search for", type:"Var"}, {name: "ObjectTools.MaxTimesToCheckSameObject", help:"Number of times to recurse on the same object when mapping property chains to objects.", type:"Var"}, {name: "odsc.excludedclasses", help:"Controls what packages will be ignored during material loading to speed it up. This will exclude uassets inheriting from these classes\nThis list can contain multiple classes, separated by \'|\'\n", type:"Var"}, {name: "odsc.logmissedmaterials", help:"Logs materials that were not found by the ODSC server", type:"Cmd"}, {name: "ODSC.MaterialUpdateFlags", help:"Changes the material update flags when ODSC receives new shaders and needs to update the materials\n0 (default): no additional work\n1: Reregister all components while updating the material\n2: Sync with the rendering thread after all the calls to RecacheUniformExpressions\n4 (legacy): Recreates only the render state for *all* components, including the ones not changed by ODSC\n", type:"Var"}, {name: "ODSC.recompilemode", help:"Highly experimental - Changes how recompileshaders behaves in cooked build\n0 (legacy): Gathers all visible materials in a single frame and compiles all permutations for them\n1 (default): Compile only the permutations that are requested by the renderer. Faster iteration but more prone to hitching because of MDC recaching\n", type:"Var"}, {name: "odsc.shadermaps.lifetime", help:"Controls how many shader recompiles can happen before deleting an unused shadermap. Higher values means more memory, but faster iteration time\n-1 means we never delete shader maps\n", type:"Var"}, {name: "odsc.shadermaps.numbeforegc", help:"Controls how many shader maps we keep in memory before we start deleting them. Higher values means more memory, but faster iteration time\n-1 means we never delete shader maps\n", type:"Var"}, {name: "Oodle", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "OpenGL.BindlessTexture", help:"If true, use GL_ARB_bindless_texture over traditional glBindTexture/glBindSampler.", type:"Var"}, {name: "OpenGL.MaxSubDataSize", help:"Maximum amount of data to send to glBufferSubData in one call", type:"Var"}, {name: "OpenGL.RebindTextureBuffers", help:"If true, rebind GL_TEXTURE_BUFFER\'s to their GL_TEXTURE name whenever the buffer is modified.", type:"Var"}, {name: "OpenGL.SkipCompute", help:"If true, don\'t issue dispatch work.", type:"Var"}, {name: "OpenGL.UBODirectWrite", help:"Enables direct writes to the UBO via Buffer Storage", type:"Var"}, {name: "OpenGL.UBOPoolSize", help:"Size of the UBO pool, 0 disables UBO Pool", type:"Var"}, {name: "OpenGL.UseBufferDiscard", help:"If true, use dynamic buffer orphaning hint.", type:"Var"}, {name: "OpenGL.UseEmulatedUBs", help:"If true, enable using emulated uniform buffers on ES2 mode.", type:"Var"}, {name: "OpenGL.UseGlClipControlIfAvailable", help:"If true, the engine trys to use glClipControl if the driver supports it.", type:"Var"}, {name: "OpenGL.UseMapBuffer", help:"If true, use glMapBuffer otherwise use glBufferSubdata.", type:"Var"}, {name: "OpenGL.UseSeparateShaderObjects", help:"If set to 1, use OpenGL\'s separate shader objects to eliminate expensive program linking", type:"Var"}, {name: "OpenGL.UseStagingBuffer", help:"Enables maps of dynamic vertex buffers to go to a staging buffer", type:"Var"}, {name: "OpenGL.UseVAB", help:"If true, use GL_VERTEX_ATTRIB_BINDING instead of traditional vertex array setup.", type:"Var"}, {name: "OSSNull.AddUserNumToNullId", help:"True if login name should include the local user number, which allows different stable Ids per user num", type:"Var"}, {name: "OSSNull.AutoLoginAtStartup", help:"True if it should login the first user at startup like single-user platforms, false to only login when requested", type:"Var"}, {name: "OSSNull.ForceOfflineMode", help:"True if it should fail faked network queries and act like an offline system", type:"Var"}, {name: "OSSNull.ForceShowLoginUIUserChange", help:"True if the user index should change during login UI to emulate a platform user change", type:"Var"}, {name: "OSSNull.ForceStableNullId", help:"True if it should use a system-stable null Id for login, same as -StableNullID on command line", type:"Var"}, {name: "OSSNull.OnlineRequiresSecondLogin", help:"True if the first login only counts as local login, a second is required for online access", type:"Var"}, {name: "OSSNull.RequireLoginCredentials", help:"True if login should require a user/pass to act like an external service, false to match most platforms and use the default", type:"Var"}, {name: "OSSNull.RequireShowLoginUI", help:"True if login requires calling ShowLoginUI on the externalUI, depends on SupportExternalUI", type:"Var"}, {name: "OSSNull.SupportExternalUI", help:"True if it should support an external UI interface", type:"Var"}, {name: "OutputLogModule.HideConsole", help:"Whether debug console widgets should be hidden (false by default)", type:"Var"}, {name: "p.AABBMaxChildrenInLeaf", help:"", type:"Var"}, {name: "p.AABBMaxTreeDepth", help:"", type:"Var"}, {name: "p.aabbtree.DirtyElementGridCellSize", help:"DirtyElement Grid acceleration structure cell size in cm. 0 or less will disable the feature", type:"Var"}, {name: "p.aabbtree.DirtyElementMaxCellCapacity", help:"The maximum number of dirty elements that can be added to a single grid cell before spilling to slower flat list", type:"Var"}, {name: "p.aabbtree.DirtyElementMaxGridCellQueryCount", help:"Maximum grid cells to query (per raycast for example) in DirtyElement grid acceleration structure before falling back to brute force", type:"Var"}, {name: "p.aabbtree.DirtyElementMaxPhysicalSizeInCells", help:"If a dirty element stradles more than this number of cells, it will no be added to the grid acceleration structure", type:"Var"}, {name: "p.aabbtree.DynamicTreeBoundingBoxPadding", help:"Additional padding added to bounding boxes for dynamic AABB trees to amortize update cost", type:"Var"}, {name: "p.aabbtree.DynamicTreeLeafCapacity", help:"Dynamic Tree Leaf Capacity", type:"Var"}, {name: "p.aabbtree.MaxProcessingTimePerSliceSeconds", help:"Set to True if we want to timeslice tree generation by a milisecond budget instead of per nodes processed or data size copied", type:"Var"}, {name: "p.aabbtree.MinDataChunkToProcessBetweenTimeChecks", help:"Minimum amount of data elements to process before checking if we are withing budget", type:"Var"}, {name: "p.aabbtree.MinNodesChunkToProcessBetweenTimeChecks", help:"Minimum amount of nodes we want to process before checking if we are withing budget", type:"Var"}, {name: "p.aabbtree.splitataveragecenter", help:"Split AABB tree nodes at the average of the element centers", type:"Var"}, {name: "p.aabbtree.splitonvarianceaxis", help:"Split AABB tree nodes along the axis with the largest element center variance", type:"Var"}, {name: "p.aabbtree.updatedirtyelementpayloads", help:"Allow AABB tree elements to update internal payload data when they receive a payload update", type:"Var"}, {name: "p.aabbtree.UseTimeSliceMillisecondBudget", help:"Set to True if we want to timeslice tree generation by a milisecond budget instead of per nodes processed", type:"Var"}, {name: "p.AddFormerBaseVelocityToRootMotionOverrideWhenFalling", help:"To avoid sudden velocity changes when a root motion source moves the pawn from a moving base to free fall, this CVar will enable the FormerBaseVelocityDecayHalfLife property on CharacterMovementComponent.", type:"Var"}, {name: "p.AggregateGeom.ISPC", help:"Whether to use ISPC optimizations in physics aggregate geometry calculations", type:"Var"}, {name: "p.AllowKinematicKinematicConstraints", help:"Do not create constraints between two rigid kinematics.", type:"Var"}, {name: "p.AlwaysCreatePhysicsStateConversionHack", help:"Hack to convert actors with query and ignore all to always create physics.", type:"Var"}, {name: "p.AngularEtherDragOverride", help:"Set an override angular ether drag value. -1.f to disable", type:"Var"}, {name: "p.AnimDynamics.ComponentAppliedLinearAccClampOverride", help:"Override the per asset setting for all axis (X,Y & Z) of ComponentAppliedLinearAccClamp for all Anim Dynamics Nodes. Negative values are ignored.", type:"Var"}, {name: "p.AnimDynamics.GravityScale", help:"Multiplies the defalut gravity and the gravity override on all Anim Dynamics Nodes.", type:"Var"}, {name: "p.AnimDynamicsDetailedStats", help:"When set to 1, will enable more detailed stats.", type:"Var"}, {name: "p.BatchPhysXTasksSize", help:"Number of tasks to batch together (max 8). 1 will go as wide as possible, but more overhead on small tasks", type:"Var"}, {name: "p.BoundsThicknessMultiplier", help:"", type:"Var"}, {name: "p.ApplyAsyncSleepState", help:"", type:"Var"}, {name: "p.AsyncCharacterMovement", help:"1 enables asynchronous simulation of character movement on physics thread. Toggling this at runtime is not recommended. This feature is not fully developed, and its use is discouraged.", type:"Var"}, {name: "p.AsyncInterpolationMultiplier", help:"How many multiples of the fixed dt should we look behind for interpolation", type:"Var"}, {name: "p.AsyncPhysicsBlockMode", help:"Setting to 0 blocks on any physics steps generated from past GT Frames, and blocks on none of the tasks from current frame. 1 blocks on everything except the single most recent task (including tasks from current frame). 1 should gurantee we will always have a future output for interpolation from 2 frames in the past. 2 doesn\'t block the game thread, physics steps could be eventually be dropped if taking too much time.", type:"Var"}, {name: "p.BasedMovementMode", help:"0 means always on regular tick (default); 1 means only if not deferring updates; 2 means update and save based movement both on regular ticks and post physics when on a physics base.", type:"Var"}, {name: "p.bGeometryCollectionRepUseClusterVelocityMatch", help:"Use physical velocity to match cluster states", type:"Var"}, {name: "p.BodySetupSkipDDCThreshold", help:"Enables skipping the DDC for body setups with vertice count under threshold. Default: 16384", type:"Var"}, {name: "p.BoundingBoxMarginForConnectionGraphFiltering", help:"when UseBoundingBoxForConnectionGraphFiltering is on, the margin to use for the oevrlap test [def: 0]", type:"Var"}, {name: "p.BoundingVolumeNumCells", help:"", type:"Var"}, {name: "p.BroadphaseType", help:"", type:"Var"}, {name: "p.Chaos.AABBTransform.ISPC", help:"Whether to use ISPC optimizations when computing AABB transforms", type:"Var"}, {name: "p.Chaos.AABBTransform.Optimized", help:"Whether to use optimized AABB transform", type:"Var"}, {name: "p.Chaos.AccelerationStructureCacheOverlappingLeaves", help:"Set to 1: Cache the overlapping leaves for faster overlap query, any other value will disable the feature", type:"Var"}, {name: "p.Chaos.AccelerationStructureIsolateQueryOnlyObjects", help:"Set to 1: QueryOnly Objects will not be moved to acceleration structures on the Physics Thread", type:"Var"}, {name: "p.Chaos.AccelerationStructureSplitStaticDynamic", help:"Set to 1: Sort Dynamic and Static bodies into seperate acceleration structures, any other value will disable the feature", type:"Var"}, {name: "p.Chaos.AccelerationStructureTimeSlicingMaxBytesCopy", help:"The Maximum number of bytes to copy to the external acceleration structure during Copy Time Slicing", type:"Var"}, {name: "p.Chaos.AccelerationStructureTimeSlicingMaxQueueSizeBeforeForce", help:"If the update queue reaches this limit, time slicing will be disabled, and the acceleration structure will be built at once", type:"Var"}, {name: "p.Chaos.AccelerationStructureUseDirtyTreeInsteadOfGrid", help:"Use a dynamic tree structure for dirty elements instead of a 2D grid", type:"Var"}, {name: "p.Chaos.AccelerationStructureUseDynamicTree", help:"Use a dynamic BVH tree structure for dynamic objects", type:"Var"}, {name: "p.Chaos.ArrayCollection.MaxSlackFraction", help:"Shrink particle arrays if the number of slack elements exceeds the number of elements by this fraction", type:"Var"}, {name: "p.Chaos.ArrayCollection.MinSlack", help:"Do not reduce the size of particle arrays if it would leave less slack than this", type:"Var"}, {name: "p.Chaos.AxialSpring.ISPC", help:"Whether to use ISPC optimizations in AxialSpring constraints", type:"Var"}, {name: "p.Chaos.AxialSpring.ParallelConstraintCount", help:"If we have more constraints than this, use parallel-for in Apply.", type:"Var"}, {name: "p.Chaos.Bending.ISPC", help:"Whether to use ISPC optimizations in Bending constraints", type:"Var"}, {name: "p.Chaos.Bending.ParallelConstraintCount", help:"If we have more constraints than this, use parallel-for in Apply.", type:"Var"}, {name: "p.Chaos.BoxCalcBounds.ISPC", help:"Whether to use ISPC optimizations in calculating box bounds in geometry collections", type:"Var"}, {name: "p.Chaos.BroadPhase.MidPhaseRedistributionEnabled", help:"", type:"Var"}, {name: "p.Chaos.Cache.CompressTracksAfterRecording", help:"When enabled, cache will compress the transform tracks after recording is done.[def: true]", type:"Var"}, {name: "p.Chaos.Cache.UseInterpolation", help:"When enabled, cache interpolates between keys.[def: true]", type:"Var"}, {name: "p.Chaos.CalculateBounds.ISPC", help:"Whether to use ISPC optimizations in CalculateBounds", type:"Var"}, {name: "p.Chaos.CCD.AllowedDepthBoundsScale", help:"When rolling back to TOI, allow (smallest bound\'s extent) * AllowedDepthBoundsScale, instead of rolling back to exact TOI w/ penetration = 0.", type:"Var"}, {name: "p.Chaos.CCD.AxisThresholdMode", help:"Change the mode used to generate CCD axis threshold bounds for particle geometries.\n0: Use object bounds\n1: Find the thinnest object bound on any axis and use it for all CCD axes\n2: On each axis, use the thinnest shape bound on that axis\n3: Find the thinnest shape bound on any axis and use this for all axes", type:"Var"}, {name: "p.Chaos.CCD.CCDAxisThresholdUsesProbeShapes", help:"When true, probe shapes are considered for CCD axis threshold computation, and can generate contacts in the initial CCD phase.", type:"Var"}, {name: "p.Chaos.CCD.CCDSweepsUseProbeShapes", help:"When true, probe shapes can be swept for more accurate collision detection.", type:"Var"}, {name: "p.Chaos.CCD.EnableThresholdBoundsScale", help:"CCD is used when object position is changing > smallest bound\'s extent * BoundsScale. 0 will always Use CCD. Values < 0 disables CCD.", type:"Var"}, {name: "p.Chaos.CCD.NewTargetDepthMode", help:"Find the first contact with that results in a penetration of (CCDAllowedDepthBoundsScale*Size) as opposed to the first contact", type:"Var"}, {name: "p.Chaos.CCD.NoCullAllShapePairs", help:"Whether to cull contacts early based on phi for sweeps for all shape pairs (not just convex convex).", type:"Var"}, {name: "p.Chaos.CCD.OnlyConsiderDynamicStatic", help:"Only enable CCD for dynamic-static pairs.", type:"Var"}, {name: "p.Chaos.CCD.UseGenericSweptConvexConstraints", help:"Use generic convex convex swept constraint generation for convex shape pairs which don\'t have specialized implementations.", type:"Var"}, {name: "p.Chaos.CharacterGroundConstraint.ExternalMovementThreshold", help:"If distance moved is less than this then retain current movement target relative to ground.", type:"Var"}, {name: "p.Chaos.CharacterGroundConstraint.InputMovementThreshold", help:"Minimum per frame input movement distance in cm.", type:"Var"}, {name: "p.Chaos.CheckForInterclusterEdgesOnRelease", help:"Whether to check for intercluster edges when removing a child from its parent cluster so that we can add the particle back into a cluster union.", type:"Var"}, {name: "p.Chaos.Cloth.CGTol", help:"CG Tolerance [def: 1e-4]", type:"Var"}, {name: "p.Chaos.Cloth.DisplayResidual", help:"Diplay residual norms for the first 10 iters [def: false]", type:"Var"}, {name: "p.Chaos.Cloth.DoQuasistatics", help:"Do cloth quasistatics [def: false]", type:"Var"}, {name: "p.Chaos.Cloth.EnableCG", help:"Use conjugate gradient instead of nonlinear gauss seidel [def: false]", type:"Var"}, {name: "p.Chaos.Cloth.EnableGaussSeidel", help:"Use Gauss Seidel constraints instead of XPBD [def: false]", type:"Var"}, {name: "p.Chaos.Cloth.MakeSandwich", help:"MakeSandwich solver of xpbd - Newton/GS [def: false]", type:"Var"}, {name: "p.Chaos.Cloth.MaxItCG", help:"Max iter for CG [def: 50]", type:"Var"}, {name: "p.Chaos.Cloth.MaxResidualIters", help:"Max number of iterations to diaplay residuals [def: 10]", type:"Var"}, {name: "p.Chaos.Cloth.MiddleBreadIters", help:"Middle Bread Iters for the sandwich solver [def: 3]", type:"Var"}, {name: "p.Chaos.Cloth.ReplaceBiasElementsWithCorotatedCod", help:"Replace existing aniso bias element constraint with gauss seidel corotated codimensional [def: false]", type:"Var"}, {name: "p.Chaos.Cloth.SOROmega", help:"SOR omega coefficient for acceleration [def: 1.7]", type:"Var"}, {name: "p.Chaos.Cloth.StiffnessPaddingRatio", help:"stiffness padding for gauss seidel [def: 1]", type:"Var"}, {name: "p.Chaos.Cloth.UpperBreadIters", help:"Upper Bread Iters for the sandwich solver [def: 3]", type:"Var"}, {name: "p.Chaos.Cloth.UseSOR", help:"Use SOR acceleration for Gauss Seidel [def: true]", type:"Var"}, {name: "p.Chaos.Cloth.WriteFinalResiduals", help:"Write final residuals at each timestep to a file [def: false]", type:"Var"}, {name: "p.Chaos.Cloth.WriteResidual2File", help:"Write residual to file [def: false]", type:"Var"}, {name: "p.Chaos.Cloth.YoungsModulus", help:"Youngs modulus [def: 1e4]", type:"Var"}, {name: "p.chaos.clustering.breakonlystrained", help:"If enabled we only process strained clusters for breaks, if disabled all clusters are traversed and checked", type:"Var"}, {name: "p.Chaos.Clustering.DumpClusterAndReleaseStats", help:"Report the number of cluster processes and released particles per frame, on/off 1/0", type:"Var"}, {name: "p.Chaos.Clustering.PerAdvanceBreaksAllowed", help:"Number of breaks allowed to occur for each invokation of AdvanceClustering", type:"Var"}, {name: "p.Chaos.Clustering.PerAdvanceBreaksRescheduleLimit", help:"Number of breaks allowed to be rescheduled for next frame if any ", type:"Var"}, {name: "p.Chaos.ClusterUnion.DoNotAddEmptyClusters", help:"Gating a risky bug fix.", type:"Var"}, {name: "p.Chaos.ClusterUnion.FixPartialDestruction", help:"Fix the partial destruction.", type:"Var"}, {name: "p.Chaos.ClusterUnion.GenerateInterclusterEdges", help:"Whether to generate intercluster edges automatically when adding to a cluster union (and remove them when removing from the cluster union).", type:"Var"}, {name: "p.Chaos.Collision.AABBBoundsCheck", help:"", type:"Var"}, {name: "p.Chaos.Collision.ABTestSolver", help:"", type:"Var"}, {name: "p.Chaos.Collision.AllowGlobalInitialPhi", help:"", type:"Var"}, {name: "p.Chaos.Collision.AllowLevelsetManifolds", help:"Use incremental manifolds for levelset-levelset collision. This does not work well atm - too much rotation in the small pieces", type:"Var"}, {name: "p.Chaos.Collision.AllowParticleTracking", help:"Allow particles to track their collisions constraints when their DoBufferCollisions flag is enable [def:true]", type:"Var"}, {name: "p.Chaos.Collision.CCD.AllowClipping", help:"This will clip the CCD object at colliding positions when computation budgets run out. Default is true. Turning this option off might cause tunneling.", type:"Var"}, {name: "p.Chaos.Collision.CCD.ConstraintMaxProcessCount", help:"The max number of times each constraint can be resolved when applying CCD constraints. Default is 2. The larger this number is, the more fully CCD constraints are resolved.", type:"Var"}, {name: "p.Chaos.Collision.CCD.CorrectionIterations", help:"The number of post-solve CCD correction ietaryions to run.", type:"Var"}, {name: "p.Chaos.Collision.CCD.CorrectionPhiToleranceScale", help:"How much penetration we allow during the correction phase (multiplier on shape size)", type:"Var"}, {name: "p.Chaos.Collision.CCD.EnableResweep", help:"Enable resweep for CCD. Resweeping allows CCD to catch more secondary collisions but also is more costly. Default is true.", type:"Var"}, {name: "p.Chaos.Collision.CCD.UseTightBoundingBox", help:"", type:"Var"}, {name: "p.Chaos.Collision.ConvexTriMeshBackFaceCull", help:"", type:"Var"}, {name: "p.Chaos.Collision.ConvexTriMeshInsideCull", help:"", type:"Var"}, {name: "p.Chaos.Collision.ConvexTriMeshMode", help:"", type:"Var"}, {name: "p.Chaos.Collision.ConvexTriMeshSortByPhi", help:"", type:"Var"}, {name: "p.Chaos.Collision.ConvexZeroMargin", help:"", type:"Var"}, {name: "p.Chaos.Collision.CullDistanceReferenceSize", help:"", type:"Var"}, {name: "p.Chaos.Collision.DebugDrawProbeDetection", help:"Draw probe constraint detection.", type:"Var"}, {name: "p.Chaos.Collision.EdgePrunePlaneDistance", help:"", type:"Var"}, {name: "p.Chaos.Collision.EnableBoundsChecks", help:"", type:"Var"}, {name: "p.Chaos.Collision.EnableCollisionManager", help:"Enable Chaos\'s Collision Manager for ignoring collisions between rigid bodies. [def:1]", type:"Var"}, {name: "p.Chaos.Collision.EnableEdgeCollisionPruning", help:"", type:"Var"}, {name: "p.Chaos.Collision.EnableEdgePrune", help:"", type:"Var"}, {name: "p.Chaos.Collision.EnableLargeMeshManifolds", help:"Whether to allow large mesh manifolds for collisions against meshes (required for good behaviour)", type:"Var"}, {name: "p.Chaos.Collision.EnableMACDFallback", help:"", type:"Var"}, {name: "p.Chaos.Collision.EnableMACDPreManifoldFix", help:"", type:"Var"}, {name: "p.Chaos.Collision.EnableManifoldGJKInject", help:"", type:"Var"}, {name: "p.Chaos.Collision.EnableManifoldGJKReplace", help:"", type:"Var"}, {name: "p.Chaos.Collision.EnableMeshCollisionPruning", help:"", type:"Var"}, {name: "p.Chaos.Collision.EnableMeshManifoldOptimizedLoop", help:"", type:"Var"}, {name: "p.Chaos.Collision.EnableMeshManifoldOptimizedLoopTriMesh", help:"", type:"Var"}, {name: "p.Chaos.Collision.EnableOneWayInteraction", help:"Whether the one-way interaction flag is respected in collision constraints", type:"Var"}, {name: "p.Chaos.Collision.EnableShapePairs", help:"", type:"Var"}, {name: "p.Chaos.Collision.EnableSubSurfaceCollisionPruning", help:"", type:"Var"}, {name: "p.Chaos.Collision.EPAEpsilon", help:"", type:"Var"}, {name: "p.Chaos.Collision.GBFCharacteristicTimeRatio", help:"The ratio between characteristic time and Dt", type:"Var"}, {name: "p.Chaos.Collision.GJKEpsilon", help:"", type:"Var"}, {name: "p.Chaos.Collision.Manifold.CapsuleAxisAlignedThreshold", help:"", type:"Var"}, {name: "p.Chaos.Collision.Manifold.CapsuleDeepPenetrationFraction", help:"", type:"Var"}, {name: "p.Chaos.Collision.Manifold.CapsuleMinContactDistanceFraction", help:"", type:"Var"}, {name: "p.Chaos.Collision.Manifold.CapsuleRadialContactFraction", help:"", type:"Var"}, {name: "p.Chaos.Collision.Manifold.CullDistanceMarginMultiplier", help:"", type:"Var"}, {name: "p.Chaos.Collision.Manifold.EdgeNormalThreshold", help:"", type:"Var"}, {name: "p.Chaos.Collision.Manifold.EnableFrictionRestore", help:"", type:"Var"}, {name: "p.Chaos.Collision.Manifold.EnableGjkWarmStart", help:"", type:"Var"}, {name: "p.Chaos.Collision.Manifold.ForceOneShotManifoldEdgeEdgeCaseZeroCullDistance", help:"If enabled, if one shot manifold hits edge/edge case, we will force a cull distance of zero. That means edge/edge contacts will be thrown out if separated at all. Only applies to Convex/Convex oneshot impl.", type:"Var"}, {name: "p.Chaos.Collision.Manifold.FrictionExactPositionTolerance", help:"", type:"Var"}, {name: "p.Chaos.Collision.Manifold.FrictionNearPositionTolerance", help:"", type:"Var"}, {name: "p.Chaos.Collision.Manifold.MatchNormalTolerance", help:"A tolerance on the normal dot product used to determine if two contact points are the same", type:"Var"}, {name: "p.Chaos.Collision.Manifold.MatchPositionTolerance", help:"A tolerance as a fraction of object size used to determine if two contact points are the same", type:"Var"}, {name: "p.Chaos.Collision.Manifold.MinFaceSearchDistance", help:"", type:"Var"}, {name: "p.Chaos.Collision.Manifold.PlaneContactNormalEpsilon", help:"Normal tolerance used to distinguish face contacts from edge-edge contacts", type:"Var"}, {name: "p.Chaos.Collision.Manifold.SphereCapsuleSizeThreshold", help:"", type:"Var"}, {name: "p.Chaos.Collision.Manifold.TriangleConvexMarginMultiplier", help:"", type:"Var"}, {name: "p.Chaos.Collision.Manifold.TriangleNormalThreshold", help:"", type:"Var"}, {name: "p.Chaos.Collision.MarginFraction", help:"Override the collision margin fraction set in Physics Settings (if >= 0)", type:"Var"}, {name: "p.Chaos.Collision.MarginMax", help:"Override the max collision margin set in Physics Settings (if >= 0)", type:"Var"}, {name: "p.Chaos.Collision.MaxManifoldPoints", help:"", type:"Var"}, {name: "p.Chaos.Collision.MaxShapePairs", help:"", type:"Var"}, {name: "p.Chaos.Collision.MeshContactNormalRejectionThreshold", help:"Don\'t correct edge and vertex normals if they are beyond the valid range by more than this", type:"Var"}, {name: "p.Chaos.Collision.MeshContactNormalThreshold", help:"Treat contact with a dot product between the normal and the triangle face greater than this as face collisions", type:"Var"}, {name: "p.Chaos.Collision.MeshManifoldHashSize", help:"Hash table size to use in vertex and edge maps in convex-mesh collision", type:"Var"}, {name: "p.Chaos.Collision.MinCullDistanceScale", help:"", type:"Var"}, {name: "p.Chaos.Collision.OneSidedHeightField", help:"", type:"Var"}, {name: "p.Chaos.Collision.OneSidedTriangleMesh", help:"", type:"Var"}, {name: "p.Chaos.Collision.OneWayStiffness", help:"Collision solver stiffnes for one-way interactions", type:"Var"}, {name: "p.Chaos.Collision.ShapesArrayMode", help:"", type:"Var"}, {name: "p.Chaos.Collision.SortMeshManifoldByDistance", help:"Sort large mesh manifold points by |RxN| for improved solver stability (less rotation in first iteration)", type:"Var"}, {name: "p.Chaos.Collision.SphereBoundsCheck", help:"", type:"Var"}, {name: "p.Chaos.Collision.Stiffness", help:"Override the collision solver stiffness (if >= 0)", type:"Var"}, {name: "p.Chaos.Collision.TriangeMeshDistanceTolerance", help:"", type:"Var"}, {name: "p.Chaos.Collision.TriangeMeshPhiToleranceScale", help:"", type:"Var"}, {name: "p.Chaos.Collision.UnionBVH.Enabled", help:"Set to false to disable use of BVH during collision detection (without affecting creations and serialization)", type:"Var"}, {name: "p.Chaos.Collision.UnionBVH.MaxDepth", help:"The allowed depth of the BVH when used to wrap a shape hiererchy", type:"Var"}, {name: "p.Chaos.Collision.UnionBVH.NumShapes", help:"If a geometry hierarchy has this many shapes, wrap it in a BVH for collision detection (negative to disable BVH)", type:"Var"}, {name: "p.Chaos.Collision.UnionBVH.SplitBias", help:"", type:"Var"}, {name: "p.Chaos.Collision.UnionBVH.UseOptimizedCountLeafObjects", help:"", type:"Var"}, {name: "p.Chaos.Collision.UseCapsuleTriMesh2", help:"", type:"Var"}, {name: "p.Chaos.Collision.UseConvexTriangleGJKSAT", help:"", type:"Var"}, {name: "p.Chaos.Collision.UseGJK2", help:"", type:"Var"}, {name: "p.Chaos.CollisionSpring.FalloffMultiplier", help:"Tangential distance away from a triangle (scaled by thickness) beyond which a point isn\'t considered to be kinematically colliding", type:"Var"}, {name: "p.Chaos.CollisionSpring.ISPC", help:"Whether to use ISPC optimizations in collision spring constraints", type:"Var"}, {name: "p.Chaos.CollisionSpring.MaxDepthMultiplier", help:"Penetration depth beyond which we ignore the kinematic collision (so you don\'t push through the wrong side)", type:"Var"}, {name: "p.Chaos.CollisionSpring.MaxTimer", help:"Amount of time (in seconds) to remember a kinematic collision connection after it has moved more than Thickness away. Increasing this can reduce jitter at the cost of more computation.", type:"Var"}, {name: "p.Chaos.CollisionStore.Enabled", help:"", type:"Var"}, {name: "p.Chaos.ConstraintGraph.Validate", help:"Enable per-tick ConstraintGraph validation checks/assertions", type:"Var"}, {name: "p.Chaos.Constraints.DetailedStats", help:"When set to 1, will enable more detailed stats.", type:"Var"}, {name: "p.Chaos.Convex.DynamicMode", help:"Simplification mode for the dynamic shapes (0: Single Convex, 1: One convex per children, 2: Merge connected children using the splitting threshold)", type:"Var"}, {name: "p.Chaos.Convex.EnableMerging", help:"Boolean to check if we are merging (bottom-up) or splitting (top-bottom) the convexes", type:"Var"}, {name: "p.Chaos.Convex.KinematicMode", help:"Simplification mode for the kinematic shapes (0: Single Convex, 1: One convex per children, 2: Merge connected children using the splitting threshold", type:"Var"}, {name: "p.Chaos.Convex.MinVolume", help:"Min volume of the simplified convexes", type:"Var"}, {name: "p.Chaos.Convex.SimplifyUnion", help:"If true replace all the convexes within an implcit hierarchy with a simplified one (kdop18 tribox for now) for collision", type:"Var"}, {name: "p.Chaos.Convex.SplittingThreshold", help:"Tribox volume / convex hull threshold to trigger a volume splitting during tree construction", type:"Var"}, {name: "p.Chaos.Convex.UseDirectOverlap", help:"Boolean to check if we can use direct overlap test against the bounds", type:"Var"}, {name: "p.Chaos.Convex.UseSimplifierForTConvexHull3Builder", help:"If default build is using the Geometry Tools convex hull algorithm, also use the corresponding simplifier. [def:false]", type:"Var"}, {name: "p.Chaos.Convex.UseTConvexHull3Builder", help:"Use the newer Geometry Tools code path for generating convex hulls when default build method is set.[def:true]", type:"Var"}, {name: "p.Chaos.ConvexGeometryCheckEnable", help:"Perform convex geometry complexity check for Chaos physics.", type:"Var"}, {name: "p.Chaos.ConvexParticlesWarningThreshold", help:"Threshold beyond which we warn about collision geometry complexity.", type:"Var"}, {name: "p.Chaos.CU.UseFlushNetDormancy", help:"When true it will flush the net dormancy of the owner the next frame instead of awaking the actor", type:"Var"}, {name: "p.Chaos.DampVelocity.ISPC", help:"Whether to use ISPC optimizations in per particle damp velocity calculation", type:"Var"}, {name: "p.Chaos.DebugDraw.BVHBounds", help:"Whether to draw the BVH node bounds (colorized)", type:"Var"}, {name: "p.Chaos.DebugDraw.BVHLevel", help:"Which level of the BVH to draw (-1 = Leaf)", type:"Var"}, {name: "p.Chaos.DebugDraw.BVHShapes", help:"Whether to draw the shapes in each BVH node (colorized)", type:"Var"}, {name: "p.Chaos.DebugDraw.CCDDuration", help:"How long CCD debug draw should remain on screen in seconds. 0 for 1 frame.", type:"Var"}, {name: "p.Chaos.DebugDraw.CollisionDuration", help:"How long Collision debug draw should remain on screen in seconds. 0 for 1 frame.", type:"Var"}, {name: "p.Chaos.DebugDraw.ColorBoundsByShapeType", help:"Whether to use shape type to define the color of the bounds instead of using the particle state (if multiple shapes , will use the first one)", type:"Var"}, {name: "p.Chaos.DebugDraw.ColorShapesByClusterUnion", help:"An extension of the ColorShapesByInternalCluster option: instead of using a single color for every internal cluster, will use a unique color per cluster union. Non-cluster unions will be black.", type:"Var"}, {name: "p.Chaos.DebugDraw.ColorShapesByConvexType", help:"Whether to show with different colors shapes that are convex and simplified (simplified : green, normal : orange)", type:"Var"}, {name: "p.Chaos.DebugDraw.ColorShapesByInternalCluster", help:"Whether to check if the particle is an internal cluster to define its color (black : regular particle: red :internal cluster )", type:"Var"}, {name: "p.Chaos.DebugDraw.ColorShapesByIsland", help:"Whether to use particle island to define the color of the shapes instead of using the particle state ", type:"Var"}, {name: "p.Chaos.DebugDraw.ColorShapesByShapeType", help:"Whether to use shape type to define the color of the shapes instead of using the particle state ", type:"Var"}, {name: "p.Chaos.DebugDraw.ColorShapesBySimQueryType", help:"Whether to show with different colors shapes that are sim enabled and query enabled (sim : blue, query : orange)", type:"Var"}, {name: "p.Chaos.DebugDraw.ConnectionGraph.ShowAreas", help:"When displaying connection graphs show connection areas as disks", type:"Var"}, {name: "p.Chaos.DebugDraw.ConnectionGraph.ShowInternalStrains", help:"When displaying connection graphs show strain values of each node", type:"Var"}, {name: "p.Chaos.DebugDraw.ConnectionGraphLevelOffset", help:"If 0, draws the connection graph between children particles of active particles. If 1, draws the connection grpah between grand-children particles of active particles, etc.", type:"Var"}, {name: "p.Chaos.DebugDraw.ConvexExplodeDistance", help:"Explode convex edges by this amount (useful for looking at convex integrity)", type:"Var"}, {name: "p.Chaos.DebugDraw.Deformable.KinematicParticle", help:"Debug draw the deformables kinematic particles. [def: false]", type:"Var"}, {name: "p.Chaos.DebugDraw.Deformable.ParticleRadius", help:"Drawn kinematic particle radius. [def: 5]", type:"Var"}, {name: "p.Chaos.DebugDraw.Deformable.RigidCollisionGeometry", help:"Debug draw the deformable solvers rigid collision geometry. [def: false]", type:"Var"}, {name: "p.Chaos.DebugDraw.Deformable.TetrahedralParticle", help:"Debug draw the deformable solvers tetrahedron. [def: false]", type:"Var"}, {name: "p.Chaos.DebugDraw.Deformable.TransientKinematicParticle", help:"Debug draw the deformables transient kinematic particles. [def: false]", type:"Var"}, {name: "p.Chaos.DebugDraw.Enabled", help:"Whether to debug draw low level physics solver information", type:"Var"}, {name: "p.Chaos.DebugDraw.EnableGlobalQueue", help:"", type:"Var"}, {name: "p.Chaos.DebugDraw.GeometryCollectionReplication", help:"If true debug draw deltas and corrections for geometry collection replication", type:"Var"}, {name: "p.Chaos.DebugDraw.MaxLines", help:"Set the maximum number of debug draw lines that can be rendered (to limit perf drops)", type:"Var"}, {name: "p.Chaos.DebugDraw.Mode", help:"Where to send debug draw commands. 0 = UE Debug Draw; 1 = VisLog; 2 = Both", type:"Var"}, {name: "p.Chaos.DebugDraw.Radius", help:"Set the radius from the camera where debug draw capture stops (0 means infinite)", type:"Var"}, {name: "p.Chaos.DebugDraw.SeeThrough", help:"When enabled , lines will be drawn on top of all geometry", type:"Var"}, {name: "p.Chaos.DebugDraw.ShowCollisionAnchors", help:"", type:"Var"}, {name: "p.Chaos.DebugDraw.ShowCollisionParticles", help:"Whether to show the collision particles if present", type:"Var"}, {name: "p.Chaos.DebugDraw.ShowContactGraph", help:"Whether to show the contactgraph when drawing islands", type:"Var"}, {name: "p.Chaos.DebugDraw.ShowContactGraphUnused", help:"Whether to show the unused edges contactgraph when drawing islands (collisions with no impulse)", type:"Var"}, {name: "p.Chaos.DebugDraw.ShowContactGraphUsed", help:"Whether to show the used edges contactgraph when drawing islands (collisions with impulse)", type:"Var"}, {name: "p.Chaos.DebugDraw.ShowContactIterations", help:"Whether to show an indicator of how many iterations a contact was active for", type:"Var"}, {name: "p.Chaos.DebugDraw.ShowConvexVertices", help:"Whether to show the vertices of convex shapes", type:"Var"}, {name: "p.Chaos.DebugDraw.ShowCoreShapes", help:"Whether to show the core (margin-reduced) shape where applicable", type:"Var"}, {name: "p.Chaos.DebugDraw.ShowExactCoreShapes", help:"Whether to show the exact core shape. NOTE: Extremely expensive and should only be used on a small scene with a couple convex shapes in it", type:"Var"}, {name: "p.Chaos.DebugDraw.ShowInactiveContacts", help:"Whether to show inactive contacts (ones that contributed no impulses or pushout)", type:"Var"}, {name: "p.Chaos.DebugDraw.ShowIslands", help:"Whether to show the iosland boxes when drawing islands (if you want only the contact graph)", type:"Var"}, {name: "p.Chaos.DebugDraw.ShowOptimizedConvexes", help:"", type:"Var"}, {name: "p.Chaos.DebugDraw.ShowPIEClient", help:"When running in PIE mode, show the client debug draw", type:"Var"}, {name: "p.Chaos.DebugDraw.ShowPIEServer", help:"When running in PIE mode, show the server debug draw", type:"Var"}, {name: "p.Chaos.DebugDraw.ShowProbeOnly", help:"Whether to show ProbeOnly shapes", type:"Var"}, {name: "p.Chaos.DebugDraw.ShowQueryOnly", help:"Whether to show QueryOnly shapes", type:"Var"}, {name: "p.Chaos.DebugDraw.ShowShapeBounds", help:"Whether to show the bounds of each shape in DrawShapes", type:"Var"}, {name: "p.Chaos.DebugDraw.ShowSimOnly", help:"Whether to show SimOnly shapes", type:"Var"}, {name: "p.Chaos.DebugDraw.SingleActor", help:"If true, then we draw for the actor the camera is looking at.", type:"Var"}, {name: "p.Chaos.DebugDraw.SingleActorMaxRadius", help:"Set the max radius to draw around the single actor.", type:"Var"}, {name: "p.Chaos.DebugDraw.SingleActorTraceLength", help:"Set the trace length from the camera that is used to select the single actor.", type:"Var"}, {name: "p.Chaos.DebugDraw.UseLegacyQueue", help:"", type:"Var"}, {name: "p.Chaos.DebugDraw.UseNewQueue", help:"", type:"Var"}, {name: "p.Chaos.DedicatedThreadEnabled", help:"Enables a dedicated physics task/thread for Chaos tasks.0: Disabled1: Enabled", type:"Var"}, {name: "p.Chaos.Deformable.GSMaxDxRatio", help:"Max size for dx in each iteration for Gauss Seidel constraints. [def: .01]", type:"Var"}, {name: "p.Chaos.Deformable.GSParallelMax", help:"Minimal number of particles to process in parallel for Gauss Seidel constraints. [def: 100]", type:"Var"}, {name: "p.Chaos.Deformable.XPBDBatchSize", help:"Batch size for physics parallel for. [def: 5]", type:"Var"}, {name: "p.Chaos.Deformable.XPBDBatchThreshold", help:"Batch threshold for physics parallel for. [def: 5]", type:"Var"}, {name: "p.Chaos.Deformable.XPBDWeakConstraintEnableDraw", help:"Debug draw the double bindings in XPBD weak constraints. [def: false]", type:"Var"}, {name: "p.Chaos.Deformable.XPBDWeakConstraintLineWidth", help:"Line width for visualizing the double bindings in XPBD weak constraints. [def: 5]", type:"Var"}, {name: "p.Chaos.Deformable.XPBDWeakConstraintParticleWidth", help:"Line width for visualizing the double bindings in XPBD weak constraints. [def: 20]", type:"Var"}, {name: "p.Chaos.DisableCollisionParallelFor", help:"Disable parallel execution for Chaos Collisions (also disabled by DisableParticleParallelFor)", type:"Var"}, {name: "p.Chaos.DisableParticleParallelFor", help:"Disable parallel execution for Chaos Particles (Collisions, ", type:"Var"}, {name: "p.Chaos.DisablePhysicsParallelFor", help:"Disable parallel execution in Chaos Evolution", type:"Var"}, {name: "P.Chaos.DrawHierarchy.Bounds", help:"Enable / disable drawing of the physics hierarchy bounds", type:"Var"}, {name: "P.Chaos.DrawHierarchy.CellElementThresh", help:"Num elements to consider \"high\" for cell colouring when rendering.", type:"Var"}, {name: "P.Chaos.DrawHierarchy.Cells", help:"Enable / disable drawing of the physics hierarchy cells", type:"Var"}, {name: "P.Chaos.DrawHierarchy.DrawEmptyCells", help:"Whether to draw cells that are empty when cells are enabled.", type:"Var"}, {name: "P.Chaos.DrawHierarchy.Enable", help:"Enable / disable drawing of the physics hierarchy", type:"Var"}, {name: "P.Chaos.DrawHierarchy.ObjectBounds", help:"Enable / disable drawing of the physics hierarchy object bounds", type:"Var"}, {name: "p.chaos.dumphierarcystats", help:"Outputs current collision hierarchy stats to the output log", type:"Cmd"}, {name: "p.Chaos.DumpHierElementBuckets", help:"Distribution buckets for dump hierarchy stats command", type:"Var"}, {name: "p.Chaos.EnableAsyncInitBody", help:"[Experimental] Allow body instances to be initialized outside of game thread (default is false).", type:"Var"}, {name: "p.Chaos.GC.CreatePhysicsStateInEditor", help:"when on , physics state for a GC will be create in editor ( non PIE )", type:"Var"}, {name: "p.Chaos.GC.CustomRendererHiddenActorFix", help:"When true custom renderer will account for the actor hidden flag", type:"Var"}, {name: "p.Chaos.GC.EmitRootBreakingEvent", help:"When true send a breaking event when root is breaking", type:"Var"}, {name: "p.Chaos.GC.EnableCollisionParticles", help:"Enable use of collision particles for collision [def:true]", type:"Var"}, {name: "p.Chaos.GC.InitConstantDataParallelForBatchSize", help:"When parallelFor is used in InitConstantData, defined the minimium size of a batch of vertex ", type:"Var"}, {name: "p.Chaos.GC.InitConstantDataUseParallelFor", help:"When enabled, InitConstant data will use parallelFor for copying some of the data", type:"Var"}, {name: "p.Chaos.GC.IsEditable", help:"Whether to allow edits of the geometry collection", type:"Var"}, {name: "p.Chaos.GC.ISMPoolDebugDraw", help:"Show debug drawing for the ISM pools", type:"Var"}, {name: "p.Chaos.GC.ISMPoolDebugStats", help:"Show stats for the ISM pools", type:"Var"}, {name: "p.Chaos.GC.MaxGeometryCollectionAsyncPhysicsTickIdleTimeMs", help:"Amount of time in milliseconds before the async tick turns off when it is otherwise not doing anything.", type:"Var"}, {name: "p.Chaos.GC.NetAwakeningMode", help:"Changes how GC components ensure that their owner is awake for replication. 0 = ForceDormancyAwake, 1 = Use Flush Net Dormancy", type:"Var"}, {name: "p.Chaos.GC.RemovalTimerMultiplier", help:"Multiplier for the removal time evaluation ( > 1 : faster removal , > 1 slower", type:"Var"}, {name: "p.Chaos.GC.UseCustomRenderer", help:"When enabled, use a custom renderer if specified", type:"Var"}, {name: "p.Chaos.GC.UseReplicationV2", help:"When true use new replication data model", type:"Var"}, {name: "p.Chaos.Geometry.ForceDeepCopyAccess", help:"Whether we always use a deep copy when modifying particle geometry", type:"Var"}, {name: "p.Chaos.GetSimData.ISPC", help:"Whether to use ISPC optimizations when getting simulation data", type:"Var"}, {name: "p.Chaos.ImmPhys.Collision.CullDistance", help:"Set the collision CullDistance (if >= 0)", type:"Var"}, {name: "p.Chaos.ImmPhys.Collision.DeferNarrowPhase", help:"[Legacy Solver] Create contacts for all broadphase pairs, perform NarrowPhase later.", type:"Var"}, {name: "p.Chaos.ImmPhys.Collision.Enabled", help:"Enable/Disable collisions in Immediate Physics.", type:"Var"}, {name: "p.Chaos.ImmPhys.Collision.MaxDepenetrationVelocity", help:"Set the collision Max Depenetration Velocity (if >= 0)", type:"Var"}, {name: "p.Chaos.ImmPhys.Collision.Priority", help:"Set the Collision constraint sort order (Joints have priority 0)", type:"Var"}, {name: "p.Chaos.ImmPhys.Collision.RestitutionEnabled", help:"Collision Restitution Enable/Disable", type:"Var"}, {name: "p.Chaos.ImmPhys.Collision.RestitutionThresholdMultiplier", help:"Collision Restitution Threshold (Acceleration) = Multiplier * Gravity", type:"Var"}, {name: "p.Chaos.ImmPhys.Collision.UseManifolds", help:"Override Enable/Disable use of manifoldes in collision (if >= 0).", type:"Var"}, {name: "p.Chaos.ImmPhys.DebugDraw.AngVelScale", help:"If >0 show angular velocity when drawing particle transforms.", type:"Var"}, {name: "p.Chaos.ImmPhys.DebugDraw.ArrowSize", help:"ArrowSize.", type:"Var"}, {name: "p.Chaos.ImmPhys.DebugDraw.BodyAxisLen", help:"BodyAxisLen.", type:"Var"}, {name: "p.Chaos.ImmPhys.DebugDraw.ConstraintAxisLen", help:"ConstraintAxisLen.", type:"Var"}, {name: "p.Chaos.ImmPhys.DebugDraw.ContactInfoWidth", help:"ContactInfoWidth.", type:"Var"}, {name: "p.Chaos.ImmPhys.DebugDraw.ContactLen", help:"ContactLen.", type:"Var"}, {name: "p.Chaos.ImmPhys.DebugDraw.ContactOwnerWidth", help:"ContactOwnerWidth.", type:"Var"}, {name: "p.Chaos.ImmPhys.DebugDraw.ContactWidth", help:"ContactWidth.", type:"Var"}, {name: "p.Chaos.ImmPhys.DebugDraw.ImpulseScale", help:"If >0 show impulses when drawing collisions.", type:"Var"}, {name: "p.Chaos.ImmPhys.DebugDraw.InertiaScale", help:"If >0 show inertia when drawing particles.", type:"Var"}, {name: "p.Chaos.ImmPhys.DebugDraw.JointFeatures.ActorConnector", help:"Joint features mask (see FDebugDrawJointFeatures).", type:"Var"}, {name: "p.Chaos.ImmPhys.DebugDraw.JointFeatures.Axes", help:"Joint features mask (see FDebugDrawJointFeatures).", type:"Var"}, {name: "p.Chaos.ImmPhys.DebugDraw.JointFeatures.Color", help:"Joint features mask (see FDebugDrawJointFeatures).", type:"Var"}, {name: "p.Chaos.ImmPhys.DebugDraw.JointFeatures.CoMConnector", help:"Joint features mask (see FDebugDrawJointFeatures).", type:"Var"}, {name: "p.Chaos.ImmPhys.DebugDraw.JointFeatures.Index", help:"Joint features mask (see FDebugDrawJointFeatures).", type:"Var"}, {name: "p.Chaos.ImmPhys.DebugDraw.JointFeatures.Island", help:"Joint features mask (see FDebugDrawJointFeatures).", type:"Var"}, {name: "p.Chaos.ImmPhys.DebugDraw.JointFeatures.Level", help:"Joint features mask (see FDebugDrawJointFeatures).", type:"Var"}, {name: "p.Chaos.ImmPhys.DebugDraw.JointFeatures.Stretch", help:"Joint features mask (see FDebugDrawJointFeatures).", type:"Var"}, {name: "p.Chaos.ImmPhys.DebugDraw.LineThickness", help:"LineThickness.", type:"Var"}, {name: "p.Chaos.ImmPhys.DebugDraw.PushOutScale", help:"If >0 show pushouts when drawing collisions.", type:"Var"}, {name: "p.Chaos.ImmPhys.DebugDraw.Scale", help:"Scale applied to all Chaos Debug Draw line lengths etc.", type:"Var"}, {name: "p.Chaos.ImmPhys.DebugDraw.ShapeLineThicknessScale", help:"Shape lineThickness multiplier.", type:"Var"}, {name: "p.Chaos.ImmPhys.DebugDraw.VelScale", help:"If >0 show velocity when drawing particle transforms.", type:"Var"}, {name: "p.Chaos.ImmPhys.DebugDrawBounds", help:"Whether to draw bounds when debug drawing.", type:"Var"}, {name: "p.Chaos.ImmPhys.DebugDrawCollisions", help:"Whether to draw collisions when debug drawing.", type:"Var"}, {name: "p.Chaos.ImmPhys.DebugDrawJoints", help:"Whether to draw joints when debug drawing.", type:"Var"}, {name: "p.Chaos.ImmPhys.DebugDrawOnSimulate", help:"Enables debug drawing after the simulation completes.", type:"Var"}, {name: "p.Chaos.ImmPhys.DebugDrawParticles", help:"Whether to draw particles when debug drawing.", type:"Var"}, {name: "p.Chaos.ImmPhys.DebugDrawShapes", help:"Whether to draw shapes when debug drawing.", type:"Var"}, {name: "p.Chaos.ImmPhys.DebugDrawShowDynamics", help:"Show dynamics if shape debug draw is enabled", type:"Var"}, {name: "p.Chaos.ImmPhys.DebugDrawShowKinematics", help:"Show kinematics if shape debug draw is enabled", type:"Var"}, {name: "p.Chaos.ImmPhys.DebugDrawShowStatics", help:"Show statics if shape debug draw is enabled", type:"Var"}, {name: "p.Chaos.ImmPhys.DebugDrawSimulationSpace", help:"Whether to draw the simulation frame of reference, acceleration and velocity when debug drawing.", type:"Var"}, {name: "p.Chaos.ImmPhys.DeltaTimeCount", help:"The number of ticks over which the moving average is calculated", type:"Var"}, {name: "p.Chaos.ImmPhys.DisableInactiveByIndex", help:"Disable bodies that are no longer active based on the index, rather than just count.", type:"Var"}, {name: "p.Chaos.ImmPhys.FixedStepTime", help:"Override fixed step time mode: fixed step time (if positive); variable time mode (if zero); asset defined (if negative)", type:"Var"}, {name: "p.Chaos.ImmPhys.FixedStepTolerance", help:"Time remainder required to add a new step (fraction of FixedStepTime)", type:"Var"}, {name: "p.Chaos.ImmPhys.InertiaConditioning.Distance", help:"An input to inertia conditioning system. The joint distance error which needs to be stable (generate a low rotation).", type:"Var"}, {name: "p.Chaos.ImmPhys.InertiaConditioning.LinearEnabled", help:"Enable/Disable constraint stabilization through inertia conditioning when using the linear joint solver", type:"Var"}, {name: "p.Chaos.ImmPhys.InertiaConditioning.MaxInvInertiaComponentRatio", help:"An input to inertia conditioning system. The largest inertia component must be at least least multiple of the smallest component", type:"Var"}, {name: "p.Chaos.ImmPhys.InertiaConditioning.NonlinearEnabled", help:"Enable/Disable constraint stabilization through inertia conditioning when using the non-linear joint solver", type:"Var"}, {name: "p.Chaos.ImmPhys.InertiaConditioning.RotationRatio", help:"An input to inertia conditioning system. The maximum ratio of joint correction from rotation versus translation", type:"Var"}, {name: "p.Chaos.ImmPhys.InitialStepTime", help:"Initial step time (then calculated from rolling average)", type:"Var"}, {name: "p.Chaos.ImmPhys.Joint.AngleTolerance", help:"AngleTolerance.", type:"Var"}, {name: "p.Chaos.ImmPhys.Joint.AngularDriveDamping", help:"6Dof joint drive damping override (if > 0).", type:"Var"}, {name: "p.Chaos.ImmPhys.Joint.AngularDriveStiffness", help:"6Dof joint drive stiffness override (if > 0).", type:"Var"}, {name: "p.Chaos.ImmPhys.Joint.AngularProjection", help:"6Dof joint projection amount override (if >= 0).", type:"Var"}, {name: "p.Chaos.ImmPhys.Joint.EnableDrives", help:"EnableDrives.", type:"Var"}, {name: "p.Chaos.ImmPhys.Joint.EnableSwingLimits", help:"EnableSwingLimits.", type:"Var"}, {name: "p.Chaos.ImmPhys.Joint.EnableTwistLimits", help:"EnableTwistLimits.", type:"Var"}, {name: "p.Chaos.ImmPhys.Joint.LinearDriveDamping", help:"6Dof joint drive damping override (if > 0).", type:"Var"}, {name: "p.Chaos.ImmPhys.Joint.LinearDriveStiffness", help:"6Dof joint drive stiffness override (if > 0).", type:"Var"}, {name: "p.Chaos.ImmPhys.Joint.LinearProjection", help:"6Dof joint projection amount override (if >= 0).", type:"Var"}, {name: "p.Chaos.ImmPhys.Joint.MaxInertiaRatio", help:"6Dof joint MaxInertiaRatio (if > 0)", type:"Var"}, {name: "p.Chaos.ImmPhys.Joint.MinParentMassRatio", help:"6Dof joint MinParentMassRatio (if > 0)", type:"Var"}, {name: "p.Chaos.ImmPhys.Joint.NumShockPropagationIterations", help:"How many iterations to run shock propagation for", type:"Var"}, {name: "p.Chaos.ImmPhys.Joint.PositionTolerance", help:"PositionTolerance.", type:"Var"}, {name: "p.Chaos.ImmPhys.Joint.ShockPropagation", help:"6Dof joint shock propagation override (if >= 0).", type:"Var"}, {name: "p.Chaos.ImmPhys.Joint.SoftLinearStiffness", help:"6Dof joint soft linear stiffness override (if > 0).", type:"Var"}, {name: "p.Chaos.ImmPhys.Joint.SoftSwingDamping", help:"6Dof joint SoftSwing damping override (if > 0).", type:"Var"}, {name: "p.Chaos.ImmPhys.Joint.SoftSwingStiffness", help:"6Dof joint SoftSwing stiffness override (if > 0).", type:"Var"}, {name: "p.Chaos.ImmPhys.Joint.SoftTwistDamping", help:"6Dof joint SoftTwist damping override (if > 0).", type:"Var"}, {name: "p.Chaos.ImmPhys.Joint.SoftTwistStiffness", help:"6Dof joint SoftTwist stiffness override (if > 0).", type:"Var"}, {name: "p.Chaos.ImmPhys.Joint.SolvePositionLast", help:"Should we solve joints in position-then-rotation order (false) rotation-then-position order (true, default)", type:"Var"}, {name: "p.Chaos.ImmPhys.Joint.Stiffness", help:"6Dof joint stiffness override (if > 0).", type:"Var"}, {name: "p.Chaos.ImmPhys.Joint.SwingTwistAngleTolerance", help:"SwingTwistAngleTolerance.", type:"Var"}, {name: "p.Chaos.ImmPhys.Joint.UseLinearSolver", help:"Force use of linear or non-linear joint solver. (-1 to use PhysicsAsset setting)", type:"Var"}, {name: "p.Chaos.ImmPhys.Joint.UsePBDDrives", help:"Whether to solve drives in the position or velocity phase of the solver (default true)", type:"Var"}, {name: "p.Chaos.ImmPhys.MinStepTime", help:"If non-zero, then if step time is lower than this, go into fixed step mode with this timestep.", type:"Var"}, {name: "p.Chaos.ImmPhys.NumCollisionsPerBlock", help:"The number of collision in a block in the collision pool. Higher values give better cache efficieny but waste memory if you do not need that many", type:"Var"}, {name: "p.Chaos.ImmPhys.NumSteps", help:"Override num steps (if not zero)", type:"Var"}, {name: "p.Chaos.ImmPhys.PositionIterations", help:"Override number of position iteration loops in immediate physics (if >= 0)", type:"Var"}, {name: "p.Chaos.ImmPhys.ProjectionIterations", help:"Override number of projection iteration loops in immediate physics (if >= 0)", type:"Var"}, {name: "p.Chaos.ImmPhys.SimSpaceCentrifugalAlpha", help:"Settings for simulation space system for rigid body nodes", type:"Var"}, {name: "p.Chaos.ImmPhys.SimSpaceCoriolisAlpha", help:"Settings for simulation space system for rigid body nodes", type:"Var"}, {name: "p.Chaos.ImmPhys.SimSpaceEulerAlpha", help:"Settings for simulation space system for rigid body nodes", type:"Var"}, {name: "p.Chaos.ImmPhys.StepTime", help:"Override step time (if not zero)", type:"Var"}, {name: "p.Chaos.ImmPhys.UseSimd", help:"Enable/Disable SIMD on the linear joint solver", type:"Var"}, {name: "p.Chaos.ImmPhys.VelocityIterations", help:"Override number of velocity iteration loops in immediate physics (if >= 0)", type:"Var"}, {name: "p.Chaos.InnerParallelForBatchSize", help:"Set the batch size threshold for inner parallel fors", type:"Var"}, {name: "p.Chaos.Joint.AngularVelocityThresholdToApplyRestitution", help:"Apply restitution only if initial velocity is higher than this threshold (used in Quasipbd)", type:"Var"}, {name: "p.Chaos.Joint.DegenerateRotationLimit", help:"Cosine of the swing angle that is considered degerenerate (default Cos(176deg))", type:"Var"}, {name: "p.Chaos.Joint.DisableSoftLimits", help:"Disable soft limits (for debugging only)", type:"Var"}, {name: "p.Chaos.Joint.ISPC", help:"Whether to use ISPC optimizations in the Joint Solver", type:"Var"}, {name: "p.Chaos.Joint.LinearVelocityThresholdToApplyRestitution", help:"Apply restitution only if initial velocity is higher than this threshold (used in Quasipbd)", type:"Var"}, {name: "p.Chaos.Joint.MultiDimension", help:"", type:"Var"}, {name: "p.Chaos.Joint.Plasticity.ClampToLimits", help:"Clamp drive position targets to defined limits after plasticity computation", type:"Var"}, {name: "p.Chaos.Joint.VelProjectionAlpha", help:"How much of the velocity correction to apply during projection. Equivalent to (1-damping) for projection velocity delta", type:"Var"}, {name: "p.Chaos.JointConstraint.AngularBreakScale", help:"Conversion factory for Angular Break Theshold.", type:"Var"}, {name: "p.Chaos.JointConstraint.AngularDriveDampingScale", help:"Conversion factor for Angular drive damping.", type:"Var"}, {name: "p.Chaos.JointConstraint.AngularDriveStiffnessScale", help:"Conversion factor for Angular drive stiffness.", type:"Var"}, {name: "p.Chaos.JointConstraint.JointStiffness", help:"Hard-joint solver stiffness.", type:"Var"}, {name: "p.Chaos.JointConstraint.LinaearDriveDampingScale", help:"Conversion factor for Linear drive damping.", type:"Var"}, {name: "p.Chaos.JointConstraint.LinearBreakScale", help:"Conversion factory for Linear Break Theshold.", type:"Var"}, {name: "p.Chaos.JointConstraint.LinearDriveStiffnessScale", help:"Conversion factor for Linear drive stiffness.", type:"Var"}, {name: "p.Chaos.JointConstraint.SoftAngularDampingScale", help:"Conversion factor for soft-joint damping.", type:"Var"}, {name: "p.Chaos.JointConstraint.SoftAngularForceMode", help:"Soft Angular constraint force mode (0: Acceleration; 1: Force", type:"Var"}, {name: "p.Chaos.JointConstraint.SoftAngularStiffnessScale", help:"Conversion factor for soft-joint stiffness.", type:"Var"}, {name: "p.Chaos.JointConstraint.SoftLinearDampingScale", help:"Conversion factor for soft-joint damping.", type:"Var"}, {name: "p.Chaos.JointConstraint.SoftLinearForceMode", help:"Soft Linear constraint force mode (0: Acceleration; 1: Force", type:"Var"}, {name: "p.Chaos.JointConstraint.SoftLinearStiffnessScale", help:"Conversion factor for soft-joint stiffness.", type:"Var"}, {name: "p.Chaos.LargeBatchSize", help:"Large batch size for chaos parallel loops", type:"Var"}, {name: "p.Chaos.LinearSystem.Preconditioner", help:"0 = Diagonal, 1 = IncompleteCholesky", type:"Var"}, {name: "p.Chaos.LongRange.ISPC", help:"Whether to use ISPC optimizations in long range constraints", type:"Var"}, {name: "p.Chaos.MaxInflationScale", help:"A limit on the bounds used to detect collisions when CCD is disabled. The bounds limit is this scale multiplied by the object\'s max dimension", type:"Var"}, {name: "p.Chaos.MaxNumWorkers", help:"Set the max number of workers for physics", type:"Var"}, {name: "p.Chaos.MeshContactGenerator.FixContactNormal.FixEnabled", help:"Until new code path is well tested", type:"Var"}, {name: "p.chaos.MinContactSpeedForStrainEval", help:"Minimum speed at the contact before accumulating for strain eval ", type:"Var"}, {name: "p.Chaos.MinEvolution.ForceMaxConstraintIterations", help:"Whether to force constraints to always use the worst-case maximum number of iterations", type:"Var"}, {name: "p.Chaos.MinRangeBatchSize", help:"Set the min range batch size for parallel for", type:"Var"}, {name: "p.Chaos.MultiRes.ApplyTargetNormalOffset", help:"Apply normal offset to targets.", type:"Var"}, {name: "p.Chaos.MultiRes.ISPC", help:"Whether to use ISPC optimizations in MultiRes constraints", type:"Var"}, {name: "p.Chaos.MultiRes.SparseWeightMap", help:"Exploit the sparse weight map structure and skip the particles with 0 stiffness at the beginning and at the end", type:"Var"}, {name: "p.Chaos.NewtonEvolution.FastPositionBasedFriction", help:"", type:"Var"}, {name: "p.Chaos.NewtonEvolution.MinParallelBatchSize", help:"", type:"Var"}, {name: "p.Chaos.NewtonEvolution.ParalleIntegrate", help:"Run the integration step in parallel for.", type:"Var"}, {name: "p.Chaos.NewtonEvolution.UseNestedParallelFor", help:"", type:"Var"}, {name: "p.Chaos.NewtonEvolution.UseSmoothTimeStep", help:"", type:"Var"}, {name: "p.Chaos.NewtonEvolution.WriteCCDContacts", help:"Write CCD collision contacts and normals potentially causing the CCD collision threads to lock, allowing for debugging of these contacts.", type:"Var"}, {name: "p.Chaos.OnlyUseInterclusterEdgesAttachedToMainParticles", help:"If true, an intercluster edge must be directly attached to a main particle for the particle to remain a part of the cluster union.", type:"Var"}, {name: "p.Chaos.PBDCollisionSolver.AutoStiffness.MassRatio1", help:"", type:"Var"}, {name: "p.Chaos.PBDCollisionSolver.AutoStiffness.MassRatio2", help:"", type:"Var"}, {name: "p.Chaos.PBDCollisionSolver.EnableInitialDepenetration", help:"", type:"Var"}, {name: "p.Chaos.PBDCollisionSolver.EnableSoftCollisions", help:"", type:"Var"}, {name: "p.Chaos.PBDCollisionSolver.JacobiPositionTolerance", help:"", type:"Var"}, {name: "p.Chaos.PBDCollisionSolver.JacobiRotationTolerance", help:"", type:"Var"}, {name: "p.Chaos.PBDCollisionSolver.JacobiStiffness", help:"", type:"Var"}, {name: "p.Chaos.PBDCollisionSolver.MaxManifoldPoints", help:"", type:"Var"}, {name: "p.Chaos.PBDCollisionSolver.Position.MinInvMassScale", help:"", type:"Var"}, {name: "p.Chaos.PBDCollisionSolver.Position.SolveEnabled", help:"", type:"Var"}, {name: "p.Chaos.PBDCollisionSolver.Position.StaticFriction.Stiffness", help:"", type:"Var"}, {name: "p.Chaos.PBDCollisionSolver.Velocity.AveragePointEnabled", help:"", type:"Var"}, {name: "p.Chaos.PBDCollisionSolver.Velocity.FrictionEnabled", help:"", type:"Var"}, {name: "p.Chaos.PBDCollisionSolver.Velocity.MinInvMassScale", help:"", type:"Var"}, {name: "p.Chaos.PBDCollisionSolver.Velocity.SolveEnabled", help:"", type:"Var"}, {name: "p.Chaos.PBDCollisionSolver.Velocity.StaticFriction.Stiffness", help:"", type:"Var"}, {name: "p.Chaos.PBDEvolution.FastPositionBasedFriction", help:"", type:"Var"}, {name: "p.Chaos.PBDEvolution.MinParallelBatchSize", help:"", type:"Var"}, {name: "p.Chaos.PBDEvolution.ParalleIntegrate", help:"Run the integration step in parallel for.", type:"Var"}, {name: "p.Chaos.PBDEvolution.UseNestedParallelFor", help:"", type:"Var"}, {name: "p.Chaos.PBDEvolution.UseSmoothTimeStep", help:"", type:"Var"}, {name: "p.Chaos.PBDEvolution.WriteCCDContacts", help:"Write CCD collision contacts and normals potentially causing the CCD collision threads to lock, allowing for debugging of these contacts.", type:"Var"}, {name: "p.Chaos.PBDLongRangeConstraints.MinParallelBatchSize", help:"The minimum number of long range tethers in a batch to process in parallel.", type:"Var"}, {name: "p.Chaos.PerformGeometryReduction", help:"Perform convex geometry simplification to increase performance in Chaos physics.", type:"Var"}, {name: "p.Chaos.PerParticleCollision.ISPC", help:"Whether to use ISPC optimizations in per particle collisions", type:"Var"}, {name: "p.Chaos.PerParticleCollision.ISPC.ParallelBatchSize", help:"Parallel batch size for ISPC", type:"Var"}, {name: "p.Chaos.PostIterationUpdates.ISPC", help:"Whether to use ISPC optimizations in PBD Post iteration updates", type:"Var"}, {name: "p.Chaos.PreSimulationTransforms.ISPC", help:"Whether to use ISPC optimizations in ApplySimulationTransforms", type:"Var"}, {name: "p.Chaos.PreSubstepInterpolation.ISPC", help:"Whether to use ISPC optimization in PreSubstep", type:"Var"}, {name: "p.Chaos.RemoveParticleFromMovingKinematicsOnDisable", help:"", type:"Var"}, {name: "p.Chaos.Simulation.ApplySolverProjectSettings", help:"Whether to apply the solver project settings on spawning a solver", type:"Var"}, {name: "P.Chaos.Simulation.Enable", help:"Enable / disable chaos simulation. If disabled, physics will not tick.", type:"Var"}, {name: "p.Chaos.SkinPhysicsMesh.ISPC", help:"Whether to use ISPC optimizations on skinned physics meshes", type:"Var"}, {name: "p.Chaos.SmallBatchSize", help:"Small batch size for chaos parallel loops", type:"Var"}, {name: "p.Chaos.SmoothedPositionLerpRate", help:"The interpolation rate for the smoothed position calculation. Used for sleeping.", type:"Var"}, {name: "p.Chaos.SoftBodyCollision.ISPC", help:"Whether to use ISPC optimizations in per particle collisions", type:"Var"}, {name: "p.Chaos.SoftBodyCollision.ISPC.ParallelBatchSize", help:"Parallel batch size for ISPC", type:"Var"}, {name: "p.Chaos.Solver.bChaosForceMACD", help:"Force all collisions to use MACD for testing", type:"Var"}, {name: "p.Chaos.Solver.CharacterGroundConstraint.Priority", help:"Set constraint priority. Larger values are evaluated later [def:0]", type:"Var"}, {name: "p.Chaos.Solver.CheckParticleViews", help:"", type:"Var"}, {name: "p.Chaos.Solver.CleanupCommandsOnDestruction", help:"Whether or not to run internal command queue cleanup on solver destruction (0 = no cleanup, >0 = cleanup all commands)", type:"Var"}, {name: "p.Chaos.Solver.Collision.AllowManifoldUpdate", help:"Enable/Disable reuse of manifolds between ticks (for small movement).", type:"Var"}, {name: "p.Chaos.Solver.Collision.CullDistance", help:"Override cull distance (if >= 0)", type:"Var"}, {name: "p.Chaos.Solver.Collision.DeferNarrowPhase", help:"Create contacts for all broadphase pairs, perform NarrowPhase later.", type:"Var"}, {name: "p.Chaos.Solver.Collision.DepenetrationVelocity", help:"Override initial overlap depenetration velocity (if >= 0)", type:"Var"}, {name: "p.Chaos.Solver.Collision.Enabled", help:"Enable/Disable collisions in the main scene.", type:"Var"}, {name: "p.Chaos.Solver.Collision.MaxPushOutVelocity", help:"Override max pushout velocity (if >= 0)", type:"Var"}, {name: "p.Chaos.Solver.Collision.MaxVelocityBoundsExpansion", help:"Override max velocity bounds expansion (if >= 0)", type:"Var"}, {name: "p.Chaos.Solver.Collision.MaxVelocityBoundsExpansionMACD", help:"Override max velocity bounds expansion for MACD (if >= 0)", type:"Var"}, {name: "p.Chaos.Solver.Collision.PositionFrictionIterations", help:"Override number of position iterations where friction is applied (if >= 0)", type:"Var"}, {name: "p.Chaos.Solver.Collision.PositionShockPropagationIterations", help:"Override number of position iterations where shock propagation is applied (if >= 0)", type:"Var"}, {name: "p.Chaos.Solver.Collision.Priority", help:"Set constraint priority. Larger values are evaluated later [def:0]", type:"Var"}, {name: "p.Chaos.Solver.Collision.SolverType", help:"-1: Use default (Gauss Seidel); 0: Gauss Seidel; 1: Gauss Seidel SOA 2: Partial Jacobi", type:"Var"}, {name: "p.Chaos.Solver.Collision.UseManifolds", help:"Enable/Disable use of manifolds in collision.", type:"Var"}, {name: "p.Chaos.Solver.Collision.VelocityBoundsMultiplier", help:"Override velocity bounds multiplier (if >= 0)", type:"Var"}, {name: "p.Chaos.Solver.Collision.VelocityBoundsMultiplierMACD", help:"Override velocity bounds multiplier for MACD (if >= 0)", type:"Var"}, {name: "p.Chaos.Solver.Collision.VelocityFrictionIterations", help:"Override number of velocity iterations where friction is applied (if >= 0)", type:"Var"}, {name: "p.Chaos.Solver.Collision.VelocityShockPropagationIterations", help:"Override number of velocity iterations where shock propagation is applied (if >= 0)", type:"Var"}, {name: "p.Chaos.Solver.CollisionModifiersBeforeCCD", help:"True: run the collision modifiers before CCD rewind is applied; False(default): run modifiers after CCD rewind. See comments in code.", type:"Var"}, {name: "p.Chaos.Solver.ComputeIterationSettings.Enabled", help:"Recompute iteration settings every time an island is changed", type:"Var"}, {name: "p.Chaos.Solver.DebugDraw.AngVelScale", help:"If >0 show angular velocity when drawing particle transforms.", type:"Var"}, {name: "p.Chaos.Solver.DebugDraw.ArrowSize", help:"ArrowSize.", type:"Var"}, {name: "p.Chaos.Solver.DebugDraw.BodyAxisLen", help:"BodyAxisLen.", type:"Var"}, {name: "p.Chaos.Solver.DebugDraw.Cluster.Constraints", help:"Draw Active Cluster Constraints (0 = never; 1 = end of frame).", type:"Var"}, {name: "p.Chaos.Solver.DebugDraw.ColorShapeByClientServer", help:"Color shape according to client and server: red = server / blue = client ", type:"Var"}, {name: "p.Chaos.Solver.DebugDraw.ConstraintAxisLen", help:"ConstraintAxisLen.", type:"Var"}, {name: "p.Chaos.Solver.DebugDraw.ContactInfoWidth", help:"ContactInfoWidth.", type:"Var"}, {name: "p.Chaos.Solver.DebugDraw.ContactLen", help:"ContactLen.", type:"Var"}, {name: "p.Chaos.Solver.DebugDraw.ContactOwnerWidth", help:"ContactOwnerWidth.", type:"Var"}, {name: "p.Chaos.Solver.DebugDraw.ContactWidth", help:"ContactWidth.", type:"Var"}, {name: "p.Chaos.Solver.DebugDraw.DrawPriority", help:"Draw Priority for debug draw shapes (0 draw at actual Z, +ve is closer to the screen).", type:"Var"}, {name: "p.Chaos.Solver.DebugDraw.ImpulseScale", help:"If >0 show impulses when drawing collisions.", type:"Var"}, {name: "p.Chaos.Solver.DebugDraw.InertiaScale", help:"When DebugDrawTransforms is enabled, show the mass-normalized inertia matrix scaled by this amount.", type:"Var"}, {name: "p.Chaos.Solver.DebugDraw.JointFeatures.ActorConnector", help:"Joint features mask (see FDebugDrawJointFeatures).", type:"Var"}, {name: "p.Chaos.Solver.DebugDraw.JointFeatures.Axes", help:"Joint features mask (see FDebugDrawJointFeatures).", type:"Var"}, {name: "p.Chaos.Solver.DebugDraw.JointFeatures.Color", help:"Joint features mask (see FDebugDrawJointFeatures).", type:"Var"}, {name: "p.Chaos.Solver.DebugDraw.JointFeatures.CoMConnector", help:"Joint features mask (see FDebugDrawJointFeatures).", type:"Var"}, {name: "p.Chaos.Solver.DebugDraw.JointFeatures.Index", help:"Joint features mask (see FDebugDrawJointFeatures).", type:"Var"}, {name: "p.Chaos.Solver.DebugDraw.JointFeatures.Island", help:"Joint features mask (see FDebugDrawJointFeatures).", type:"Var"}, {name: "p.Chaos.Solver.DebugDraw.JointFeatures.Level", help:"Joint features mask (see FDebugDrawJointFeatures).", type:"Var"}, {name: "p.Chaos.Solver.DebugDraw.JointFeatures.Stretch", help:"Joint features mask (see FDebugDrawJointFeatures).", type:"Var"}, {name: "p.Chaos.Solver.DebugDraw.LineThickness", help:"LineThickness.", type:"Var"}, {name: "p.Chaos.Solver.DebugDraw.PointSize", help:"Point size.", type:"Var"}, {name: "p.Chaos.Solver.DebugDraw.PushOutScale", help:"If >0 show pushouts when drawing collisions.", type:"Var"}, {name: "p.Chaos.Solver.DebugDraw.Scale", help:"Scale applied to all Chaos Debug Draw line lengths etc.", type:"Var"}, {name: "p.Chaos.Solver.DebugDraw.ShapeLineThicknessScale", help:"Shape lineThickness multiplier.", type:"Var"}, {name: "p.Chaos.Solver.DebugDraw.ShowClient", help:"Draw client related debug data", type:"Var"}, {name: "p.Chaos.Solver.DebugDraw.ShowComplex", help:"Whether to show complex collision is shape drawing is enabled", type:"Var"}, {name: "p.Chaos.Solver.DebugDraw.ShowDynamics", help:"If DebugDrawShapes is enabled, whether to show dynamic objects", type:"Var"}, {name: "p.Chaos.Solver.DebugDraw.ShowKinematics", help:"If DebugDrawShapes is enabled, whether to show kinematic objects", type:"Var"}, {name: "p.Chaos.Solver.DebugDraw.ShowLevelSet", help:"Whether to show levelset collision is shape drawing is enabled", type:"Var"}, {name: "p.Chaos.Solver.DebugDraw.ShowServer", help:"Draw server related debug data", type:"Var"}, {name: "p.Chaos.Solver.DebugDraw.ShowSimple", help:"Whether to show simple collision is shape drawing is enabled", type:"Var"}, {name: "p.Chaos.Solver.DebugDraw.ShowStatics", help:"If DebugDrawShapes is enabled, whether to show static objects", type:"Var"}, {name: "p.Chaos.Solver.DebugDraw.VelScale", help:"If >0 show velocity when drawing particle transforms.", type:"Var"}, {name: "p.Chaos.Solver.DebugDrawBounds", help:"Draw bounding volumes inside the broadphase (0 = never; 1 = end of frame).", type:"Var"}, {name: "p.Chaos.Solver.DebugDrawBVHs", help:"Draw Particle BVHs where applicable (0 = never; 1 = end of frame).", type:"Var"}, {name: "p.Chaos.Solver.DebugDrawCCDInteractions", help:"Draw CCD interactions.", type:"Var"}, {name: "p.Chaos.Solver.DebugDrawCCDThresholds", help:"Draw CCD swept thresholds.", type:"Var"}, {name: "p.Chaos.Solver.DebugDrawCharacterGroundConstraints", help:"Draw character ground constraints", type:"Var"}, {name: "p.Chaos.Solver.DebugDrawCollidingShapes", help:"Draw Shapes that have collisions on them (0 = never; 1 = end of frame).", type:"Var"}, {name: "p.Chaos.Solver.DebugDrawCollisions", help:"Draw Collisions (0 = never; 1 = end of frame).", type:"Var"}, {name: "p.Chaos.Solver.DebugDrawDensity", help:"Draw Density values in Kg/cm3 (0 = never; 1 = end of frame).", type:"Var"}, {name: "p.Chaos.Solver.DebugDrawIslands", help:"Draw solver islands (0 = never; 1 = end of frame).", type:"Var"}, {name: "p.Chaos.Solver.DebugDrawJoints", help:"Draw joints", type:"Var"}, {name: "p.Chaos.Solver.DebugDrawMass", help:"Draw Mass values in Kg (0 = never; 1 = end of frame).", type:"Var"}, {name: "p.Chaos.Solver.DebugDrawMeshBVHOverlaps", help:"Draw BVH of objects overlapping meshes", type:"Var"}, {name: "p.Chaos.Solver.DebugDrawMeshContactDetails", help:"Draw Mesh contacts", type:"Var"}, {name: "p.Chaos.Solver.DebugDrawMeshContacts", help:"Draw Mesh contacts", type:"Var"}, {name: "p.Chaos.Solver.DebugDrawPostIntegrationCollisions", help:"Draw Collisions prior to constraint solve phase.", type:"Var"}, {name: "p.Chaos.Solver.DebugDrawPostIntegrationShapes", help:"Draw Shapes prior to constraint solve phase.", type:"Var"}, {name: "p.Chaos.Solver.DebugDrawPreIntegrationCollisions", help:"Draw Collisions prior to integrate.", type:"Var"}, {name: "p.Chaos.Solver.DebugDrawPreIntegrationShapes", help:"Draw Shapes prior to integrate.", type:"Var"}, {name: "p.Chaos.Solver.DebugDrawShapes", help:"Draw Shapes (0 = never; 1 = end of frame).", type:"Var"}, {name: "p.Chaos.Solver.DebugDrawSleepState", help:"Draw island sleep state.", type:"Var"}, {name: "p.Chaos.Solver.DebugDrawSpatialAccelerationStructure", help:"Draw spatial acceleration structure", type:"Var"}, {name: "p.Chaos.Solver.DebugDrawSpatialAccelerationStructure.ShowLeaves", help:"Show spatial acceleration structure leaves when its debug draw is enabled", type:"Var"}, {name: "p.Chaos.Solver.DebugDrawSpatialAccelerationStructure.ShowNodes", help:"Show spatial acceleration structure nodes when its debug draw is enabled", type:"Var"}, {name: "p.Chaos.Solver.DebugDrawSuspension", help:"Draw Suspension (0 = never; 1 = end of frame).", type:"Var"}, {name: "p.Chaos.Solver.DebugDrawTransforms", help:"Draw particle transforms (0 = never; 1 = end of frame).", type:"Var"}, {name: "p.Chaos.Solver.Deterministic", help:"Override determinism. 0: disabled; 1: enabled; -1: use config", type:"Var"}, {name: "p.Chaos.Solver.DoFinalProbeNarrowPhase", help:"", type:"Var"}, {name: "p.Chaos.Solver.InertiaConditioning.Distance", help:"An input to inertia conditioning system. The joint distance error which needs to be stable (generate a low rotation).", type:"Var"}, {name: "p.Chaos.Solver.InertiaConditioning.Enabled", help:"Enable/Disable constraint stabilization through inertia conditioning", type:"Var"}, {name: "p.Chaos.Solver.InertiaConditioning.MaxInvInertiaComponentRatio", help:"An input to inertia conditioning system. The largest inertia component must be at least least multiple of the smallest component", type:"Var"}, {name: "p.Chaos.Solver.InertiaConditioning.RotationRatio", help:"An input to inertia conditioning system. The maximum ratio of joint correction from rotation versus translation", type:"Var"}, {name: "p.Chaos.Solver.IslandGroups.MaxWorkers", help:"The maximum number of worker threads to use (0 means unlimited)", type:"Var"}, {name: "p.Chaos.Solver.IslandGroups.MinBodiesPerWorker", help:"The minimum number of bodies we want per worker thread", type:"Var"}, {name: "p.Chaos.Solver.IslandGroups.MinConstraintsPerWorker", help:"The minimum number of constraints we want per worker thread", type:"Var"}, {name: "p.Chaos.Solver.IslandGroups.ParallelMode", help:"0: Single-Threaded; 1: Parallel-For; 2: Tasks", type:"Var"}, {name: "p.Chaos.Solver.IslandGroups.WorkerMultiplier", help:"Total number of island groups in the solver will be NumWorkerThreads * WorkerThreadMultiplier. [def:1]", type:"Var"}, {name: "p.Chaos.Solver.Iterations.Position", help:"Override number of solver position iterations (-1 to use config)", type:"Var"}, {name: "p.Chaos.Solver.Iterations.Projection", help:"Override number of solver projection iterations (-1 to use config)", type:"Var"}, {name: "p.Chaos.Solver.Iterations.Velocity", help:"Override number of solver velocity iterations (-1 to use config)", type:"Var"}, {name: "p.Chaos.Solver.Joint.AngleTolerance", help:"AngleTolerance.", type:"Var"}, {name: "p.Chaos.Solver.Joint.MaxInertiaRatio", help:"6Dof joint MaxInertiaRatio (if > 0)", type:"Var"}, {name: "p.Chaos.Solver.Joint.MaxSolverStiffness", help:"Solver stiffness on last iteration, increases each iteration from MinSolverStiffness.", type:"Var"}, {name: "p.Chaos.Solver.Joint.MinParentMassRatio", help:"6Dof joint MinParentMassRatio (if > 0)", type:"Var"}, {name: "p.Chaos.Solver.Joint.MinSolverStiffness", help:"Solver stiffness on first iteration, increases each iteration toward MaxSolverStiffness.", type:"Var"}, {name: "p.Chaos.Solver.Joint.NumIterationsAtMaxSolverStiffness", help:"How many iterations we want at MaxSolverStiffness.", type:"Var"}, {name: "p.Chaos.Solver.Joint.NumShockPropagationIterations", help:"How many iterations to enable SHockProagation for.", type:"Var"}, {name: "p.Chaos.Solver.Joint.PositionTolerance", help:"PositionTolerance.", type:"Var"}, {name: "p.Chaos.Solver.Joint.Priority", help:"Set constraint priority. Larger values are evaluated later [def:0]", type:"Var"}, {name: "p.Chaos.Solver.Joint.ShockPropagation", help:"6Dof joint shock propagation override (if >= 0).", type:"Var"}, {name: "p.Chaos.Solver.Joint.SolvePositionLast", help:"Should we solve joints in position-then-rotation order (false) or rotation-then-position order (true, default)", type:"Var"}, {name: "p.Chaos.Solver.Joint.TransferCollisions", help:"Allows joints to apply collisions to the parent from the child when the Joints TransferCollisionScale is not 0 [def:true]", type:"Var"}, {name: "p.Chaos.Solver.Joint.TransferCollisionsDebugTestAgainstMaxClamp", help:"Force all joint collision constraint settings to max clamp value to validate stability [def:false]", type:"Var"}, {name: "p.Chaos.Solver.Joint.TransferCollisionsKinematicScale", help:"Scale to apply to collision transfers between kinematic bodies [def:1.0]", type:"Var"}, {name: "p.Chaos.Solver.Joint.TransferCollisionsLimit", help:"Maximum number of constraints that are allowed to transfer to the parent. Lowering this will improve performance but reduce accuracy. [def:INT_MAX]", type:"Var"}, {name: "p.Chaos.Solver.Joint.TransferCollisionsStiffnessClamp", help:"Clamp of maximum value of the stiffness clamp[def:1.0]", type:"Var"}, {name: "p.Chaos.Solver.Joint.UseLinearSolver", help:"Use linear version of joint solver. (default is true", type:"Var"}, {name: "p.Chaos.Solver.Joint.UsePBDDrives", help:"Whether to solve drives in the position or velocity phase of the solver (default true", type:"Var"}, {name: "p.Chaos.Solver.Joint.UseSimd", help:"Enable/Disable SIMD on the linear joint solver", type:"Var"}, {name: "p.Chaos.Solver.OneWayPairCollisionMode", help:"How to treat collisions between two one-way interaction particles. See EOneWayInteractionPairCollisionMode (0: Ignore collisions; 1: Collide as normal; 2: Collide as spheres)", type:"Var"}, {name: "p.Chaos.Solver.ParticlePoolNumFrameUntilShrink", help:"Num Frame until we can potentially shrink the pool", type:"Var"}, {name: "p.Chaos.Solver.PersistentGraph", help:"", type:"Var"}, {name: "p.Chaos.Solver.ShrinkArrays", help:"Enable/Disable particle array shrinking in the main scene", type:"Var"}, {name: "p.Chaos.Solver.Sleep.AngularSleepThresholdSize", help:"Scales the angular threshold based on size (0 to disable size based scaling)", type:"Var"}, {name: "p.Chaos.Solver.Sleep.Defaults.AngularSleepThreshold", help:"Default angular threshold for sleeping.[def:0.0087]", type:"Var"}, {name: "p.Chaos.Solver.Sleep.Defaults.LinearSleepThreshold", help:"Default linear threshold for sleeping.[def:0.001]", type:"Var"}, {name: "p.Chaos.Solver.Sleep.Defaults.SleepCounterThreshold", help:"Default counter threshold for sleeping.[def:20]", type:"Var"}, {name: "p.Chaos.Solver.Sleep.Enabled", help:"", type:"Var"}, {name: "p.Chaos.Solver.Sleep.IsolatedParticle.AngularMultiplier", help:"A multiplier applied to SleepAngularThreshold for floating particles", type:"Var"}, {name: "p.Chaos.Solver.Sleep.IsolatedParticle.CounterMultiplier", help:"A multiplier applied to SleepCounterThreshold for floating particles", type:"Var"}, {name: "p.Chaos.Solver.Sleep.IsolatedParticle.LinearMultiplier", help:"A multiplier applied to SleepLinearThreshold for floating particles", type:"Var"}, {name: "p.Chaos.Solver.Suspension.Priority", help:"Set constraint priority. Larger values are evaluated later [def:0]", type:"Var"}, {name: "p.Chaos.Solver.TestMode.Enabled", help:"", type:"Var"}, {name: "p.Chaos.Solver.TestMode.ShowInitialTransforms", help:"", type:"Var"}, {name: "p.Chaos.Solver.TestMode.Step", help:"", type:"Var"}, {name: "p.Chaos.Solver.UseCCD", help:"Global flag to turn CCD on or off. Default is true (on)", type:"Var"}, {name: "p.Chaos.Solver.UseMACD", help:"Global flag to turn Movement-Aware Collision Detection (MACD) on or off. Default is true (on)", type:"Var"}, {name: "p.Chaos.Solver.UseParticlePool", help:"Whether or not to use dirty particle pool (Optim)", type:"Var"}, {name: "p.Chaos.Spherical.ISPC", help:"Whether to use ISPC optimizations in spherical constraints", type:"Var"}, {name: "p.Chaos.Spring.ISPC", help:"Whether to use ISPC optimizations in Spring constraints", type:"Var"}, {name: "p.Chaos.Spring.ParallelConstraintCount", help:"If we have more constraints than this, use parallel-for in Apply.", type:"Var"}, {name: "p.Chaos.SQ.DrawDebugVisitorQueries", help:"Draw bounds of objects visited by visitors in scene queries.", type:"Var"}, {name: "p.Chaos.StartVDRecording", help:"Turn on the recording of debugging data", type:"Cmd"}, {name: "p.Chaos.StopVDRecording", help:"Turn off the recording of debugging data", type:"Cmd"}, {name: "p.Chaos.Suspension.DebugDraw.Hardstop", help:"Debug draw suspension hardstop manifold", type:"Var"}, {name: "p.Chaos.Suspension.Hardstop.Enabled", help:"Enable/Disable Hardstop part of suspension constraint", type:"Var"}, {name: "p.Chaos.Suspension.MaxPushout", help:"Chaos Suspension Max Pushout Value", type:"Var"}, {name: "p.Chaos.Suspension.MaxPushoutVelocity", help:"Chaos Suspension Max Pushout Velocity Value", type:"Var"}, {name: "p.Chaos.Suspension.SlopeSpeedBlendThreshold", help:"Speed below which the anti-slide on slope blend mechanism starts", type:"Var"}, {name: "p.Chaos.Suspension.SlopeSpeedThreshold", help:"Speed below which the anti-slide on slope mechanism is fully employed", type:"Var"}, {name: "p.Chaos.Suspension.SlopeThreshold", help:"Slope threshold below which the anti-slide on slope mechanism is employed, value = Cos(AlopeAngle), i.e. for 50 degree slope = 0.6428, 30 degree slope = 0.866", type:"Var"}, {name: "p.Chaos.Suspension.Spring.Enabled", help:"Enable/Disable Spring part of suspension constraint", type:"Var"}, {name: "p.Chaos.Suspension.VelocitySolve", help:"Enable/Disable VelocitySolve", type:"Var"}, {name: "P.Chaos.SyncKinematicOnGameThread", help:"If set to 1, kinematic bodies will always send their transforms back to the game thread, following the simulation step/results. If 0, then they will never do so, and kinematics will be updated immediately their kinematic target is set. Any other value (e.g. the default -1) means that the behavior is determined on a per-object basis with the UpdateKinematicFromSimulation flag in BodyInstance.", type:"Var"}, {name: "p.Chaos.Thread.DesiredHz", help:"Desired update rate of the dedicated physics thread in Hz/FPS (Default 60.0f)", type:"Var"}, {name: "p.Chaos.Thread.WaitThreshold", help:"Desired wait time in ms before the game thread stops waiting to sync physics and just takes the last result. (default 16ms)", type:"Var"}, {name: "p.ChaosDebugDrawing", help:"Whether to debug draw low level physics solver information", type:"Var"}, {name: "p.ChaosRigidBodyNode", help:"Enables/disables chaos rigid body node updates and evaluations", type:"Var"}, {name: "p.Chaos.TriangleIntersections.MaxDelta", help:"Maximum delta position applied to resolve triangle intersections.", type:"Var"}, {name: "p.Chaos.TriangleMesh.ISPC", help:"Whether to use ISPC optimizations in triangle mesh calculations", type:"Var"}, {name: "p.Chaos.TriMeshPerPolySupport", help:"Disabling removes memory cost of vertex map on triangle mesh. Note: Changing at runtime will not work.", type:"Var"}, {name: "P.Chaos.UpdateKinematicsOnDeferredSkelMeshes", help:"Whether to defer update kinematics for skeletal meshes.", type:"Var"}, {name: "p.chaos.UseContactSpeedForStrainEval", help:"Whether to use contact speed to discard contacts when updating cluster strain (true: use speed, false: use impulse)", type:"Var"}, {name: "p.Chaos.UseRBANForDefaultPhysicsAssetSolverType", help:"Boolean to use RBAN for default physics asset solver type (false by default)", type:"Var"}, {name: "p.Chaos.VD.CompressBinaryData", help:"If true, serialized binary data will be compressed using Oodle on the fly before being traced", type:"Var"}, {name: "p.Chaos.VD.CompressionMode", help:"Oodle compression mode to use, 4 is by default which equsals to ECompressionLevel::VeryFast", type:"Var"}, {name: "p.Chaos.VD.MaxTimeToWaitForDisconnectSeconds", help:"Max time to wait after attempting to stop an active trace session. After that time has passed if we are still connected, CVD will continue and eventually error out.", type:"Var"}, {name: "p.Chaos.VD.SetCVDDataChannelEnabled", help:"Turn on or off a CVD Data Channel. Argument 1 is true or false, Argument is a comma separated list of channel names. Example: p.Chaos.VD.SetCVDDataChannelEnabled true SceneQueries,Integrate", type:"Cmd"}, {name: "p.Chaos.VD.SpawnNewCVDInstance", help:"Opens a new CVD windows wothout closing an existing one", type:"Cmd"}, {name: "p.Chaos.VD.TimeBetweenFullCaptures", help:"Time interval in seconds after which a full capture (not only delta changes) should be recorded", type:"Var"}, {name: "p.Chaos.VD.Tool.BroadcastGameFrameUpdateEvenIfNotChanged", help:"If true, each time we get a controller data updated event, a game frame update will be triggered even if the frame didn\'t change...", type:"Var"}, {name: "p.Chaos.VD.Tool.DisableUVsSupport", help:"If true, the generated meshes will not have UV data", type:"Var"}, {name: "p.Chaos.VD.Tool.ForceStaticMeshComponentUse", help:"If true, static mesh components will be used instead of Instanced Static mesh components when recreating the geometry for each particle", type:"Var"}, {name: "p.Chaos.VD.Tool.GeometryGenerationTaskLaunchBudgetSeconds", help:"How much time we can spend on the Geoemtry builder tick launching Geometry Generation Tasks", type:"Var"}, {name: "p.Chaos.VD.Tool.MaxDebugDrawLinesPerFrame", help:"Sets the max number of lines CVD is allowed to draw between all instances in a single frame.", type:"Var"}, {name: "p.Chaos.VD.Tool.MaxFramesToQueue", help:"The max number of game frames we will queue before processing them while the trace files is being loaded.", type:"Var"}, {name: "p.Chaos.VD.Tool.PlayAllPreviousFrameSteps", help:"If true, each time we get playback a solver frame in a specific stage, we will play all the previous steps from that frame in sequence to ensure we have the correct visualization for what happened in that frame.", type:"Var"}, {name: "p.Chaos.VD.Tool.PurgeInvalidOutlinerItemsBeforeBroadcast", help:"If set to true, scene outliner events will evaluated and any invalid outliner event in them will be removed before broadcasting the hierarchy change.", type:"Var"}, {name: "p.Chaos.VD.Tool.QueueAndCombineSceneOutlinerEvents", help:"If set to true, scene outliner events will be queued and sent once per frame. If there was a unprocessed event for an item, the las queued event will replace it", type:"Var"}, {name: "p.Chaos.VD.Tool.ReInitializeGeometryBuilderOnCleanup", help:"If true, any static mesh component and static mesh component created will be destroyed when a new CVD recording is loaded", type:"Var"}, {name: "p.Chaos.VD.Tool.UseCVDDynamicMeshGenerator", help:"If true, when creating a dynamic mesh from a mesh generator, CVD will use it\'s own mesh creation logic which included error handling that tries to repair broken geometry", type:"Var"}, {name: "p.Chaos.VD.Tool.UseObjectPool", help:"Set to false to disable the use of a pool system for uobjects.", type:"Var"}, {name: "p.Chaos.VelocityField.ISPC", help:"Whether to use ISPC optimizations in velocity field calculations", type:"Var"}, {name: "p.Chaos.VelocityField.MaxVelocity", help:"The maximum relative velocity to process the aerodynamics forces with.", type:"Var"}, {name: "p.Chaos.VisualDebuggerEnable", help:"Enable/Disable pushing/saving data to the visual debugger", type:"Var"}, {name: "p.Chaos.XPBDBending.ISPC", help:"Whether to use ISPC optimizations in XPBD Bending constraints", type:"Var"}, {name: "p.Chaos.XPBDBending.ISPC.MinNumParallelBatches", help:"Min number of batches to invoke parallelFor ISPC XPBDBending constraints", type:"Var"}, {name: "p.Chaos.XPBDBending.ISPC.ParallelBatchSize", help:"Parallel batch size for ISPC XPBDBending constraints", type:"Var"}, {name: "p.Chaos.XPBDBending.ParallelConstraintCount", help:"If we have more constraints than this, use parallel-for in Apply.", type:"Var"}, {name: "p.Chaos.XPBDBending.SplitLambdaDamping", help:"Use the split two-pass damping model (slower but doesn\'t make cloth too soft at high damping levels).", type:"Var"}, {name: "p.Chaos.XPBDSpring.ISPC", help:"Whether to use ISPC optimizations in XPBD Spring constraints", type:"Var"}, {name: "p.Chaos.XPBDSpring.ParallelConstraintCount", help:"If we have more constraints than this, use parallel-for in Apply.", type:"Var"}, {name: "p.Chaos.XPBDSpring.SplitDamping", help:"Test xpbd spring split damping mode. 0 = single lambda, 1 = interleaved with damping after (non-ispc only), 2 interleaved with damping before (non-ispc only), 3 = two passes damping after (non-ispc only), 4 = two passes damping before (default).", type:"Var"}, {name: "p.Chaos.XPBDStretchBias.ISPC", help:"Whether to use ISPC optimizations in XPBD Stretch Bias constraints", type:"Var"}, {name: "p.ChaosCloth.DebugDrawAmimNormals", help:"Whether to debug draw the animated/kinematic Cloth normals", type:"Var"}, {name: "p.ChaosCloth.DebugDrawAnimDrive", help:"Whether to debug draw the Chaos Cloth anim drive", type:"Var"}, {name: "p.ChaosCloth.DebugDrawAnimMeshWired", help:"Whether to debug draw the animated/kinematic Cloth wireframe meshes", type:"Var"}, {name: "p.ChaosCloth.DebugDrawAnimVelocities", help:"Whether to debug draw the animated/kinematic Cloth velocities", type:"Var"}, {name: "p.ChaosCloth.DebugDrawBackstopDistances", help:"Whether to debug draw the Chaos Cloth backstop distances", type:"Var"}, {name: "p.ChaosCloth.DebugDrawBackstops", help:"Whether to debug draw the Chaos Cloth backstops", type:"Var"}, {name: "p.ChaosCloth.DebugDrawBendingConstraint", help:"Whether to debug draw the Chaos Cloth bending constraint", type:"Var"}, {name: "p.ChaosCloth.DebugDrawBounds", help:"Whether to debug draw the Chaos Cloth bounds", type:"Var"}, {name: "p.ChaosCloth.DebugDrawCollision", help:"Whether to debug draw the Chaos Cloth collisions", type:"Var"}, {name: "p.ChaosCloth.DebugDrawEdgeConstraint", help:"Whether to debug draw the Chaos Cloth edge constraint", type:"Var"}, {name: "p.ChaosCloth.DebugDrawElementIndices", help:"Whether to debug draw the Chaos Cloth element indices", type:"Var"}, {name: "p.ChaosCloth.DebugDrawFaceNormals", help:"Whether to debug draw the Chaos Cloth face normals", type:"Var"}, {name: "p.ChaosCloth.DebugDrawGravity", help:"Whether to debug draw the Chaos Cloth gravity acceleration vector", type:"Var"}, {name: "p.ChaosCloth.DebugDrawInversedFaceNormals", help:"Whether to debug draw the Chaos Cloth inversed face normals", type:"Var"}, {name: "p.ChaosCloth.DebugDrawLocalSpace", help:"Whether to debug draw the Chaos Cloth local space", type:"Var"}, {name: "p.ChaosCloth.DebugDrawLongRangeConstraint", help:"Whether to debug draw the Chaos Cloth long range constraint (aka tether constraint)", type:"Var"}, {name: "p.ChaosCloth.DebugDrawMaxDistances", help:"Whether to debug draw the Chaos Cloth max distances", type:"Var"}, {name: "p.ChaosCloth.DebugDrawMaxDistanceValues", help:"Whether to debug draw the Chaos Cloth max distances as numbers", type:"Var"}, {name: "p.ChaosCloth.DebugDrawParticleIndices", help:"Whether to debug draw the Chaos Cloth particle indices", type:"Var"}, {name: "p.ChaosCloth.DebugDrawPhysMeshWired", help:"Whether to debug draw the Chaos Cloth wireframe meshes", type:"Var"}, {name: "p.ChaosCloth.DebugDrawPointNormals", help:"Whether to debug draw the Chaos Cloth point normals", type:"Var"}, {name: "p.ChaosCloth.DebugDrawPointVelocities", help:"Whether to debug draw the Chaos Cloth point velocities", type:"Var"}, {name: "p.ChaosCloth.DebugDrawSelfCollision", help:"Whether to debug draw the Chaos Cloth self collision information", type:"Var"}, {name: "p.ChaosCloth.DebugDrawSelfIntersection", help:"Whether to debug draw the Chaos Cloth self intersection information", type:"Var"}, {name: "p.ChaosCloth.DebugDrawWindForces", help:"Whether to debug draw the Chaos Cloth wind forces", type:"Var"}, {name: "p.ChaosCloth.GravityMultiplier", help:"Scalar multiplier applied at the final stage of the cloth\'s gravity formulation.", type:"Var"}, {name: "p.ChaosCloth.Ispc", help:"Enable or disable ISPC optimizations for cloth simulation.", type:"Cmd"}, {name: "p.ChaosCloth.LegacyDisablesAccurateWind", help:"Whether using the Legacy wind model switches off the accurate wind model, or adds up to it", type:"Var"}, {name: "p.ChaosCloth.Solver.DebugHitchInterval", help:"Hitch interval in frames. Create artificial hitches to debug simulation jitter. 0 to disable", type:"Var"}, {name: "p.ChaosCloth.Solver.DebugHitchLength", help:"Hitch length in ms. Create artificial hitches to debug simulation jitter. 0 to disable", type:"Var"}, {name: "p.ChaosCloth.Solver.DisableCollision", help:"Disable all collision particles. Needs reset of the simulation (p.ChaosCloth.Reset).", type:"Var"}, {name: "p.ChaosCloth.Solver.DisableTimeDependentNumIterations", help:"Make the number of iterations independent from the time step.", type:"Var"}, {name: "p.ChaosCloth.Solver.MaxVelocity", help:"Maximum relative velocity of the cloth particles relatively to their animated positions equivalent. 0 to disable.", type:"Var"}, {name: "p.ChaosCloth.Solver.MinParallelBatchSize", help:"The minimum number of particle to process in parallel batch by the solver.", type:"Var"}, {name: "p.ChaosCloth.Solver.ParallelClothPostUpdate", help:"Pre-transform the cloth particles for each cloth in parallel.", type:"Var"}, {name: "p.ChaosCloth.Solver.ParallelClothPreUpdate", help:"Pre-transform the cloth particles for each cloth in parallel.", type:"Var"}, {name: "p.ChaosCloth.Solver.ParallelClothUpdate", help:"Skin the physics mesh and do the other cloth update for each cloth in parallel.", type:"Var"}, {name: "p.ChaosCloth.Solver.UseVelocityScale", help:"Use the velocity scale to compensate for clamping to MaxPhysicsDelta, in order to avoid miscalculating velocities during hitches.", type:"Var"}, {name: "p.ChaosCloth.UseOptimizedTaperedCapsule", help:"Use the optimized TaperedCapsule code instead of using a tapered cylinder and two spheres", type:"Var"}, {name: "p.ChaosCloth.UseTimeStepSmoothing", help:"Use time step smoothing to avoid jitter during drastic changes in time steps.", type:"Var"}, {name: "p.ChaosClothEditor.DebugDrawAnimDrive", help:"Draws the current skinned reference mesh for the simulation which anim drive will attempt to reach if enabled", type:"Var"}, {name: "p.ChaosClothEditor.DebugDrawAnimMeshWired", help:"Draws the current animated mesh input in wireframe", type:"Var"}, {name: "p.ChaosClothEditor.DebugDrawAnimNormals", help:"Draws the current point normals for the animated mesh", type:"Var"}, {name: "p.ChaosClothEditor.DebugDrawBackstopDistances", help:"Draws the backstop distance offset for each simulation particle", type:"Var"}, {name: "p.ChaosClothEditor.DebugDrawBackstops", help:"Draws the backstop radius and position for each simulation particle", type:"Var"}, {name: "p.ChaosClothEditor.DebugDrawBendingConstraint", help:"Draws the bending spring constraints", type:"Var"}, {name: "p.ChaosClothEditor.DebugDrawCollision", help:"Draws the collision bodies the simulation is currently using", type:"Var"}, {name: "p.ChaosClothEditor.DebugDrawEdgeConstraint", help:"Draws the edge spring constraints", type:"Var"}, {name: "p.ChaosClothEditor.DebugDrawElementIndices", help:"Draws the element\'s (triangle or other) indices as instantiated by the solver", type:"Var"}, {name: "p.ChaosClothEditor.DebugDrawLocalSpace", help:"Draws the local space reference bone", type:"Var"}, {name: "p.ChaosClothEditor.DebugDrawLongRangeConstraint", help:"Draws the long range attachment constraint distances", type:"Var"}, {name: "p.ChaosClothEditor.DebugDrawMaxDistances", help:"Draws the current max distances for the sim particles as a line along its normal", type:"Var"}, {name: "p.ChaosClothEditor.DebugDrawMaxDistanceValues", help:"Draws the current max distances as numbers", type:"Var"}, {name: "p.ChaosClothEditor.DebugDrawParticleIndices", help:"Draws the particle indices as instantiated by the solver", type:"Var"}, {name: "p.ChaosClothEditor.DebugDrawPhysMeshShaded", help:"Draws the current physical result as a doubled sided flat shaded mesh", type:"Var"}, {name: "p.ChaosClothEditor.DebugDrawPhysMeshWired", help:"Draws the current physical mesh result in wireframe", type:"Var"}, {name: "p.ChaosClothEditor.DebugDrawPointNormals", help:"Draws the current point normals for the simulation mesh", type:"Var"}, {name: "p.ChaosClothEditor.DebugDrawPointVelocities", help:"Draws the current point velocities for the simulation mesh", type:"Var"}, {name: "p.ChaosClothEditor.DebugDrawSelfCollision", help:"Draws the self collision thickness/debugging information", type:"Var"}, {name: "p.ChaosClothEditor.DebugDrawSelfIntersection", help:"Draws the self intersection contour/region information", type:"Var"}, {name: "p.ChaosClothEditor.DebugDrawWindAndPressureForces", help:"Draws the Wind drag and lift and pressure forces", type:"Var"}, {name: "p.ChaosClothVisualization.AnisoSpringDrawMode", help:"Stretch draw mode, 0 = Parallel graph color, 1 = Anisotropy", type:"Var"}, {name: "p.ChaosClothVisualization.BendingDrawMode", help:"Bending draw mode, 0 = BuckleStatus, 1 = Parallel graph color, 2 = Anisotropy, 3 = RestAngle", type:"Var"}, {name: "p.ChaosClothVisualization.DrawInForeground", help:"Draw in foreground when outside the cloth/SKM editor", type:"Var"}, {name: "p.ChaosClothVisualization.DrawSkinnedLattice", help:"Draw skinned lattice, 0 = none, 1 = filled, 2 = empty, 3 = both", type:"Var"}, {name: "p.ChaosClothVisualization.StretchBiasDrawMode", help:"Stretch draw mode, 0 = Parallel graph color, 1 = Warp Stretch, 2 = Weft Stretch, 3 = BiasStretch", type:"Var"}, {name: "p.ChaosClothVisualization.StretchBiasDrawOutOfRange", help:"Draw out of range elements (When drawing warp/weft stretch)", type:"Var"}, {name: "p.ChaosClothVisualization.StretchBiasDrawRangeMax", help:"Max stretch in draw color range. Negative = compressed, 0 = undeformed, positive = stretched. (When drawing warp/weft stretch)", type:"Var"}, {name: "p.ChaosClothVisualization.StretchBiasDrawRangeMin", help:"Min stretch in draw color range. Negative = compressed, 0 = undeformed, positive = stretched. (When drawing warp/weft stretch)", type:"Var"}, {name: "p.ChaosClothVisualization.WeightMapName", help:"Weight map name to be visualized", type:"Var"}, {name: "p.ChaosNumContactIterationsOverride", help:"Override for num contact iterations if >= 0. [def:-1]", type:"Var"}, {name: "p.ChaosNumPushOutIterationsOverride", help:"Override for num push out iterations if >= 0 [def:-1]", type:"Var"}, {name: "p.ChaosRigidsEvolutionApplyAllowEarlyOut", help:"Allow Chaos Rigids Evolution apply iterations to early out when resolved.[def:1]", type:"Var"}, {name: "p.ChaosRigidsEvolutionApplyPushoutAllowEarlyOut", help:"Allow Chaos Rigids Evolution apply-pushout iterations to early out when resolved.[def:1]", type:"Var"}, {name: "p.ChaosSolverEnableJointConstraints", help:"Enable Joint Constraints defined within the Physics Asset Editor", type:"Var"}, {name: "p.ChildrenInheritVelocity", help:"Whether children inherit parent collision velocity when declustering. 0 has no impact velocity like glass, 1 has full impact velocity like brick", type:"Var"}, {name: "p.ClientAuthorityThresholdOnBaseChange", help:"When a pawn moves onto or off of a moving base, this can cause an abrupt correction. In these cases, trust the client up to this distance away from the server component location.", type:"Var"}, {name: "p.ClientRecordMovePackedRpcStatsToCsv", help:"Whether to record MovePacked RPC stats to Csv on the client (RPC count and RPC size)\n0: Disable, 1: Record MovePacked RPC stats", type:"Var"}, {name: "p.ClientRecordNetCorrectionDistanceToCsv", help:"Whether to record net correction distances to Csv on the client. This can be useful to understand how often corrections happen and how big are they\n0: Disable, 1: Record the correction distance", type:"Var"}, {name: "p.Cloth.DefaultClothingSimulationFactoryClass", help:"The class name of the default clothing simulation factory.\nKnown providers are:\nChaosClothingSimulationFactory\n", type:"Var"}, {name: "p.Cloth.MaxVelocityScale", help:"The maximum amount of the component induced velocity allowed on all cloths.\nUse 1.0 for fully induced velocity(default), or use 0.0 for no induced velocity, and any other values in between for a reduced induced velocity.\nWhen set to 0.0, it also provides a way to force the clothing to simulate in local space.\n default: 1.0", type:"Var"}, {name: "p.Cloth.ResetAfterTeleport", help:"Require p.Cloth.TeleportOverride. Reset the clothing after moving the clothing position (called teleport).\n Default: true.", type:"Var"}, {name: "p.Cloth.TeleportDistanceThreshold", help:"Require p.Cloth.TeleportOverride. Conduct teleportation if the character\'s movement is greater than this threshold in 1 frame.\n Zero or negative values will skip the check.\n Default: 300.", type:"Var"}, {name: "p.Cloth.TeleportOverride", help:"Force console variable teleport override values over skeletal mesh properties.\n Default: false.", type:"Var"}, {name: "p.Cloth.TeleportRotationThreshold", help:"Require p.Cloth.TeleportOverride. Rotation threshold in degrees, ranging from 0 to 180.\n Conduct teleportation if the character\'s rotation is greater than this threshold in 1 frame.\n Zero or negative values will skip the check.\n Default 0.", type:"Var"}, {name: "p.ClothPhysics.UseTaskThread", help:"If 1, run cloth on the task thread. If 0, run on game thread.", type:"Var"}, {name: "p.ClothPhysics.WaitForParallelClothTask", help:"If 1, always wait for cloth task completion in the Cloth Tick function. If 0, wait at end-of-frame updates instead if allowed by component settings", type:"Var"}, {name: "p.Clustering.ParticleReleaseThrottlingMaxCount", help:"Maximum number of active geometry collection to reach before all released clustering disable all released particle instantly", type:"Var"}, {name: "p.Clustering.ParticleReleaseThrottlingMinCount", help:"Minimum number of active geometry collection to reach before clustering start to disable a percentage of the released particle per cluster", type:"Var"}, {name: "p.ClusterUnion.SyncBodiesMoveNewComponents", help:"Enable a fix to ensure new components in a cluster union are moved once on add (even if the cluster is not moving).", type:"Var"}, {name: "p.CollisionAngularFriction", help:"Collision angular friction for all contacts if >= 0", type:"Var"}, {name: "p.CollisionBaseFrictionImpulse", help:"Collision base friction position impulse for all contacts if >= 0", type:"Var"}, {name: "p.CollisionCanAlwaysDisableContacts", help:"Collision culling will always be able to permanently disable contacts", type:"Var"}, {name: "p.CollisionCanNeverDisableContacts", help:"Collision culling will never be able to permanently disable contacts", type:"Var"}, {name: "p.CollisionDisableCulledContacts", help:"Allow the PBDRigidsEvolutionGBF collision constraints to throw out contacts mid solve if they are culled.", type:"Var"}, {name: "p.CollisionFriction", help:"Collision friction for all contacts if >= 0", type:"Var"}, {name: "p.CollisionParticlesMax", help:"Maximum number of particles after simplicial pruning", type:"Var"}, {name: "p.CollisionParticlesMin", help:"Minimum number of particles after simplicial pruning (assuming it started with more)", type:"Var"}, {name: "p.CollisionParticlesPerObjectFractionDefault", help:"Fraction of verts", type:"Var"}, {name: "p.CollisionParticlesSpatialDivision", help:"Spatial bucketing to cull collision particles.", type:"Var"}, {name: "p.CollisionParticlesUseImplicitCulling", help:"Use the implicit to cull interior vertices.", type:"Var"}, {name: "p.CollisionRestitution", help:"Collision restitution for all contacts if >= 0", type:"Var"}, {name: "p.CollisionRestitutionThreshold", help:"Collision restitution threshold override if >= 0 (units of acceleration)", type:"Var"}, {name: "p.ComNudgeAffectsInertia", help:"", type:"Var"}, {name: "p.ComputeConstraintsUseAny", help:"", type:"Var"}, {name: "p.CullPhiVisualizeDistance", help:"", type:"Var"}, {name: "p.CVarGeometryCollectionImpulseWorkAround", help:"This enabled a workaround to allow impulses to be applied to geometry collection.\n", type:"Var"}, {name: "p.Dataflow.Editor.ContextCaching", help:"Allow the Dataflow editor to crate and use a pre-evaluated graph when the dataflow editor is re-opened.[def:true]", type:"Var"}, {name: "p.Dataflow.Editor.EnableSkeletonView", help:"Deprecated Tool! Allows the Dataflow editor to create a skeleton view that reflects the hierarchy and selection state of the construction viewport.[def:false]", type:"Var"}, {name: "p.Dataflow.Editor.ShowEnvironment", help:"Show the environment in the dataflow editor[def:false]", type:"Var"}, {name: "p.Dataflow.Editor.ShowFloor", help:"Show the floor in the dataflow editor[def:false]", type:"Var"}, {name: "p.Dataflow.EnableSimulation", help:"If true enable the use of simulation dataflow (WIP)", type:"Var"}, {name: "p.Dataflow.EnableToolsInPIE", help:"Enable Dataflow Editor tools while Play In Editor is running [def:true]", type:"Var"}, {name: "p.Dataflow.IsEditable", help:"Whether to allow edits of the dataflow [def:true]", type:"Var"}, {name: "p.Dataflow.Simulation.ThreadingMode", help:"0 : run simulation on GT | 1 : run simulation on PT (GT is blocked in manager Tick) | 2 : run simulation on PT (GT will be blocked at the end of the world tick)", type:"Var"}, {name: "p.DefaultCollisionFriction", help:"Collision friction default value if no materials are found.", type:"Var"}, {name: "p.DefaultCollisionRestitution", help:"Collision restitution default value if no materials are found.", type:"Var"}, {name: "p.DefaultReplication.CorrectConnectedBodies", help:"When true, transform corrections will also apply to any connected physics object.", type:"Var"}, {name: "p.DefaultReplication.CorrectConnectedBodiesFriction", help:"When true, transform correction on any connected physics object will also recalculate their friction.", type:"Var"}, {name: "p.DefaultReplication.Legacy.HardsnapInPT", help:"If default replication is used and it\'s running the legacy flow through Game Thread, allow hardsnapping to be performed on Physics Thread if async physics is enabled..", type:"Var"}, {name: "p.DeferCharacterMeshMovement", help:"Optimization - When enabled, defers CharacterMesh move propagation until the end of larger scoped moves. The mesh will still move, but all attached components will wait until all mesh movement is done within the scope.", type:"Var"}, {name: "p.DeferCharacterMeshMovementForAllCorrections", help:"Optimization - When enabled, defers CharacterMesh move propagation for all corrections until the end of larger scoped moves. Requires `bDeferCharacterMeshMovement=true\'.", type:"Var"}, {name: "p.DisableEditorPhysicsHandle", help:"When true, disable the physics spring for dragging objects in PIE. Use a teleport instead.", type:"Var"}, {name: "p.DisableParticleUpdateVelocityParallelFor", help:"Disable Particle Update Velocity ParallelFor and run the update on a single thread", type:"Var"}, {name: "p.DisableSim", help:"Disable Sim", type:"Var"}, {name: "p.DisableThreshold", help:"Disable threshold frames to transition to sleeping", type:"Var"}, {name: "p.DumpPhysicalMaterialMaskData", help:"Outputs the current mask data for the specified physical material mask asset to the log.", type:"Cmd"}, {name: "p.EnableCharacterAccelerationReplication", help:"Whether to author acceleration data with character movement replication to sim proxies.", type:"Var"}, {name: "p.EnableDeferredPhysicsCreation", help:"Enables/Disables deferred physics creation.", type:"Var"}, {name: "p.EnableKinematicDeferralPrePhysicsCondition", help:"If is 1, and deferral would\'ve been disallowed due to EUpdateTransformFlags, allow if in PrePhysics tick. If 0, condition is unchanged.", type:"Var"}, {name: "p.EnableKinematicDeferralStartPhysicsCondition", help:"If is 1, allow kinematics to be deferred in start physics (probably only called from replication tick). If 0, no deferral in startphysics.", type:"Var"}, {name: "p.EnableMeshClean", help:"Enable/Disable mesh cleanup during cook.", type:"Var"}, {name: "p.EnableOverrideSolverDeltaTime", help:"If true, setting for override solver delta time can be used. False will disable this feature.", type:"Var"}, {name: "p.EnableSkeletalMeshConstraints", help:"Enable skeletal mesh constraints defined within the Physics Asset Editor", type:"Var"}, {name: "p.EnsureUnweldModifiesGTOnly", help:"Ensure if unweld modifies geometry shared with physics thread", type:"Var"}, {name: "p.FixBadAccelerationStructureRemoval", help:"", type:"Var"}, {name: "p.ForceDisableAsyncPhysics", help:"Whether to force async physics off regardless of other settings", type:"Var"}, {name: "p.ForceMbpClient", help:"Forces all created scenes to use MBP on client builds", type:"Var"}, {name: "p.ForceMbpServer", help:"Forces all created scenes to use MBP on server builds", type:"Var"}, {name: "p.ForceNoKKPairs", help:"Disables kinematic-kinematic pairs. This is required when using APEX destruction to correctly generate chunk pairs - when not using destruction this speeds up the broadphase by early rejecting KK pairs.", type:"Var"}, {name: "p.ForceNoKSPairs", help:"Disables kinematic-static pairs. This makes converting from static to dynamic a little slower - but provides better broadphase performance because we early reject those pairs.", type:"Var"}, {name: "p.ForceNoCollisionIntoSQ", help:"When enabled, all particles end up in sq structure, even ones with no collision", type:"Var"}, {name: "p.ForceSubstep", help:"Whether to force substepping on0: Ignore, 1: Force", type:"Var"}, {name: "p.GatherVerbosePhysicsStats", help:"If enabled, stat ChaosDedicated will show detailed stats that are more expensive to gather", type:"Var"}, {name: "p.gc.ArrowScale", help:"Geometry Collection debug draw, arrow size for normals.\nDefault = 2.5.", type:"Var"}, {name: "p.gc.AxisScale", help:"Geometry Collection debug draw, size of the axis used for visualizing all transforms.\nDefault = 20.", type:"Var"}, {name: "p.gc.CollisionAtOrigin", help:"Geometry Collection debug draw, show any collision volume at the origin, in local space.\nDefault = 0", type:"Var"}, {name: "p.gc.DebugDrawClustering", help:"Geometry Collection debug draw, show debug visualization for all clustered children associated to the current rigid body id selection.\nDefault = 0", type:"Var"}, {name: "p.gc.DebugDrawHierarchy", help:"Geometry Collection debug draw, show debug visualization for the top level node rather than the bottom leaf nodes of a cluster\'s hierarchy..\nDefault = 0", type:"Var"}, {name: "p.gc.DebugDrawWholeCollection", help:"Geometry Collection debug draw, show debug visualization for the rest of the geometry collection related to the current rigid body id selection.\nDefault = 0", type:"Var"}, {name: "p.gc.HideGeometry", help:"Geometry Collection debug draw, geometry visibility setting, select the part of the geometry to hide in order to better visualize the debug information.\n0: Do not hide any geometries.\n1: Hide the geometry associated to the rigid bodies selected for collision display.\n2: Hide the geometry associated to the selected rigid bodies.\n3: Hide the entire geometry collection associated to the selected rigid bodies.\n4: Hide all geometry collections.\nDefault = 1", type:"Var"}, {name: "p.gc.LineThickness", help:"Geometry Collection debug draw, line thickness.\nDefault = 1.", type:"Var"}, {name: "p.fracture.ValidateResultsOfEditOperations", help:"When on this will enable result validation for fracture tool edit operations (can be slow for large geometry collection) [def:0]", type:"Var"}, {name: "p.gc.BuildGeometryForChildrenOnGT", help:"If true build all children geometry on Game Thread at initilaization time, otherwise wait until destruction occurs.", type:"Var"}, {name: "p.gc.BuildGeometryForChildrenOnPT", help:"If true build all children geometry on Physics Thread at initilaization time, otherwise wait until destruction occurs.", type:"Var"}, {name: "p.gc.CreateGTParticlesForChildren", help:"If true create all children particles at initilaization time, otherwise wait until destruction occurs.", type:"Var"}, {name: "p.gc.GlobalMaxSimulatedLevel", help:"Allow to set the Global Maximum Simulated Level for Geoemtry Collection. The min between the MaxSimulatedLevel and the GlobalMaxSimulatedLevel will be used. ", type:"Var"}, {name: "p.gc.NormalScale", help:"Geometry Collection debug draw, normal size.\nDefault = 10.", type:"Var"}, {name: "p.gc.PointThickness", help:"Geometry Collection debug draw, point thickness.\nDefault = 6.", type:"Var"}, {name: "p.gc.SelectedRigidBodyId", help:"Geometry Collection debug draw, visualize debug informations for the selected rigid body ids.\nDefault = -1", type:"Var"}, {name: "p.gc.SelectedRigidBodySolver", help:"Geometry Collection debug draw, visualize debug informations for the selected rigid body solver.\nDefault = None", type:"Var"}, {name: "p.gc.ShowBoundingBox", help:"Geometry Collection debug draw, show the bounding box for the selected rigid body\'s associated geometries.\nDefault = 0", type:"Var"}, {name: "p.gc.ShowConnectivityEdges", help:"Geometry Collection debug draw, show the connectivity edges for the rigid body\'s associated cluster nodes.\nDefault = 0", type:"Var"}, {name: "p.gc.ShowFaceIndices", help:"Geometry Collection debug draw, show the face indices for the selected rigid body\'s associated geometries.\nDefault = 0", type:"Var"}, {name: "p.gc.ShowFaceNormals", help:"Geometry Collection debug draw, show the face normals for the selected rigid body\'s associated geometries.\nDefault = 0", type:"Var"}, {name: "p.gc.ShowFaces", help:"Geometry Collection debug draw, show the faces for the selected rigid body\'s associated geometries.\nDefault = 0", type:"Var"}, {name: "p.gc.ShowGeometryIndex", help:"Geometry Collection debug draw, show the geometry index for the selected rigid body\'s associated geometries.\nDefault = 0", type:"Var"}, {name: "p.gc.ShowGeometryTransform", help:"Geometry Collection debug draw, show the geometry transform for the selected rigid body\'s associated geometries.\nDefault = 0", type:"Var"}, {name: "p.gc.ShowLevel", help:"Geometry Collection debug draw, show the hierarchical level for the selected rigid body\'s associated cluster nodes.\nDefault = 0", type:"Var"}, {name: "p.gc.ShowParent", help:"Geometry Collection debug draw, show a link from the selected rigid body\'s associated cluster nodes to their parent\'s nodes.\nDefault = 0", type:"Var"}, {name: "p.gc.ShowRigidBodyCollision", help:"Geometry Collection debug draw, show the selected\'s rigid body\'s collision volume.\nDefault = 0", type:"Var"}, {name: "p.gc.ShowRigidBodyForce", help:"Geometry Collection debug draw, show the selected\'s rigid body\'s applied force and torque.\nDefault = 0", type:"Var"}, {name: "p.gc.ShowRigidBodyId", help:"Geometry Collection debug draw, show the rigid body id(s).\nDefault = 0", type:"Var"}, {name: "p.gc.ShowRigidBodyInertia", help:"Geometry Collection debug draw, show the selected\'s rigid body\'s inertia tensor box.\nDefault = 0", type:"Var"}, {name: "p.gc.ShowRigidBodyInfos", help:"Geometry Collection debug draw, show the selected\'s rigid body\'s information.\nDefault = 0", type:"Var"}, {name: "p.gc.ShowRigidBodyTransform", help:"Geometry Collection debug draw, show the selected\'s rigid body\'s transform.\nDefault = 0", type:"Var"}, {name: "p.gc.ShowRigidBodyVelocity", help:"Geometry Collection debug draw, show the selected\'s rigid body\'s linear and angular velocities.\nDefault = 0", type:"Var"}, {name: "p.gc.ShowSingleFace", help:"Geometry Collection debug draw, enable single face visualization for the selected rigid body\'s associated geometries.\nDefault = 0", type:"Var"}, {name: "p.gc.ShowTransform", help:"Geometry Collection debug draw, show the transform for the selected rigid body\'s associated cluster nodes.\nDefault = 0", type:"Var"}, {name: "p.gc.ShowTransformIndex", help:"Geometry Collection debug draw, show the transform index for the selected rigid body\'s associated cluster nodes.\nDefault = 0", type:"Var"}, {name: "p.gc.ShowVertexIndices", help:"Geometry Collection debug draw, show the vertex index for the selected rigid body\'s associated geometries.\nDefault = 0", type:"Var"}, {name: "p.gc.ShowVertexNormals", help:"Geometry Collection debug draw, show the vertex normals for the selected rigid body\'s associated geometries.\nDefault = 0", type:"Var"}, {name: "p.gc.ShowVertices", help:"Geometry Collection debug draw, show the vertices for the selected rigid body\'s associated geometries.\nDefault = 0", type:"Var"}, {name: "p.gc.SingleFaceIndex", help:"Geometry Collection debug draw, the index of the single face to visualize.\nDefault = 0", type:"Var"}, {name: "p.gc.TextScale", help:"Geometry Collection debug draw, text scale.\nDefault = 1.", type:"Var"}, {name: "p.gc.TextShadow", help:"Geometry Collection debug draw, text shadow under indices for better readability.\nDefault = 1.", type:"Var"}, {name: "p.gc.UseActiveVisualization", help:"Geometry Collection debug draw, adapt visualization depending of the cluster nodes\' hierarchical level..\nDefault = 1.", type:"Var"}, {name: "p.HackAngularDrag", help:"Angular drag used to slow down objects. This is a hack and should not be relied on as a feature.", type:"Var"}, {name: "p.HackAngularDrag2", help:"Angular drag used to slow down objects. This is a hack and should not be relied on as a feature.", type:"Var"}, {name: "p.HackLinearDrag", help:"Linear drag used to slow down objects. This is a hack and should not be relied on as a feature.", type:"Var"}, {name: "p.HackLinearDrag2", help:"Linear drag used to slow down objects. This is a hack and should not be relied on as a feature.", type:"Var"}, {name: "p.gc.RemoveImplicitsInDynamicCollections", help:"This cvar has an impact only if geometry are not added for children. It removes implicits from the Dynamic Collections, and recreate then from the rest collection. \t\t\t\t\t\t\t\t\t\tUsing this cvar could have an impact if geometry are updated from the dynamic collection on the GT, then those changes won\'t be ported to the PT.", type:"Var"}, {name: "p.gc.ReportHighParticleFraction", help:"Report any objects with particle fraction above this threshold", type:"Var"}, {name: "p.gc.ReportNoLevelsetCluster", help:"Report any cluster objects without levelsets", type:"Var"}, {name: "p.gc.UseLargestClusterToComputeRelativeSize", help:"Use the largest Cluster as reference for the releative size instead of the largest child (def: false)", type:"Var"}, {name: "p.gc.UseVolumeToComputeRelativeSize", help:"Use Volume To Compute RelativeSize instead of the side of the cubic volume (def: false)", type:"Var"}, {name: "p.GeometryCollection.AlwaysGenerateConnectionGraph", help:"When enabled, always generate the cluster\'s connection graph instead of using the rest collection stored one - Note: this should only be used for troubleshooting.[def: false]", type:"Var"}, {name: "p.GeometryCollection.AlwaysGenerateGTCollisionForClusters", help:"When enabled, always generate a game thread side collision for clusters.[def: true]", type:"Var"}, {name: "p.GeometryCollection.AreaBasedDamageThresholdMode", help:"Area based damage threshold computation mode (0: sum of areas | 1: max of areas | 2: min of areas | 3: average of areas) [def: 0]", type:"Var"}, {name: "p.GeometryCollection.EmptyUniqueIndicesOnGT", help:"If enabled, immediately free particle unique indices after particle initialisation", type:"Var"}, {name: "p.GeometryCollection.EnabledNestedChildTransformUpdates", help:"Enable updates for driven, disabled, child bodies. Used for line trace results against geometry collections.[def: true]", type:"Var"}, {name: "p.GeometryCollection.ForceOverrideGCCollisionSetupForTraces", help:"Force the usage of a specific type of collision for traces on the game thread when creating new GC physics representations (-1: use the value of the property | 0: force to use SM collision | 1: force to use GC collision) [def: -1]", type:"Var"}, {name: "p.GeometryCollection.LocalInertiaDropOffDiagonalTerms", help:"When true, force diagonal inertia for GCs in their local space by simply dropping off-diagonal terms", type:"Var"}, {name: "p.GeometryCollection.PositionUpdateTolerance", help:"Tolerance to detect if particle position has changed has changed when syncing PT to GT", type:"Var"}, {name: "p.GeometryCollection.PropagateInternalClusterDisableFlagToChildren", help:"If enabled, disabled internal clusters will propagate their disabled flag to their children when buffering instead of implicitly activating the children.", type:"Var"}, {name: "p.GeometryCollection.RotationUpdateTolerance", help:"Tolerance to detect if particle rotation has changed has changed when syncing PT to GT", type:"Var"}, {name: "p.GeometryCollection.ScaleClusterGeometry", help:"If enabled, update the cluster geometry if the scale has changed", type:"Var"}, {name: "p.GeometryCollection.TransformTolerance", help:"Tolerance to detect if a transform has changed", type:"Var"}, {name: "p.GeometryCollection.UseRootBrokenFlag", help:"If enabled, check if the root transform is broken in the proxy and disable the GT particle if so. Should be enabled - cvar is a failsafe to revert behaviour", type:"Var"}, {name: "p.GeometryCollectionAlwaysRecreateSimulationData", help:"always recreate the simulation data even if the simulation data is not marked as dirty - this has runtime cost in editor - only use as a last resort if default has issues [def:false]", type:"Var"}, {name: "p.GeometryCollectionAssetForceStripOnCook", help:"Bypass the construction of simulation properties when all bodies are simply cached for playback.", type:"Var"}, {name: "p.GeometryCollectionCollideAll", help:"Bypass the collision matrix and make geometry collections collide against everything", type:"Var"}, {name: "p.GeometryCollectionDisableGravity", help:"Disable gravity for geometry collections", type:"Var"}, {name: "p.GeometryCollectionEnableForcedConvexGenerationInSerialize", help:"Enable generation of convex geometry on older destruction files.[def:true]", type:"Var"}, {name: "p.GeometryCollectionHardMissingUpdatesSnapThreshold", help:"Determines how many missing updates before we trigger a hard snap", type:"Var"}, {name: "p.GeometryCollectionHardsnapThresholdMs", help:"Determines how many ms since the last hardsnap to trigger a new one", type:"Var"}, {name: "p.GeometryCollectionNavigationSizeThreshold", help:"Size in CM used as a threshold for whether a geometry in the collection is collected and exported for navigation purposes. Measured as the diagonal of the leaf node bounds.", type:"Var"}, {name: "p.GeometryCollectionRepAngularMatchTime", help:"In seconds, how quickly should the angle match the replicated target angle", type:"Var"}, {name: "p.GeometryCollectionRepLinearMatchStrength", help:"Units can be interpreted as %/s^2 - acceleration of percent linear correction", type:"Var"}, {name: "p.GeometryCollectionRepMaxExtrapolationTime", help:"Number of seconds that replicated physics data will persist for a GC, extrapolating velocities", type:"Var"}, {name: "p.GeometryCollectionSingleThreadedBoundsCalculation", help:"[Debug Only] Single threaded bounds calculation. [def:false]", type:"Var"}, {name: "p.GraphPropagationBasedCollisionFactor", help:"when p.GraphPropagationBasedCollisionImpulseProcessing is on, the percentage [0-1] of remaining damage that is distributed to the connected pieces", type:"Var"}, {name: "p.GraphPropagationBasedCollisionImpulseProcessing", help:"when processing collision impulse toc ompute strain, pick the closest child from the impact point and propagate using the connection graph [def: 0]", type:"Var"}, {name: "p.HackMaxAngularVelocity2", help:"Max cap on angular velocity: rad/s. This is only a temp solution and should not be relied on as a feature. -1.f to disable", type:"Var"}, {name: "p.HackMaxVelocity", help:"Max cap on velocity: cm/s. This is only a temp solution and should not be relied on as a feature. -1.f to disable", type:"Var"}, {name: "p.IgnoreAnalyticCollisionsOverride", help:"Overrides the default for ignroing analytic collsions.", type:"Var"}, {name: "p.IterationsPerTimeSlice", help:"", type:"Var"}, {name: "p.KinematicDeferralCheckValidBodies", help:"If true, don\'t attempt to update deferred kinematic skeletal mesh bodies which are pending delete.", type:"Var"}, {name: "p.KinematicDeferralLogInvalidBodies", help:"If true and p.KinematicDeferralCheckValidBodies is true, log when an invalid body is found on kinematic update.", type:"Var"}, {name: "p.KinematicDeferralUpdateExternalAccelerationStructure", help:"If true, process any operations in PendingSpatialOperations_External before doing deferred kinematic updates.", type:"Var"}, {name: "p.LedgeMovement.ApplyDirectMove", help:"Apply the ledge movement vector directly, rather than the old method that reapplied acceleration.", type:"Var"}, {name: "p.LedgeMovement.DetectEdgeNormal", help:"Detect the normal of the ledge when avoiding walking off ledges, to try to find a better movement direction.", type:"Var"}, {name: "p.LevelsetOverlapCapsuleSamples", help:"Number of spiral points to generate for levelset-capsule overlaps", type:"Var"}, {name: "p.LevelsetOverlapSphereSamples", help:"Number of spiral points to generate for levelset-sphere overlaps", type:"Var"}, {name: "p.LinearEtherDragOverride", help:"Set an override linear ether drag value. -1.f to disable", type:"Var"}, {name: "p.MassPropertiesFromMultiChildProxy", help:"", type:"Var"}, {name: "p.LocalBoundsUseAttachParentBound", help:"If enabled, Components with \'Use Attach Parent Bound\' will compute their local bounds based their parent\'s bounds", type:"Var"}, {name: "p.LogCorruptMap", help:"", type:"Var"}, {name: "p.LogDirtyParticles", help:"Logs out which particles are dirty every frame", type:"Var"}, {name: "p.LogPhysicsReplicationHardSnaps", help:"", type:"Var"}, {name: "p.MaxBoundsForTree", help:"The max bounds before moving object into a large objects structure. Only applies on object registration", type:"Var"}, {name: "p.MaxChildrenInLeaf", help:"", type:"Var"}, {name: "p.MaxDirtyElements", help:"The max number of dirty elements. This forces a flush which is very expensive", type:"Var"}, {name: "p.MaxFallingCorrectionLeash", help:"When airborne, some distance between the server and client locations may remain to avoid sudden corrections as clients jump from moving bases. This value is the maximum allowed distance.", type:"Var"}, {name: "p.MaxFallingCorrectionLeashBuffer", help:"To avoid constant corrections, when an airborne server and client are further than p.MaxFallingCorrectionLeash cm apart, they\'ll be pulled in to that distance minus this value.", type:"Var"}, {name: "p.MaxPayloadSize", help:"", type:"Var"}, {name: "p.MaxVisualizePhiDistance", help:"", type:"Var"}, {name: "p.MinBoundsThickness", help:"", type:"Var"}, {name: "p.MinChildrenForMultiProxy", help:"Min number of children needed for multi child proxy optimization", type:"Var"}, {name: "p.MaxTreeDepth", help:"", type:"Var"}, {name: "p.MoveClustersWhenDeactivated", help:"If clusters should be moved when deactivated.", type:"Var"}, {name: "p.net.CmdOffsetEnabled", help:"Enables deprecated (5.4) logic for legacy that handles physics frame offset. Recommended: Set this to 0 to stop the deprecated physics frame offset flow. ", type:"Var"}, {name: "p.net.ForceFault", help:"Forces server side input fault", type:"Var"}, {name: "p.net.ForceInputDrop", help:"Forces client to drop inputs. Useful for simulating desync", type:"Var"}, {name: "p.net.LerpTargetNumBufferedCmdsAggresively", help:"Aggresively lerp towards TargetNumBufferedCmds. Reduces server side buffering but can cause more artifacts.", type:"Var"}, {name: "p.net.MaxBufferedCmds", help:"MaxNumber of buffered server side commands", type:"Var"}, {name: "p.net.MaxTargetNumBufferedCmds", help:"Maximum number of buffered inputs the server will target per client.", type:"Var"}, {name: "p.net.MaxTimeDilationMag", help:"Maximum time dilation that client will use to slow down / catch up with server", type:"Var"}, {name: "p.net.TargetNumBufferedCmds", help:"How much to increase TargetNumBufferedCmds when an input fault occurs", type:"Var"}, {name: "p.net.TargetNumBufferedCmdsAlpha", help:"Lerp strength for TargetNumBufferedCmds", type:"Var"}, {name: "p.net.TargetNumBufferedCmdsDeltaOnFault", help:"How much to increase TargetNumBufferedCmds when an input fault occurs", type:"Var"}, {name: "p.net.TimeDilationAlpha", help:"Lerp strength for sliding client time dilation", type:"Var"}, {name: "p.net.TimeDilationEnabled", help:"Enable clientside TimeDilation", type:"Var"}, {name: "p.NetPackedMovementMaxBits", help:"Max number of bits allowed in each packed movement RPC. Used to protect against bad data causing the server to allocate too much memory.\n", type:"Var"}, {name: "p.NetServerForcePositionUpdateSyncToClient", help:"If enabled, the server will always sync to the client timestamp when receiving a valid move after forcing updates (true is the old default behavior).\n", type:"Var"}, {name: "p.NetServerMaxMoveDeltaTimeScalar", help:"Multiplier to the MaxMoveDeltaTime allowed on the server, compared to the client. Enforced to be >= 1.0\nAllows the server to accept longer moves than the client is normally allowed to send, to avoid corrections (a value of 1 is old default behavior).\n", type:"Var"}, {name: "p.NetUseBaseRelativeAcceleration", help:"If enabled, character acceleration will be treated as relative to dynamic movement bases.", type:"Var"}, {name: "p.NetUseBaseRelativeVelocity", help:"If enabled, character velocity corrections will be treated as relative to dynamic movement bases.", type:"Var"}, {name: "p.NetUsePackedMovementRPCs", help:"Whether to use newer movement RPC parameter packed serialization. If disabled, old deprecated movement RPCs will be used instead.\n0: Disable, 1: Enable", type:"Var"}, {name: "p.NormalAveraging", help:"", type:"Var"}, {name: "p.OverrideMbpNumSubdivisionsClient", help:"Override for number of subdivisions to perform when building MBP regions on a client, note regions are only generated when a scene is created - this will not update the scene if it\'s already running (0 = No override, 1>16 - Override number)", type:"Var"}, {name: "p.OverrideMbpNumSubdivisionsServer", help:"Override for number of subdivisions to perform when building MBP regions on a server, note regions are only generated when a scene is created - this will not update the scene if it\'s already running (0 = No override, 1>16 - Override number)", type:"Var"}, {name: "p.NormalAveraging2", help:"", type:"Var"}, {name: "p.NumActiveChannels", help:"", type:"Var"}, {name: "p.PhysDrawing.SkinnedLatticeBoneWeight", help:"Draw skinned lattice bone weight. -1 = all lattice points", type:"Var"}, {name: "p.PhysicalMaterial.ShowExperimentalProperties", help:"", type:"Var"}, {name: "p.PhysXTreeRebuildRate", help:"Utility function to change PhysXTreeRebuildRate, useful when profiling fetchResults vs scene queries.", type:"Cmd"}, {name: "p.PhysicsRunsOnGT", help:"If true the physics thread runs on the game thread, but will still go wide on tasks like collision detection", type:"Var"}, {name: "p.PreventInvalidBodyInstanceTransforms", help:"If true, an attempt to create a BodyInstance with an invalid transform will fail with a warning", type:"Var"}, {name: "p.PreventNonVerticalOrientationBlock", help:"When enabled, this allows a character that\'s supposed to remain vertical to snap to a vertical orientation even if RotationRate settings would block it. See @ShouldRemainVertical and @RotationRate.", type:"Var"}, {name: "p.PrimitiveComponent.ReplicatePhysicsObject", help:"When a primitive component has no BodyInstance, allow replication based on PhysicsObject\n", type:"Var"}, {name: "p.RenderInterp.DebugDraw", help:"Draw debug lines for physics render interpolation, also needs p.Chaos.DebugDraw.Enabled set", type:"Var"}, {name: "p.RenderInterp.DebugDrawZOffset", help:"Add Z axis offset to DebugDraw calls for Render Interpolation.", type:"Var"}, {name: "p.RenderInterp.DirectionalDecayMultiplier", help:"Decay error offset in the direction that the physics object is moving, value is multiplier of projected offset direction, 0.25 means a 25% decay of the magnitude in the direction of physics travel. Deactivate by setting to 0.", type:"Var"}, {name: "p.RenderInterp.ErrorCorrectionDuration", help:"How long in seconds to apply error correction over.", type:"Var"}, {name: "p.RenderInterp.ErrorVelocityCorrection", help:"EXPERIMENTAL - Take incoming velocity into consideration when performing render interpolation, the correction will be more organic but might result in clipping and it\'s heavier for memory and CPU.", type:"Var"}, {name: "p.RenderInterp.ErrorVelocitySmoothingDuration", help:"How long in seconds to apply error velocity smoothing correction over, should be smaller than or equal to p.RenderInterp.ErrorCorrectionDuration. RENDERINTERPOLATION_VELOCITYSMOOTHING needs to be defined.", type:"Var"}, {name: "p.RenderInterp.MaximumErrorCorrectionBeforeSnapping", help:"Maximum error correction in cm before we stop interpolating and snap to target.", type:"Var"}, {name: "p.ReplayUseInterpolation", help:"", type:"Var"}, {name: "p.ReportTooManyChildrenNum", help:"Issue warning if more than this many children exist in a single cluster", type:"Var"}, {name: "p.Resim.AllowRewindToResimulatedFrames", help:"Allow rewinding back to a frame that was previously part of a resimulation. If a resimulation is performed between frame 100-110, allow a new resim from 105-115 if needed, else next resim will be able to start from frame 111.", type:"Var"}, {name: "p.Resim.CachePushDataAsyncInputs", help:"Default = false. Set true to enable resim caching of async inputs in the push data from game thread to physics thread. This will make async inputs available again during a resimulation.", type:"Var"}, {name: "p.Resim.CachePushDataDirtyProxies", help:"Default = false. Set true to enable resim caching dirty proxies in the push data from game thread to physics thread. This will make physics proxy changes from GT play out during a resimulation.", type:"Var"}, {name: "p.Resim.IncompleteHistory", help:"If a valid resim frame can\'t be found, use the requested resim frame and perform a resimulation with incomplete data.", type:"Var"}, {name: "p.Resim.InterpolateTargetGaps", help:"How many frame gaps in replicated targets we should fill by interpolating between the previous and the new target received. Value in max number of frames to interpolate, deactivate by setting to 0.", type:"Var"}, {name: "p.Resim.ResimFrameValidation", help:"0 = no leniency, all dirty particles need a valid target. 1 = Island leniency, all particles in resim islands need a valid target. 2 = Full leniency, only the particle triggering the resim need a valid target.", type:"Var"}, {name: "p.Resim.RewindDataOptimization", help:"Default value for RewinData optimization, note that this can be overridden at runtime by API calls. Effect: Only alter the minimum required properties during a resim for particles not marked for FullResim", type:"Var"}, {name: "p.RestoreBreakingMomentumPercent", help:"When a rigid cluster is broken, objects that its in contact with will receive an impulse to restore this percent of their momentum prior to the break.", type:"Var"}, {name: "p.RigidBodyNode", help:"Enables/disables rigid body node updates and evaluations", type:"Var"}, {name: "p.RigidBodyNode", help:"Enables/disables the whole rigid body node system. When disabled, avoids all allocations and runtime costs. Can be used to disable RB Nodes on low-end platforms.", type:"Var"}, {name: "p.RigidBodyNode.ComponentAppliedLinearAccClamp", help:"ComponentAppliedLinearAccClamp override", type:"Var"}, {name: "p.RigidBodyNode.ComponentLinearAccScale", help:"ComponentLinearAccScale override", type:"Var"}, {name: "p.RigidBodyNode.ComponentLinearVelcale", help:"ComponentLinearVelcale override", type:"Var"}, {name: "p.RigidBodyNode.DebugDraw", help:"Whether to debug draw the rigid body simulation state. Requires p.Chaos.DebugDraw.Enabled 1 to function as well.", type:"Var"}, {name: "p.RigidBodyNode.DeferredSimulationDefault", help:"Whether rigid body simulations are deferred one frame for assets that don\'t opt into a specific simulation timing", type:"Var"}, {name: "p.RigidBodyNode.DeferredSimulationForceDefault", help:"When true, rigid body simulation will always use the value of p.RigidBodyNode.DeferredSimulationDefault to determine whether to defer the simulation work, ignoring the setting in the individual node.", type:"Var"}, {name: "p.RigidBodyNode.EnableComponentAcceleration", help:"Enable/Disable the simple acceleration transfer system for component- or bone-space simulation", type:"Var"}, {name: "p.RigidBodyNode.EnableScalingOnSpaceTransform", help:"Enable scaling on space transform for RBAN.", type:"Var"}, {name: "p.RigidBodyNode.EnableSimulation", help:"Runtime Enable/Disable RB Node Simulation for debugging and testing (node is initialized and bodies and constraints are created, even when disabled.)", type:"Var"}, {name: "p.RigidBodyNode.EnableTimeBasedReset", help:"If true, Rigid Body nodes are reset when they have not been updated for a while (default true)", type:"Var"}, {name: "p.RigidBodyNode.GravityScale", help:"Multiplies the gravity on all RBANs", type:"Var"}, {name: "p.RigidBodyNode.IncludeClothColliders", help:"Include cloth colliders as kinematic bodies in the immediate physics simulation.", type:"Var"}, {name: "p.RigidBodyNode.InitializeBoneReferencesRangeCheckEnabled", help:"", type:"Var"}, {name: "p.RigidBodyNode.MaxSubSteps", help:"Set the maximum number of simulation steps in the update loop", type:"Var"}, {name: "p.RigidBodyNode.Space.MaxAngularAcceleration", help:"RBAN SimSpaceSettings overrides", type:"Var"}, {name: "p.RigidBodyNode.Space.MaxAngularVelocity", help:"RBAN SimSpaceSettings overrides", type:"Var"}, {name: "p.RigidBodyNode.Space.MaxLinearAcceleration", help:"RBAN SimSpaceSettings overrides", type:"Var"}, {name: "p.RigidBodyNode.Space.MaxLinearVelocity", help:"RBAN SimSpaceSettings overrides", type:"Var"}, {name: "p.RigidBodyNode.Space.Override", help:"Force-enable the advanced simulation space movement forces", type:"Var"}, {name: "p.RigidBodyNode.Space.VelocityScaleZ", help:"RBAN SimSpaceSettings overrides", type:"Var"}, {name: "p.RigidBodyNode.Space.WorldAlpha", help:"RBAN SimSpaceSettings overrides", type:"Var"}, {name: "p.RigidBodyNode.TaskPriority.Simulation", help:"Task priority for running the rigid body node simulation task (0 = foreground/high, 1 = foreground/normal, 2 = background/high, 3 = background/normal, 4 = background/low).", type:"Var"}, {name: "p.RigidBodyNode.WorldObjectExpiry", help:"World objects are removed from the simulation if not detected after this many tests", type:"Var"}, {name: "p.SelectedParticle", help:"Debug render for a specific particle", type:"Var"}, {name: "p.SecondChannelDelay", help:"", type:"Var"}, {name: "p.SensitiveSleepThresholdMultiplier", help:"The sleep threshold multiplier to use for bodies using the Sensitive sleep family.", type:"Var"}, {name: "p.SerializeForPerfTest", help:"", type:"Cmd"}, {name: "p.SerializeSQs", help:"If enabled, we create a sq capture per sq. This can be very expensive as the entire scene is saved out", type:"Var"}, {name: "p.ShowBounds", help:"", type:"Var"}, {name: "p.ShowCenterOfMass", help:"Debug render of the center of mass, you will likely need wireframe mode on", type:"Var"}, {name: "p.ShowClusterConnections", help:"Debug render of the cluster connections", type:"Var"}, {name: "p.ShowCollisionParticles", help:"Debug render the collision particles (can be very slow)", type:"Var"}, {name: "p.SerializeEvolution", help:"", type:"Var"}, {name: "p.SerializeSQs", help:"If enabled, we create a sq capture per sq that takes more than provided value in microseconds. This can be very expensive as the entire scene is saved out", type:"Var"}, {name: "p.SerializeSQSampleCount", help:"If Query exceeds duration threshold, we will re-measure SQ this many times before serializing. Larger values cause hitching.", type:"Var"}, {name: "p.SerializeSQsOverlapEnabled", help:"If disabled, p.SerializeSQs will not consider overlaps", type:"Var"}, {name: "p.SerializeSQsRaycastEnabled", help:"If disabled, p.SerializeSQs will not consider raycasts", type:"Var"}, {name: "p.SerializeSQsSweepEnabled", help:"If disabled, p.SerializeSQs will not consider sweeps", type:"Var"}, {name: "p.ShallowCopyOnClusterUnionUpdate", help:"If 1, shallow copy the root union geometry of a cluster union when its geometry updates, otherwise deep copy the geometry hierarchy", type:"Var"}, {name: "p.ShowLevelSet", help:"", type:"Var"}, {name: "p.simDelay", help:"", type:"Var"}, {name: "p.SkipDesyncTest", help:"Skips hard desync test, this means all particles will assume to be clean except spawning at different times. This is useful for a perf lower bound, not actually correct", type:"Var"}, {name: "p.SkipShapeCreationForEmptyBodySetup", help:"If true, CreateShapesAndActors will not try to create actors and shapes for all instances if the body setup doesn\'t have any geometry.", type:"Var"}, {name: "p.TriMeshBufferOverflowCounter", help:"Loop logging counter - set to -1 to disable logging", type:"Var"}, {name: "p.UseAsyncInterpolation", help:"Whether to interpolate when async mode is enabled", type:"Var"}, {name: "p.UseBoundingBoxForConnectionGraphFiltering", help:"when on, use bounding box overlaps to filter connection during the connection graph generation [def: 0]", type:"Var"}, {name: "p.UseDeprecatedBehaviorUpdateMassScaleChanges", help:"Allows FBodyInstanceCore::bUpdateMassWhenScaleChanges to default to false. This has potential issues, but allows existing projects to retain old behavior", type:"Var"}, {name: "p.UseLastGoodRotationDuringCorrection", help:"When enabled, during a correction, restore the last good rotation before re-simulating saved moves if the server didn\'t specify one. This improves visual quality with options like bOrientToMovement or bUseControllerDesiredRotation that rotate over time.", type:"Var"}, {name: "p.UseLegacyDoJump", help:"Should CheckJumpInput call the legacy DoJump or the new DoJump. Default is true while we are still deprecating the old DoJump", type:"Var"}, {name: "p.UseMultiChildProxy", help:"Whether to merge multiple children into a single collision proxy when one is available", type:"Var"}, {name: "p.UseTargetVelocityOnImpact", help:"When disabled, we recalculate velocity after impact by comparing our position before we moved to our position after we moved. This doesn\'t work correctly when colliding with physics objects, so setting this to 1 fixes this one the hit object is moving.", type:"Var"}, {name: "p.ValidateSceneComponentAttachmentDetailLevel_High", help:"If enabled, checks that cooking for a target detail level of High and removing unneeded components will not remove the parents of any components.", type:"Var"}, {name: "p.ValidateSceneComponentAttachmentDetailLevel_Low", help:"If enabled, checks that cooking for a target detail level of Low and removing unneeded components will not remove the parents of any components.", type:"Var"}, {name: "p.ValidateSceneComponentAttachmentDetailLevel_Medium", help:"If enabled, checks that cooking for a target detail level of Medium and removing unneeded components will not remove the parents of any components.", type:"Var"}, {name: "p.ValidateSceneComponentAttachmentEditorOnlySettings", help:"If enabled, checks that components which are editor only don\'t have attached components which are not editor only", type:"Var"}, {name: "p4.AlwaysBranchFilesOnCopy", help:"Use legacy behavior of always branching a file in perforce when copying.", type:"Var"}, {name: "Package.Relocation", help:"Define when we should run the relocation logic for the dependencies of a package. Note changing this value at runtime won\'t update the cached depencencies in the asset registry.\n 0: Off (never apply relocation. References to other relocated packages will give errors and fail to resolve.)\n 1: Relocate any asset saved after EUnrealEngineObjectUE5Version::ADD_SOFTOBJECTPATH_LIST (5.1). Default value for the new projects.\n", type:"Var"}, {name: "PackageName.ConvertFilenameToLongPackageName", help:"Prints the corresponding packagename for a filename at a given localpath, according to the current registered mount points. Prints empty string if not mounted.", type:"Cmd"}, {name: "PackageName.ConvertLongPackageNameToFilename", help:"Prints the corresponding local filename for a given packagename, according to the current registered mount points. Prints empty string if not mounted.", type:"Cmd"}, {name: "PackageName.DumpMountPoints", help:"Print registered LongPackagePath mount points", type:"Cmd"}, {name: "PackageName.RegisterMountPoint", help:"<RootPath> <ContentPath> // Register a LongPackagePath mount point", type:"Cmd"}, {name: "PackageName.UnregisterMountPoint", help:"<RootPath> <ContentPath> // Remove a LongPackagePath mount point", type:"Cmd"}, {name: "PackageReload.EnableFastPath", help:"When \'true\', an optimized codepath is used to speed up reloading packages (experimental).", type:"Var"}, {name: "PackageTools.ReloadPackage", help:"Force a reload of the named package, e.g. PackageTools.ReloadPackage /Game/MyAsset", type:"Cmd"}, {name: "PackageTools.UnloadPackagesUnloadsPrimaryAssets", help:"During unload packages, also unload primary assets", type:"Var"}, {name: "pak.AsyncFileTest", help:"Read a block of data from a file using an AsyncFileHandle. params: <filename> <size> <offset>", type:"Cmd"}, {name: "pak.ReaderReleaseDelay", help:"If > 0, then synchronous pak readers older than this will be deleted.", type:"Var"}, {name: "PathView.Repopulate", help:"Repopulate all path views to expose bugs with caching/data updates", type:"Cmd"}, {name: "PHYSXINFO", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "PHYSXSHARED", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "PersistentStorageCategoryStats", help:"Get the stat of each persistent storage stats\n", type:"Cmd"}, {name: "PlacementMode.AllowNonPrimitiveComponentHits", help:"When raycasting the world in placement mode, allow hits of physics objects that are not tied to a UPrimitiveComponent (to work with non-actor workflows).", type:"Var"}, {name: "PlacementMode.ItemInternalsInTooltip", help:"Shows placeable item internal information in its tooltip", type:"Var"}, {name: "PlaySoundCue", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "PlaySoundWave", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "PlayerController.IsPushBased", help:"If true, APlayerController\'s replicated properties will use push-based networking, and will therefore need to be marked dirty when changed.", type:"Var"}, {name: "PlayerController.LevelVisibilityDontSerializeFileName", help:"When true, we\'ll always skip serializing FileName with FUpdateLevelVisibilityLevelInfo\'s. This will save bandwidth when games don\'t need both.", type:"Var"}, {name: "PlayerController.NetResetServerPredictionDataOnPawnAck", help:"Whether to reset server prediction data for the possessed Pawn when the pawn ack handshake completes.\n0: Disable, 1: Enable", type:"Var"}, {name: "PluginManager.LeakedAssetTrace.MaxReportCount", help:"Max number of assets to report when we find leaked assets.\n", type:"Var"}, {name: "PluginManager.LeakedAssetTrace.RenameLeakedPackages", help:"Should packages which are leaked after the Game Feature Plugin is unloaded or unmounted.", type:"Var"}, {name: "PluginManager.LeakedAssetTrace.Severity", help:"Controls severity of logging when the engine detects that assets from an Game Feature Plugin were leaked during unloading or unmounting.\n0 - all reference tracing and logging is disabled\n1 - logs an error\n2 - ensure\n3 - fatal error\n", type:"Var"}, {name: "PluginManager.LeakedAssetTrace.TraceMode", help:"Controls detail level of reference tracing when the engine detects that assets from a Game Feature Plugin were leaked during unloading or unmounting.\n0 - direct references only\n1 - full reference trace", type:"Var"}, {name: "PluginManager.VerifyUnload", help:"Verify plugin assets are no longer in memory when unloading.", type:"Var"}, {name: "PropertyEditor.ShowInlineEditConditionToggleWhenNotSpecifiedAndNotEditable", help:"Enables legacy behavior to show the InlineEditConditionToggle when the edit condition property does not have this specifier and is not editable.", type:"Var"}, {name: "PVD", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "PXVIS", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "PY", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "r.AllowCachedUniformExpressions", help:"Allow uniform expressions to be cached.", type:"Var"}, {name: "r.AllowDepthBoundsTest", help:"If true, use enable depth bounds test when rendering defered lights.", type:"Var"}, {name: "r.AllowDownsampledStandardTranslucency", help:"Allow standard translucency to be rendered in smaller resolution as an optimization\nThis is incompatible with materials using blend modulate. Use 2 to ignore those. \n <0: off\n 0: on unless a material using blend modulate is used (default) >0: on and ignores any material using blend modulate", type:"Var"}, {name: "r.AllowClearLightSceneExtentsOnly", help:"", type:"Var"}, {name: "r.AllowDepthBoundsTest", help:"If true, use enable depth bounds test when rendering deferred lights.", type:"Var"}, {name: "r.AllowOcclusionQueries", help:"If zero, occlusion queries will not be used to cull primitives.", type:"Var"}, {name: "r.AllowOcclusionQueries", help:"Enables hardware occlusion culling.", type:"Var"}, {name: "r.AllowStaticLightingInWorldPartitionMaps", help:"Whether to allow any static lighting to be generated and used in WorldPartition maps, like lightmaps and shadowmaps.\nGames that only use dynamic lighting should set this to 0 to save some static lighting overhead.", type:"Var"}, {name: "r.AllowVolumeTextureAssetCreation", help:"Enable UVolumeTexture assets", type:"Var"}, {name: "r.AlsoUseSphereForFrustumCull", help:"Performance tweak. If > 0, then use a sphere cull before and in addition to a box for frustum culling.", type:"Var"}, {name: "r.AllowTexture2DArrayCreation", help:"Enable UTexture2DArray assets", type:"Var"}, {name: "r.AlphaInvertPass", help:"Whether to run a render pass to un-invert the alpha value from unreal standard to the much more common standard where alpha 0 is fully transparent and alpha 1 is fully opaque.", type:"Var"}, {name: "r.AmbientOcclusion.Denoiser.HistoryConvolution.KernelSpreadFactor", help:"Multiplication factor applied on the kernel sample offset (default=3).", type:"Var"}, {name: "r.AmbientOcclusion.Denoiser.HistoryConvolution.KernelSpreadFactor", help:"Multiplication factor applied on the kernel sample offset (default = 7).", type:"Var"}, {name: "r.AmbientOcclusion.Denoiser.KernelSpreadFactor", help:"Spread factor of the preconvolution passes.", type:"Var"}, {name: "r.AmbientOcclusion.Denoiser.PreConvolution", help:"Number of pre-convolution passes (default = 1).", type:"Var"}, {name: "r.AmbientOcclusion.Method", help:"Select between SSAO methods \n 0: SSAO (default)\n 1: GTAO\n ", type:"Var"}, {name: "r.AMDD3D11MultiThreadedDevice", help:"If true, creates a multithreaded D3D11 device on AMD hardware (workaround for driver bug)\nChanges will only take effect in new game/editor instances - can\'t be changed at runtime.\n", type:"Var"}, {name: "r.AMDDisableAsyncTextureCreation", help:"If true, uses synchronous texture creation on AMD hardware (workaround for driver bug)\nChanges will only take effect in new game/editor instances - can\'t be changed at runtime.\n", type:"Var"}, {name: "r.Android.DisableOpenGLES31Support", help:"Disable support for OpenGLES 3.1 API. (Android Only)\n 0 = OpenGLES 3.1 API will be used (providing device and project supports it) [default]\n 1 = OpenGLES 3.1 will be disabled, OpenGL ES2 fall back will be used.", type:"Var"}, {name: "r.Android.DisableOpenGLES31Support", help:"Disable support for OpenGLES 3.1 API. (Android Only)\n 0 = OpenGLES 3.1 API will be used (providing device and project supports it) [default]\n 1 = OpenGLES 3.1 will be disabled, Vulkan will be used.", type:"Var"}, {name: "r.Android.DisableVulkanSM5Support", help:"Disable support for vulkan API. (Android Only)\n 0 = Vulkan SM5 API will be used (providing device and project supports it) [default]\n 1 = Vulkan SM5 will be disabled, Vulkan or OpenGL fall back will be used.", type:"Var"}, {name: "r.AnisotropicMaterials", help:"Whether anisotropic BRDF is used for material with anisotropy.", type:"Var"}, {name: "r.AntiAliasingMethod", help:"Engine default (project setting) for AntiAliasingMethod is (postprocess volume/camera/game setting still can override)\n 0: off (no anti-aliasing)\n 1: Fast Approximate Anti-Aliasing (FXAA)\n 2: Temporal Anti-Aliasing (TAA)\n 3: Multisample Anti-Aliasing (MSAA, Only available on the desktop forward renderer)\n 4: Temporal Super-Resolution (TSR, Default)", type:"Var"}, {name: "r.AOGlobalDistanceField.AverageCulledObjectsPerCell", help:"Average expected number of objects per cull grid cell, used to preallocate memory for the cull grid.", type:"Var"}, {name: "r.AOGlobalDistanceField.CameraPositionVelocityOffsetDecay", help:"", type:"Var"}, {name: "r.AOGlobalDistanceField.DetailedNecessityCheck", help:"Whether to perform detailed necessity check in FSceneRenderer::ShouldPrepareGlobalDistanceField().", type:"Var"}, {name: "r.AOGlobalDistanceField.FastCameraMode", help:"Whether to update the Global SDF for fast camera movement - lower quality, faster updates so lighting can keep up with the camera.", type:"Var"}, {name: "r.AOGlobalDistanceField.ForceRecacheForStreaming", help:"Useful for debugging or profiling full clipmap updates that happen when a clipmap is detected to have pending streaming.", type:"Var"}, {name: "r.AOGlobalDistanceField.Heightfield", help:"Whether to voxelize Heightfield into the global distance field.\n", type:"Var"}, {name: "r.AOGlobalDistanceField.MinMeshSDFRadius", help:"Meshes with a smaller world space radius than this are culled from the global SDF.", type:"Var"}, {name: "r.AOGlobalDistanceField.MinMeshSDFRadiusInVoxels", help:"Meshes with a smaller radius than this number of voxels are culled from the global SDF.", type:"Var"}, {name: "r.AOGlobalDistanceField.MipFactor", help:"Resolution divider for the mip map of a distance field clipmap.", type:"Var"}, {name: "r.AOGlobalDistanceField.NumClipmaps", help:"Num clipmaps in the global distance field. Setting this to anything other than 4 is currently only supported by Lumen.", type:"Var"}, {name: "r.AOGlobalDistanceField.OccupancyRatio", help:"Expected sparse global distacne field occupancy for the page atlas allocation. 0.25 means 25% - filled and 75% - empty.", type:"Var"}, {name: "r.AOGlobalDistanceField.RecacheClipmapsWithPendingStreaming", help:"Whether to readback clipmaps cached with incomplete Mesh SDFs due to streaming and recache them on subsequent frames. Fixes innaccurate Global SDF around the camera after teleporting or loading a new level.", type:"Var"}, {name: "r.AOGlobalDistanceFieldClipmapUpdatesPerFrame", help:"How many clipmaps to update each frame. With values less than 2, the first clipmap is only updated every other frame, which can cause incorrect self occlusion during movement.", type:"Var"}, {name: "r.AOGlobalDistanceFieldLogModifiedPrimitives", help:"Whether to log primitive modifications (add, remove, updatetransform) that caused an update of the global distance field.\nThis can be useful for tracking down why updating the global distance field is always costing a lot, since it should be mostly cached.", type:"Var"}, {name: "r.AOGlobalDistanceFieldForceUpdateOnce", help:"Whether to force full global distance field once.", type:"Var"}, {name: "r.AOHeightfieldOcclusion", help:"Whether to compute AO from heightfields (landscape)", type:"Var"}, {name: "r.AOLogObjectBufferReallocation", help:"", type:"Var"}, {name: "r.AOMaxObjectBoundingRadius", help:"Objects larger than this will not contribute to AO calculations, to improve performance.", type:"Var"}, {name: "r.AOUseConesForGI", help:"", type:"Var"}, {name: "r.AsyncPipelineCompile", help:"0 to Create PSOs at the moment they are requested\n1 to Create Pipeline State Objects asynchronously(default)", type:"Var"}, {name: "r.Atmosphere", help:"Defines atmosphere will render or not. Only changed by r.Atmosphere console command.\nEnable/Disable Atmosphere, Load/Unload related data.\n 0: off (To save GPU memory)\n 1: on (default)", type:"Var"}, {name: "r.BasePassOutputsVelocity", help:"Enables rendering WPO velocities on the base pass.\n 0: Renders in a separate pass/rendertarget, all movable static meshes + dynamic.\n 1: Renders during the regular base pass adding an extra GBuffer, but allowing motion blur on materials with Time-based WPO.", type:"Var"}, {name: "r.ApproximateOcclusionQueries", help:"Batch occlusion for a static and skeletal mesh even if there are movable.In general it\'s more beneficial to batch occlusion queires for all meshes", type:"Var"}, {name: "r.AreShaderErrorsFatal", help:"When enabled, when a the default material or global shaders fail to compile it will issue a Fatal error. Otherwise just an Error.\nDefault: true", type:"Var"}, {name: "r.AsyncCacheMaterialUniformExpressions", help:"Material uniform expression caching is offloaded to an async task.", type:"Var"}, {name: "r.AsyncCacheMeshDrawCommands", help:"Mesh draw command caching is offloaded to an async task.", type:"Var"}, {name: "r.AsyncCreateLightPrimitiveInteractions", help:"Light primitive interactions are created off the render thread in an async task.", type:"Var"}, {name: "r.AsyncPipelineCompile", help:"0 to Create PSOs at the moment they are requested\n1 to Create Pipeline State Objects asynchronously(default)\n2 to Create Only precompile PSOs asynchronously\n3 to Create Only non-precompile PSOs asynchronously", type:"Var"}, {name: "r.AutoExposure.IgnoreMaterials", help:"(Experimental) Whether to calculate auto exposure assuming every surface uses a perfectly diffuse white material.\n(default: false)", type:"Var"}, {name: "r.AutoExposure.IgnoreMaterials.Debug", help:"", type:"Var"}, {name: "r.AutoExposure.IgnoreMaterials.DownscaleFactor", help:"", type:"Var"}, {name: "r.AutoExposure.IgnoreMaterials.EvaluationPositionBias", help:"", type:"Var"}, {name: "r.AutoExposure.IgnoreMaterials.LuminanceScale", help:"", type:"Var"}, {name: "r.AutoExposure.IgnoreMaterials.MinBaseColorLuminance", help:"", type:"Var"}, {name: "r.AutoExposure.IgnoreMaterials.ReconstructFromSceneColor", help:"", type:"Var"}, {name: "r.AutoExposure.IgnoreMaterials.UsePrecalculatedIlluminance", help:"", type:"Var"}, {name: "r.AutoExposure.LuminanceMethod", help:"0 - Uniform.\n1 - NSTC.\n2 - Working Color Space.", type:"Var"}, {name: "r.BackbufferQuantizationDitheringOverride", help:"Override the bitdepth in bits of each channel of the backbuffer targeted by the quantization dithering. Disabled by default. Instead is automatically found out by FSceneViewFamily::RenderTarget\'s pixel format of the backbuffer.", type:"Var"}, {name: "r.BadDriverWarningIsFatal", help:"If non-zero, trigger a fatal error if a denylisted driver is detected.\nFor the fatal error to occur, r.WarnOfBadDrivers must be non-zero.\n 0: off (default)\n 1: a fatal error occurs after the out-of-date driver message is dismissed (non-Shipping only)\n", type:"Var"}, {name: "r.BasePassOutputsVelocity", help:"Deprecated CVar. Use r.VelocityOutputPass instead.\n", type:"Var"}, {name: "r.bFlushRenderTargetsOnWorldCleanup", help:"", type:"Var"}, {name: "r.Bloom.Cross", help:"Experimental feature to give bloom kernel a more bright center sample (values between 1 and 3 work without causing aliasing)\nExisting bloom get lowered to match the same brightness\n<0 for a anisomorphic lens flare look (X only)\n 0 off (default)\n>0 for a cross look (X and Y)", type:"Var"}, {name: "r.Bloom.HalfResoluionFFT", help:"Experimental half-resolution FFT Bloom convolution. \n 0: Standard full resolution convolution bloom. 1: Half-resolution convoltuion that excludes the center of the kernel.\n", type:"Var"}, {name: "r.Bloom.ApplyLocalExposure", help:"Whether to apply local exposure when calculating bloom, default: true", type:"Var"}, {name: "r.Bloom.AsyncCompute", help:"Whether to run FFT bloom on async compute.\n", type:"Var"}, {name: "r.Bloom.CacheKernel", help:"Whether to cache the kernel in spectral domain.", type:"Var"}, {name: "r.Bloom.ScreenPercentage", help:"Controles the axis resolution of the FFT convolution for bloom.\n", type:"Var"}, {name: "r.Bloom.WarnKernelResolution", help:"Whether to emit a warning when the resolution of the kernel is unecessary to high.\n 0: Disabled;\n 1: Emit the warning on consoles (default);\n 2: Emit the warning on all platforms;\n", type:"Var"}, {name: "r.BufferVisualizationOverviewTargets", help:"Specify the list of post process materials that can be used in the buffer visualization overview. Put nothing between the commas to leave a gap.\n\n\tChoose from:\n\n BaseColor\n CustomDepth\n CustomStencil\n FinalImage\n ShadingModel\n MaterialAO\n Metallic\n Opacity\n Roughness\n SceneColor\n SceneDepth\n SeparateTranslucencyRGB\n SeparateTranslucencyA\n Specular\n SubsurfaceColor\n WorldNormal\n AmbientOcclusion\n CustomDepthWorldUnits\n SceneDepthWorldUnits\n Velocity\n PreTonemapHDRColor\n PostTonemapHDRColor", type:"Var"}, {name: "r.BufferVisualizationTarget", help:"When the viewport view-mode is set to \'Buffer Visualization\', this command specifies which of the various channels to display. Values entered other than the allowed values shown below will be ignored.\n BaseColor\n CustomDepth\n CustomStencil\n FinalImage\n ShadingModel\n MaterialAO\n Metallic\n Opacity\n Roughness\n SceneColor\n SceneDepth\n SeparateTranslucencyRGB\n SeparateTranslucencyA\n Specular\n SubsurfaceColor\n WorldNormal\n AmbientOcclusion\n CustomDepthWorldUnits\n SceneDepthWorldUnits\n Velocity\n PreTonemapHDRColor\n PostTonemapHDRColor", type:"Var"}, {name: "r.BufferVisualizationOverviewTargets", help:"Specify the list of post process materials that can be used in the buffer visualization overview. Put nothing between the commas to leave a gap.\n\n\tChoose from:\n\n BaseColor\n CustomDepth\n CustomStencil\n FinalImage\n ShadingModel\n MaterialAO\n Metallic\n Opacity\n Roughness\n Anisotropy\n SceneColor\n SceneDepth\n SeparateTranslucencyRGB\n SeparateTranslucencyA\n Specular\n SubsurfaceColor\n WorldNormal\n WorldTangent\n AmbientOcclusion\n CustomDepthWorldUnits\n SceneDepthWorldUnits\n Velocity\n PreTonemapHDRColor\n PostTonemapHDRColor", type:"Var"}, {name: "r.BufferVisualizationTarget", help:"When the viewport view-mode is set to \'Buffer Visualization\', this command specifies which of the various channels to display. Values entered other than the allowed values shown below will be ignored.\n BaseColor\n CustomDepth\n CustomStencil\n FinalImage\n ShadingModel\n MaterialAO\n Metallic\n Opacity\n Roughness\n Anisotropy\n SceneColor\n SceneDepth\n SeparateTranslucencyRGB\n SeparateTranslucencyA\n Specular\n SubsurfaceColor\n WorldNormal\n WorldTangent\n AmbientOcclusion\n CustomDepthWorldUnits\n SceneDepthWorldUnits\n Velocity\n PreTonemapHDRColor\n PostTonemapHDRColor", type:"Var"}, {name: "r.CalcLocalPlayerCachedLODDistanceFactor", help:"Should we calculate a LOD Distance Factor based on the current FOV. Should not be necessary since LOD is already based on screen size.\n", type:"Var"}, {name: "r.CameraAnimation.LegacyPostProcessBlending", help:"Blend camera animation post process settings under the main camera instead of over it", type:"Var"}, {name: "r.CameraCutTranslationThreshold", help:"The maximum camera translation disatance in centimeters allowed between two frames before a camera cut is automatically inserted.", type:"Var"}, {name: "r.CameraShake.LegacyPostProcessBlending", help:"Blend camera shake post process settings under the main camera instead of over it", type:"Var"}, {name: "r.CameraShakeDebug", help:"Show extra debug info for camera shakes (requires `showdebug CAMERA`)", type:"Var"}, {name: "r.CameraShakeDebug.InfoRecordLimit", help:"How many seconds to keep while recording camera shake debug info (defaults to 2 seconds)", type:"Var"}, {name: "r.CameraShakeDebug.LargeGraph", help:"Draws larger graphs for camera shake debug info", type:"Var"}, {name: "r.CameraShakeDebug.Location", help:"Whether to show camera shakes\' location modifications (defaults to true)", type:"Var"}, {name: "r.CameraShakeDebug.Rotation", help:"Whether to show camera shakes\' rotation modifications (defaults to true)", type:"Var"}, {name: "r.CaptureNextDeferredShadingRendererFrame", help:"0 to capture the immideately next frame using e.g. RenderDoc or PIX.\n > 0: N frames delay\n < 0: disabled", type:"Var"}, {name: "r.CaptureNextSceneCullingUpdate", help:"0 to capture the immideately next frame using e.g. RenderDoc or PIX.\n > 0: N frames delay\n < 0: disabled", type:"Var"}, {name: "r.CEFGPUAcceleration", help:"Enables GPU acceleration in CEF\n", type:"Var"}, {name: "r.ClearGBufferDBeforeBasePass", help:"Whether to clear GBuffer D before basepass", type:"Var"}, {name: "r.CloudDefaultTexturesNoFastClear", help:"Remove fast clear on default cloud textures", type:"Var"}, {name: "r.Color.Grading", help:"Controls whether post process settings\'s color grading settings should be applied.", type:"Var"}, {name: "r.CompositionForceRenderTargetLoad", help:"0: default engine behaviour\n1: force ERenderTargetLoadAction::ELoad for all render targets", type:"Var"}, {name: "r.CompositionGraphDebug", help:"Execute this command to get a single frame dump of the composition graph of one frame (post processing and lighting).", type:"Cmd"}, {name: "r.CompositionGraphOrder", help:"Defines in which order the nodes in the CompositionGraph are executed (affects postprocess and some lighting).\nOption 1 provides more control, which can be useful for preserving ESRAM, avoid GPU sync, cluster up compute shaders for performance and control AsyncCompute.\n 0: tree order starting with the root, first all inputs then dependencies (classic UE4, unconnected nodes are not getting executed)\n 1: RegisterPass() call order, unless the dependencies (input and additional) require a different order (might become new default as it provides more control, executes all registered nodes)", type:"Var"}, {name: "r.Composite.TemporalUpsampleDepth", help:"Temporal upsample factor of the depth buffer for depth testing editor primitives against.", type:"Var"}, {name: "r.ComputeFramework.DeferredCompilation", help:"Compile compute graphs on first usage instead of on PostLoad().\n", type:"Var"}, {name: "r.ComputeFramework.Enable", help:"Enable the Compute Framework.\n", type:"Var"}, {name: "r.ComputeFramework.RebuildComputeGraphs", help:"Force all loaded UComputeGraph objects to rebuild.", type:"Cmd"}, {name: "r.ComputeFramework.SortSubmit", help:"Sort submission of work to GPU for optimal scheduling.", type:"Var"}, {name: "r.ComputeFramework.TriggerGPUCaptureDispatches", help:"Trigger GPU captures for this many of the subsequent compute graph dispatches.", type:"Var"}, {name: "r.ContactShadows.Bend.OverrideSurfaceThickness", help:"How thick the surface represented by a pixel is assumed to be when determining whether a ray intersects it.", type:"Var"}, {name: "r.ContactShadows.Intensity.FadeLength", help:"Length of the fading interval from NonCastingIntensity to CastingIntensity.\nOnly used when r.ContactShadows.Intensity.Mode=1", type:"Var"}, {name: "r.ContactShadows.Intensity.FadeStart", help:"Depth value at which contact shadows starts fading from NonCastingIntensity to CastingIntensity.\nOnly used when r.ContactShadows.Intensity.Mode=1", type:"Var"}, {name: "r.ContactShadows.Intensity.Mode", help:"Control how contact shadow intensity is calculated:\n0 - Respect bCastContactShadow flag on Primitive Component.\n1 - Depth based approximation.\n2 - Use Casting Intensity.", type:"Var"}, {name: "r.ContactShadows.NonShadowCastingIntensity", help:"DEPRECATED. Please use the parameters on the Light Component directly instead.\n", type:"Var"}, {name: "r.ContactShadows.OverrideLength", help:"Allows overriding the contact shadow length for all directional lights.\nDisabled when < 0.\nShould generally be left disabled outside of debugging.", type:"Var"}, {name: "r.ContactShadows.OverrideLengthInWS", help:"Whether r.ContactShadows.OverrideLength is in world space units or in screen space units.", type:"Var"}, {name: "r.ContactShadows.OverrideNonShadowCastingIntensity", help:"Allows overriding the contact shadow non casting intensity for all directional lights.\nDisabled when < 0.\nShould generally be left disabled outside of debugging.", type:"Var"}, {name: "r.ContactShadows.OverrideShadowCastingIntensity", help:"Allows overriding the contact shadow casting intensity for all directional lights.\nDisabled when < 0.\nShould generally be left disabled outside of debugging.", type:"Var"}, {name: "r.ContactShadows.Standalone.Method", help:"Technique to use to calculate Contact (Screen Space) Shadows:\n0 - Stochastic Jittering.\n1 - Bend Screen Space Shadows.", type:"Var"}, {name: "r.CullBeforeFetch", help:"Enable Cull-Before-Fetch optimization for platforms that support it.\n 0: Disable (default)\n 1: Enable", type:"Var"}, {name: "r.CullInstances", help:"CullInstances.", type:"Var"}, {name: "r.CustomDepth.Order", help:"When CustomDepth (and CustomStencil) is getting rendered\n 0: Before GBuffer (can be more efficient with AsyncCompute, allows using it in DBuffer pass, no GBuffer blending decals allow GBuffer compression)\n 1: After Base Pass (default)", type:"Var"}, {name: "r.CustomDepth.Order", help:"When CustomDepth (and CustomStencil) is getting rendered\n 0: Before Base Pass (Allows samping in DBuffer pass. Can be more efficient with AsyncCompute.)\n 1: After Base Pass\n 2: Default (Before Base Pass if DBuffer enabled.)\n", type:"Var"}, {name: "r.CustomDepthEnableFastClear", help:"Enable HTile on the custom depth buffer (default:false).\n", type:"Var"}, {name: "r.D3D.CheckedForTypedUAVs", help:"Whether to disallow usage of typed UAV loads, as they are unavailable in Windows 7 D3D 11.0.\n 0: Allow usage of typed UAV loads.\n 1: Disallow usage of typed UAV loads. (default)", type:"Var"}, {name: "r.D3D.RemoveUnusedInterpolators", help:"Enables removing unused interpolators mode when compiling pipelines for D3D.\n -1: Do not actually remove, but make the app think it did (for debugging)\n 0: Disable (default)\n 1: Enable removing unused", type:"Var"}, {name: "r.d3d.uniformbufferrecycledepth", help:"Number of frames before recycling freed uniform buffers .\n", type:"Var"}, {name: "r.D3D11.Depth24Bit", help:"0: Use 32-bit float depth buffer\n1: Use 24-bit fixed point depth buffer(default)\n", type:"Var"}, {name: "r.d3d11.dumpliveobjects", help:"When using -d3ddebug will dump a list of live d3d objects. Mostly for finding leaks.", type:"Cmd"}, {name: "r.D3D11.NVAutoFlushUAV", help:"If enabled, use NVAPI (Nvidia) or AGS (AMD) to not flush between dispatches/draw calls 1: on (default)\n 0: off", type:"Var"}, {name: "r.D3D12.AllowAsyncCompute", help:"Allow usage of async compute", type:"Var"}, {name: "r.D3D12.AutoAttachPIX", help:"Automatically attach PIX on startup", type:"Var"}, {name: "r.D3D12.Depth24Bit", help:"0: Use 32-bit float depth buffer\n1: Use 24-bit fixed point depth buffer(default)\n", type:"Var"}, {name: "r.D3D12.DevDisableD3DRuntimeBackgroundThreads", help:"If > 0, disables the background threads created by the D3D runtime for background shader optimization. Only available when Windows developer mode is enabled. (default = 0).", type:"Var"}, {name: "r.D3D12.DiagnosticBufferExtraMemory", help:"Extra allocated memory for diagnostic buffer", type:"Var"}, {name: "r.D3D12.DRED", help:"Enable DRED GPU Crash debugging mode to track the current GPU state and logs information what operations the GPU executed last.Has GPU overhead but gives the most information on the current GPU state when it crashes or hangs.\n", type:"Var"}, {name: "r.D3D12.DXR.MinimumDriverVersionAMD", help:"Sets the minimum driver version required to enable ray tracing on AMD GPUs.", type:"Var"}, {name: "r.D3D12.DXR.MinimumDriverVersionNVIDIA", help:"Sets the minimum driver version required to enable ray tracing on NVIDIA GPUs.", type:"Var"}, {name: "r.D3D12.DXR.MinimumWindowsBuildVersion", help:"Sets the minimum Windows build version required to enable ray tracing.", type:"Var"}, {name: "r.D3D12.EnableD3DDebug", help:"0 to disable d3ddebug layer (default)\n1 to enable error logging (-d3ddebug) \n2 to enable error & warning logging (-d3dlogwarnings)\n3 to enable breaking on errors & warnings (-d3dbreakonwarning)\n4 to enable CONTINUING on errors (-d3dcontinueonerrors)\n", type:"Var"}, {name: "r.D3D12.ExperimentalShaderModels", help:"Controls whether D3D12 experimental shader models should be allowed. Not available in shipping builds. (default = 0).", type:"Var"}, {name: "r.D3D12.ExplicitDescriptorHeap.DeduplicateSamplers", help:"Use an exhaustive search to deduplicate sampler descriptors when generating shader binding tables. Reduces sampler heap usage at the cost of some CPU time. (default = 1)", type:"Var"}, {name: "r.D3D12.ExplicitDescriptorHeap.ViewDescriptorHeapSize", help:"Maximum number of descriptors per explicit view descriptor heap. (default = 250k, ~8MB per heap)\nTypical measured descriptor heap usage in large scenes is ~50k. An error is reported when this limit is reached and shader bindings for subsequent objects are skipped.\n", type:"Var"}, {name: "r.D3D12.GPUTimeFromTimestamps", help:"Prefer timestamps instead of GetHardwareGPUFrameTime to compute GPU frame time", type:"Var"}, {name: "r.D3D12.GPUTimeout", help:"0: Disable GPU Timeout; use with care as it could freeze your PC!\n1: Enable GPU Timeout; operation taking long on the GPU will fail(default)\n", type:"Var"}, {name: "r.D3D12.LightweightDRED", help:"Enable Lightweight DRED GPU Crash debugging mode to track the current GPU state and logs information what operations the GPU executed last.Gives the basic information on the current GPU state when it crashes or hangs on all PC hardware.\n", type:"Var"}, {name: "r.D3D12.RayTracing.AllowCompaction", help:"Whether to automatically perform compaction for static acceleration structures to save GPU memory. (default = 1)\n", type:"Var"}, {name: "r.D3D12.RayTracing.AllowSpecializedStateObjects", help:"Whether to use specialized RTPSOs if they have been created. This is intended for performance testingand has no effect if r.D3D12.RayTracing.SpecializeStateObjects is 0. (default = 1)\n", type:"Var"}, {name: "r.D3D12.RayTracing.CacheShaderRecords", help:"Automatically cache and re-use SBT hit group records. This significantly improves CPU performance in large scenes with many identical mesh instances. (default = 1)\nThis mode assumes that contents of uniform buffers does not change during ray tracing resource binding.", type:"Var"}, {name: "r.D3D12.RayTracing.DebugForceBuildMode", help:"Forces specific acceleration structure build mode (not runtime-tweakable).\n0: Use build mode requested by high-level code (Default)\n1: Force fast build mode\n2: Force fast trace mode\n", type:"Var"}, {name: "r.D3D12.RayTracing.GPUValidation", help:"Whether to perform validation of ray tracing geometry and other structures on the GPU. Requires Shader Model 6. (default = 0)", type:"Var"}, {name: "r.D3D12.RayTracing.MaxBatchedCompaction", help:"Maximum of amount of compaction requests and rebuilds per frame. (default = 64)\n", type:"Var"}, {name: "r.D3D12.RayTracing.SpecializeStateObjects", help:"Whether to create specialized unique ray tracing pipeline state objects for each ray generation shader. (default = 0)\nThis option can produce more more efficient PSOs for the GPU at the cost of longer creation times and more memory. Requires DXR 1.1.\n", type:"Var"}, {name: "r.D3D12.SubmissionTimeout", help:"The maximum time, in seconds, that a submitted GPU command list is allowed to take before the RHI reports a GPU hang", type:"Var"}, {name: "r.D3D12.UseAllowTearing", help:"Enable new dxgi flip mode with d3d12", type:"Var"}, {name: "r.Debug.DrawCurrentDebugTargetBoundingBox", help:"Draw the bounding box of the currently selected debug target (Default: 1)", type:"Var"}, {name: "r.DebugSafeZone.MaxDebugTextStringsPerActor", help:"The maximum number of debug strings that can be attached to a given actor (<=0 : no limit)", type:"Var"}, {name: "r.Decal.FilterMaterialList", help:"Enable filtering of material list in Decal Component details panel.", type:"Var"}, {name: "r.Decal.NormalReprojectionEnabled", help:"If true, normal reprojection from the previous frame is allowed in SceneTexture nodes on DBuffer decals, provided that motion in depth prepass is enabled as well (r.VelocityOutputPass=0). Otherwise the fallback is the normal extracted from the depth buffer.", type:"Var"}, {name: "r.Decal.NormalReprojectionThresholdHigh", help:"When reading the normal from a SceneTexture node in a DBuffer decal shader, the normal is a mix of the geometry normal (extracted from the depth buffer) and the normal from the reprojected previous frame. When the dot product of the geometry and reprojected normal is below the r.Decal.NormalReprojectionThresholdLow, the geometry normal is used. When that value is above r.Decal.NormalReprojectionThresholdHigh, the reprojected normal is used. Otherwise it uses a lerp between them.", type:"Var"}, {name: "r.Decal.NormalReprojectionThresholdLow", help:"When reading the normal from a SceneTexture node in a DBuffer decal shader, the normal is a mix of the geometry normal (extracted from the depth buffer) and the normal from the reprojected previous frame. When the dot product of the geometry and reprojected normal is below the r.Decal.NormalReprojectionThresholdLow, the geometry normal is used. When that value is above r.Decal.NormalReprojectionThresholdHigh, the reprojected normal is used. Otherwise it uses a lerp between them.", type:"Var"}, {name: "r.Decal.Visibility.Multithreaded", help:"Whether to build visible decal list using multithreading. 0=disabled, 1=enabled (default)", type:"Var"}, {name: "r.DecalDepthBias", help:"Global depth bias used by mesh decals. Default is 0.005 for perspective. Scaled by the PerProjectionDepthThicknessScale for Ortho", type:"Var"}, {name: "r.DefaultFeature.AntiAliasing", help:"Engine default (project setting) for AntiAliasingMethod is (postprocess volume/camera/game setting still can override)\n 0: off (no anti-aliasing)\n 1: FXAA (faster than TemporalAA but much more shimmering for non static cases)\n 2: TemporalAA (default)\n 3: MSAA (Forward shading only)", type:"Var"}, {name: "r.DefaultFeature.AutoExposure.ExtendDefaultLuminanceRange", help:"Whether the default values for AutoExposure should support an extended range of scene luminance.\nThis also change the PostProcessSettings.Exposure.MinBrightness, MaxBrightness, HistogramLogMin and HisogramLogMax\nto be expressed in EV100 values instead of in Luminance and Log2 Luminance.\n 0: Legacy range (default)\n 1: Extended range", type:"Var"}, {name: "r.DefaultFeature.AutoExposure.Bias", help:"Engine default (project setting) for AutoExposure Exposure Bias (postprocess volume/camera/game setting still can override)\n", type:"Var"}, {name: "r.DefaultFeature.AutoExposure.ExtendDefaultLuminanceRange", help:"Whether the default values for AutoExposure should support an extended range of scene luminance.\nThis also change the PostProcessSettings.Exposure.MinBrightness, MaxBrightness, HistogramLogMin and HisogramLogMax\nto be expressed in EV100 values instead of in Luminance and Log2 Luminance.\n 0: Legacy range (UE4 default)\n 1: Extended range (UE5 default)", type:"Var"}, {name: "r.DefaultFeature.LocalExposure.HighlightContrastScale", help:"Engine default (project setting) for Local Exposure Highlight Contrast (postprocess volume/camera/game setting still can override)\n", type:"Var"}, {name: "r.DefaultFeature.LocalExposure.ShadowContrastScale", help:"Engine default (project setting) for Local Exposure Shadow Contrast (postprocess volume/camera/game setting still can override)\n", type:"Var"}, {name: "r.DeferSkeletalDynamicDataUpdateUntilGDME", help:"If > 0, then do skeletal mesh dynamic data updates will be deferred until GDME. Experimental option.", type:"Var"}, {name: "r.Deferred.SupportPrimitiveAlphaHoldout", help:"True to enable deferred renderer support for primitive alpha holdout (disabled by default).\n", type:"Var"}, {name: "r.Deferred.UsesLightFunctionAtlas", help:"Whether the light function atlas is sampled when rendering local lights.", type:"Var"}, {name: "r.DeferredMeshPassSetupTaskSync", help:"If enabled, the sync point of the mesh pass setup task is deferred until RDG execute (from during RDG setup) significantly increasing the overlap possible.", type:"Var"}, {name: "r.DelaySceneRenderCompletion", help:"Experimental option to postpone the cleanup of the scene renderer until later. This does NOT currently work because it is possible for the scene to be modified before ~FSceneRenderer, and that assumes the scene is unchanged.", type:"Var"}, {name: "r.DemosaicVposOffset", help:"This offset is added to the rasterized position used for demosaic in the ES2 tonemapping shader. It exists to workaround driver bugs on some Android devices that have a half-pixel offset.", type:"Var"}, {name: "r.DeformerGraph.Enable", help:"Set to 0 to disable DeformerGraph support on a platform.\n", type:"Var"}, {name: "r.DemosaicVposOffset", help:"This offset is added to the rasterized position used for demosaic in the mobile tonemapping shader. It exists to workaround driver bugs on some Android devices that have a half-pixel offset.", type:"Var"}, {name: "r.DemotedLocalMemoryWarning", help:"If set to 1, a warning will be displayed when local memory has been demoted to system memory.", type:"Var"}, {name: "r.DetailMode", help:"Current detail mode; determines whether components of actors should be updated/ ticked.\n 0: low, show only object with DetailMode low or higher\n 1: medium, show all object with DetailMode medium or higher\n 2: high, show all objects (default)", type:"Var"}, {name: "r.DetailedMipAlphaLogging", help:"Prints extra log messages for tracking when alpha gets removed/introduced during textureimage processing.", type:"Var"}, {name: "r.DetailMode", help:"Current detail mode; determines whether components of actors should be updated/ ticked.\n 0: low, show objects with DetailMode low\n 1: medium, show objects with DetailMode medium or below\n 2: high, show objects with DetailMode high or below\n 3: epic, show all objects (default)", type:"Var"}, {name: "r.DFDistanceScale", help:"Factor to scale directional light property \'DistanceField Shadows Distance\', clamped to [0.0001, 10000].\nI.e.: DistanceFieldShadowsDistance *= r.DFDistanceScale.\n[0.0001,1): shorter distance\n 1: normal (default)\n(1,10000]: larger distance.)", type:"Var"}, {name: "r.DFFarTransitionScale", help:"Use to modify the length of the far transition (fade out) of the distance field shadows.\n1.0: (default) Calculate in the same way as other cascades.0.0: Disable fade out.", type:"Var"}, {name: "r.DFShadow.TwoSidedMeshDistanceBiasScale", help:"Scale applied to distance bias when calculating distance field shadows of two sided meshes. This is useful to get tree shadows to match up with standard shadow mapping.", type:"Var"}, {name: "r.DFShadowAsyncCompute", help:"Whether render distance field shadows using async compute if possible", type:"Var"}, {name: "r.DFShadowCompactCulledObjects", help:"Whether to compact culled object indices when using scattered tile culling. Note that each tile can only hold up to r.DFShadowAverageObjectsPerCullTile number of objects when compaction is not used.", type:"Var"}, {name: "r.DFShadowCullingSubsampleDepth", help:"When deciding whether to cull DF shadows for a pixel, subsample the depthbuffer instead of checking all relevant depth texels. Decreases bandwidth, but produces artifacts on edges and pixel-sized holes", type:"Var"}, {name: "r.DFShadowQuality", help:"Defines the distance field shadow method which allows to adjust for quality or performance.\n 0:off, 1:medium (less samples, no SSS), 2:high (default)", type:"Var"}, {name: "r.DFShadowQuality", help:"Defines the distance field shadow method which allows to adjust for quality or performance.\n 0:off, 1:low (20 steps, no SSS), 2:medium (32 steps, no SSS), 3:high (64 steps, SSS, default)", type:"Var"}, {name: "r.DFTwoSidedMeshDistanceBias", help:"World space amount to expand distance field representations of two sided meshes. This is useful to get tree shadows to match up with standard shadow mapping.", type:"Var"}, {name: "r.DiffuseIndirect.HalfRes", help:"TODO(Guillaume)", type:"Var"}, {name: "r.DiffuseIndirect.RayPerPixel", help:"TODO(Guillaume)", type:"Var"}, {name: "r.DiffuseIndirectForceCopyPass", help:"Forces use of copy pass instead of dual source blend. (for debugging)", type:"Var"}, {name: "r.DiffuseIndirectOffUseDepthBoundsAO", help:"Use depth bounds when we apply the AO when DiffuseIndirect is disabled.", type:"Var"}, {name: "r.DisableLandscapeNaniteGI", help:"Disable Landscape Nanite GI", type:"Var"}, {name: "r.DisambiguateShaderDebugDir", help:"If true, appends a folder containing the full project path with directory separators/drive qualifiers replaced with _ to the root debug info folder.\nIntended for use in conjunction with r.OverrideShaderDebugDir to avoid shaderdebuginfo output clashing across workspaces/projects.", type:"Var"}, {name: "r.DistanceCullToSphereEdge", help:"If true frustum cull will check distance to bounding sphere edge rather than origin.", type:"Var"}, {name: "r.DistanceFieldBuild.Compress", help:"Whether to store mesh distance fields compressed in memory, which reduces how much memory they take, but also causes serious hitches when making new levels visible. Only enable if your project does not stream levels in-game.\nChanging this regenerates all mesh distance fields.", type:"Var"}, {name: "r.DistanceFieldBuild.EightBit", help:"Whether to store mesh distance fields in an 8 bit fixed point format instead of 16 bit floating point. \n8 bit uses half the memory, but introduces artifacts for large meshes or thin meshes.", type:"Var"}, {name: "r.DistanceFieldBuild.UseEmbree", help:"Whether to use embree ray tracer for mesh distance field generation.", type:"Var"}, {name: "r.DistanceFieldGI", help:"", type:"Var"}, {name: "r.DistanceFieldAO.MultiView", help:"Whether the distance field AO feature is allowed when rendering multiple views.", type:"Var"}, {name: "r.DistanceFieldAO.TraverseMips", help:"Whether to traverse mips while tracing AO cones against object SDFs.", type:"Var"}, {name: "r.DistanceFields.AtlasSizeXY", help:"Max size of the global mesh distance field atlas volume texture in X and Y.", type:"Var"}, {name: "r.DistanceFields.AtlasSizeZ", help:"Max size of the global mesh distance field atlas volume texture in Z.", type:"Var"}, {name: "r.DistanceFields.BlockAllocatorSizeInBricks", help:"Allocation granularity of the distance field block allocator. Higher number may cause more memory wasted on padding but allocation may be faster.", type:"Var"}, {name: "r.DistanceFields.BrickAtlasMaxSizeZ", help:"Target for maximum depth of the Mesh Distance Field atlas, in 8^3 bricks. 32 => 128 * 128 * 32 * 8^3 = 256Mb. Actual atlas size can go over since mip2 is always loaded.", type:"Var"}, {name: "r.DistanceFields.BrickAtlasSizeXYInBricks", help:"Controls the allocation granularity of the atlas, which grows in Z.", type:"Var"}, {name: "r.DistanceFields.Debug.ForceNumMips", help:"When set to > 0, overrides the requested number of mips for streaming. 1 = only lowest resolution mip loaded, 3 = all mips loaded. Mips will still be clamped by available space in the atlas.", type:"Var"}, {name: "r.DistanceFields.Debug.ResizeAtlasEveryFrame", help:"Whether to resize the Distance Field atlas every frame, which is useful for debugging.", type:"Var"}, {name: "r.DistanceFields.ForceAtlasRealloc", help:"Force a full realloc.", type:"Var"}, {name: "r.DistanceFields.ForceMaxAtlasSize", help:"When enabled, we\'ll always allocate the largest possible volume texture for the distance field atlas regardless of how many blocks we need. This is an optimization to avoid re-packing the texture, for projects that are expected to always require the largest amount of space.", type:"Var"}, {name: "r.DistanceFields.MaxPerMeshResolution", help:"Highest resolution (in one dimension) allowed for a single static mesh asset, used to cap the memory usage of meshes with a large scale.\nChanging this will cause all distance fields to be rebuilt. Large values such as 512 can consume memory very quickly! (128Mb for one asset at 512)", type:"Var"}, {name: "r.DistanceFields.ParallelAtlasUpdate", help:"Whether to parallelize distance field data decompression and copying to upload buffer", type:"Var"}, {name: "r.DistanceFields.ThrottleCopyToAtlasInBytes", help:"When enabled (higher than 0), throttle mesh distance field copy to global mesh distance field atlas volume (in bytes uncompressed).", type:"Var"}, {name: "r.DistanceFields.DefragmentIndirectionAtlas", help:"Whether to defragment the Distance Field indirection atlas when it requires resizing.", type:"Var"}, {name: "r.DistanceFields.LogAtlasStats", help:"Set to 1 to dump atlas stats, set to 2 to dump atlas and SDF asset stats.", type:"Var"}, {name: "r.DistanceFields.MaxIndirectionAtlasSizeXYZ", help:"Maximum size of indirection atlas texture", type:"Var"}, {name: "r.DistanceFields.MaxObjectBoundingRadius", help:"Objects larger than this will not be included in the Mesh Distance Field scene, to improve performance.", type:"Var"}, {name: "r.DistanceFields.MaxPerMeshResolution", help:"Highest resolution (in one dimension) allowed for a single static mesh asset, used to cap the memory usage of meshes with a large scale.\nChanging this will cause all distance fields to be rebuilt. Large values such as 512 can consume memory very quickly! (64Mb for one asset at 512)", type:"Var"}, {name: "r.DistanceFields.MinIndirectionAtlasSizeXYZ", help:"Minimum size of indirection atlas texture", type:"Var"}, {name: "r.DistanceFields.OffsetDataStructure", help:"Which data structure to store offset in, 0 - base, 1 - buffer, 2 - texture", type:"Var"}, {name: "r.DistanceFields.ParallelUpdate", help:"", type:"Var"}, {name: "r.DistanceFields.ReverseAtlasAllocationOrder", help:"", type:"Var"}, {name: "r.DistanceFields.SupportEvenIfHardwareRayTracingSupported", help:"Whether to support distance fields when hardware ray tracing is supported.\nSetting it to 0 will skip distance field overhead when hardware ray tracing is supported.", type:"Var"}, {name: "r.DistanceFields.SurfaceBiasExpand", help:"Fraction of a Mesh SDF voxel to expand the surface during intersection. Expanding the surface improves representation quality, at the cost of over-occlusion.", type:"Var"}, {name: "r.DistanceFields.TextureUploadLimitKBytes", help:"Max KB of distance field texture data to upload per frame from streaming requests.", type:"Var"}, {name: "r.DistanceFields.Visualize.Monochrome", help:"Whether to render the distance field visualization in monochrome", type:"Var"}, {name: "r.DOF.Gather.ResolutionDivisor", help:"Selects the resolution divisor of the gather pass.\n 1: Do gathering pass at full resolution;\n 2: Do gathering pass at half resolution (default).", type:"Var"}, {name: "r.DoInitViewsLightingAfterPrepass", help:"Delays the lighting part of InitViews until after the prepass. This improves the threading throughput and gets the prepass to the GPU ASAP. Experimental options; has an unknown race.", type:"Var"}, {name: "r.DoLazyStaticMeshUpdate", help:"If true, then do not add meshes to the static mesh draw lists until they are visible. Experiemental option.", type:"Var"}, {name: "r.DoPrepareDistanceFieldSceneAfterRHIFlush", help:"If true, then do the distance field scene after the RHI sync and flush. Improves pipelining.", type:"Var"}, {name: "r.Downsample.Quality", help:"Defines the quality in which the Downsample passes. we might add more quality levels later.\n 0: low quality\n>0: high quality (default: 3)\n", type:"Var"}, {name: "r.DriverDetectionMethod", help:"Defines which implementation is used to detect the GPU driver (to check for old drivers, logs and statistics)\n 0: Iterate available drivers in registry and choose the one with the same name, if in question use next method (happens)\n 1: Get the driver of the primary adapter (might not be correct when dealing with multiple adapters)\n 2: Use DirectX LUID (would be the best, not yet implemented)\n 3: Use Windows functions, use the primary device (might be wrong when API is using another adapter)\n 4: Use Windows functions, use names such as DirectX Device (newest, most promising)", type:"Var"}, {name: "r.DriverDetectionMethod", help:"Defines which implementation is used to detect the GPU driver (to check for old drivers, logs and statistics)\n 0: Iterate available drivers in registry and choose the one with the same name, if in question use next method (happens)\n 1: Get the driver of the primary adapter (might not be correct when dealing with multiple adapters)\n 2: Use DirectX LUID (would be the best, not yet implemented)\n 3: Use Windows functions, use the primary device (might be wrong when API is using another adapter)\n 4: Use Windows functions, use names such as DirectX Device (newest, most promising)\n 5: Use Windows SetupAPI functions", type:"Var"}, {name: "r.DumpBufferPoolMemory", help:"Dump allocation information for the buffer pool.", type:"Cmd"}, {name: "r.DumpGPU.Buffer", help:"Whether to dump buffer.\n 0: Ignores all buffers\n 1: Dump only buffers\' descriptors\n 2: Dump buffers\' descriptors and binaries (default)", type:"Var"}, {name: "r.DumpGPU.CameraCut", help:"Whether to issue a camera cut on the first frame of the dump.", type:"Var"}, {name: "r.DumpGPU.ConsoleVariables", help:"Whether to dump rendering console variables (enabled by default).", type:"Var"}, {name: "r.DumpGPU.Delay", help:"Delay in seconds before dumping the frame.", type:"Var"}, {name: "r.DumpGPU.Directory", help:"Directory to dump to.", type:"Var"}, {name: "r.DumpGPU.Draws", help:"Whether to dump resource after each individual draw call (disabled by default).", type:"Var"}, {name: "r.DumpGPU.DumpOnScreenshotTest", help:"Allows to filter the tree when using r.DumpGPU command, the pattern match is case sensitive.", type:"Var"}, {name: "r.DumpGPU.Explore", help:"Whether to open file explorer to where the GPU dump on completion (enabled by default).", type:"Var"}, {name: "r.DumpGPU.FixedTickRate", help:"Override the engine\'s tick rate to be fixed for every dumped frames (default=0).", type:"Var"}, {name: "r.DumpGPU.FrameCount", help:"Number of consecutive frames to dump (default=1).", type:"Var"}, {name: "r.DumpGPU.FrameDelay", help:"Delay in frames before dumping the frame.", type:"Var"}, {name: "r.DumpGPU.Mask", help:"Whether to include GPU mask in the name of each Pass (has no effect unless system has multiple GPUs).", type:"Var"}, {name: "r.DumpGPU.MaxStagingSize", help:"Maximum size of stating resource in MB (default=64).", type:"Var"}, {name: "r.DumpGPU.PassParameters", help:"Whether to dump the pass parameters.", type:"Var"}, {name: "r.DumpGPU.Root", help:"Allows to filter the tree when using r.DumpGPU command, the pattern match is case sensitive.", type:"Var"}, {name: "r.DumpGPU.Screenshot", help:"Whether to take a final screenshot.", type:"Var"}, {name: "r.DumpGPU.Stream", help:"Asynchronously readback from GPU to disk.\n 0: Synchronously copy from GPU to disk with extra carefulness to avoid OOM (default);\n 1: Asynchronously copy from GPU to disk with dedicated staging resources pool. May run OOM. Please consider using r.DumpGPU.Root to minimise amount of passes to stream and r.Test.SecondaryUpscaleOverride to reduce resource size to minimise OOM and disk bandwidth bottleneck per frame.", type:"Var"}, {name: "r.DumpGPU.Test.EnableDiskWrite", help:"Main switch whether any files should be written to disk, used for r.DumpGPU automation tests to not fill up workers\' hard drive.", type:"Var"}, {name: "r.DumpGPU.Test.PrettifyResourceFileNames", help:"Whether the resource file names should include resource name. May increase the likelyness of running into Windows\' filepath limit.", type:"Var"}, {name: "r.DumpGPU.Texture", help:"Whether to dump textures.\n 0: Ignores all textures\n 1: Dump only textures\' descriptors\n 2: Dump textures\' descriptors and binaries (default)", type:"Var"}, {name: "r.DumpGPU.Upload", help:"Allows to upload the GPU dump automatically if set-up.", type:"Var"}, {name: "r.DumpGPU.Upload.CompressResources", help:"Whether to compress resource binary.\n 0: Disabled (default)\n 1: Zlib\n 2: GZip", type:"Var"}, {name: "r.DumpGPU.Viewer.Visualize", help:"Name of RDG output resource to automatically open in the dump viewer.", type:"Var"}, {name: "r.DumpSCWQueuedJobs", help:"When set to 1, it will dump a job list to help track down crashes that happened on ShaderCompileWorker.", type:"Var"}, {name: "r.DumpShaderDebugInfo", help:"When set to 1, will cause any material shaders that are then compiled to dump debug info to GameName/Saved/ShaderDebugInfo\nThe debug info is platform dependent, but usually includes a preprocessed version of the shader source.\nGlobal shaders automatically dump debug info if r.ShaderDevelopmentMode is enabled, this cvar is not necessary.\nOn iOS, if the PowerVR graphics SDK is installed to the default path, the PowerVR shader compiler will be called and errors will be reported during the cook.", type:"Var"}, {name: "r.DumpShaderDebugShortNames", help:"Only valid when r.DumpShaderDebugInfo=1.\nWhen set to 1, will shorten names factory and shader type folder names to avoid issues with long paths.", type:"Var"}, {name: "r.DumpShaderDebugWorkerCommandLine", help:"Only valid when r.DumpShaderDebugInfo=1.\nWhen set to 1, it will generate a file that can be used with ShaderCompileWorker\'s -directcompile.", type:"Var"}, {name: "r.DumpShaderDebugBindlessNames", help:"Only valid when r.DumpShaderDebugInfo > 0.\nWhen set to 1, will add bindless folder names.", type:"Var"}, {name: "r.DumpShaderDebugInfo", help:"Dumps debug info for compiled shaders to GameName/Saved/ShaderDebugInfo\nWhen set to 1, debug info is dumped for all compiled shader\nWhen set to 2, it is restricted to shaders with compilation errors\nWhen set to 3, it is restricted to shaders with compilation errors or warnings\nThe debug info is platform dependent, but usually includes a preprocessed version of the shader source.\nGlobal shaders automatically dump debug info if r.ShaderDevelopmentMode is enabled, this cvar is not necessary.\nOn iOS, if the PowerVR graphics SDK is installed to the default path, the PowerVR shader compiler will be called and errors will be reported during the cook.", type:"Var"}, {name: "r.DumpShaderDebugShortNames", help:"Only valid when r.DumpShaderDebugInfo > 0.\nWhen set to 1, will shorten names factory and shader type folder names to avoid issues with long paths.", type:"Var"}, {name: "r.DumpShaderDebugWorkerCommandLine", help:"Only valid when r.DumpShaderDebugInfo > 0.\nWhen set to 1, it will generate a file that can be used with ShaderCompileWorker\'s -directcompile.", type:"Var"}, {name: "r.DumpShaderOutputCacheHits", help:"Dumps shader output bytecode and cache hits with reference to original output.\nDumping shader output bytecode for all compile shaders also requires CVar r.DumpShaderDebugInfo=1.", type:"Var"}, {name: "r.DX11NumForcedGPUs", help:"Num Forced GPUs.", type:"Var"}, {name: "r.DynamicGlobalIlluminationMethod", help:"0 - None. Global Illumination can be baked into Lightmaps but no technique will be used for Dynamic Global Illumination.\n1 - Lumen. Use Lumen Global Illumination for all lights, emissive materials casting light and SkyLight Occlusion. Requires \'Generate Mesh Distance Fields\' enabled for Software Ray Tracing and \'Support Hardware Ray Tracing\' enabled for Hardware Ray Tracing.\n2 - SSGI. Standalone Screen Space Global Illumination. Low cost, but limited by screen space information.\n3 - Plugin. Use a plugin for Global Illumination.", type:"Var"}, {name: "r.DynamicRes.CPUBoundScreenPercentage", help:"Screen percentage to converge to when CPU bound. This can be used when GPU and CPU share same memory.", type:"Var"}, {name: "r.DynamicRes.CPUTimeHeadRoom", help:"Head room for the threads compared GPU time to avoid keep getting resolution fraction shrinking down when CPU bound (in milliseconds).", type:"Var"}, {name: "r.DynamicRes.DynamicFrameTime", help:"Whether the r.DynamicRes.FrameTimeBudget should automatically increases when frame rate is bound by CPU.", type:"Var"}, {name: "r.DynamicRes.DynamicFrameTime.ErrorMarginPercent", help:"How much headroom should be left between CPU and GPU.", type:"Var"}, {name: "r.DynamicRes.DynamicFrameTime.RoundUpToVSyncError", help:"Error to use to round up the dynamic frame time to vsync boundaries (default=10%).", type:"Var"}, {name: "r.DynamicRes.DynamicFrameTime.Track", help:"What to track to control the budget\n 0: Frametime (but can create feedback loop when GPU bound and VSync); 1: Threads time (default);", type:"Var"}, {name: "r.DynamicRes.MaxConsecutiveOverbudgetGPUFrameCount", help:"Maximum number of consecutive frame tolerated over GPU budget.", type:"Var"}, {name: "r.DynamicRes.MaxScreenPercentage", help:"Maximal screen percentage.", type:"Var"}, {name: "r.DynamicRes.MaxConsecutiveOverBudgetGPUFrameCount", help:"Maximum number of consecutive frames tolerated over GPU budget.", type:"Var"}, {name: "r.DynamicRes.MaxScreenPercentage", help:"Maximal primary screen percentage. Importantly this setting controls the preallocated video memory needed by the renderer to render.", type:"Var"}, {name: "r.DynamicRes.MinScreenPercentage", help:"Minimal screen percentage.", type:"Var"}, {name: "r.DynamicRes.MinScreenPercentage", help:"Minimal primary screen percentage.", type:"Var"}, {name: "r.DynamicRes.OutlierThreshold", help:"Ignore frame timing that have Game thread or render thread X time more than frame budget.", type:"Var"}, {name: "r.DynamicRes.OverBudgetGPUHeadRoomPercentage", help:"Amount of GPU headroom needed from which the frame is considered over budget. This is for platform not supporting controllable tearing with VSync (in percent from r.DynamicRes.FrameTimeBudget).", type:"Var"}, {name: "r.DynamicRes.ThrottlingMaxScreenPercentage", help:"Throttle the primary screen percentage allowed by the heuristic to this max value when enabled. This has no effect on preallocated video memory.\nThis is for instance useful when the video game wants to trottle power consumption when inactive without resizing internal renderer\'s render targets\n(which can result in popping)", type:"Var"}, {name: "r.DynamicRes.UpperBoundQuantization", help:"Quantization step count to use for upper bound screen percentage.\nIf non-zero, rendertargets will be resized based on the dynamic resolution fraction, saving GPU time during clears and resolves.\nOnly recommended for use with the transient allocator (on supported platforms) with a large transient texture cache (e.g RHI.TransientAllocator.TextureCacheSize=512)", type:"Var"}, {name: "r.DynamicRes.UseGameThreadCriticalPath", help:"Whether to use game thread critical path time when determining whether game is CPU bound.", type:"Var"}, {name: "r.EarlyInitDynamicShadows", help:"Starts shadow culling tasks earlier in the frame.", type:"Var"}, {name: "r.EarlyZSortMasked", help:"Sort EarlyZ masked draws to the end of the draw order.\n", type:"Var"}, {name: "r.Editor.MovingPattern", help:"0:animation over time is off (default is 1)", type:"Var"}, {name: "r.Editor.ArcballDragLimit", help:"For how long the arcball rotates until it switches to a screens space rotate, default of 1.0 equals the size of the arcball", type:"Var"}, {name: "r.Editor.ArcballSize", help:"DEPRECRATED in 5.1)", type:"Var"}, {name: "r.Editor.HideLightStaticMobilityWhenStaticLightingDisabled", help:"Hide Static mobility on Light components when project has Static Lighting disabled.", type:"Var"}, {name: "r.Editor.MaxNumInstancesDetails", help:"Maximum number of instances shown in the details panel. Above this value, instances are hidden by default. \n< 0 : No maximum\n", type:"Var"}, {name: "r.Editor.NeverStartInPreviewMode", help:"0: Editor can start in preview mode, 1: Editor never starts in preview mode", type:"Var"}, {name: "r.Editor.OpaqueGizmo", help:"0..1\n0: occluded gizmo is partly transparent (default), 1:gizmo is never occluded", type:"Var"}, {name: "r.Editor.SkipSourceControlCheckForEditablePackages", help:"Whether to skip the source control status check for editable packages, 0: Disable (Default), 1: Enable", type:"Var"}, {name: "r.Editor.SkipSourceControlCheckForEditablePackages", help:"Whether to skip the revision control status check for editable packages, 0: Disable (Default), 1: Enable", type:"Var"}, {name: "r.Editor.Viewport.HighDPI", help:"Controls whether editor & PIE viewports can be displayed at high DPI.", type:"Var"}, {name: "r.Editor.Viewport.InvalidateEachSIEFrame", help:"Invalidate the viewport on each frame when SIE is running. Disabling this cvar (setting to 0) may improve performance, but impact the ability to click on objects that are moving in the viewport.", type:"Var"}, {name: "r.Editor.Viewport.MaxRenderingResolution", help:"Controls the absolute maximum number of rendered pixel in editor viewports.", type:"Var"}, {name: "r.Editor.Viewport.MinRenderingResolution", help:"Controls the minimum number of rendered pixel by default in editor viewports.", type:"Var"}, {name: "r.Editor.Viewport.OverridePIEScreenPercentage", help:"Apply editor viewports\' default screen percentage settings to game viewport clients in PIE.", type:"Var"}, {name: "r.Editor.Viewport.ScreenPercentage", help:"Controls the editor viewports\' default screen percentage when using r.Editor.Viewport.ScreenPercentageMode=0.", type:"Var"}, {name: "r.Editor.Viewport.ScreenPercentageMode.Mobile", help:"Controls the default screen percentage mode for realtime editor viewports using mobile renderer.", type:"Var"}, {name: "r.Editor.Viewport.ScreenPercentageMode.NonRealTime", help:"Controls the default screen percentage mode for non-realtime editor viewports.", type:"Var"}, {name: "r.Editor.Viewport.ScreenPercentageMode.PathTracer", help:"Controls the default screen percentage mode for path-traced viewports.", type:"Var"}, {name: "r.Editor.Viewport.ScreenPercentageMode.RealTime", help:"Controls the default screen percentage mode for realtime editor viewports using desktop renderer.", type:"Var"}, {name: "r.Editor.Viewport.ScreenPercentageMode.VR", help:"Controls the default screen percentage mode for VR editor viewports.", type:"Var"}, {name: "r.Emitter.SkipRibbonSpawnInterp", help:"Ignore velocity based offsets when interpolating. This prevents ribbon quads from overlapping eachother (default=1)", type:"Var"}, {name: "r.EnableComputeBuildHZB", help:"If zero, build HZB using graphics pipeline.", type:"Var"}, {name: "r.ExposureOffset", help:"For adjusting the exposure on top of post process settings and eye adaptation. For developers only. 0:default", type:"Var"}, {name: "r.EyeAdaptation.Basic.Compute", help:"Use Pixel or Compute Shader to compute the basic eye adaptation. \n= 0 : Pixel Shader\n> 0 : Compute Shader (default) \n", type:"Var"}, {name: "r.EyeAdaptation.EditorOnly", help:"When pre-exposure is enabled, 0 to enable it everywhere, 1 to enable it only in the editor (default).\nThis is to because it currently has an impact on the renderthread performance\n", type:"Var"}, {name: "r.EyeAdaptation.Focus", help:"Applies to basic adapation mode only\n 0: Uniform weighting\n>0: Center focus, 1 is a good number (default)", type:"Var"}, {name: "r.EyeAdaptation.MethodOveride", help:"Overide the camera metering method set in post processing volumes\n-2: override with custom settings (for testing Basic Mode)\n-1: no override\n 1: Auto Histogram-based\n 2: Auto Basic\n 3: Manual", type:"Var"}, {name: "r.ExposureOffset", help:"For adjusting the exposure on top of post process settings and eye adaptation. 0: default", type:"Var"}, {name: "r.ExrReadAndProcessOnGPU", help:"Allows reading of Large Uncompressed EXR files directly into Structured Buffer.\nand be processed on GPU\n", type:"Var"}, {name: "r.ExrReaderGPU.ForceTileDescBuffer", help:"Calculates tile description and offsets on CPU and provides a Structured buffer.\nto be used to access tile description on GPU\n", type:"Var"}, {name: "r.ExrReaderGPU.UseUploadHeap", help:"Utilizes upload heap and copies raw exr buffer asynchronously.\n\t\t\tRequires a restart of the engine.", type:"Var"}, {name: "r.EyeAdaptation.BlackHistogramBucketInfluence", help:"This parameter controls how much weight to apply to completely dark 0.0 values in the exposure histogram.\nWhen set to 1.0, fully dark pixels will accumulate normally, whereas when set to 0.0 fully dark pixels\nwill have no influence.\n", type:"Var"}, {name: "r.EyeAdaptation.ExponentialTransitionDistance", help:"The auto exposure moves linearly, but when it gets ExponentialTransitionDistance F-stops away from the\ntarget exposure it switches to as slower exponential function.\n", type:"Var"}, {name: "r.EyeAdaptation.LensAttenuation", help:"The camera lens attenuation (q). Set this number to 0.78 for lighting to be unitless (1.0cd/m^2 becomes 1.0 at EV100) or 0.65 to match previous versions (1.0cd/m^2 becomes 1.2 at EV100).", type:"Var"}, {name: "r.EyeAdaptation.MethodOverride", help:"Override the camera metering method set in post processing volumes\n-2: override with custom settings (for testing Basic Mode)\n-1: no override\n 1: Auto Histogram-based\n 2: Auto Basic\n 3: Manual", type:"Var"}, {name: "r.EyeAdaptation.VisualizeDebugType", help:"When enabling Show->Visualize->HDR (Eye Adaptation) is enabled, this flag controls the scene color.\n 0: Scene Color after tonemapping (default)\n 1: Histogram Debug\n 2: Luminance\n", type:"Var"}, {name: "r.EyeAdaptation.VisualizeLuminanceScale", help:"Scale applied to output when visualizing luminance.\n", type:"Var"}, {name: "r.FASTBuild.JobProcessor.MaxTimeWithPendingJobs", help:"Specifies how much time in seconds we will wait to have the min amount of pending jobs. Past this time, the build will start anyways.\nDefault = 10\n", type:"Var"}, {name: "r.FASTBuild.JobProcessor.MinBatchSize", help:"Minimum number of shaders to compile with FASTBuild.\nDefault = 100\n", type:"Var"}, {name: "r.FASTBuild.JobProcessor.SleepTimeBetweenActions", help:"How much time the job processor thread should sleep between actions .\n", type:"Var"}, {name: "r.FASTBuildController.Enabled", help:"Enables or disables the use of FASTBuild to build shaders.\n0: Controller will not be used (shaders will be built locally or using other controllers). \n1: Distribute builds using FASTBuild.", type:"Var"}, {name: "r.FASTBuildController.SendAllPossibleShaderDependencies", help:"Send all possible dependencies of the shaders to the remote machines.0: Use dependencies array reported in the task structure.\n1: Brute-force discover all possible dependencies. \n", type:"Var"}, {name: "r.FASTBuildController.SendSCWDebugSymbols", help:"Enable when distributed shader compiler workers crash.\n0: Do not send along debug information in FASTBuild. \n1: Send along debug information in FASTBuild.", type:"Var"}, {name: "r.FastVRam.Bloom", help:"", type:"Var"}, {name: "r.FastVRam.GBufferF", help:"", type:"Var"}, {name: "r.FastVRam.LightAccumulation", help:"", type:"Var"}, {name: "r.FastVRam.LightAttenuation", help:"", type:"Var"}, {name: "r.FastVRam.LPV", help:"", type:"Var"}, {name: "r.FastVRam.SeparateTranslucencyModulate", help:"", type:"Var"}, {name: "r.FBlueprintContext.VirtualStackAllocator.DecommitMode", help:"Specifies DecommitMode for FVirtualStackAllocator when used through its ThreadSingleton. Values are from EVirtualStackAllocatorDecommitMode.", type:"Var"}, {name: "r.FBlueprintContext.VirtualStackAllocatorStackSize", help:"Default size for FBlueprintContext\'s FVirtualStackAllocator", type:"Var"}, {name: "r.FilmGrain", help:"Whether to enable film grain.", type:"Var"}, {name: "r.FilmGrain.CacheTextureConstants", help:"Wether the constants related to the film grain should be cached.", type:"Var"}, {name: "r.FilmGrain.SequenceLength", help:"Length of the random sequence for film grain (preferably a prime number, default=97).", type:"Var"}, {name: "r.Filter.NewMethod", help:"Affects bloom and Gaussian depth of field.\n 0: old method (doesn\'t scale linearly with size)\n 1: new method, might need asset tweak (default)", type:"Var"}, {name: "r.FogDensity", help:"Allows to override the FogDensity setting (needs ExponentialFog in the level).\nUsing a strong value allows to quickly see which pixel are affected by fog.\nUsing a start distance allows to cull pixels are can speed up rendering.\n <0: use default settings (default: -1)\n>=0: override settings by the given value (0:off, 1=very dense fog)", type:"Var"}, {name: "r.FogStartDistance", help:"Allows to override the FogStartDistance setting (needs ExponentialFog in the level).\n <0: use default settings (default: -1)\n>=0: override settings by the given value (in world units)", type:"Var"}, {name: "r.FogUseDepthBounds", help:"Allows enable depth bounds optimization on fog full screen pass.\n false: disabled\n true: enabled (default)", type:"Var"}, {name: "r.ForceAMDToSM4", help:"Forces AMD devices to use SM4.0/D3D10.0 feature level.", type:"Var"}, {name: "r.ForceIntelToSM4", help:"Forces Intel devices to use SM4.0/D3D10.0 feature level.", type:"Var"}, {name: "r.ForceNvidiaToSM4", help:"Forces Nvidia devices to use SM4.0/D3D10.0 feature level.", type:"Var"}, {name: "r.ForceRetileTextures", help:"If Shared Linear Texture Encoding is enabled in project settings, this will force the tiling build step to rebuild,however the linear texture is allowed to fetch from cache.", type:"Var"}, {name: "r.ForceStripAdjacencyDataDuringCooking", help:"If set, adjacency data will be stripped for all static and skeletal meshes during cooking (acting like the target platform did not support tessellation).", type:"Var"}, {name: "r.Forward.LightGridDebug", help:"Whether to display on screen culledlight per tile.\n 0: off (default)\n 1: on - showing light count onto the depth buffer\n 2: on - showing max light count per tile accoung for each slice but the last one (culling there is too conservative)\n 3: on - showing max light count per tile accoung for each slice and the last one \n", type:"Var"}, {name: "r.Forward.LightGridDebug.MaxThreshold", help:"Maximum light threshold for heat map visualization. (default = 8)\n", type:"Var"}, {name: "r.Forward.LightGridDebug.RectLightBounds", help:"Whether to refine rect light bounds (should only be disabled for debugging purposes).", type:"Var"}, {name: "r.Forward.LightGridHZBCull", help:"Whether to use HZB culling to skip occluded grid cells.", type:"Var"}, {name: "r.ForwardShading.ForceSkyLightCubemapBlending", help:"Forces in shader sky box blending for forward shading. More expenssive but higher quality. This is similar to having Blend Sky Light Cubemaps = true on all forward materials.", type:"Var"}, {name: "r.FrustumCullNumWordsPerTask", help:"Performance tweak. Controls the granularity for the ParallelFor for frustum culling.", type:"Var"}, {name: "r.FXAA.Quality", help:"Selects the quality permutation of FXAA.\n 0: Console\n 1: PC medium-dither 3-sample\n 2: PC medium-dither 5-sample\n 3: PC medium-dither 8-sample\n 4: PC low-dither 12-sample (Default)\n 5: PC extrem quality 12-samples", type:"Var"}, {name: "r.GaussianBloom.Cross", help:"Experimental feature to give bloom kernel a more bright center sample (values between 1 and 3 work without causing aliasing)\nExisting bloom get lowered to match the same brightness\n<0 for a anisomorphic lens flare look (X only)\n 0 off (default)\n>0 for a cross look (X and Y)", type:"Var"}, {name: "r.GBufferDiffuseSampleOcclusion", help:"Whether the gbuffer contain occlusion information for individual diffuse samples.", type:"Var"}, {name: "r.GC.ISMPool.ComponentFreeListTargetSize", help:"Target size for number of ISM components in the recycling free list.", type:"Var"}, {name: "r.GC.ISMPool.ComponentKeepAlive", help:"Keep ISM components alive when all their instances are removed.", type:"Var"}, {name: "r.GC.ISMPool.ComponentRecycle", help:"Recycle ISM components to a free list for reuse when all their instances are removed.", type:"Var"}, {name: "r.GC.ISMPool.ShadowCopyCustomData", help:"Keeps a copy of custom instance data so it can be restored if the instance is removed and readded.", type:"Var"}, {name: "r.GenerateLandscapeGIData", help:"Whether to generate a low-resolution base color texture for landscapes for rendering real-time global illumination.\nThis feature requires GenerateMeshDistanceFields is also enabled, and will increase mesh build times and memory usage.\n", type:"Var"}, {name: "r.GenerateMeshDistanceFields", help:"Whether to build distance fields of static meshes, needed for distance field AO, which is used to implement Movable SkyLight shadows.\nEnabling will increase mesh build times and memory usage. Changing this value will cause a rebuild of all static meshes.", type:"Var"}, {name: "r.GeneralPurposeTweak2", help:"Useful for low level shader development to get quick iteration time without having to change any c++ code.\nValue maps to Frame.GeneralPurposeTweak2 inside the shaders.\nExample usage: Multiplier on some value to tweak, toggle to switch between different algorithms (Default: 1.0)\nDON\'T USE THIS FOR ANYTHING THAT IS CHECKED IN. Compiled out in SHIPPING to make cheating a bit harder.", type:"Var"}, {name: "r.GenerateMeshDistanceFields", help:"Whether to build distance fields of static meshes, needed for Lumen Software Ray Tracing and Distance Field AO, which is used to implement Movable SkyLight shadows.\nEnabling will increase mesh build times and memory usage. Changing this value will cause a rebuild of all static meshes.", type:"Var"}, {name: "r.GeometryCacheSceneProxy.ISPC", help:"When enabled GeometryCacheSceneProxy will use ISPC if appropriate.", type:"Var"}, {name: "r.GeometryCollection.CustomRenderer.ForceBreak", help:"Force the specified number of pieces to render individually, replacing their root proxy mesh.", type:"Var"}, {name: "r.GeometryCollection.Nanite", help:"Render geometry collections using Nanite.", type:"Var"}, {name: "r.GeometryCollectionSetDynamicData.ISPC", help:"Whether to use ISPC optimizations to set dynamic data in geometry collections", type:"Var"}, {name: "r.GlobalDistanceField.Debug.DrawModifiedPrimitives", help:"Whether to draw primitive modifications (add, remove, updatetransform) that caused an update of the global distance field.\nThis can be useful for tracking down why updating the global distance field is always costing a lot, since it should be mostly cached.", type:"Var"}, {name: "r.GlobalDistanceField.Debug.ForceMovementUpdate", help:"Whether to force N texel border on X, Y and Z update each frame.", type:"Var"}, {name: "r.GlobalDistanceField.Debug.LogModifiedPrimitives", help:"Whether to log primitive modifications (add, remove, updatetransform) that caused an update of the global distance field.\nThis can be useful for tracking down why updating the global distance field is always costing a lot, since it should be mostly cached.\nPass 2 to log only non movable object updates.", type:"Var"}, {name: "r.GlobalDistanceField.Debug.ShowStats", help:"Debug drawing for the Global Distance Field.", type:"Var"}, {name: "r.GlobalDistanceFieldHeightFieldThicknessScale", help:"Thickness of the height field when it\'s entered into the global distance field, measured in distance field voxels. Defaults to 4 which means 4x the voxel size as thickness.", type:"Var"}, {name: "r.GPUBusyWait", help:"<=0:off, >0: keep the GPU busy with n units of some fixed amount of work, independent on the resolution\nThis can be useful to make GPU timing experiments. The value should roughly represent milliseconds.\nClamped at 500.", type:"Var"}, {name: "r.GPUCrashDebugging.Aftermath", help:"Enables or disables Nvidia Aftermath.", type:"Var"}, {name: "r.GPUCrashDebugging.Aftermath.Callstack", help:"Enable callstack capture in Aftermath dumps", type:"Var"}, {name: "r.GPUCrashDebugging.Aftermath.DumpShaderDebugInfo", help:"Dump shader debug info (.nvdbg) alongside the crash dump.", type:"Var"}, {name: "r.GPUCrashDebugging.Aftermath.DumpWaitTime", help:"Amount of time (in seconds) to wait for Aftermath to finish processing GPU crash dumps.", type:"Var"}, {name: "r.GPUCrashDebugging.Aftermath.Markers", help:"Enable draw event markers in Aftermath dumps", type:"Var"}, {name: "r.GPUCrashDebugging.Aftermath.ResourceTracking", help:"Enable resource tracking for Aftermath dumps", type:"Var"}, {name: "r.GPUCrashDebugging.Aftermath.TrackAll", help:"Enable maximum tracking for Aftermath dumps", type:"Var"}, {name: "r.GPUCrashDebugging.Breadcrumbs", help:"Enable RHI breadcrumbs, a vendor-agnostic method for determining which passes were active when a GPU crash occurs", type:"Var"}, {name: "r.GPUCrashOnOutOfMemory", help:"Enable crash reporting on GPU OOM", type:"Var"}, {name: "r.GPUParticle.AFRReinject", help:"Toggle optimization when running in AFR to re-inject particle injections on the next GPU rather than doing a slow GPU->GPU transfer of the texture data\n 0: Reinjection off\n 1: Reinjection on", type:"Var"}, {name: "r.GPUMessage.LogAllMessages", help:"Log all messages to the console.\n0: Disabled\n1: Enabled\n", type:"Var"}, {name: "r.GPUMessage.MaxBufferSize", help:"Specifies the maximum size of the GPU message buffer, in KiB.\ndefault: 64\n", type:"Var"}, {name: "r.GpuProfilerMaxEventBufferSizeKB", help:"Size of the scratch buffer in kB.", type:"Var"}, {name: "r.GPUScene.DebugDrawRange", help:"Maximum distance the to draw instance bounds, the default is -1.0 <=> infinite range.", type:"Var"}, {name: "r.GPUScene.DebugMode", help:"Debug Rendering Mode:\n0 - (show nothing, decault)\n 1 - Draw All\n 2 - Draw Selected (in the editor)\n 3 - Draw Updated (updated this frame)\nYou can use r.GPUScene.DebugDrawRange to limit the range\n", type:"Var"}, {name: "r.GPUScene.ParallelUpdate", help:"", type:"Var"}, {name: "r.GPUScene.ValidatePrimitiveBuffer", help:"Whether to readback the GPU primitive data and assert if it doesn\'t match the RT primitive data. Useful for debugging.", type:"Var"}, {name: "r.GPUSkin.Limit2BoneInfluences", help:"Whether to use 2 bones influence instead of default 4 for GPU skinning. Cannot be changed at runtime.", type:"Var"}, {name: "r.GPUScene.UseGrowOnlyAllocationPolicy", help:"Deprecated 5.3. If set to 1 the allocators used for GPU-scene instances and similar will use a grow-only allocation policy to mimic the behavior in 5.2 and earlier.\n Disabled by default, which means that the buffers can shrink as well as grow.", type:"Var"}, {name: "r.GPUSkin.AlwaysUseDeformerForUnlimitedBoneInfluences", help:"Any meshes using Unlimited Bone Influences will always be rendered with a Mesh Deformer. This reduces the number of shader permutations needed for skeletal mesh materials, saving memory at the cost of performance. Has no effect if either Unlimited Bone Influences or Deformer Graph is disabled. Cannot be changed at runtime.", type:"Var"}, {name: "r.GPUSkin.CopyBones.ISPC", help:"Whether to use ISPC optimizations when copying bones for GPU skinning", type:"Var"}, {name: "r.GPUSkin.Limit2BoneInfluences", help:"Whether to use 2 bones influence instead of default 4/8 for GPU skinning. Cannot be changed at runtime.", type:"Var"}, {name: "r.GPUSkin.Support16BitBoneIndex", help:"If enabled, a new mesh imported will use 8 bit (if <=256 bones) or 16 bit (if > 256 bones) bone indices for rendering.", type:"Var"}, {name: "r.GPUSkin.UnlimitedBoneInfluences", help:"Whether to use unlimited bone influences instead of default 4/8 for GPU skinning. Cannot be changed at runtime.", type:"Var"}, {name: "r.GPUSkin.UnlimitedBoneInfluencesThreshold", help:"Unlimited Bone Influences Threshold to use unlimited bone influences buffer if r.GPUSkin.UnlimitedBoneInfluences is enabled. Should be unsigned int. Cannot be changed at runtime.", type:"Var"}, {name: "r.GPUStatsMaxQueriesPerFrame", help:"Limits the number of timestamps allocated per frame. -1 = no limit", type:"Var"}, {name: "r.GTSyncType", help:"Determines how the game thread syncs with the render thread, RHI thread and GPU.\nSyncing to the GPU swap chain flip allows for lower frame latency.\n 0 - Sync the game thread with the render thread (default).\n 1 - Sync the game thread with the RHI thread.\n 2 - Sync the game thread with the GPU swap chain flip (only on supported platforms).\n", type:"Var"}, {name: "r.grass.DensityQualityLevel", help:"The quality level for grass (low, medium, high, epic). \n", type:"Var"}, {name: "r.grass.ShowBothPerQualityAndPerPlaformProperties", help:"Show both per platform and per quality properties in the editor.", type:"Var"}, {name: "r.GTAO.Combined", help:"Enable Spatial Filter for GTAO \n 0: Off \n 1: On (default)\n ", type:"Var"}, {name: "r.GTAO.Downsample", help:"Perform GTAO at Halfres \n 0: Off \n 1: On (default)\n ", type:"Var"}, {name: "r.GTAO.FalloffEnd", help:"Distance at when the occlusion completes the fall off. \n ", type:"Var"}, {name: "r.GTAO.FalloffStartRatio", help:"Ratio of the r.GTAO.FalloffEnd value at which it starts to fall off. \n Must be Between 0 and 1. \n ", type:"Var"}, {name: "r.GTAO.FilterWidth", help:"Size of the noise pattern and filter width\n 5: 5x5 Pattern (default) \n 4: 4x4 Pattern \n ", type:"Var"}, {name: "r.GTAO.NumAngles", help:"How Many Angles we choose per pixel \n Must be Between 1 and 16. \n ", type:"Var"}, {name: "r.GTAO.PauseJitter", help:"Whether to pause Jitter when Temporal filter is off \n ", type:"Var"}, {name: "r.GTAO.SpatialFilter", help:"Enable Spatial Filter for GTAO \n 0: Off \n 1: On (default)\n ", type:"Var"}, {name: "r.GTAO.TemporalFilter", help:"Enable Temporal Filter for GTAO \n 0: Off \n 1: On (default)\n ", type:"Var"}, {name: "r.GTAO.ThicknessBlend", help:"A heuristic to bias occlusion for thin or thick objects. \n 0 : Off \n >0 : On - Bigger values lead to reduced occlusion \n 0.5: On (default)\n ", type:"Var"}, {name: "r.GTAO.Upsample", help:"Enable Simple or Depth aware upsample filter for GTAO \n 0: Simple \n 1: DepthAware (default)\n ", type:"Var"}, {name: "r.GTAO.UseNormals", help:"Whether to use GBuffer Normals or Depth Derived normals \n 0: Off \n 1: On (default)\n ", type:"Var"}, {name: "r.GTSyncType", help:"Determines how the game thread syncs with the render thread, RHI thread and GPU.\nSyncing to the GPU swap chain flip allows for lower frame latency.\n <= 0 - Sync the game thread with the N-1 render thread frame. Then sync with the N-m RHI thread frame where m is (2 + (-r.GTSyncType)) (i.e. negative values increase the amount of RHI thread overlap) (default = 0).\n 1 - Sync the game thread with the N-1 RHI thread frame.\n 2 - Sync the game thread with the GPU swap chain flip (only on supported platforms).\n", type:"Var"}, {name: "r.HairStrands.AsyncLoad", help:"Allow groom asset to be loaded asynchronously in the editor", type:"Var"}, {name: "r.HairStrands.AutoLOD.Bias", help:"Global bias for Auto LOD on all grooms. Used for debugging purpose.", type:"Var"}, {name: "r.HairStrands.AutoLOD.Force", help:"Force Auto LOD on all grooms. Used for debugging purpose.", type:"Var"}, {name: "r.HairStrands.Binding", help:"Enable/Disable hair binding, i.e., hair attached to skeletal meshes.", type:"Var"}, {name: "r.HairStrands.BindingValidation", help:"Enable groom binding validation, which report error/warnings with details about the cause.", type:"Var"}, {name: "r.HairStrands.BoundMode", help:"Define how hair bound are computed at runtime when attached to a skel. mesh.\n 0: Use skel.mesh extented with grooms bounds.\n 1: Use skel.mesh bounds.\n 2: Use skel.mesh extented with grooms bounds (conservative)", type:"Var"}, {name: "r.HairStrands.Cards", help:"Enable/Disable hair cards rendering. This variable needs to be turned on when the engine starts.", type:"Var"}, {name: "r.HairStrands.Cards.BulkData.AsyncLoading", help:"Load hair cards/meshes data with async loading so that it is not blocking the rendering thread. This value define the MinLOD at which this happen. Default disabled (-1)", type:"Var"}, {name: "r.HairStrands.Cards.CoverageBias", help:"Apply a texture LOD bias to coverage texture", type:"Var"}, {name: "r.HairStrands.Cards.DebugAtlas", help:"Draw debug hair cards atlas.", type:"Var"}, {name: "r.HairStrands.Cards.InterpolationType", help:"Hair cards interpolation type: 0: None, 1:physics simulation, 2: RBF deformation", type:"Var"}, {name: "r.HairStrands.ClusterBuilder.MaxVoxelResolution", help:"Max voxel resolution used when building hair strands cluster data to avoid too long building time (default:128). ", type:"Var"}, {name: "r.HairStrands.Components.GlobalScattering", help:"Enable/disable hair BSDF component global scattering", type:"Var"}, {name: "r.HairStrands.Components.LocalScattering", help:"Enable/disable hair BSDF component local scattering", type:"Var"}, {name: "r.HairStrands.Components.R", help:"Enable/disable hair BSDF component R", type:"Var"}, {name: "r.HairStrands.Components.TRT", help:"Enable/disable hair BSDF component TRT", type:"Var"}, {name: "r.HairStrands.Components.TT", help:"Enable/disable hair BSDF component TT", type:"Var"}, {name: "r.HairStrands.Components.TTModel", help:"Select hair TT model", type:"Var"}, {name: "r.HairStrands.ComposeAfterTranslucency", help:"0: Compose hair before translucent objects. 1: Compose hair after translucent objects, but before separate translucent objects. 2: Compose hair after all/seperate translucent objects, 3: Compose hair after translucent objects but before translucent render after DOF (which allows depth testing against hair depth)", type:"Var"}, {name: "r.HairStrands.CompressedPosition", help:"Optional compessed position", type:"Var"}, {name: "r.HairStrands.ContinuousDecimationReordering", help:"Enable strand reordering to allow Continuous LOD. Experimental", type:"Var"}, {name: "r.HairStrands.DDCLog", help:"Enable DDC logging for groom assets and groom binding assets", type:"Var"}, {name: "r.HairStrands.DebugData.MaxSegmentPerVoxel", help:"Max number of segments per Voxel size when creating debug data.", type:"Var"}, {name: "r.HairStrands.DebugData.VoxelSize", help:"Voxel size use for creating debug data.", type:"Var"}, {name: "r.HairStrands.DeepShadow.AABBScale", help:"Scaling value for loosing/tighting deep shadow bounding volume", type:"Var"}, {name: "r.HairStrands.DeepShadow.DebugDOMIndex", help:"Index of the DOM texture to draw", type:"Var"}, {name: "r.HairStrands.DeepShadow.DebugDOMScale", help:"Scaling value for the DeepOpacityMap when drawing the deep shadow stats", type:"Var"}, {name: "r.HairStrands.DeepShadow.DebugMode", help:"Color debug mode for deep shadow", type:"Var"}, {name: "r.HairStrands.DeepShadow.DensityScale", help:"Set density scale for compensating the lack of hair fiber in an asset", type:"Var"}, {name: "r.HairStrands.DeepShadow.DepthBiasScale", help:"Set depth bias scale for transmittance computation", type:"Var"}, {name: "r.HairStrands.DeepShadow.InjectVoxelDepth", help:"Inject voxel content to generate the deep shadow map instead of rasterizing groom. This is an experimental path", type:"Var"}, {name: "r.HairStrands.DeepShadow.KernelAperture", help:"Set the aperture angle, in degree, used by the kernel for evaluating the hair transmittance when using PCSS kernel", type:"Var"}, {name: "r.HairStrands.DeepShadow.KernelType", help:"Set the type of kernel used for evaluating hair transmittance, 0:linear, 1:PCF_2x2, 2: PCF_6x4, 3:PCSS, 4:PCF_6x6_Accurate", type:"Var"}, {name: "r.HairStrands.DeepShadow.MaxFrustumAngle", help:"Max deep shadow frustum angle to avoid strong deformation. Default:90", type:"Var"}, {name: "r.HairStrands.DeepShadow.MinResolution", help:"Minimum shadow resolution for shadow atlas tiles for Deep Opacity Map rendering. (default = 64)", type:"Var"}, {name: "r.HairStrands.DeepShadow.MipTraversal", help:"Evaluate transmittance using mip-map traversal (faster).", type:"Var"}, {name: "r.HairStrands.DeepShadow.RandomType", help:"Change how traversal jittering is initialized. Valid value are 0, 1, and 2. Each type makes different type of tradeoff.", type:"Var"}, {name: "r.HairStrands.DeepShadow.Resolution", help:"Shadow resolution for Deep Opacity Map rendering. (default = 2048)", type:"Var"}, {name: "r.HairStrands.DeepShadow.ShadowMaskKernelType", help:"Set the kernel type for filtering shadow cast by hair on opaque geometry (0:2x2, 1:4x4, 2:Gaussian8, 3:Gaussian16, 4:Gaussian8 with transmittance. Default is 4", type:"Var"}, {name: "r.HairStrands.DeepShadow.ShadowMaskPassType", help:"Change how shadow mask from hair onto opaque geometry is generated. 0: one pass per hair group, 1: one pass for all groups.", type:"Var"}, {name: "r.HairStrands.DeepShadow.SuperSampling", help:"Evaluate transmittance with supersampling. This is expensive and intended to be used only in cine mode.", type:"Var"}, {name: "r.HairStrands.DOFDepth", help:"Compose hair with DOF by lerping hair depth based on its opacity.", type:"Var"}, {name: "r.HairStrands.DualScatteringRoughness", help:"Override all roughness for the dual scattering evaluation. 0 means no override. Default:0", type:"Var"}, {name: "r.HairStrands.Dump", help:"Dump all the loaded groom assets, groom binding assets, and instanciated groom components.", type:"Var"}, {name: "r.HairStrands.Dump.GroomAsset", help:"Dump information of all the loaded groom assets.", type:"Var"}, {name: "r.HairStrands.Dump.GroomBindingAsset", help:"Dump information of all the loaded groom binding assets.", type:"Var"}, {name: "r.HairStrands.Dump.GroomComponent", help:"Dump information of all active groom components.", type:"Var"}, {name: "r.HairStrands.Edit.TestCase", help:"Test case for testing the groom edit API", type:"Var"}, {name: "r.HairStrands.Enable", help:"Enable/Disable the entire hair strands system. This affects all geometric representations (i.e., strands, cards, and meshes).", type:"Var"}, {name: "r.HairStrands.EnableAdaptiveSubsteps", help:"Enable adaptive solver substeps", type:"Var"}, {name: "r.HairStrands.ForceVelocityOutput", help:"When enabled, force the cards/meshes to write velocity vectors.", type:"Var"}, {name: "r.HairStrands.HairGroupBuilder.MaxVoxelResolution", help:"Max voxel resolution used when voxelizing hair strands to transfer group index grom strands to cards. This avoids too long building time (default:64). ", type:"Var"}, {name: "r.HairStrands.HairLUT.AbsorptionCount", help:"Change the number of slices of the hair LUT for the absorption axis", type:"Var"}, {name: "r.HairStrands.HairLUT.IncidentAngleCount", help:"Change the number of slices of the hair LUT for the incident angle axis", type:"Var"}, {name: "r.HairStrands.HairLUT.RoughnessCount", help:"Change the number of slices of the hair LUT for the roughness axis", type:"Var"}, {name: "r.HairStrands.HairLUT.SampleCountScale", help:"Change the number of sample used for computing the hair LUT. This is a multiplier, default is 1.", type:"Var"}, {name: "r.HairStrands.HoldoutMode", help:"Change how sample are merged when rendering with holdout.", type:"Var"}, {name: "r.HairStrands.Interoplation.FrustumCulling", help:"Swap rendering buffer at the end of frame. This is an experimental toggle. Default:1", type:"Var"}, {name: "r.HairStrands.Interpolation.Debug", help:"Enable debug rendering for hair interpolation", type:"Var"}, {name: "r.HairStrands.InterpolationMetric.Angle", help:"Hair strands interpolation metric weights for angle", type:"Var"}, {name: "r.HairStrands.InterpolationMetric.AngleAttenuation", help:"Hair strands interpolation angle attenuation", type:"Var"}, {name: "r.HairStrands.InterpolationMetric.Distance", help:"Hair strands interpolation metric weights for distance", type:"Var"}, {name: "r.HairStrands.InterpolationMetric.Length", help:"Hair strands interpolation metric weights for length", type:"Var"}, {name: "r.HairStrands.LightFunction", help:"Enables Light function on hair", type:"Var"}, {name: "r.HairStrands.Lighting.AllowOneTransmittancePass", help:"Allows one transmittance pass for hair strands lighting to have better performance (experimental).\n", type:"Var"}, {name: "r.HairStrands.LightSampleFormat", help:"Define the format used for storing the lighting of hair samples (0: RGBA-16bits, 1: RGB-11.11.10bits)", type:"Var"}, {name: "r.HairStrands.LoadAsset", help:"Allow groom asset to be loaded", type:"Var"}, {name: "r.HairStrands.LODMode", help:"Enable hair strands Auto LOD mode by default. Otherwise use Manual LOD mode. Auto LOD mode adapts hair curves based on screen coverage. Manual LOD mode relies on LODs manually setup per groom asset. This global behavior can be overridden per groom asset.", type:"Var"}, {name: "r.HairStrands.Log", help:"Enable warning log report for groom related asset (0: no logging, 1: error only, 2: error & warning only, other: all logs). By default all logging are enabled (-1). Value needs to be set at startup time.", type:"Var"}, {name: "r.HairStrands.Log.BindingBuilderWarning", help:"Enable/disable warning during groom binding builder", type:"Var"}, {name: "r.HairStrands.ManualSkinCache", help:"If skin cache is not enabled, and grooms use skinning method, this enable a simple skin cache mechanisme for groom. Default:disable", type:"Var"}, {name: "r.HairStrands.MaterialCompaction.DepthThreshold", help:"Compaction threshold for depth value for material compaction (in centimeters). Default 1 cm.", type:"Var"}, {name: "r.HairStrands.MaterialCompaction.TangentThreshold", help:"Compaciton threshold for tangent value for material compaction (in degrees). Default 10 deg.", type:"Var"}, {name: "r.HairStrands.MaxSimulatedLOD", help:"Maximum hair LOD to be simulated", type:"Var"}, {name: "r.HairStrands.Meshes", help:"Enable/Disable hair meshes rendering. This variable needs to be turned on when the engine starts.", type:"Var"}, {name: "r.HairStrands.MeshProjection", help:"Override in shader settings for displaying root debug data", type:"Var"}, {name: "r.HairStrands.MeshProjection.DebugInUVsSpace", help:"Render debug mes projection in UVs space", type:"Var"}, {name: "r.HairStrands.MeshProjection.Render.Deformed.Frames", help:"Render strands deformed frames", type:"Var"}, {name: "r.HairStrands.MeshProjection.Render.Deformed.Triangles", help:"Render strands deformed triangles", type:"Var"}, {name: "r.HairStrands.MeshProjection.Render.Rest.Frames", help:"Render strands rest frames", type:"Var"}, {name: "r.HairStrands.MeshProjection.Render.Rest.Triangles", help:"Render strands rest triangles", type:"Var"}, {name: "r.HairStrands.MeshProjection.Sim.Deformed.Frames", help:"Render guides deformed frames", type:"Var"}, {name: "r.HairStrands.MeshProjection.Sim.Deformed.Samples", help:"Render guides deformed samples", type:"Var"}, {name: "r.HairStrands.MeshProjection.Sim.Deformed.Triangles", help:"Render guides deformed triangles", type:"Var"}, {name: "r.HairStrands.MeshProjection.Sim.Rest.Frames", help:"Render guides rest frames", type:"Var"}, {name: "r.HairStrands.MeshProjection.Sim.Rest.Samples", help:"Render guides rest samples", type:"Var"}, {name: "r.HairStrands.MeshProjection.Sim.Rest.Triangles", help:"Render guides rest triangles", type:"Var"}, {name: "r.HairStrands.MinLOD", help:"Clamp the min hair LOD to this value, preventing to reach lower/high-quality LOD.", type:"Var"}, {name: "r.HairStrands.PathTracing.InvalidationDebug", help:"Enable bounding box drawing for groom element causing path tracer invalidation", type:"Var"}, {name: "r.HairStrands.PathTracing.InvalidationThreshold", help:"Define the minimal distance to invalidate path tracer output when groom changes (in cm, default: 0.5mm)\nSet to a negative value to disable this feature", type:"Var"}, {name: "r.HairStrands.PlotBsdf", help:"Debug view for visualizing hair BSDF.", type:"Var"}, {name: "r.HairStrands.PlotBsdf.BaseColor", help:"Change the base color / absorption of the debug BSDF plot.", type:"Var"}, {name: "r.HairStrands.PlotBsdf.Exposure", help:"Change the exposure of the plot.", type:"Var"}, {name: "r.HairStrands.PlotBsdf.Roughness", help:"Change the roughness of the debug BSDF plot.", type:"Var"}, {name: "r.HairStrands.Projection.MaxTrianglePerIteration", help:"Change the number of triangles which are iterated over during one projection iteration step. In kilo triangle (e.g., 8 == 8000 triangles). Default is 8.", type:"Var"}, {name: "r.HairStrands.RasterizationScale", help:"Rasterization scale to snap strand to pixel", type:"Var"}, {name: "r.HairStrands.Raytracing", help:"Enable/Disable hair strands raytracing geometry. This is anopt-in option per groom asset/groom instance.", type:"Var"}, {name: "r.HairStrands.RaytracingProceduralSplits", help:"Change how many AABBs are used per hair segment to balance between BVH build cost and ray tracing performance. (default: 4)", type:"Var"}, {name: "r.HairStrands.RaytracingRadiusScale", help:"Override the per instance scale factor for raytracing hair strands geometry (0: disabled, >0:enabled)", type:"Var"}, {name: "r.HairStrands.RectLightingOptim", help:"Hair Visibility use projected view rect to light only relevant pixels", type:"Var"}, {name: "r.HairStrands.ScatterSceneLighting", help:"Enable scene color lighting scattering into hair (valid for short hair only).", type:"Var"}, {name: "r.HairStrands.Selection.CoverageThreshold", help:"Coverage threshold for making hair strands outline selection finer", type:"Var"}, {name: "r.HairStrands.Shadow.CastShadowWhenNonVisible", help:"Enable shadow casting for hair strands even when culled out from the primary view", type:"Var"}, {name: "r.HairStrands.Shadow.CullPerObjectShadowCaster", help:"Enable CPU culling of object casting per-object shadow (stationnary object)", type:"Var"}, {name: "r.HairStrands.ShadowRasterizationScale", help:"Rasterization scale to snap strand to pixel in shadow view", type:"Var"}, {name: "r.HairStrands.Simulation", help:"Enable/disable hair simulation", type:"Var"}, {name: "r.HairStrands.Simulation.ResetAll", help:"Reset hair strands simulation on all groom components.", type:"Var"}, {name: "r.HairStrands.SimulationMaxDelay", help:"Maximum tick Delay before starting the simulation", type:"Var"}, {name: "r.HairStrands.SimulationRestUpdate", help:"Update the simulation rest pose", type:"Var"}, {name: "r.HairStrands.SkyAO", help:"Enable (sky) AO on hair.", type:"Var"}, {name: "r.HairStrands.SkyAO.DistanceThreshold", help:"Max distance for occlusion search.", type:"Var"}, {name: "r.HairStrands.SkyAO.SampleCount", help:"Number of samples used for evaluating hair AO (default is set to 16).", type:"Var"}, {name: "r.HairStrands.SkyLighting", help:"Enable sky lighting on hair.", type:"Var"}, {name: "r.HairStrands.SkyLighting.ConeAngle", help:"Cone angle for tracing sky lighting on hair.", type:"Var"}, {name: "r.HairStrands.SkyLighting.DebugSample", help:"Enable debug view for visualizing sample used for the sky integration", type:"Var"}, {name: "r.HairStrands.SkyLighting.DistanceThreshold", help:"Max distance for occlusion search.", type:"Var"}, {name: "r.HairStrands.SkyLighting.IntegrationType", help:"Hair env. lighting integration type (0:Adhoc, 1:Uniform.", type:"Var"}, {name: "r.HairStrands.SkyLighting.SampleCount", help:"Number of samples used for evaluating multiple scattering and visible area (default is set to 16).", type:"Var"}, {name: "r.HairStrands.SkyLighting.ScreenTraceOcclusion", help:"Enable screen trace occlusion for during hair env. lighting integration", type:"Var"}, {name: "r.HairStrands.SkyLighting.TransmissionDensityScale", help:"Density scale for controlling how much sky lighting is transmitted.", type:"Var"}, {name: "r.HairStrands.SkyLighting.UseViewHairCount", help:"Use the view hair count texture for estimating background transmitted light (enabled by default).", type:"Var"}, {name: "r.HairStrands.StableRasterizationScale", help:"Rasterization scale to snap strand to pixel for \'stable\' hair option. This value can\'t go below 1.", type:"Var"}, {name: "r.HairStrands.Strands", help:"Enable/Disable hair strands rendering", type:"Var"}, {name: "r.HairStrands.Strands.BulkData.AsyncLoading", help:"Load hair strands data with async loading so that it is not blocking the rendering thread. This value define the MinLOD at which this happen. Default disabled (-1)", type:"Var"}, {name: "r.HairStrands.Strands.BulkData.ReleaseAfterUse", help:"Release CPU bulk data once hair groom/groom binding asset GPU resources are created. This saves memory", type:"Var"}, {name: "r.HairStrands.Strands.BulkData.Validation", help:"Validate some hair strands data at serialization/loading time.", type:"Var"}, {name: "r.HairStrands.Strands.Interpolation.ForceSingleGuide", help:"Force to use a single guide during the interpolation. This allows to reduce the cost of interpolation, but can create clumpy looks.", type:"Var"}, {name: "r.HairStrands.Strands.MotionVectorCheckViewID", help:"Issue motion vector on hair strands only if updates happens on the same view", type:"Var"}, {name: "r.HairStrands.Strands.Raytracing.ForceRebuildBVH", help:"Force BVH rebuild instead of doing a BVH refit when hair positions changed", type:"Var"}, {name: "r.HairStrands.Strands.TransferPrevPos", help:"Transfer strands prev. position to current position on LOD switching to avoid large discrepancy causing large motion vector", type:"Var"}, {name: "r.HairStrands.Strands.UseTriangleStrips", help:"Enable triangle strip geometry for hair strands rendering. This improves performances, but removes the last segments of each curve.", type:"Var"}, {name: "r.HairStrands.StrandWidth", help:"Width of hair strand", type:"Var"}, {name: "r.HairStrands.Streaming", help:"Hair strands streaming toggle.", type:"Var"}, {name: "r.HairStrands.Streaming.CurvePage", help:"Number of strands curve per streaming page", type:"Var"}, {name: "r.HairStrands.Streaming.Prediction", help:"Enable LOD streaming prediction.", type:"Var"}, {name: "r.HairStrands.Streaming.StreamOutThreshold", help:"Threshold used for streaming out data. In curve page. Default:2.", type:"Var"}, {name: "r.HairStrands.SwapType", help:"Swap rendering buffer at the end of frame. This is an experimental toggle. Default:1", type:"Var"}, {name: "r.HairStrands.UpdateGroupNames", help:"Update groom asset groups\' names if not already serialized", type:"Var"}, {name: "r.HairStrands.UseAttachedSimulationComponents", help:"Boolean to check if we are using already attached niagara components for simulation (WIP)", type:"Var"}, {name: "r.HairStrands.UseCardsInsteadOfStrands", help:"Force cards geometry on all groom elements. If no cards data is available, nothing will be displayed", type:"Var"}, {name: "r.HairStrands.UseGPUPositionOffset", help:"Use GPU position offset to improve hair strands position precision.", type:"Var"}, {name: "r.HairStrands.UseProxyLocalToWorld", help:"Enable the use of the groom proxy local to world instead of extracting it from the game thread.", type:"Var"}, {name: "r.HairStrands.VelocityMagnitudeScale", help:"Velocity magnitude (in pixel) at which a hair will reach its pic velocity-rasterization-scale under motion to reduce aliasing. Default is 100.", type:"Var"}, {name: "r.HairStrands.VelocityRasterizationScale", help:"Rasterization scale to snap strand to pixel under high velocity", type:"Var"}, {name: "r.HairStrands.VelocityThreshold", help:"Threshold value (in pixel) above which a pixel is forced to be resolve with responsive AA (in order to avoid smearing). Default is 3.", type:"Var"}, {name: "r.HairStrands.VelocityType", help:"Type of velocity filtering (0:avg, 1:closest, 2:max). Default is 1.", type:"Var"}, {name: "r.HairStrands.ViewMode", help:"When the viewport view-mode is set to \'Groom Visualization\', this command specifies which of the various channels to display. Values entered other than the allowed values shown below will be ignored.\n NoneDebug\n MacroGroups\n LightBounds\n MacroGroupScreenRect\n DeepOpacityMaps\n SamplePerPixel\n TAAResolveType\n CoverageType\n VoxelsDensity\n MeshProjection\n Coverage\n MaterialDepth\n MaterialBaseColor\n MaterialRoughness\n MaterialSpecular\n MaterialTangent\n Tile\n SimHairStrands\n RenderHairStrands\n CardGuides\n RootUV\n RootUDIM\n UV\n Seed\n Dimension\n RadiusVariation\n Tangent\n ControlPoints\n Color\n Roughness\n Cluster\n ClusterAABB\n Group\n LODColoration\n AO\n ClumpID\n Memory", type:"Var"}, {name: "r.HairStrands.ViewMode.ClumpIndex", help:"Define the ClumpID index (0, 1, or 2) which should be visualized", type:"Var"}, {name: "r.HairStrands.Visibility.Clear", help:"Clear hair strands visibility buffer", type:"Var"}, {name: "r.HairStrands.Visibility.Compute.MeanSamplePerPixel", help:"Scale the numer of sampler per pixel for limiting memory allocation (0..1, default 0.5f)", type:"Var"}, {name: "r.HairStrands.Visibility.Compute.SamplePerPixel", help:"Hair strands visibility sample count (2, 4, or 8)", type:"Var"}, {name: "r.HairStrands.Visibility.ComputeRaster", help:"Hair Visiblity uses raster compute. Experimental", type:"Var"}, {name: "r.HairStrands.Visibility.ComputeRaster.ContinuousLOD", help:"Enable Continuos LOD when using compute rasterization. Experimental", type:"Var"}, {name: "r.HairStrands.Visibility.ComputeRaster.Culling", help:"Use culling buffers with compute rasterization.", type:"Var"}, {name: "r.HairStrands.Visibility.ComputeRaster.Debug", help:"Debug compute raster output", type:"Var"}, {name: "r.HairStrands.Visibility.ComputeRaster.MaxTiles", help:"Maximum number of tiles used for compute rasterization. 8192 is default", type:"Var"}, {name: "r.HairStrands.Visibility.ComputeRaster.NumBinners", help:"Number of Binners used in Binning compute rasterization pass. 32 is default", type:"Var"}, {name: "r.HairStrands.Visibility.ComputeRaster.NumRasterizers", help:"Number of Rasterizers used compute rasterization. 256 is default", type:"Var"}, {name: "r.HairStrands.Visibility.ComputeRaster.NumRasterizersNaive", help:"Number of Rasterizers used in naive compute rasterization. 256 is default", type:"Var"}, {name: "r.HairStrands.Visibility.ComputeRaster.TileSize", help:"Tile size used for compute rasterization. Experimental - only size of 32 currently supported", type:"Var"}, {name: "r.HairStrands.Visibility.FullCoverageThreshold", help:"Define the coverage threshold at which a pixel is considered fully covered.", type:"Var"}, {name: "r.HairStrands.Visibility.HairCount.DistanceThreshold", help:"Distance threshold defining if opaque depth get injected into the \'view-hair-count\' buffer.", type:"Var"}, {name: "r.HairStrands.Visibility.HWSWClassifaction", help:"Enables classifying hair segments to be rasterized with a hardware rasterizer or a software rasterizer.", type:"Var"}, {name: "r.HairStrands.Visibility.MSAA.MeanSamplePerPixel", help:"Scale the numer of sampler per pixel for limiting memory allocation (0..1, default 0.5f)", type:"Var"}, {name: "r.HairStrands.Visibility.MSAA.SamplePerPixel", help:"Hair strands visibility sample count (2, 4, or 8)", type:"Var"}, {name: "r.HairStrands.Visibility.NonVisibleShadowCasting.CullDistance", help:"Cull distance at which shadow casting starts to be disabled for non-visible hair strands instances.", type:"Var"}, {name: "r.HairStrands.Visibility.NonVisibleShadowCasting.Debug", help:"Enable debug rendering for non-visible hair strands instance, casting shadow.", type:"Var"}, {name: "r.HairStrands.Visibility.NumClassifiers", help:"Number of workgroups used in hair segment classification pass. 32 is default", type:"Var"}, {name: "r.HairStrands.Visibility.PPLL", help:"Hair Visibility uses per pixel linked list", type:"Var"}, {name: "r.HairStrands.Visibility.PPLL.Debug", help:"Draw debug per pixel light list rendering.", type:"Var"}, {name: "r.HairStrands.Visibility.PPLL.MeanSamplePerPixel", help:"Scale the maximum number of node allowed for all linked list element (0..1, default 1). It will be width*height*SamplerPerPixel*Scale.", type:"Var"}, {name: "r.HairStrands.Visibility.PPLL.SamplePerPixel", help:"The maximum number of node allowed to be independently shaded and composited per pixel. Total amount of node will be width*height*VisibilityPPLLMaxRenderNodePerPixel. The last node is used to aggregate all furthest strands to shade into a single one.", type:"Var"}, {name: "r.HairStrands.Visibility.SortByDepth", help:"Sort hair fragment by depth and update their coverage based on ordered transmittance.", type:"Var"}, {name: "r.HairStrands.Visibility.TileCompaction", help:"Enables a compaction pass to run on the output of the binning pass of the hair software rasterizer.", type:"Var"}, {name: "r.HairStrands.Visibility.UseCoverageMappping", help:"Use hair count to coverage transfer function.", type:"Var"}, {name: "r.HairStrands.Visibility.UseHWRaster", help:"Toggles the hardware rasterizer for hair strands visibility rendering.", type:"Var"}, {name: "r.HairStrands.Visibility.UseNaiveSWRaster", help:"Toggles a naive version of the software rasterizer for hair strands visibility rendering.", type:"Var"}, {name: "r.HairStrands.Visibility.WriteVelocityCoverageThreshold", help:"Define the coverage threshold at which a pixel write its hair velocity (default: 0, i.e., write for all pixel)", type:"Var"}, {name: "r.HairStrands.Voxelization", help:"Enable hair voxelization for transmittance evaluation", type:"Var"}, {name: "r.HairStrands.Voxelization.AABBScale", help:"Scale the hair macro group bounding box", type:"Var"}, {name: "r.HairStrands.Voxelization.DensityScale", help:"Scale the hair density when computing voxel transmittance. Default value is 2 (arbitraty)", type:"Var"}, {name: "r.HairStrands.Voxelization.DensityScale.AO", help:"Scale the hair density when computing voxel AO. (Default:-1, it will use the global density scale", type:"Var"}, {name: "r.HairStrands.Voxelization.DensityScale.Environment", help:"Scale the hair density when computing voxel environment. (Default:-1, it will use the global density scale", type:"Var"}, {name: "r.HairStrands.Voxelization.DensityScale.Raytracing", help:"Scale the hair density when computing voxel raytracing. (Default:-1, it will use the global density scale", type:"Var"}, {name: "r.HairStrands.Voxelization.DensityScale.Shadow", help:"Scale the hair density when computing voxel shadow. (Default:-1, it will use the global density scale", type:"Var"}, {name: "r.HairStrands.Voxelization.DensityScale.Transmittance", help:"Scale the hair density when computing voxel transmittance. (Default:-1, it will use the global density scale", type:"Var"}, {name: "r.HairStrands.Voxelization.DepthBiasScale.Environment", help:"Set depth bias for voxel ray marching for environement lights. Offset the origin position towards the light", type:"Var"}, {name: "r.HairStrands.Voxelization.DepthBiasScale.Light", help:"Set depth bias for voxel ray marching for analyticaly light. Offset the origin position towards the light for transmittance computation", type:"Var"}, {name: "r.HairStrands.Voxelization.DepthBiasScale.Shadow", help:"Set depth bias for voxel ray marching for analyticaly light. Offset the origin position towards the light for shadow computation", type:"Var"}, {name: "r.HairStrands.Voxelization.DepthBiasScale.Transmittance", help:"Set depth bias for voxel ray marching for analyticaly light. Offset the origin position towards the light for transmittance computation", type:"Var"}, {name: "r.HairStrands.Voxelization.ForceTransmittanceAndShadow", help:"For transmittance and shadow to be computed with density volume. This requires voxelization is enabled.", type:"Var"}, {name: "r.HairStrands.Voxelization.GPUDriven", help:"Enable GPU driven voxelization.", type:"Var"}, {name: "r.HairStrands.Voxelization.GPUDriven.MaxPageIndexResolution", help:"Max resolution of the page index. This is used for allocating a conservative page index buffer when GPU driven allocation is enabled.", type:"Var"}, {name: "r.HairStrands.Voxelization.GPUDriven.MinPageIndexResolution", help:"Min resolution of the page index. This is used for allocating a conservative page index buffer when GPU driven allocation is enabled.", type:"Var"}, {name: "r.HairStrands.Voxelization.InjectOpaque.BiasCount", help:"Bias, in number of voxel, at which opaque depth is injected.", type:"Var"}, {name: "r.HairStrands.Voxelization.InjectOpaque.MarkCount", help:"Number of voxel marked as opaque starting along the view direction beneath the opaque surface.", type:"Var"}, {name: "r.HairStrands.Voxelization.InjectOpaqueDepth", help:"Inject opaque geometry depth into the voxel volume for acting as occluder.", type:"Var"}, {name: "r.HairStrands.Voxelization.Raymarching.SteppingScale", help:"Stepping scale used for raymarching the voxel structure for shadow.", type:"Var"}, {name: "r.HairStrands.Voxelization.Raymarching.SteppingScale.Environment", help:"Stepping scale used for raymarching the voxel structure, override scale for env. lighting (default -1).", type:"Var"}, {name: "r.HairStrands.Voxelization.Raymarching.SteppingScale.Raytracing", help:"Stepping scale used for raymarching the voxel structure, override scale for raytracing (default -1).", type:"Var"}, {name: "r.HairStrands.Voxelization.Raymarching.SteppingScale.Shadow", help:"Stepping scale used for raymarching the voxel structure, override scale for shadow (default -1).", type:"Var"}, {name: "r.HairStrands.Voxelization.Raymarching.SteppingScale.Transmission", help:"Stepping scale used for raymarching the voxel structure, override scale for transmittance (default -1).", type:"Var"}, {name: "r.HairStrands.Voxelization.Virtual", help:"Enable the two voxel hierachy.", type:"Var"}, {name: "r.HairStrands.Voxelization.Virtual.Adaptive", help:"Enable adaptive voxel allocation (default = 1)", type:"Var"}, {name: "r.HairStrands.Voxelization.Virtual.Adaptive.CorrectionSpeed", help:"Define the speed at which allocation adaption runs (value in 0..1, default = 0.25). A higher number means faster adaptation, but with a risk of oscillation i.e. over and under allocation", type:"Var"}, {name: "r.HairStrands.Voxelization.Virtual.Adaptive.CorrectionThreshold", help:"Define the allocation margin to limit over allocation (value in 0..1, default = 0.95)", type:"Var"}, {name: "r.HairStrands.Voxelization.Virtual.ComputeRasterMaxVoxelCount", help:"Max number of voxel which are rasterized for a given hair segment. This is for debug purpose only.", type:"Var"}, {name: "r.HairStrands.Voxelization.Virtual.DebugTraversalType", help:"Traversal mode (0:linear, 1:mip) for debug voxel visualization.", type:"Var"}, {name: "r.HairStrands.Voxelization.Virtual.InvalidateEmptyPageIndex", help:"Invalid voxel page index which does not contain any voxelized data.", type:"Var"}, {name: "r.HairStrands.Voxelization.Virtual.Jitter", help:"Change jittered for voxelization/traversal. 0: No jitter 1: Regular randomized jitter: 2: Constant Jitter (default = 1)", type:"Var"}, {name: "r.HairStrands.Voxelization.Virtual.VoxelPageCountPerDim", help:"Number of voxel pages per texture dimension. The voxel page memory is allocated with a 3D texture. This value provide the resolution of this texture.", type:"Var"}, {name: "r.HairStrands.Voxelization.Virtual.VoxelPageResolution", help:"Resolution of a voxel page.", type:"Var"}, {name: "r.HairStrands.Voxelization.Virtual.VoxelWorldSize", help:"World size of a voxel in cm.", type:"Var"}, {name: "r.HairStrands.Voxelization.VoxelSizeInPixel", help:"Target size of voxel size in pixels", type:"Var"}, {name: "r.HairStrands.WriteGBufferData", help:"Write hair hair material data into GBuffer before post processing run. 0: no write, 1: dummy write into GBuffer A/B (Normal/ShadingModel), 2: write into GBuffer A/B (Normal/ShadingModel). 2: Write entire GBuffer data. (default 1).", type:"Var"}, {name: "r.HalfResDepthNoFastClear", help:"Remove fast clear on half resolution depth buffer (checkerboard and minmax)", type:"Var"}, {name: "r.HDR.Aces.GamutCompression", help:"HDR equivalent of BlueCorrection: Bright blue desaturates instead of going to violet", type:"Var"}, {name: "r.HDR.Aces.SceneColorMultiplier", help:"Multiplier applied to scene color. Helps to", type:"Var"}, {name: "r.HDR.Display.OutputDevice", help:"Device format of the output display:\n0: sRGB (LDR)\n1: Rec709 (LDR)\n2: Explicit gamma mapping (LDR)\n3: ACES 1000 nit ST-2084 (Dolby PQ) (HDR)\n4: ACES 2000 nit ST-2084 (Dolby PQ) (HDR)\n5: ACES 1000 nit ScRGB (HDR)\n6: ACES 2000 nit ScRGB (HDR)\n7: Linear EXR (HDR)\n8: Linear final color, no tone curve (HDR)\n", type:"Var"}, {name: "r.HDR.Display.MaxLuminance", help:"The configured display output nit level, assuming HDR output is enabled.", type:"Var"}, {name: "r.HDR.Display.MidLuminance", help:"The configured display output nit level for 18% gray", type:"Var"}, {name: "r.HDR.Display.MinLuminanceLog10", help:"The configured minimum display output nit level (log10 value)", type:"Var"}, {name: "r.HDR.Display.OutputDevice", help:"Device format of the output display:\n0: sRGB (LDR)\n1: Rec709 (LDR)\n2: Explicit gamma mapping (LDR)\n3: ACES 1000 nit ST-2084 (Dolby PQ) (HDR)\n4: ACES 2000 nit ST-2084 (Dolby PQ) (HDR)\n5: ACES 1000 nit ScRGB (HDR)\n6: ACES 2000 nit ScRGB (HDR)\n7: Linear EXR (HDR)\n8: Linear final color, no tone curve (HDR)\n9: Linear final color with tone curve\n", type:"Var"}, {name: "r.HeightfieldGlobalIllumination", help:"", type:"Var"}, {name: "r.HeightfieldInnerBounceDistance", help:"", type:"Var"}, {name: "r.HeightfieldOuterBounceDistanceScale", help:"", type:"Var"}, {name: "r.HeightfieldTargetUnitsPerTexel", help:"", type:"Var"}, {name: "r.HDR.UI.Luminance", help:"Base Luminance in nits for UI elements when compositing into HDR framebuffer. Gets multiplied by r.HDR.UI.Level", type:"Var"}, {name: "r.HeightFields.AtlasDimInTiles", help:"Number of tiles the atlas has in one dimension", type:"Var"}, {name: "r.HeightFields.AtlasDownSampleLevel", help:"Max number of times a suballocation can be down-sampled", type:"Var"}, {name: "r.HeightFields.AtlasTileSize", help:"Suballocation granularity", type:"Var"}, {name: "r.HeightFields.VisibilityAtlasDimInTiles", help:"Number of tiles the atlas has in one dimension", type:"Var"}, {name: "r.HeightFields.VisibilityAtlasDownSampleLevel", help:"Max number of times a suballocation can be down-sampled", type:"Var"}, {name: "r.HeightFields.VisibilityAtlasTileSize", help:"Suballocation granularity", type:"Var"}, {name: "r.HeightFieldShadowing", help:"Whether the height field shadowing feature is allowed.", type:"Var"}, {name: "r.HeterogeneousVolumes", help:"Enables the Heterogeneous volume integrator (Default = 1)", type:"Var"}, {name: "r.HeterogeneousVolumes.AmbientOcclusion", help:"Enables ambient occlusion computation (Default = 0)", type:"Var"}, {name: "r.HeterogeneousVolumes.AmbientOcclusion.DownsampleFactor", help:"Performs downsampling when determining the ambient occlusion voxel resolution (Default = 4)", type:"Var"}, {name: "r.HeterogeneousVolumes.AmbientOcclusion.MaxStepCount", help:"Determines the maximum steps when ray marching ambient occlusion (Default = 64)", type:"Var"}, {name: "r.HeterogeneousVolumes.AmbientOcclusion.MaxTraceDistance", help:"Determines the number of rays when calculating ambient occlusion (Default = 1000.0)", type:"Var"}, {name: "r.HeterogeneousVolumes.AmbientOcclusion.RayCount.X", help:"With the Y-counterpart, determines the number of AO rays when calculating ambient occlusion (Default = 4)", type:"Var"}, {name: "r.HeterogeneousVolumes.AmbientOcclusion.RayCount.Y", help:" With the X-counterpart, determines the number of AO rays when calculating ambient occlusion (Default = 4)", type:"Var"}, {name: "r.HeterogeneousVolumes.ApplyFogInscattering", help:"Determines the method for applying fog in-scattering (default = 1)\n0: Off\n1: Reference (evaluated per ray-march step)\n2: Stochastic (evaluated once per ray)\n", type:"Var"}, {name: "r.HeterogeneousVolumes.CLOD", help:"Uses Continuous Level-of-Detail to accelerate rendering (Default = 1)", type:"Var"}, {name: "r.HeterogeneousVolumes.CLOD.Bias", help:"Biases evaluation result when computing Continuous Level-of-Detail (Default = 0.0)\n> 0: Coarser\n< 0: Sharper\n", type:"Var"}, {name: "r.HeterogeneousVolumes.CompositeWithTranslucency.Refraction.TransmittanceThreshold", help:"Minimum transmittance threshold to apply distortion (Default = 0.9)\nRequires enabling Heterogeneous Volumes Project Setting: \'Composite with Translucency\'", type:"Var"}, {name: "r.HeterogeneousVolumes.CompositeWithTranslucency.Refraction.UseAVSM", help:"Enables AVSM lookup (Default = 1)\nRequires enabling Heterogeneous Volumes Project Setting: \'Composite with Translucency\'", type:"Var"}, {name: "r.HeterogeneousVolumes.Composition", help:"Change the order of Heterogeneous Volumes composition (Default = 0)\n0: Before Translucency\n1: After Translucency\nRequires enabling Heterogeneous Volumes Project Setting: \'Composite with Translucency\'", type:"Var"}, {name: "r.HeterogeneousVolumes.Debug", help:"Creates auxillary output buffers for debugging (Default = 0)", type:"Var"}, {name: "r.HeterogeneousVolumes.Debug.MarchingMode", help:"The marching mode (Default = 0)\n0: Ray Marching (dt=StepSize)\n1: Naive DDA\n2: Optimized DDA\n3: Optimized DDA w/ bitmask\n", type:"Var"}, {name: "r.HeterogeneousVolumes.DepthSort", help:"Iterates over volumes in depth-sorted order, based on its centroid (Default = 1)", type:"Var"}, {name: "r.HeterogeneousVolumes.DownsampleFactor", help:"Downsamples the rendered viewport (Default = 1.0)", type:"Var"}, {name: "r.HeterogeneousVolumes.FrustumGrid", help:"Enables a frustum voxel grid (Default = 1)", type:"Var"}, {name: "r.HeterogeneousVolumes.FrustumGrid.DepthSliceCount", help:"The number of depth slices (Default = 512)", type:"Var"}, {name: "r.HeterogeneousVolumes.FrustumGrid.FarPlaneDistance", help:"Sets far-plane distance for the frustum grid (Default = -1.0)\n", type:"Var"}, {name: "r.HeterogeneousVolumes.FrustumGrid.MaxBottomLevelMemoryInMegabytes", help:"The minimum voxel size (Default = 128)", type:"Var"}, {name: "r.HeterogeneousVolumes.FrustumGrid.NearPlaneDistance", help:"Sets near-plane distance for the frustum grid (Default = 1.0)\n", type:"Var"}, {name: "r.HeterogeneousVolumes.FrustumGrid.ShadingRate", help:"The voxel tessellation rate, in pixel-space (Default = 4.0)", type:"Var"}, {name: "r.HeterogeneousVolumes.HardwareRayTracing", help:"Enables hardware ray tracing acceleration (Default = 0)", type:"Var"}, {name: "r.HeterogeneousVolumes.HeightFog", help:"Applies height fog to Heterogeneous Volumes (Default = 1)", type:"Var"}, {name: "r.HeterogeneousVolumes.IndirectLighting", help:"Enables indirect lighting (Default = 0)", type:"Var"}, {name: "r.HeterogeneousVolumes.Jitter", help:"Enables jitter when ray marching (Default = 1)", type:"Var"}, {name: "r.HeterogeneousVolumes.LightingCache", help:"Enables an optimized pre-pass, caching certain volumetric rendering lighting quantities (Default = 2)\n0: Disabled\n1: Cache transmittance (deprecated)\n2: Cache in-scattering\n", type:"Var"}, {name: "r.HeterogeneousVolumes.LightingCache.BoundsCulling", help:"Enables bounds culling when populating the lighting cache (Default = 1)", type:"Var"}, {name: "r.HeterogeneousVolumes.LightingCache.DownsampleFactor", help:"Overrides the lighting-cache downsample factor, relative to the preshading volume resolution (Default = 0)\n0: Disabled, uses per-volume attribute\n>0: Overrides the lighting-cache downsample factor", type:"Var"}, {name: "r.HeterogeneousVolumes.LightingCache.UseAVSM", help:"Enables use of AVSMs when evaluating self-shadowing (Default = 1)", type:"Var"}, {name: "r.HeterogeneousVolumes.LiveShading.ScreenTileClassification", help:"Enables screen tile classification for increased occupancy (Default = 0)", type:"Var"}, {name: "r.HeterogeneousVolumes.MaxShadowTraceDistance", help:"The maximum shadow-trace distance (Default = 30000)", type:"Var"}, {name: "r.HeterogeneousVolumes.MaxStepCount", help:"The maximum ray-marching step count (Default = 512)", type:"Var"}, {name: "r.HeterogeneousVolumes.MaxTraceDistance", help:"The maximum trace view-distance for direct volume rendering (Default = 30000)", type:"Var"}, {name: "r.HeterogeneousVolumes.OrthoGrid", help:"Enables an ortho voxel grid (Default = 1)", type:"Var"}, {name: "r.HeterogeneousVolumes.OrthoGrid.MaxBottomLevelMemoryInMegabytes", help:"The minimum voxel size (Default = 128)", type:"Var"}, {name: "r.HeterogeneousVolumes.OrthoGrid.ShadingRate", help:"The voxelization rate (Default = 4.0)", type:"Var"}, {name: "r.HeterogeneousVolumes.OrthoGrid.VoxelizationMode", help:"Voxelization mode (Default = 1)\n0: Screen-space voxel size (legacy behavior)\n1: World-space voxel size\n", type:"Var"}, {name: "r.HeterogeneousVolumes.Preshading", help:"Evaluates the material into a canonical preshaded volume before rendering the result (Default = 0)", type:"Var"}, {name: "r.HeterogeneousVolumes.Preshading.MipLevel", help:"Statically determines the MIP-level when evaluating preshaded volume data (Default = 0)", type:"Var"}, {name: "r.HeterogeneousVolumes.Shadows", help:"Enables heterogeneous volume-casting shadows (default = 0)", type:"Var"}, {name: "r.HeterogeneousVolumes.Shadows.AbsoluteErrorThreshold", help:"Absolute error threshold for volume shadow compression (Default = 0.0)\n", type:"Var"}, {name: "r.HeterogeneousVolumes.Shadows.CameraDownsampleFactor", help:"Controls downsample factor for camera volumetric shadow map (default = 2)", type:"Var"}, {name: "r.HeterogeneousVolumes.Shadows.DebugTweak", help:"Debug tweak value (Default = 0)\n", type:"Var"}, {name: "r.HeterogeneousVolumes.Shadows.Jitter", help:"Enables jittering when constructing shadows (Default = 0)\n", type:"Var"}, {name: "r.HeterogeneousVolumes.Shadows.MaxSampleCount", help:"Maximum sample count when building volumetric shadow map (Default = 8)\n", type:"Var"}, {name: "r.HeterogeneousVolumes.Shadows.Mode", help:"0: Live-Shading (Default)1: Preshaded Voxel Grid", type:"Var"}, {name: "r.HeterogeneousVolumes.Shadows.NearClippingDistance", help:"Near clipping plane distance for shadow projection (Default = 1.0)", type:"Var"}, {name: "r.HeterogeneousVolumes.Shadows.OutOfFrustumShadingRate", help:"Shading rate (out-of-frustum) for computing shadows (Default = 2.0)\n", type:"Var"}, {name: "r.HeterogeneousVolumes.Shadows.RelativeErrorThreshold", help:"Relative error threshold for volume shadow compression (Default = 0.05)\n", type:"Var"}, {name: "r.HeterogeneousVolumes.Shadows.Resolution", help:"Resolution when building volumetric shadow map (Default = 512)\n", type:"Var"}, {name: "r.HeterogeneousVolumes.Shadows.ShadingRate", help:"Shading rate (in-frustum) for computing shadows (Default = 1.0)\n", type:"Var"}, {name: "r.HeterogeneousVolumes.Shadows.StepSize", help:"Ray marching step size when building volumetric shadow map (Default = 2.0)\n", type:"Var"}, {name: "r.HeterogeneousVolumes.Shadows.UseAVSMCompression", help:"Enables AVSM compression (Default = 1)\n", type:"Var"}, {name: "r.HeterogeneousVolumes.Shadows.UseCameraSceneDepth", help:"Culls Camera AVSM by SceneDepth (Default = 0)", type:"Var"}, {name: "r.HeterogeneousVolumes.ShadowStepSize", help:"The ray-marching step-size override for shadow rays (Default = -1.0, disabled)", type:"Var"}, {name: "r.HeterogeneousVolumes.SparseVoxel", help:"Uses sparse-voxel rendering algorithms (Default = 0)", type:"Var"}, {name: "r.HeterogeneousVolumes.SparseVoxel.GenerationMipBias", help:"Determines MIP bias for sparse voxel generation (Default = 0)", type:"Var"}, {name: "r.HeterogeneousVolumes.SparseVoxel.PerTileCulling", help:"Enables sparse-voxel culling when using tiled rendering (Default = 1)", type:"Var"}, {name: "r.HeterogeneousVolumes.SparseVoxel.Refinement", help:"Uses hierarchical refinement to coalesce neighboring sparse-voxels (Default = 0)", type:"Var"}, {name: "r.HeterogeneousVolumes.StepSize", help:"The ray-marching step-size override (Default = -1.0, disabled)", type:"Var"}, {name: "r.HeterogeneousVolumes.StochasticFiltering", help:"Configures the stochastic filtering kernel (Default = 3)\n0: Disabled\n1: Constant\n2: Linear\n3: Cubic", type:"Var"}, {name: "r.HeterogeneousVolumes.SupportOverlappingVolumes", help:"Enables support for overlapping volumes (Default = 0)", type:"Var"}, {name: "r.HeterogeneousVolumes.Tessellation.BottomLevelGrid.HomogeneousAggregation", help:"Enables bottom-level voxel homogeneous aggregation (Default = 1)\n", type:"Var"}, {name: "r.HeterogeneousVolumes.Tessellation.BottomLevelGrid.HomogeneousAggregationThreshold", help:"Threshold for bottom-level voxel homogeneous aggregation (Default = 1.0e-3)\n", type:"Var"}, {name: "r.HeterogeneousVolumes.Tessellation.BottomLevelGrid.Resolution", help:"Determines intra-tile bottom-level grid resolution (Default = 4)", type:"Var"}, {name: "r.HeterogeneousVolumes.Tessellation.BottomLevelGrid.VoxelHashing", help:"Enables bottom-level voxel hashing for deduplication (Default = 0)\n", type:"Var"}, {name: "r.HeterogeneousVolumes.Tessellation.BottomLevelGrid.VoxelHashingMemoryInMegabytes", help:"Enables bottom-level voxel hashing for deduplication (Default = 64)\n", type:"Var"}, {name: "r.HeterogeneousVolumes.Tessellation.FarPlaneAutoTransition", help:"Enables auto transitioning of far-plane distance, based on projected minimum voxel size (Default = 1)\n", type:"Var"}, {name: "r.HeterogeneousVolumes.Tessellation.IndirectionGrid", help:"Enables lazy allocation of bottom-level memory (Default = 1)\n", type:"Var"}, {name: "r.HeterogeneousVolumes.Tessellation.IndirectionGrid.Resolution", help:"Determines intra-tile indirection grid resolution (Default = 4)", type:"Var"}, {name: "r.HeterogeneousVolumes.Tessellation.Jitter", help:"Enables jittering when tessellating the acceleration grids (Default = 1)", type:"Var"}, {name: "r.HeterogeneousVolumes.Tessellation.MajorantGrid", help:"Enables building majorant grids to accelerate volume tracking (Default = 0)\n", type:"Var"}, {name: "r.HeterogeneousVolumes.Tessellation.MajorantGrid.Max", help:"Enables building majorant grids to accelerate volume tracking (Default = 0)\n", type:"Var"}, {name: "r.HeterogeneousVolumes.Tessellation.MinimumVoxelSizeInFrustum", help:"The minimum voxel size (Default = 0.1)", type:"Var"}, {name: "r.HeterogeneousVolumes.Tessellation.MinimumVoxelSizeOutsideFrustum", help:"The minimum voxel size (Default = 100.0)", type:"Var"}, {name: "r.HeterogeneousVolumes.Tessellation.TopLevelBitmask", help:"Enables top-level bitmask to accelerate grid traversal (Default = 0)\n", type:"Var"}, {name: "r.HeterogeneousVolumes.UseAnalyticDerivatives", help:"Enables support for analytic derivatives (Default = 0)", type:"Var"}, {name: "r.HeterogeneousVolumes.UseExistenceMask", help:"Creates an evaluation mask which culls operations to the areas with non-zero extinction (Default = 1)", type:"Var"}, {name: "r.HeterogeneousVolumes.Velocity", help:"Writes Heterogeneous Volumes velocity to the feature buffer (Default = 0)", type:"Var"}, {name: "r.HeterogeneousVolumes.VolumeResolution.X", help:"Overrides the preshading and lighting volume resolution in X (Default = 0)0: Disabled, uses per-volume attribute\n>0: Overrides resolution in X\n", type:"Var"}, {name: "r.HeterogeneousVolumes.VolumeResolution.Y", help:"Overrides the preshading and lighting volume resolution in X (Default = 0)0: Disabled, uses per-volume attribute\n>0: Overrides resolution in Y\n", type:"Var"}, {name: "r.HeterogeneousVolumes.VolumeResolution.Z", help:"Overrides the preshading and lighting volume resolution in X (Default = 0)0: Disabled, uses per-volume attribute\n>0: Overrides resolution in Z\n", type:"Var"}, {name: "r.HeterogeneousVolumes.VolumetricFog", help:"Applies volumetric fog to Heterogeneous Volumes (Default = 1)", type:"Var"}, {name: "r.HFShadowAverageObjectsPerCullTile", help:"Determines how much memory should be allocated in height field object culling data structures. Too much = memory waste, too little = flickering due to buffer overflow.", type:"Var"}, {name: "r.HFShadowQuality", help:"Defines the height field shadow method which allows to adjust for quality or performance.\n 0:off, 1:low (8 steps), 2:medium (16 steps, default), 3:high (32 steps, hole aware)", type:"Var"}, {name: "r.HighResScreenshot.AdditionalCmds", help:"Additional command to execute when a high res screenshot is requested.", type:"Var"}, {name: "r.Histogram.UseAtomic", help:"Uses atomic to speed up the generation of the histogram.", type:"Var"}, {name: "r.HitProxy.CaptureNextUpdate", help:"Enables GPU capture of hit proxy rendering on the next update.", type:"Var"}, {name: "r.HLOD.DistanceOverrideScale", help:"Scales the value in r.HLOD.DistanceOverride, Default off.\nThis is an optional scale intended to allow game logic to dynamically modify without impacting scalability.\n", type:"Var"}, {name: "r.HLOD.ForceDisableCastDynamicShadow", help:"If non-zero, will set bCastDynamicShadow to false for all LODActors, regardless of the shadowing setting of their subactors.", type:"Var"}, {name: "r.HZB.BuildUseCompute", help:"Selects whether HZB should be built with compute.", type:"Var"}, {name: "r.IESAtlas.Debug", help:"Enable IES atlas debug information.", type:"Var"}, {name: "r.IESAtlas.ForceUpdate", help:"Force IES atlas to update very frame.", type:"Var"}, {name: "r.IESAtlas.MaxProfileCount", help:"The maximum number of IES profiles which can be stored.\n", type:"Var"}, {name: "r.IESAtlas.Resolution", help:"Resolution for storing IES textures.\n", type:"Var"}, {name: "r.IgnorePerformanceModeCheck", help:"Ignore performance mode check", type:"Var"}, {name: "r.InstanceCulling.AllowBatchedBuildRenderingCommands", help:"Whether to allow batching BuildRenderingCommands for GPU instance culling", type:"Var"}, {name: "r.InstanceCulling.AllowInstanceOrderPreservation", help:"Whether or not to allow instances to preserve instance draw order using GPU compaction.", type:"Var"}, {name: "r.InstanceCulling.ForceInstanceCulling", help:"Whether to force per instance occlusion culling.", type:"Var"}, {name: "r.InstanceCulling.OcclusionCull", help:"Whether to do per instance occlusion culling for GPU instance culling.", type:"Var"}, {name: "r.InstanceCulling.OcclusionQueries", help:"EXPERIMENTAL: Use per-instance software occlusion queries to perform less conservative visibility test than what\'s possible with HZB alone", type:"Var"}, {name: "r.InstanceCulling.UseLoadBalancer", help:"Prefer to use UseLoadBalancer", type:"Var"}, {name: "r.InstanceData.MinInstanceCountToOptimize", help:"Minimum number of instances to perform optimized build for (if enabled), can be used to disable optimized build for small ISMs as there is some overhead from doing so.", type:"Var"}, {name: "r.InstanceData.ResetTrackingOnRegister", help:"Chicken switch to disable the new code to reset tracking & instance count during OnRegister, if this causes problems.\nTODO: Remove.", type:"Var"}, {name: "r.InstancedStaticMeshes.AllowCreateEmpty", help:"Whether to allow creation of empty ISMS.", type:"Var"}, {name: "r.InstancedStaticMeshes.ConservativeBounds.Threshold", help:"Number of instances in an ISM before we start using conservative bounds. Set to -1 to disable conservative bounds.", type:"Var"}, {name: "r.InstancedStaticMeshes.FetchInstanceCountFromScene", help:"Enables the data path that allows instance count to be fetched from the Scene rather than the Mesh Draw Commands (MDCs), which removes the need to re-cache MDCs when instance count changes.", type:"Var"}, {name: "r.InstancedStaticMeshes.ForceRemoveAtSwap", help:"Force the RemoveAtSwap optimization when removing instances from an ISM.", type:"Var"}, {name: "r.InstancedStaticMeshes.GpuLod", help:"Whether to enable GPU LOD selection on InstancedStaticMesh.", type:"Var"}, {name: "r.InstanceUpdateTaskDebugDelay", help:"Instance update debug delay in seconds.", type:"Var"}, {name: "r.InvertTemporalJitterX", help:"Whether or not to invert the X value of jittered positions for temporal AA.", type:"Var"}, {name: "r.InvertTemporalJitterY", help:"Whether or not to invert the Y value of jittered positions for temporal AA.", type:"Var"}, {name: "r.Landscape.AllowNanitePerClusterDisplacementDisable", help:"Allow Nanite landscape to disable displcement on individual clusters in the distance.", type:"Var"}, {name: "r.LandscapeLODBias", help:"LOD bias for landscape/terrain meshes.", type:"Var"}, {name: "r.LandscapeUseAsyncTasksForLODComputation", help:"Use async tasks for computing per-landscape component LOD biases.", type:"Var"}, {name: "r.LegacyLuminanceFactors", help:"Default luminance factors:\n0: Working color space coefficients (default)\n1: Legacy coefficients (inaccurate). Activate to retain the 5.4 and earlier versions behavior.\n", type:"Var"}, {name: "r.LensDistortion.AffectScreenPercentage", help:"Whether the screen percentage is automatically increased to avoid any upscaling due to the distortion. Disabled by default as this affect render target sizes, and is dependent of the upscaling factor that migth be animated (different FOV or distortion settings for instance).", type:"Var"}, {name: "r.LensDistortion.LUTScreenPercentage", help:"Screen percentage of the procedurally generated LUTs.\n", type:"Var"}, {name: "r.LensDistortion.Panini.D", help:"Allow and configure to apply a panini distortion to the rendered image. Values between 0 and 1 allow to fade the effect (lerp).\nImplementation from research paper \"Pannini: A New Projection for Rendering Wide Angle Perspective Images\"\n 0: off (default)\n>0: enabled (requires an extra post processing pass if upsampling wasn\'t used - see r.ScreenPercentage)\n 1: Panini cylindrical stereographic projection", type:"Var"}, {name: "r.LensDistortion.Panini.S", help:"Panini projection\'s hard vertical compression factor.\n 0: no vertical compression factor (default)\n 1: Hard vertical compression", type:"Var"}, {name: "r.LensDistortion.Panini.ScreenFit", help:"Panini projection screen fit effect factor (lerp) for debugging purposes.\n 0: fit vertically\n 1: fit horizontally (default)", type:"Var"}, {name: "r.Light.TestMobilityForStaticSceneMembership", help:"Deprecated (UE5.5): Temporary flag to switch back to the old behavior (testing the cast static shadow flag)\n. The old behavior checked the HasStaticShadowing flag on the proxy, but that is cleared for VSMs so the new behavior tests the mobility instead.", type:"Var"}, {name: "r.LightCulling.MaxDistanceOverrideKilometers", help:"Used to override the maximum far distance at which we can store data in the light grid.\n If this is increase, you might want to update r.Forward.LightGridSizeZ to a reasonable value according to your use case light count and distribution. <=0: off \n >0: the far distance in kilometers.\n", type:"Var"}, {name: "r.LightCulling.TwoLevel", help:"Whether to build light grid in two passes.", type:"Var"}, {name: "r.LightCulling.TwoLevel.Exponent", help:"Exponent used to derive the coarse grid size (base 2).", type:"Var"}, {name: "r.LightCulling.TwoLevel.Threshold", help:"Threshold used to determine whether to use two level culling basedon the number of lights in view.", type:"Var"}, {name: "r.LightCulling.WorkloadDistributionMode", help:"0 - single thread per cell.\n1 - thread group per cell (64 threads).\n2 - thread group per cell (32 threads if supported, otherwise single thread).\n(This cvar only applies to fine light grid. When using two levels, coarse grid always uses thread group per cell.", type:"Var"}, {name: "r.LightFunctionAtlas", help:"Enable the light function atlas generation at runtime. The atlas will only be generated if other systems are using it at runtime.", type:"Var"}, {name: "r.LightFunctionAtlas.Format", help:"0: grey scale in [0,1]. 1: colored in [0,1]", type:"Var"}, {name: "r.LightFunctionAtlas.MaxLightCount", help:"Experimental: Clamp the number of lights that can sample light function atlas. -1 means unlimited light count.", type:"Var"}, {name: "r.LightFunctionAtlas.Size", help:"Experimental: The default size (atlas slot count) for each dimension of the the 2D texture atlas. Maximum value is 16 since we only allow up to 16x16=256 light functions.", type:"Var"}, {name: "r.LightFunctionAtlas.SlotResolution", help:"Experimental: The resolution of each atlas slot. If the resolution is too large for the target platforms, it will be reduced to fit.", type:"Var"}, {name: "r.LightPropagationVolume", help:"Project setting of the work in progress feature LightPropgationVolume. Cannot be changed at runtime.\n 0: off (default)\n 1: on", type:"Var"}, {name: "r.LightShaftAllowTAA", help:"Allows temporal filtering for lightshafts.\n 0: off\n 1: on (default)", type:"Var"}, {name: "r.LocalExposure", help:"Whether to support local exposure", type:"Var"}, {name: "r.LocalExposure.ExposureFusion.TargetLuminance", help:"Target Luminance used to determine the weight of each exposure.", type:"Var"}, {name: "r.LocalExposure.VisualizeDebugMode", help:"When enabling Show->Visualize->Local Exposure is enabled, this flag controls which mode to use.\n 0: Local Exposure\n 1: Base Luminance\n 2: Detail Luminance\n 3: Valid Bilateral Grid Lookup\n", type:"Var"}, {name: "r.LocalFogVolume", help:"Project settings enabling the rendering of Local Fog Volumes.", type:"Var"}, {name: "r.LocalFogVolume.ApplyOnTranslucent", help:"Project settings enabling the sampling of local fog volumes on translucent elements.", type:"Var"}, {name: "r.LocalFogVolume.GlobalStartDistance", help:"The start distance in centimeter from which local fog volumes starts to appear.", type:"Var"}, {name: "r.LocalFogVolume.HalfResolution", help:"Enables half resolution rendering of local fog volumes with an upsampling to full resolution later. Only works for the mobile path for now.\n", type:"Var"}, {name: "r.LocalFogVolume.MaxDensityIntoVolumetricFog", help:"LocalFogVolume height fog mode can become exponentially dense in the bottom part. VolumetricFog temporal reprojection then can leak du to high density. Clamping density is a way to get that visual artefact under control.", type:"Var"}, {name: "r.LocalFogVolume.RenderDuringHeightFogPass", help:"LocalFogVolume are going to be rendered during the height fog pass, skipping the tiled rendering pass specific to them. Only work on the non mobile path as an experiment.", type:"Var"}, {name: "r.LocalFogVolume.RenderIntoVolumetricFog", help:"Enables the voxelization of local fog volumes into the volumetric fog rendering system. Otherwise, local fog volumes will remain isolated.", type:"Var"}, {name: "r.LocalFogVolume.TileCullingUseAsync", help:"Enables running the culling process on the async compute pipe.", type:"Var"}, {name: "r.LocalFogVolume.TileDebug", help:"Debug the tiled rendering data complexity. 1: show per tile LFV count as color ; 2: same as one but also show the effect of pixel discard/clipping.", type:"Var"}, {name: "r.LocalFogVolume.TileMaxInstanceCount", help:"Maximum number of local fog volumes to account for per view (and per tile or consistency).", type:"Var"}, {name: "r.LocalFogVolume.TilePixelSize", help:"Tile size on screen in pixel at which we cull the local fog volumes.", type:"Var"}, {name: "r.LocalFogVolume.UseHZB", help:"Enables the use of the HZB to cull local fog volumes away.\n", type:"Var"}, {name: "r.LPV.DiffuseIntensity", help:"Multiplier for LPV Diffuse.", type:"Var"}, {name: "r.LPV.DirectionalOcclusionDefaultDiffuse", help:"", type:"Var"}, {name: "r.LPV.DirectionalOcclusionDefaultSpecular", help:"", type:"Var"}, {name: "r.LPV.EmissiveMultiplier", help:"Emissive intensity multiplier", type:"Var"}, {name: "r.LPV.Intensity", help:"Multiplier for LPV intensity. 1.0 is the default.", type:"Var"}, {name: "r.LPV.Mixing", help:"Reflection environment mixes with indirect shading (Ambient + LPV).\n 0 is off, 1 is on (default)", type:"Var"}, {name: "r.LPV.NumAOPropagationSteps", help:"Number of LPV AO propagation steps\n0: noisy (good for debugging)\n1: normal (default)\n2: blurry", type:"Var"}, {name: "r.LPV.NumPropagationSteps", help:"Number of LPV propagation steps", type:"Var"}, {name: "r.LPV.RSMResolution", help:"Reflective Shadow Map resolution (used for LPV) - higher values result in less aliasing artifacts, at the cost of performance", type:"Var"}, {name: "r.LPV.SpecularIntensity", help:"Multiplier for LPV Specular.", type:"Var"}, {name: "r.Lumin.OverrideExternalTextureSupport", help:"Override external texture support for OpenGLES API. (Lumin Only)\n 0 = normal detection used [default]\n 1 = disable external texture support\n 2 = force ImageExternal100 (version #100 with GL_OES_EGL_image_external)\n 3 = force ImageExternal300 (version #300 with GL_OES_EGL_image_external)\n 4 = force ImageExternalESSL300 (version #300 with GL_OES_EGL_image_external_essl3)", type:"Var"}, {name: "r.LuminDebugCanvasHeight", help:"Allows the override of the lumin debug canvas height.", type:"Var"}, {name: "r.LuminDebugCanvasWidth", help:"Allows the override of the lumin debug canvas width.", type:"Var"}, {name: "r.LuminDebugCanvasX", help:"Allows the override of the lumin debug canvas \'x\' coordinate.", type:"Var"}, {name: "r.LuminDebugCanvasY", help:"Allows the override of the lumin debug canvas \'y\' coordinate.", type:"Var"}, {name: "r.LuminDebugCanvasZ", help:"Allows the override of the lumin debug canvas \'z\' coordinate.", type:"Var"}, {name: "r.LogShaderCompilerStats", help:"When set to 1, Log detailed shader compiler stats.", type:"Var"}, {name: "r.Lumen.AsyncCompute", help:"Whether Lumen should use async compute if supported.", type:"Var"}, {name: "r.Lumen.DiffuseIndirect.Allow", help:"Whether to allow Lumen Global Illumination. Lumen GI is enabled in the project settings, this cvar can only disable it.", type:"Var"}, {name: "r.Lumen.DiffuseIndirect.AsyncCompute", help:"Whether to run Lumen diffuse indirect passes on the compute pipe if possible.", type:"Var"}, {name: "r.Lumen.DiffuseIndirect.CardInterpolateInfluenceRadius", help:".", type:"Var"}, {name: "r.Lumen.DiffuseIndirect.CardTraceEndDistanceFromCamera", help:"", type:"Var"}, {name: "r.Lumen.DiffuseIndirect.CullGridDistributionLogZOffset", help:"", type:"Var"}, {name: "r.Lumen.DiffuseIndirect.CullGridDistributionLogZScale", help:"", type:"Var"}, {name: "r.Lumen.DiffuseIndirect.CullGridDistributionZScale", help:"", type:"Var"}, {name: "r.Lumen.DiffuseIndirect.CullGridPixelSize", help:"Size of a cell in the card grid, in pixels.", type:"Var"}, {name: "r.Lumen.DiffuseIndirect.MeshSDF.AverageCulledCount", help:"", type:"Var"}, {name: "r.Lumen.DiffuseIndirect.MeshSDF.DitheredTransparencyStepThreshold", help:"Per-step stochastic semi-transparency threshold, for tracing users that have dithered transparency enabled, for Mesh SDFs that contain mostly two sided materials (foliage)", type:"Var"}, {name: "r.Lumen.DiffuseIndirect.MeshSDF.NotCoveredExpandSurfaceScale", help:"Scales the surface expand used for Mesh SDFs that contain mostly two sided materials (foliage)", type:"Var"}, {name: "r.Lumen.DiffuseIndirect.MeshSDF.NotCoveredMinStepScale", help:"Scales the min step size to improve performance, for Mesh SDFs that contain mostly two sided materials (foliage)", type:"Var"}, {name: "r.Lumen.DiffuseIndirect.MeshSDF.RadiusThreshold", help:"", type:"Var"}, {name: "r.Lumen.DiffuseIndirect.MinSampleRadius", help:".", type:"Var"}, {name: "r.Lumen.DiffuseIndirect.MinTraceDistance", help:".", type:"Var"}, {name: "r.Lumen.DiffuseIndirect.SSAO", help:"Whether to render and apply SSAO to Lumen GI, only when r.Lumen.ScreenProbeGather.ShortRangeAO is disabled. This is useful for providing short range occlusion when Lumen\'s Screen Bent Normal is disabled due to scalability, however SSAO settings like screen radius come from the user\'s post process settings.", type:"Var"}, {name: "r.Lumen.DiffuseIndirect.SurfaceBias", help:".", type:"Var"}, {name: "r.Lumen.DiffuseIndirect.TraceStepFactor", help:".", type:"Var"}, {name: "r.Lumen.HardwareRayTracing", help:"Uses Hardware Ray Tracing for Lumen features, when available.\nLumen will fall back to Software Ray Tracing otherwise.\nNote: Hardware ray tracing has significant scene update costs for\nscenes with more than 100k instances.", type:"Var"}, {name: "r.Lumen.HardwareRayTracing.AvoidSelfIntersections", help:"Whether to skip back face hits for a small distance in order to avoid self-intersections when BLAS mismatches rasterized geometry.\n0 - Disabled. May have extra leaking, but it\'s the fastest mode.\n1 - Enabled. This mode retraces to skip first backface hit up to r.Lumen.HardwareRayTracing.SkipBackFaceHitDistance. Good default on most platforms.\n2 - Enabled. This mode uses AHS to skip any backface hits up to r.Lumen.HardwareRayTracing.SkipBackFaceHitDistance. Faster on platforms with inline AHS support.\n3 - Enabled. Automatically chooses between mode 1 and 2 depending on platform for best performance.", type:"Var"}, {name: "r.Lumen.HardwareRayTracing.FarFieldBias", help:"Determines bias for the far field traces. Default = 200", type:"Var"}, {name: "r.Lumen.HardwareRayTracing.HitLighting.DirectLighting", help:"Whether to calculate direct lighting when doing Hit Lighting or sample it from the Surface Cache.", type:"Var"}, {name: "r.Lumen.HardwareRayTracing.HitLighting.ReflectionCaptures", help:"Whether to apply Reflection Captures to ray hits when using Hit Lighting.", type:"Var"}, {name: "r.Lumen.HardwareRayTracing.HitLighting.ShadowMode", help:"Which shadow mode to use for calculating direct lighting in ray hits:\n0 - Disabled shadows\n1 - Hard shadows, but less noise\n2 - Area shadows, but more noise", type:"Var"}, {name: "r.Lumen.HardwareRayTracing.HitLighting.Skylight", help:"Whether to calculate unshadowed skylight when doing Hit Lighting or sample shadowed skylight from the Surface Cache.\n0 - Disabled\n1 - Enabled\n2 - Enabled only for standalone Lumen Reflections", type:"Var"}, {name: "r.Lumen.HardwareRayTracing.Inline", help:"Uses Hardware Inline Ray Tracing for selected Lumen passes, when available.\n", type:"Var"}, {name: "r.Lumen.HardwareRayTracing.LightingMode", help:"Determines the ray hit lighting mode:\n0 - Use Lumen Surface Cache for ray hit lighting. This method gives the best GI and reflection performance, but quality will be limited by how well surface cache represents given scene.\n1 - Calculate lighting at a ray hit point for GI and reflections. This will improve both GI and reflection quality, but greatly increases GPU cost, as full material and lighting will be evaluated at every hit point. Lumen Surface Cache will still be used for secondary bounces.\n2 - Calculate lighting at a ray hit point for reflections. This will improve reflection quality, but increases GPU cost, as full material needs to be evaluated and shadow rays traced. Lumen Surface Cache will still be used for GI and secondary bounces, including GI seen in reflections.", type:"Var"}, {name: "r.Lumen.HardwareRayTracing.MaxIterations", help:"Limit number of ray tracing traversal iterations on supported platfoms.\nIncomplete misses will be treated as hitting a black surface (can cause overocculsion).\nIncomplete hits will be treated as a hit (can cause leaking).", type:"Var"}, {name: "r.Lumen.HardwareRayTracing.MeshSectionVisibilityTest", help:"Whether to test mesh section visibility at runtime.\nWhen enabled translucent mesh sections are automatically hidden based on the material, but it slows down performance due to extra visibility tests per intersection.\nWhen disabled translucent meshes can be hidden only if they are fully translucent. Individual mesh sections need to be hidden upfront inside the static mesh editor.", type:"Var"}, {name: "r.Lumen.HardwareRayTracing.MinTraceDistanceToSampleSurfaceCache", help:"Ray hit distance from which we can start sampling surface cache in order to fix feedback loop where surface cache texel hits itself and propagates lighting.", type:"Var"}, {name: "r.Lumen.HardwareRayTracing.PullbackBias", help:"Determines the pull-back bias when resuming a screen-trace ray (default = 8.0)", type:"Var"}, {name: "r.Lumen.HardwareRayTracing.SkipBackFaceHitDistance", help:"Distance to trace with backface culling enabled, useful when the Ray Tracing geometry doesn\'t match the GBuffer (Nanite Proxy geometry).", type:"Var"}, {name: "r.Lumen.HardwareRayTracing.SkipTwoSidedHitDistance", help:"When the SkipBackFaceHitDistance is enabled, the first two-sided material hit within this distance will be skipped. This is useful for avoiding self-intersections with the Nanite fallback mesh on foliage, as SkipBackFaceHitDistance doesn\'t work on two sided materials.", type:"Var"}, {name: "r.Lumen.HardwareRayTracing.SurfaceCacheAlphaMasking", help:"Whether to support alpha masking based on the surface cache alpha channel. Disabled by default, as it slows down ray tracing performance.", type:"Var"}, {name: "r.Lumen.HardwareRayTracing.SurfaceCacheSampling.DepthBias", help:"Max distance to project a texel from a mesh card onto a hit point. Higher values will fix issues of mismatch between ray tracing geometry and rasterization, but will also increase leaking.", type:"Var"}, {name: "r.Lumen.IrradianceFieldGather", help:"Whether to use the Irradiance Field Final Gather, an experimental opaque final gather that interpolates from pre-calculated irradiance in probes for cheaper, but lower quality GI.", type:"Var"}, {name: "r.Lumen.IrradianceFieldGather.ClipmapDistributionBase", help:"Base of the Pow() that controls the size of each successive clipmap relative to the first.", type:"Var"}, {name: "r.Lumen.IrradianceFieldGather.ClipmapWorldExtent", help:"World space extent of the first clipmap", type:"Var"}, {name: "r.Lumen.IrradianceFieldGather.GridResolution", help:"Resolution of the probe placement grid within each clipmap", type:"Var"}, {name: "r.Lumen.IrradianceFieldGather.IrradianceProbeResolution", help:"Resolution of the probe\'s 2d irradiance layout.", type:"Var"}, {name: "r.Lumen.IrradianceFieldGather.NumClipmaps", help:"Number of radiance cache clipmaps.", type:"Var"}, {name: "r.Lumen.IrradianceFieldGather.NumMipmaps", help:"Number of radiance cache mipmaps.", type:"Var"}, {name: "r.Lumen.IrradianceFieldGather.NumProbesToTraceBudget", help:"Number of probes that can be updated in a frame before downsampling.", type:"Var"}, {name: "r.Lumen.IrradianceFieldGather.OcclusionProbeResolution", help:"Resolution of the probe\'s 2d occlusion layout.", type:"Var"}, {name: "r.Lumen.IrradianceFieldGather.ProbeAtlasResolutionInProbes", help:"Number of probes along one dimension of the probe atlas cache texture. This controls the memory usage of the cache. Overflow currently results in incorrect rendering.", type:"Var"}, {name: "r.Lumen.IrradianceFieldGather.ProbeOcclusionNormalBias", help:"Bias along the normal to reduce self-occlusion artifacts from Probe Occlusion", type:"Var"}, {name: "r.Lumen.IrradianceFieldGather.ProbeOcclusionViewBias", help:"Bias along the view direction to reduce self-occlusion artifacts from Probe Occlusion", type:"Var"}, {name: "r.Lumen.IrradianceFieldGather.ProbeResolution", help:"Resolution of the probe\'s 2d radiance layout. The number of rays traced for the probe will be ProbeResolution ^ 2", type:"Var"}, {name: "r.Lumen.IrradianceFieldGather.RadianceCache.Stats", help:"GPU print out Radiance Cache update stats.", type:"Var"}, {name: "r.Lumen.LightingDataFormat", help:"Data format for surfaces storing lighting information (e.g. radiance, irradiance). 0=PF_FloatR11G11B10 (default), 1=PF_FloatRGBA (64 bit).", type:"Var"}, {name: "r.Lumen.Ortho.LumenSceneMinCardResolution", help:"If an orthographic view is present, forc the SurfaceCache MinCard to be set to OrthoMinCardResolution, otherwise use the standard MinCardResolution0 is disabled, higher values will force the resolution in Orthographic views", type:"Var"}, {name: "r.Lumen.Ortho.OverrideMeshDFTraceDistances", help:"Use the full screen view rect size in Ortho views to determing the SDF trace distances instead of setting the value manually.", type:"Var"}, {name: "r.Lumen.ProbeHierarchy.SamplePerPixel", help:"Number of sample to do per full res pixel.", type:"Var"}, {name: "r.Lumen.RadianceCache.DownsampleDistanceFromCamera", help:"Probes further than this distance from the camera are always downsampled.", type:"Var"}, {name: "r.Lumen.RadianceCache.ForceFullUpdate", help:"Whether to update entuire radiance cache once. Useful for debugging.", type:"Var"}, {name: "r.Lumen.RadianceCache.ForceUniformTraceTileLevel", help:"When set to >= 0, forces a uniform trace tile level for debugging, and overrides trace tile BRDF importance sampling. Valid range is [0, 2]. 0 = half res, 1 = full res, 2 = supersampled", type:"Var"}, {name: "r.Lumen.RadianceCache.HardwareRayTracing", help:"Enables hardware ray tracing for Lumen radiance cache (Default = 1)", type:"Var"}, {name: "r.Lumen.RadianceCache.HardwareRayTracing.Retrace.FarField", help:"Determines whether a second trace will be fired for far-field contribution (Default = 1)", type:"Var"}, {name: "r.Lumen.RadianceCache.HardwareRayTracing.TemporaryBufferAllocationDownsampleFactor", help:"Downsample factor on the temporary buffer used by Hardware Ray Tracing Radiance Cache. Higher downsample factors save more transient allocator memory, but may cause overflow and artifacts.", type:"Var"}, {name: "r.Lumen.RadianceCache.NumFramesToKeepCachedProbes", help:"Number of frames to keep unused probes in cache. Higher values enable more reuse between frames, but too high values will cause filtering from stale probes.", type:"Var"}, {name: "r.Lumen.RadianceCache.OverrideCacheOcclusionLighting", help:"", type:"Var"}, {name: "r.Lumen.RadianceCache.ShowBlackRadianceCacheLighting", help:"", type:"Var"}, {name: "r.Lumen.RadianceCache.SortTraceTiles", help:"Whether to sort Trace Tiles by direction before tracing to extract coherency", type:"Var"}, {name: "r.Lumen.RadianceCache.SpatialFilterMaxRadianceHitAngle", help:"In Degrees. Larger angles allow filtering of nearby features but more leaking.", type:"Var"}, {name: "r.Lumen.RadianceCache.SpatialFilterProbes", help:"Whether to filter probe radiance between neighbors", type:"Var"}, {name: "r.Lumen.RadianceCache.SupersampleDistanceFromCamera", help:"Only probes closer to the camera than this distance can be supersampled.", type:"Var"}, {name: "r.Lumen.RadianceCache.SupersampleTileBRDFThreshold", help:"Value of the BRDF [0-1] above which to trace more rays to supersample the probe radiance.", type:"Var"}, {name: "r.Lumen.RadianceCache.Update", help:"Whether to update radiance cache every frame. Useful for debugging.", type:"Var"}, {name: "r.Lumen.RadianceCache.Visualize", help:"", type:"Var"}, {name: "r.Lumen.RadianceCache.VisualizeClipmapIndex", help:"Selects which radiance cache clipmap should be visualized. -1 visualizes all clipmaps at once.", type:"Var"}, {name: "r.Lumen.RadianceCache.VisualizeProbeRadius", help:"Whether to visualize radiance cache probe radius", type:"Var"}, {name: "r.Lumen.RadianceCache.VisualizeRadiusScale", help:"Scales the size of the spheres used to visualize radiance cache samples.", type:"Var"}, {name: "r.Lumen.Reflections.Allow", help:"Whether to allow Lumen Reflections. Lumen Reflections is enabled in the project settings, this cvar can only disable it.", type:"Var"}, {name: "r.Lumen.Reflections.AsyncCompute", help:"Whether to run Lumen reflection passes on the compute pipe if possible.", type:"Var"}, {name: "r.Lumen.Reflections.BilateralFilter", help:"Whether to do a bilateral filter as a last step in denoising Lumen Reflections.", type:"Var"}, {name: "r.Lumen.Reflections.BilateralFilter.DepthWeightScale", help:"Scales the depth weight of the bilateral filter", type:"Var"}, {name: "r.Lumen.Reflections.BilateralFilter.KernelRadius", help:"Screen space reflection spatial filter kernel radius in pixels", type:"Var"}, {name: "r.Lumen.Reflections.BilateralFilter.NumSamples", help:"Number of bilateral filter samples.", type:"Var"}, {name: "r.Lumen.Reflections.Contrast", help:"Non-physically correct Lumen reflection contrast. Recommended to keep at 1.", type:"Var"}, {name: "r.Lumen.Reflections.Debug", help:"Whether to enabled debug mode, which prints various extra debug information from shaders.", type:"Var"}, {name: "r.Lumen.Reflections.DistantScreenTraces", help:"Whether to do a linear screen trace starting where Lumen Scene ends to handle distant reflections.", type:"Var"}, {name: "r.Lumen.Reflections.DistantScreenTraces.DepthThreshold", help:"Depth threshold for the linear screen traces done where other traces have missed.", type:"Var"}, {name: "r.Lumen.Reflections.DistantScreenTraces.MaxTraceDistance", help:"Trace distance of distant screen traces.", type:"Var"}, {name: "r.Lumen.Reflections.DownsampleFactor", help:"Downsample factor from the main viewport to trace rays. This is the main performance control for the tracing part of the reflections.", type:"Var"}, {name: "r.Lumen.Reflections.FixedStateFrameIndex", help:"Whether to override View.StateFrameIndex for debugging Lumen Reflections.", type:"Var"}, {name: "r.Lumen.Reflections.GGXSamplingBias", help:"", type:"Var"}, {name: "r.Lumen.Reflections.HairStrands.ScreenTrace", help:"Whether to trace against hair depth for hair casting shadow onto opaques.", type:"Var"}, {name: "r.Lumen.Reflections.HairStrands.VoxelTrace", help:"Whether to trace against hair voxel structure for hair casting shadow onto opaques.", type:"Var"}, {name: "r.Lumen.Reflections.HardwareRayTracing", help:"Enables hardware ray tracing for Lumen reflections (Default = 1)", type:"Var"}, {name: "r.Lumen.Reflections.HardwareRayTracing.BucketMaterials", help:"Determines whether a secondary traces will be bucketed for coherent material access (default = 1", type:"Var"}, {name: "r.Lumen.Reflections.HardwareRayTracing.Retrace.FarField", help:"Determines whether a second trace will be fired for far-field contribution (Default = 1)", type:"Var"}, {name: "r.Lumen.Reflections.HardwareRayTracing.Retrace.HitLighting", help:"Determines whether a second trace will be fired for hit-lighting for invalid surface-cache hits (Default = 0)", type:"Var"}, {name: "r.Lumen.Reflections.HardwareRayTracing.Translucent.MaxRefractionBounces", help:"The maximum count of refraction event to trace.", type:"Var"}, {name: "r.Lumen.Reflections.HardwareRayTracing.Translucent.Refraction.EnableForProject", help:"Whether to use Lumen refraction tracing from surfaces when using harware ray tracing and hit lighting. This will require shader recompilation to compile of translucent card capture Lumen shaders. Increases GPU cost when enabled.", type:"Var"}, {name: "r.Lumen.Reflections.HierarchicalScreenTraces.HistoryDepthTestRelativeThickness", help:"Distance between HZB trace hit and previous frame scene depth from which to allow hits, as a relative depth threshold.", type:"Var"}, {name: "r.Lumen.Reflections.HierarchicalScreenTraces.MaxIterations", help:"Max iterations for HZB tracing.", type:"Var"}, {name: "r.Lumen.Reflections.HierarchicalScreenTraces.MinimumOccupancy", help:"Minimum number of threads still tracing before aborting the trace. Can be used for scalability to abandon traces that have a disproportionate cost.", type:"Var"}, {name: "r.Lumen.Reflections.HierarchicalScreenTraces.RelativeDepthThickness", help:"Determines depth thickness of objects hit by HZB tracing, as a relative depth threshold.", type:"Var"}, {name: "r.Lumen.Reflections.HiResSurface", help:"Whether reflections should sample highest available surface data or use lowest res always resident pages.", type:"Var"}, {name: "r.Lumen.Reflections.MaxBounces", help:"Sets the maximum number of recursive reflection bounces. Values above 0 override Post Process Volume settings. 1 means a single reflection ray (no secondary reflections in mirrors). Currently only supported by Hardware Ray Tracing with Hit Lighting.", type:"Var"}, {name: "r.Lumen.Reflections.MaxRayIntensity", help:"Clamps the maximum ray lighting intensity (with PreExposure) to reduce fireflies.", type:"Var"}, {name: "r.Lumen.Reflections.MaxRoughnessToTrace", help:"Max roughness value for which Lumen still traces dedicated reflection rays. Overrides Post Process Volume settings when set to anything >= 0.", type:"Var"}, {name: "r.Lumen.Reflections.MaxRoughnessToTraceClamp", help:"Scalability clamp for max roughness value for which Lumen still traces dedicated reflection rays. Project and Post Process Volumes settings are clamped to this value. Useful for scalability.", type:"Var"}, {name: "r.Lumen.Reflections.MaxRoughnessToTraceForFoliage", help:"Max roughness value for which Lumen still traces dedicated reflection rays from foliage pixels. Where foliage pixel is a pixel with two sided or subsurface shading model.", type:"Var"}, {name: "r.Lumen.Reflections.RadianceCache", help:"Whether to reuse Lumen\'s ScreenProbeGather Radiance Cache, when it is available. When enabled, reflection rays from rough surfaces are shortened and distant lighting comes from interpolating from the Radiance Cache, speeding up traces.", type:"Var"}, {name: "r.Lumen.Reflections.RadianceCache.AngleThresholdScale", help:"Controls when the Radiance Cache is used for distant lighting. A value of 1 means only use the Radiance Cache when appropriate for the reflection cone, lower values are more aggressive.", type:"Var"}, {name: "r.Lumen.Reflections.RadianceCache.ReprojectionRadiusScale", help:"Scales the radius of the sphere around each Radiance Cache probe that is intersected for parallax correction when interpolating from the Radiance Cache.", type:"Var"}, {name: "r.Lumen.Reflections.RoughnessFadeLength", help:"", type:"Var"}, {name: "r.Lumen.Reflections.SampleSceneColorAtHit", help:"Whether to sample SceneColor on reflection ray hits (both SWRT and HWRT). Useful for hiding areas where Screen Traces gave up when they went behind a foreground object. 0 - Disable. 1 - Enable only when screen space traces are enabled. 2 - Always enable.", type:"Var"}, {name: "r.Lumen.Reflections.SampleSceneColorNormalTreshold", help:"Normal threshold in degrees that controls how close ray hit normal and screen normal have to be, before sampling SceneColor is allowed. 0 - only exactly matching normals allowed. 180 - all normals allowed.", type:"Var"}, {name: "r.Lumen.Reflections.SampleSceneColorRelativeDepthThickness", help:"Depth threshold that controls how close ray hits have to be to the depth buffer, before sampling SceneColor is allowed.", type:"Var"}, {name: "r.Lumen.Reflections.ScreenSpaceReconstruction", help:"Whether to use the screen space BRDF reweighting reconstruction", type:"Var"}, {name: "r.Lumen.Reflections.ScreenSpaceReconstruction.KernelRadius", help:"Screen space reflection filter kernel radius in pixels", type:"Var"}, {name: "r.Lumen.Reflections.ScreenSpaceReconstruction.MinWeight", help:"Min neighorhood weight adding some filtering even if we don\'t find good rays. It helps with noise on thin features when using downsampled tracing, but removes some contact shadows.", type:"Var"}, {name: "r.Lumen.Reflections.ScreenSpaceReconstruction.NumSamples", help:"Number of samples to use for the screen space BRDF reweighting reconstruction", type:"Var"}, {name: "r.Lumen.Reflections.ScreenSpaceReconstruction.RoughnessScale", help:"Values higher than 1 allow neighbor traces to be blurred together more aggressively, but is not physically correct.", type:"Var"}, {name: "r.Lumen.Reflections.ScreenSpaceReconstruction.TonemapMode", help:"Whether to tonemap reflection radiance values when they are averaged together during the spatial resolve. This reduces noise but also removes bright interesting features in reflections.\n0 - disabled. No bias, but also no noise reduction.\n1 - x^2. Good balance between bias and noise reduction. Recommended for full resolution reflections\n2 - 1/(1 + s*x). Heavy bias, but also removes a lot of noise. Recommended for downsampled reflections", type:"Var"}, {name: "r.Lumen.Reflections.ScreenSpaceReconstruction.TonemapStrength", help:"Selected r.Lumen.Reflections.ScreenSpaceReconstruction.TonemapMode strength.", type:"Var"}, {name: "r.Lumen.Reflections.ScreenTraces", help:"Whether to trace against the screen for reflections before falling back to other methods.", type:"Var"}, {name: "r.Lumen.Reflections.SmoothBias", help:"Values larger than 0 apply a global material roughness bias for Lumen Reflections, where 1 is fully mirror.", type:"Var"}, {name: "r.Lumen.Reflections.SpecularScale", help:"Non-physically correct Lumen specular reflection scale. Recommended to keep at 1.", type:"Var"}, {name: "r.Lumen.Reflections.SurfaceCacheFeedback", help:"Whether to allow writing into virtual surface cache feedback buffer from reflection rays.", type:"Var"}, {name: "r.Lumen.Reflections.Temporal", help:"Whether to use a temporal filter", type:"Var"}, {name: "r.Lumen.Reflections.Temporal.DistanceThreshold", help:"World space distance threshold needed to discard last frame\'s lighting results. Lower values reduce ghosting from characters when near a wall but increase flickering artifacts.", type:"Var"}, {name: "r.Lumen.Reflections.Temporal.MaxFramesAccumulated", help:"Lower values cause the temporal filter to propagate lighting changes faster, but also increase flickering from noise.", type:"Var"}, {name: "r.Lumen.Reflections.Temporal.MaxRayDirections", help:"Number of possible random directions per pixel.", type:"Var"}, {name: "r.Lumen.Reflections.Temporal.NeighborhoodClampScale", help:"Scales how permissive is neighborhood clamp. Higher values reduce noise, but also increase ghosting.", type:"Var"}, {name: "r.Lumen.Reflections.TraceCompaction.GroupSizeInTraceTiles", help:"Size of the trace compaction threadgroup. Larger group = better coherency in the compacted traces. Currently only supported by WaveOps path.", type:"Var"}, {name: "r.Lumen.Reflections.TraceCompaction.WaveOps", help:"Whether to use Wave Ops path for trace compaction.", type:"Var"}, {name: "r.Lumen.Reflections.TraceMeshSDFs", help:"", type:"Var"}, {name: "r.Lumen.Reflections.VisualizeTraces", help:"Whether to visualize reflection traces from cursor position, useful for debugging", type:"Var"}, {name: "r.Lumen.Reflections.VisualizeTracingCoherency", help:"Set to 1 to capture traces from a random wavefront and draw them on the screen. Set to 1 again to re-capture. Shaders must enable support first, see DEBUG_SUPPORT_VISUALIZE_TRACE_COHERENCY", type:"Var"}, {name: "r.Lumen.ReSTIRGather", help:"Whether to use the prototype ReSTIR Final Gather. Disabled by default, as quality is currently much lower than LumenScreenProbeGather, and fewer features supported.", type:"Var"}, {name: "r.Lumen.ReSTIRGather.BilateralFilter", help:"Whether to do a bilateral filter as a last step in denoising Lumen ReSTIRGathers.", type:"Var"}, {name: "r.Lumen.ReSTIRGather.BilateralFilter.DepthWeightScale", help:"Scales the depth weight of the bilateral filter", type:"Var"}, {name: "r.Lumen.ReSTIRGather.BilateralFilter.NormalAngleThresholdScale", help:"Scales the Normal angle threshold of the bilateral filter", type:"Var"}, {name: "r.Lumen.ReSTIRGather.BilateralFilter.NumSamples", help:"Number of bilateral filter samples.", type:"Var"}, {name: "r.Lumen.ReSTIRGather.BilateralFilter.SpatialKernelRadius", help:"Spatial kernel radius, as a fraction of the viewport size", type:"Var"}, {name: "r.Lumen.ReSTIRGather.BilateralFilter.StrongBlurVarianceThreshold", help:"Pixels whose variance from the spatial resolve filter are higher than this value get a stronger bilateral blur.", type:"Var"}, {name: "r.Lumen.ReSTIRGather.DownsampleFactor", help:"Downsample factor from the main viewport to trace rays, create and resample reservoirs at. This is the main performance control for the tracing / resampling part of the algorithm.", type:"Var"}, {name: "r.Lumen.ReSTIRGather.FixedJitterIndex", help:"When 0 or larger, overrides the frame index with a constant for debugging", type:"Var"}, {name: "r.Lumen.ReSTIRGather.MaxRayIntensity", help:"Clamps the maximum ray lighting intensity (with PreExposure) to reduce fireflies.", type:"Var"}, {name: "r.Lumen.ReSTIRGather.ResamplingAngleThreshold", help:"Largest angle between two reservoirs that will be allowed during reservoir resampling, in degrees", type:"Var"}, {name: "r.Lumen.ReSTIRGather.ResamplingDepthErrorThreshold", help:"Largest depth error between two reservoirs that will be allowed during reservoir resampling", type:"Var"}, {name: "r.Lumen.ReSTIRGather.ShortRangeAO", help:"Whether to compute a short range, full resolution AO to add high frequency occlusion (contact shadows) which ReSTIR GI lacks due to spatial filtering.", type:"Var"}, {name: "r.Lumen.ReSTIRGather.ShortRangeAO.MaxScreenTraceFraction", help:"Short range AO tracing distance, as a fraction of the screen size.", type:"Var"}, {name: "r.Lumen.ReSTIRGather.SpatialResampling", help:"Whether to use spatial resampling passes on the reservoirs", type:"Var"}, {name: "r.Lumen.ReSTIRGather.SpatialResampling.KernelRadius", help:"Radius of the spatial resampling kernel as a fraction of the screen.", type:"Var"}, {name: "r.Lumen.ReSTIRGather.SpatialResampling.NumPasses", help:"The number of spatial resampling passes to do", type:"Var"}, {name: "r.Lumen.ReSTIRGather.SpatialResampling.NumSamples", help:"The number of spatial samples for each resampling pass.", type:"Var"}, {name: "r.Lumen.ReSTIRGather.SpatialResampling.OcclusionScreenTraceDistance", help:"Length of occlusion screen traces used to validate the neighbor\'s reservoir hit position before reuse, to reduce leaking. As a fraction of the screen size.", type:"Var"}, {name: "r.Lumen.ReSTIRGather.Temporal", help:"Whether to use a temporal filter", type:"Var"}, {name: "r.Lumen.ReSTIRGather.Temporal.ClearHistoryEveryFrame", help:"Whether to clear the history every frame for debugging", type:"Var"}, {name: "r.Lumen.ReSTIRGather.Temporal.DistanceThreshold", help:"Relative distance threshold needed to discard last frame\'s lighting results. Lower values reduce ghosting from characters when near a wall but increase flickering artifacts.", type:"Var"}, {name: "r.Lumen.ReSTIRGather.Temporal.MaxFramesAccumulated", help:"Lower values cause the temporal filter to propagate lighting changes faster, but also increase flickering from noise.", type:"Var"}, {name: "r.Lumen.ReSTIRGather.TemporalResampling", help:"Whether to do a temporal resampling pass on the reservoirs", type:"Var"}, {name: "r.Lumen.ReSTIRGather.TemporalResampling.DistanceThreshold", help:"", type:"Var"}, {name: "r.Lumen.ReSTIRGather.TemporalResampling.ResetHistory", help:"", type:"Var"}, {name: "r.Lumen.ReSTIRGather.TemporalResampling.ValidateEveryNFrames", help:"Validate temporal reservoirs by re-tracing their rays and comparing hit positions and radiance every N frames. Used to reduce lag in lighting changes, but introduces noise.", type:"Var"}, {name: "r.Lumen.ReSTIRGather.Upsample.KernelSize", help:"Upsample kernel size, in reservoir texels", type:"Var"}, {name: "r.Lumen.ReSTIRGather.Upsample.Method", help:"Upsample method, when calculating full resolution irradiance from downsampled reservoir radiance\n0 - Jittered bilinear sample, when jittered position lies in the same plane, and fallback to unjittered when all samples fail\n1 - Spiral sample pattern\n2 - Passthrough for debugging. Also effectively disables the bilateral filter as variance is not computed.", type:"Var"}, {name: "r.Lumen.ReSTIRGather.Upsample.NumSamples", help:"Number of reservoir samples to take while upsampling. Only used when r.Lumen.ReSTIRGather.Upsample.Method is set to Spiral Pattern.", type:"Var"}, {name: "r.Lumen.SampleFog", help:"Sample the fog contribution in Lumen tracing. Disabled by default.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather", help:"Whether to use the Screen Probe Final Gather", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.AdaptiveProbeAllocationFraction", help:"Fraction of uniform probes to allow for adaptive probe placement.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.AdaptiveProbeMinDownsampleFactor", help:"Screen probes will be placed where needed down to this downsample factor of the GBuffer.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.DiffuseIntegralMethod", help:"Spherical Harmonic = 0, Importance Sample BRDF = 1, Numerical Integral Reference = 2", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.DirectLighting", help:"Whether to render all local lights through Lumen\'s Final Gather, when enabled. This gives very cheap but low quality direct lighting.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.DownsampleFactor", help:"Pixel size of the screen tile that a screen probe will be placed on.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.Filtering.WaveOps", help:"Whether to use Wave Ops path for screen probe filtering.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.FixedJitterIndex", help:"If zero or greater, overrides the temporal jitter index with a fixed index. Useful for debugging and inspecting sampling patterns.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.FullResolutionJitterWidth", help:"Size of the full resolution jitter applied to Screen Probe upsampling, as a fraction of a screen tile. A width of 1 results in jittering by DownsampleFactor number of pixels.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.GatherNumMips", help:"Number of mip maps to prepare for diffuse integration", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.GatherOctahedronResolutionScale", help:"Resolution that probe filtering and integration will happen at, as a scale of TracingOctahedronResolution", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.HairStrands.ScreenTrace", help:"Whether to trace against hair depth for hair casting shadow onto opaques.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.HairStrands.VoxelTrace", help:"Whether to trace against hair voxel structure for hair casting shadow onto opaques.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.HardwareRayTracing", help:"0. Software raytracing of diffuse indirect from Lumen cubemap tree.1. Enable hardware ray tracing of diffuse indirect. (Default)\n", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.HardwareRayTracing.NormalBias", help:"Bias along the shading normal, useful when the Ray Tracing geometry doesn\'t match the GBuffer (Nanite Proxy geometry)", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.HardwareRayTracing.Retrace.FarField", help:"Determines whether a second trace will be fired for far-field contribution (Default = 1)", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.ImportanceSample", help:"Whether to use Importance Sampling to generate probe trace directions.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.ImportanceSample.BRDFOctahedronResolution", help:"Resolution of the BRDF PDF octahedron per probe.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.ImportanceSample.HistoryDistanceThreshold", help:"", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.ImportanceSample.IncomingLighting", help:"Whether to Importance Sample incoming lighting to generate probe trace directions. When disabled, only the BRDF will be importance sampled.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.ImportanceSample.MinPDFToTrace", help:"Minimum normalized BRDF PDF to trace rays for. Larger values cause black corners, but reduce noise as more rays are able to be reassigned to an important direction.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.ImportanceSample.NumLevels", help:"Number of refinement levels to use for screen probe importance sampling. Currently only supported by the serial reference path in ScreenProbeGenerateRaysCS.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.ImportanceSample.ProbeRadianceHistory", help:"Whether to Importance Sample incoming lighting from last frame\'s filtered traces to generate probe trace directions. When disabled, the Radiance Cache will be used instead.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.InjectLightsToProbes", help:"Whether to inject local lights into probes. Experimental - fast but causes wrap-around lighting due to lack of directionality and SH ringing.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.IntegrationTileClassification", help:"Whether to use tile classification during diffuse integration. Tile Classification splits compute dispatches by VGPRs for better occupancy, but can introduce errors if implemented incorrectly.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.IrradianceFormat", help:"Prefilter irradiance format\n0 - SH3 slower\n1 - Octahedral probe. Faster, but reverts to SH3 when ShortRangeAO.ApplyDuringIntegration is enabled", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.LightSampleResolutionXY", help:"Number of light samples per screen probe, in one dimension. When the number of lights overlapping a pixel is larger, noise in the direct lighting will increase.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.MaterialAO", help:"Whether to apply Material Ambient Occlusion or Material Bent Normal to Lumen GI.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.MaxRayIntensity", help:"Clamps the maximum ray lighting intensity (with PreExposure) to reduce fireflies.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.MaxRoughnessToEvaluateRoughSpecular", help:"Maximum roughness value to evaluate rough specular in Screen Probe Gather. Lower values reduce GPU cost of integration, but also lose rough specular.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.MaxRoughnessToEvaluateRoughSpecularForFoliage", help:"Maximum roughness value to evaluate rough specular in Screen Probe Gather for foliage pixels, where foliage pixel is a pixel with two sided or subsurface shading model. Lower values reduce GPU cost of integration, but also lose rough specular.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.RadianceCache", help:"Whether to enable the Persistent world space Radiance Cache", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.RadianceCache.ClipmapDistributionBase", help:"Base of the Pow() that controls the size of each successive clipmap relative to the first.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.RadianceCache.ClipmapWorldExtent", help:"World space extent of the first clipmap", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.RadianceCache.GridResolution", help:"Resolution of the probe placement grid within each clipmap", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.RadianceCache.NumClipmaps", help:"Number of radiance cache clipmaps.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.RadianceCache.NumMipmaps", help:"Number of radiance cache mipmaps.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.RadianceCache.NumProbesToTraceBudget", help:"", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.RadianceCache.ProbeAtlasResolutionInProbes", help:"Number of probes along one dimension of the probe atlas cache texture. This controls the memory usage of the cache. Overflow currently results in incorrect rendering. Aligned to the next power of two.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.RadianceCache.ProbeResolution", help:"Resolution of the probe\'s 2d radiance layout. The number of rays traced for the probe will be ProbeResolution ^ 2", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.RadianceCache.ReprojectionRadiusScale", help:"", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.RadianceCache.Stats", help:"GPU print out Radiance Cache update stats.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.ReferenceMode", help:"When enabled, traces 1024 uniform rays per probe with no filtering, Importance Sampling or Radiance Caching.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.RoughSpecularSamplingMode", help:"Mode 0: use the diffuse SH sample as specular. Mode 1: sample the SH along the main GGX specular reflection vector.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.ScreenTraces", help:"Whether to trace against the screen before falling back to other tracing methods.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.ScreenTraces.HZBTraversal", help:"Whether to use HZB tracing for SSGI instead of fixed step count intersection. HZB tracing is much more accurate, in particular not missing thin features, but is about ~3x slower.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.ScreenTraces.HZBTraversal.FullResDepth", help:"Whether the HZB traversal should go all the way down to the full resolution depth, which is more accurate but adds incoherency to the inner loop.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.ScreenTraces.HZBTraversal.HistoryDepthTestRelativeThickness", help:"Distance between HZB trace hit and previous frame scene depth from which to allow hits, as a relative depth threshold.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.ScreenTraces.HZBTraversal.MaxIterations", help:"Max iterations for HZB tracing.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.ScreenTraces.HZBTraversal.NumThicknessStepsToDetermineCertainty", help:"Number of linear search steps to determine if a hit feature is thin and should be ignored.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.ScreenTraces.HZBTraversal.RelativeDepthThickness", help:"Determines depth thickness of objects hit by HZB tracing, as a relative depth threshold.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.ScreenTraces.HZBTraversal.SkipFoliageHits", help:"Whether to allow screen traces to hit Subsurface and TwoSided Foliage shading models. Can be used to work around aliasing from high frequency grass geometry.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.ScreenTraces.HZBTraversal.SkipHairHits", help:"Whether to allow screen traces to hit hair shading models. Can be used to work around aliasing from high frequency hair cards geometry.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.ScreenTraces.MinimumOccupancy", help:"Minimum number of threads still tracing before aborting the trace. Can be used for scalability to abandon traces that have a disproportionate cost.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.ScreenTraces.ThicknessScaleWhenNoFallback", help:"Larger scales effectively treat depth buffer surfaces as thicker for screen traces when there is no Distance Field present to resume the occluded ray.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.ShortRangeAO", help:"Whether to compute a short range, full resolution AO to add high frequency occlusion (contact shadows) which Screen Probes lack due to downsampling.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.ShortRangeAO.ApplyDuringIntegration", help:"Whether Screen Space Bent Normal should be applied during BRDF integration, which has higher quality but is before the temporal filter so causes streaking on moving objects.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.ShortRangeAO.HairScreenTrace", help:"Whether to trace against hair depth for hair casting shadow onto opaques.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.ShortRangeAO.HairVoxelTrace", help:"Whether to trace against hair voxel structure for hair casting shadow onto opaques.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.ShortRangeAO.HardwareRayTracing", help:"0. Screen space tracing for the full resolution Bent Normal (directional occlusion).1. Enable hardware ray tracing of the full resolution Bent Normal (directional occlusion). (Default)\n", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.ShortRangeAO.HardwareRayTracing.NormalBias", help:"Bias for HWRT Bent Normal to avoid self intersection", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.ShortRangeAO.MaxMultibounceAlbedo", help:"Maximum albedo used for the AO multi-bounce approximation. Useful for forcing near-white albedo to have some occlusion.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.ShortRangeAO.ScreenSpace.FoliageOcclusionStrength", help:"Maximum strength of ScreenSpaceBentNormal occlusion on foliage and subsurface pixels. Useful for reducing max occlusion to simulate subsurface scattering.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.ShortRangeAO.ScreenSpace.SlopeCompareToleranceScale", help:"Scales the slope threshold that screen space traces use to determine whether there was a hit.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.SpatialFilterHalfKernelSize", help:"Experimental", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.SpatialFilterMaxRadianceHitAngle", help:"In Degrees. Larger angles allow more filtering but lose contact shadows.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.SpatialFilterNumPasses", help:"Number of spatial filter passes", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.SpatialFilterPositionWeightScale", help:"Determines how far probes can be in world space while still filtering lighting", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.SpatialFilterProbes", help:"Whether to spatially filter probe traces to reduce noise.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.StochasticInterpolation", help:"Where to interpolate screen probes stochastically (1 sample) or bilinearly (4 samples)", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.Temporal", help:"Whether to use a temporal filter", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.Temporal.ClearHistoryEveryFrame", help:"Whether to clear the history every frame for debugging", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.Temporal.DebugForceTracesMoving", help:"", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.Temporal.DistanceThreshold", help:"Relative distance threshold needed to discard last frame\'s lighting results. Lower values reduce ghosting from characters when near a wall but increase flickering artifacts.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.Temporal.FastUpdateModeUseNeighborhoodClamp", help:"Whether to clamp history values to the current frame\'s screen space neighborhood, in areas around moving objects.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.Temporal.FractionOfLightingMovingForFastUpdateMode", help:"", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.Temporal.MaxFastUpdateModeAmount", help:"Maximum amount of fast-responding temporal filter to use when traces hit a moving object. Values closer to 1 cause more noise, but also faster reaction to scene changes.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.Temporal.MaxFramesAccumulated", help:"Lower values cause the temporal filter to propagate lighting changes faster, but also increase flickering from noise.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.Temporal.MaxRayDirections", help:"Number of possible random directions per pixel. Should be tweaked based on MaxFramesAccumulated.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.Temporal.NormalThreshold", help:"Maximum angle that the history texel\'s normal can be from the current pixel to accept it\'s history lighting, in degrees.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.Temporal.RejectBasedOnNormal", help:"Whether to reject history lighting based on their normal. Increases cost of the temporal filter but can reduce streaking especially around character feet.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.Temporal.RelativeSpeedDifferenceToConsiderLightingMoving", help:"", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.TemporalFilterProbes", help:"Whether to temporally filter probe traces to reduce noise.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.TemporalFilterProbes.HistoryDistanceThreshold", help:"", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.TemporalFilterProbes.HistoryWeight", help:"", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.TileDebugMode", help:"Display Lumen screen probe tile classification.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.TraceMeshSDFs", help:"Whether to trace against Mesh Signed Distance fields for Lumen\'s Screen Probe Gather.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.TracingOctahedronResolution", help:"Resolution of the tracing octahedron. Determines how many traces are done per probe.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.TwoSidedFoliageBackfaceDiffuse", help:"Whether to gather lighting along the backface for the Two Sided Foliage shading model, which adds some GPU cost. The final lighting is then DiffuseColor * FrontfaceLighting + SubsurfaceColor * BackfaceLighting. When disabled, SubsurfaceColor will simply be added to DiffuseColor instead.", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.VisualizeTraces", help:"Whether to visualize traces for the center screen probe, useful for debugging", type:"Var"}, {name: "r.Lumen.ScreenProbeGather.VisualizeTracesFreeze", help:"Whether to freeze updating the visualize trace data. Note that no changes to cvars or shaders will propagate until unfrozen.", type:"Var"}, {name: "r.Lumen.ScreenTracingSource", help:"Specifies the source texture for Lumen\'s screen trace hits\n0: Scene Color (no translucency and noise from small emissive elements)\n1: Anti-aliased Scene Color (translucency intersected with the opaque depths, less noise from small emissive elements)", type:"Var"}, {name: "r.Lumen.SkylightLeaking.Roughness", help:"Roughness used to sample the skylight leaking cubemap. A value of 0 gives no prefiltering of the skylight leaking, while larger values can be useful to hide sky features in the leaking.", type:"Var"}, {name: "r.Lumen.StereoOptimizations", help:"Whether to to share certain Lumen state between views during the instanced stereo rendering.", type:"Var"}, {name: "r.Lumen.Supported", help:"Whether Lumen is supported at all for the project, regardless of platform. This can be used to avoid compiling shaders and other load time overhead.", type:"Var"}, {name: "r.Lumen.SurfaceCache.HeightfieldCaptureMargin", help:"Amount to expand heightfield component bbox for card capture purposes.", type:"Var"}, {name: "r.Lumen.ThreadGroupSize32", help:"Whether to prefer dispatches in groups of 32 threads on HW which supports it (instead of standard 64).", type:"Var"}, {name: "r.Lumen.TraceDistanceScale", help:"Scales the tracing distance for all tracing methods and Lumen features, used by scalability.", type:"Var"}, {name: "r.Lumen.TraceMeshSDFs", help:"Whether Lumen should trace against Mesh Signed Distance fields. When enabled, Lumen\'s Software Tracing will be more accurate, but scenes with high instance density (overlapping meshes) will have high tracing costs. When disabled, lower resolution Global Signed Distance Field will be used instead.", type:"Var"}, {name: "r.Lumen.TraceMeshSDFs.Allow", help:"Whether Lumen should trace against Mesh Signed Distance fields. When enabled, Lumen\'s Software Tracing will be more accurate, but scenes with high instance density (overlapping meshes) will have high tracing costs. When disabled, lower resolution Global Signed Distance Field will be used instead.", type:"Var"}, {name: "r.Lumen.TraceMeshSDFs.TraceDistance", help:"Max trace distance against Mesh Distance Fields and Heightfields.", type:"Var"}, {name: "r.Lumen.TranslucencyReflections.ClipmapFadeSize", help:"Size in Radiance Cache probes of the dithered transition region between clipmaps", type:"Var"}, {name: "r.Lumen.TranslucencyReflections.FrontLayer.Allow", help:"Whether to render Lumen Reflections on the frontmost layer of Translucent Surfaces. Other layers will use the lower quality Radiance Cache method that can only produce glossy reflections.", type:"Var"}, {name: "r.Lumen.TranslucencyReflections.FrontLayer.DepthThreshold", help:"Depth test threshold used to determine whether the fragments being rendered match the single layer that reflections were calculated for. In float ULP units.", type:"Var"}, {name: "r.Lumen.TranslucencyReflections.FrontLayer.Enable", help:"Whether to render Lumen Reflections on the frontmost layer of Translucent Surfaces. Other layers will use the lower quality Radiance Cache method that can only produce glossy reflections.", type:"Var"}, {name: "r.Lumen.TranslucencyReflections.FrontLayer.EnableForProject", help:"Whether to render Lumen Reflections on the frontmost layer of Translucent Surfaces. Other layers will use the lower quality Radiance Cache method that can only produce glossy reflections.", type:"Var"}, {name: "r.Lumen.TranslucencyReflections.MarkDownsampleFactor", help:"Downsample factor for marking translucent surfaces in the Lumen Radiance Cache. Too low of factors will cause incorrect Radiance Cache coverage. Should be a power of 2.", type:"Var"}, {name: "r.Lumen.TranslucencyReflections.RadianceCache", help:"Whether to use the Radiance Cache to provide Lumen Reflections on Translucent Surfaces.", type:"Var"}, {name: "r.Lumen.TranslucencyReflections.ReprojectionRadiusScale", help:"Larger values treat the Radiance Cache lighting as more distant.", type:"Var"}, {name: "r.Lumen.TranslucencyVolume.Enable", help:"", type:"Var"}, {name: "r.Lumen.TranslucencyVolume.EndDistanceFromCamera", help:"", type:"Var"}, {name: "r.Lumen.TranslucencyVolume.GridCenterOffsetFromDepthBuffer", help:"Offset in grid units to move grid center sample out form the depth buffer along the Z direction. -1 means disabled. This reduces sample self intersection with geometry when tracing the global distance field buffer, and thus reduces flickering in those areas, as well as results in less leaking sometimes. Set to -1 to disable.", type:"Var"}, {name: "r.Lumen.TranslucencyVolume.GridDistributionLogZOffset", help:"", type:"Var"}, {name: "r.Lumen.TranslucencyVolume.GridDistributionLogZScale", help:"", type:"Var"}, {name: "r.Lumen.TranslucencyVolume.GridDistributionZScale", help:"", type:"Var"}, {name: "r.Lumen.TranslucencyVolume.GridPixelSize", help:"Size of a cell in the translucency grid, in pixels.", type:"Var"}, {name: "r.Lumen.TranslucencyVolume.HardwareRayTracing", help:"Enables hardware ray tracing for Lumen translucency volume (Default = 1)", type:"Var"}, {name: "r.Lumen.TranslucencyVolume.MaxRayIntensity", help:".", type:"Var"}, {name: "r.Lumen.TranslucencyVolume.OffsetThresholdToAcceptDepthBufferOffset", help:"Offset in grid units to accept a sample to be moved forward in front of the depth buffer. This is to avoid moving all samples behind the depth buffer forward which would affect the lighting of translucent and volumetric at edges of mesh. Default to 1.0 to only allow moving the first layer of froxel intersecting depth.", type:"Var"}, {name: "r.Lumen.TranslucencyVolume.RadianceCache", help:"Whether to use the Radiance Cache for Translucency", type:"Var"}, {name: "r.Lumen.TranslucencyVolume.RadianceCache.ClipmapDistributionBase", help:"Base of the Pow() that controls the size of each successive clipmap relative to the first.", type:"Var"}, {name: "r.Lumen.TranslucencyVolume.RadianceCache.ClipmapWorldExtent", help:"World space extent of the first clipmap", type:"Var"}, {name: "r.Lumen.TranslucencyVolume.RadianceCache.FarField", help:"Whether to trace against the FarField representation", type:"Var"}, {name: "r.Lumen.TranslucencyVolume.RadianceCache.GridResolution", help:"Resolution of the probe placement grid within each clipmap", type:"Var"}, {name: "r.Lumen.TranslucencyVolume.RadianceCache.NumMipmaps", help:"Number of radiance cache mipmaps.", type:"Var"}, {name: "r.Lumen.TranslucencyVolume.RadianceCache.NumProbesToTraceBudget", help:"", type:"Var"}, {name: "r.Lumen.TranslucencyVolume.RadianceCache.ProbeAtlasResolutionInProbes", help:"Number of probes along one dimension of the probe atlas cache texture. This controls the memory usage of the cache. Overflow currently results in incorrect rendering. Aligned to the next power of two.", type:"Var"}, {name: "r.Lumen.TranslucencyVolume.RadianceCache.ProbeResolution", help:"Resolution of the probe\'s 2d radiance layout. The number of rays traced for the probe will be ProbeResolution ^ 2", type:"Var"}, {name: "r.Lumen.TranslucencyVolume.RadianceCache.ReprojectionRadiusScale", help:"", type:"Var"}, {name: "r.Lumen.TranslucencyVolume.RadianceCache.Stats", help:"GPU print out Radiance Cache update stats.", type:"Var"}, {name: "r.Lumen.TranslucencyVolume.RadianceCache.Visualize", help:"", type:"Var"}, {name: "r.Lumen.TranslucencyVolume.SpatialFilter", help:"Whether to use a spatial filter on the volume traces.", type:"Var"}, {name: "r.Lumen.TranslucencyVolume.SpatialFilter.SampleCount", help:"When r.Lumen.TranslucencyVolume.SpatialFilter.Mode=1, this controls the effective sample count of the separable filter; that will be SampleCount*2+1. Default to a [-3,3] filter of 7 sample.", type:"Var"}, {name: "r.Lumen.TranslucencyVolume.SpatialFilter.StandardDeviation", help:"When r.Lumen.TranslucencyVolume.SpatialFilter.Mode=1, The standard deviation of the Gaussian filter in Pixel. If a large value, the filter will become a cube filter. While when getting closer to 0, the filter will become a sharper Gaussian filter. Default to 5 meaning not a sharp flilter, close to a box filter for the default SampleCount of 3.", type:"Var"}, {name: "r.Lumen.TranslucencyVolume.Temporal.HistoryWeight", help:"How much the history value should be weighted each frame. This is a tradeoff between visible jittering and responsiveness.", type:"Var"}, {name: "r.Lumen.TranslucencyVolume.Temporal.Jitter", help:"Whether to apply jitter to each frame\'s translucency GI computation, achieving temporal super sampling.", type:"Var"}, {name: "r.Lumen.TranslucencyVolume.Temporal.MaxRayDirections", help:"Number of possible random directions from froxel center when sampling the lumen scene.", type:"Var"}, {name: "r.Lumen.TranslucencyVolume.TemporalReprojection", help:"Whether to use temporal reprojection.", type:"Var"}, {name: "r.Lumen.TranslucencyVolume.TraceFromVolume", help:"Whether to ray trace from the translucency volume\'s voxels to gather indirect lighting. Only makes sense to disable if TranslucencyVolume.RadianceCache is enabled.", type:"Var"}, {name: "r.Lumen.TranslucencyVolume.TraceStepFactor", help:".", type:"Var"}, {name: "r.Lumen.TranslucencyVolume.TracingOctahedronResolution", help:"Resolution of the tracing octahedron. Determines how many traces are done per voxel of the translucency lighting volume.", type:"Var"}, {name: "r.Lumen.TranslucencyVolume.VoxelTraceStartDistanceScale", help:".", type:"Var"}, {name: "r.Lumen.UsesLightFunctionAtlas", help:"Whether the light function atlas is sampled for lumen scene lighting.", type:"Var"}, {name: "r.Lumen.Visualize", help:"Lumen scene visualization mode.\n0 - Disable\n1 - Overview\n2 - Performance Overview\n3 - Lumen Scene\n4 - Reflection View\n5 - Surface Cache Coverage\n6 - Geometry normals\n7 - Dedicated Reflection Rays\n8 - Albedo\n9 - Normals\n10 - Emissive\n11 - Opacity (disable alpha masking)\n12 - Card weights\n13 - Direct lighting\n14 - Indirect lighting\n15 - Local Position (hardware ray-tracing only)\n16 - Velocity (hardware ray-tracing only)\n17 - Direct lighting updates\n18 - Indirect lighting updates\n19 - Last used pages\n20 - Last used high res pages\n21 - Card tile shadow downsample factor", type:"Var"}, {name: "r.Lumen.Visualize.CardGenerationCluster", help:"", type:"Var"}, {name: "r.Lumen.Visualize.CardGenerationClusterScale", help:"", type:"Var"}, {name: "r.Lumen.Visualize.CardGenerationMaxSurfel", help:"", type:"Var"}, {name: "r.Lumen.Visualize.CardGenerationSurfels", help:"", type:"Var"}, {name: "r.Lumen.Visualize.CardGenerationSurfelScale", help:"", type:"Var"}, {name: "r.Lumen.Visualize.CardInterpolateInfluenceRadius", help:"", type:"Var"}, {name: "r.Lumen.Visualize.CardPlacement", help:"", type:"Var"}, {name: "r.Lumen.Visualize.CardPlacementDirection", help:"Visualize only a single card direction.", type:"Var"}, {name: "r.Lumen.Visualize.CardPlacementDistance", help:"", type:"Var"}, {name: "r.Lumen.Visualize.CardPlacementIndex", help:"Visualize only a single card per mesh.", type:"Var"}, {name: "r.Lumen.Visualize.CardPlacementLOD", help:"0 - all\n1 - only primitives\n2 - only merged instances\n3 - only merged components\n4 - only far field\n", type:"Var"}, {name: "r.Lumen.Visualize.CardPlacementPrimitives", help:"Whether to visualize primitive bounding boxes.\n", type:"Var"}, {name: "r.Lumen.Visualize.ConeAngle", help:"Visualize cone angle, in degrees.", type:"Var"}, {name: "r.Lumen.Visualize.ConeStepFactor", help:"Cone step scale on sphere radius step size.", type:"Var"}, {name: "r.Lumen.Visualize.CullingMode", help:"Visualize culling mode:\n0 - none\n1 - cull back facing triangles\n2 - cull front facing triangles", type:"Var"}, {name: "r.Lumen.Visualize.GridPixelSize", help:"", type:"Var"}, {name: "r.Lumen.Visualize.HardwareRayTracing", help:"Enables visualization of hardware ray tracing (Default = 1)", type:"Var"}, {name: "r.Lumen.Visualize.HardwareRayTracing.BucketMaterials", help:"Determines whether a secondary traces will be bucketed for coherent material access (default = 1", type:"Var"}, {name: "r.Lumen.Visualize.HardwareRayTracing.Compact", help:"Determines whether a second trace will be compacted before traversal (default = 1", type:"Var"}, {name: "r.Lumen.Visualize.HardwareRayTracing.DeferredMaterial", help:"Enables deferred material pipeline (Default = 1)", type:"Var"}, {name: "r.Lumen.Visualize.HardwareRayTracing.DeferredMaterial.TileDimension", help:"Determines the tile dimension for material sorting (Default = 64)", type:"Var"}, {name: "r.Lumen.Visualize.HardwareRayTracing.GroupCount", help:"Determines the active group count when dispatching raygen shader (default = 4096", type:"Var"}, {name: "r.Lumen.Visualize.HardwareRayTracing.Retrace.FarField", help:"Determines whether a second trace will be fired for far-field contribution (default = 1", type:"Var"}, {name: "r.Lumen.Visualize.HardwareRayTracing.Retrace.HitLighting", help:"Determines whether a second trace will be fired for hit-lighting for invalid surface-cache hits (default = 1", type:"Var"}, {name: "r.Lumen.Visualize.HardwareRayTracing.ThreadCount", help:"Determines the active group count when dispatching raygen shader (default = 64", type:"Var"}, {name: "r.Lumen.Visualize.HiResSurface", help:"Whether visualization should sample highest available surface data or use lowest res always resident pages.", type:"Var"}, {name: "r.Lumen.Visualize.IndirectDiffuse", help:"Visualize Lumen Indirect Diffuse.", type:"Var"}, {name: "r.Lumen.Visualize.MaxMeshSDFTraceDistance", help:"Max trace distance for Lumen scene visualization rays. Values below 0 will automatically derrive this from cone angle.", type:"Var"}, {name: "r.Lumen.Visualize.MaxTraceDistance", help:"", type:"Var"}, {name: "r.Lumen.Visualize.MinTraceDistance", help:"", type:"Var"}, {name: "r.Lumen.Visualize.RayTracingGroups", help:"Visualize bounds for ray tracing groups. Control visualization distance using r.Lumen.Visualize.CardPlacementDistance.\n0 - disable\n1 - all groups\n2 - groups with a single instance", type:"Var"}, {name: "r.Lumen.Visualize.SurfaceCacheFeedback", help:"Whether visualization should write surface cache feedback requests into the feedback buffer.", type:"Var"}, {name: "r.Lumen.Visualize.TraceMeshSDFs", help:"Whether to use Mesh SDF tracing for lumen scene visualization.", type:"Var"}, {name: "r.Lumen.Visualize.TraceRadianceCache", help:"Whether to use radiance cache for Lumen scene visualization.", type:"Var"}, {name: "r.Lumen.Visualize.UseShaderPrintForTraces", help:"Whether to use ShaderPrint or custom line renderer for trace visualization.", type:"Var"}, {name: "r.Lumen.Visualize.ViewMode", help:"When the viewport view-mode is set to \'Lumen Visualization\', this command specifies which of the various channels to display. Values entered other than the allowed values shown below will be ignored.\n Overview\n PerformanceOverview\n LumenScene\n GeometryNormals\n ReflectionView\n SurfaceCache\n DedicatedReflectionRays", type:"Var"}, {name: "r.Lumen.WaveOps", help:"Whether Lumen should use wave ops if supported.", type:"Var"}, {name: "r.LumenScene.DirectLighting", help:"Whether to compute direct ligshting for surface cache.", type:"Var"}, {name: "r.LumenScene.DirectLighting.BatchShadows", help:"Whether to enable batching lumen light shadow passes. This cvar mainly exists for debugging.", type:"Var"}, {name: "r.LumenScene.DirectLighting.CloudTransmittance", help:"Whether to sample cloud shadows when avaible.", type:"Var"}, {name: "r.LumenScene.DirectLighting.CullToTileDepthRange", help:"Whether to calculate each Card Tile\'s depth range and use it for tighter light culling.", type:"Var"}, {name: "r.LumenScene.DirectLighting.GlobalSDF.ShadowRayBias", help:"Bias for tracing global SDF shadow rays.", type:"Var"}, {name: "r.LumenScene.DirectLighting.HardwareRayTracing", help:"Enables hardware ray tracing for Lumen direct lighting (Default = 1)", type:"Var"}, {name: "r.LumenScene.DirectLighting.HardwareRayTracing.AdaptiveShadowTracing", help:"Whether to allow shooting fewer shadow rays for light tiles that were uniformly shadowed in the last lighting update.", type:"Var"}, {name: "r.LumenScene.DirectLighting.HardwareRayTracing.HeightfieldProjectionBias", help:"Applies a projection bias such that an occlusion ray starts on the ray-tracing heightfield representation.\n", type:"Var"}, {name: "r.LumenScene.DirectLighting.HardwareRayTracing.HeightfieldProjectionBiasSearchRadius", help:"Determines the search radius for heightfield projection bias. Larger search radius corresponds to increased traversal cost (default = 256).\n", type:"Var"}, {name: "r.LumenScene.DirectLighting.HardwareRayTracing.ShadowRayBias", help:"Bias for hardware ray tracing shadow rays.", type:"Var"}, {name: "r.LumenScene.DirectLighting.Heightfield.ShadowRayBias", help:"Bias for tracing heightfield shadow rays.", type:"Var"}, {name: "r.LumenScene.DirectLighting.MaxLightsPerTile", help:"Max number of lights to pick per tile based on their intenstiy and attenuation. Valid values are 4/8/16/32. Increasing this value will cause more memory usage and will slow down Lumen surface cache direct lighting pass.", type:"Var"}, {name: "r.LumenScene.DirectLighting.MeshSDF.ShadowRayBias", help:"Bias for tracing mesh SDF shadow rays.", type:"Var"}, {name: "r.LumenScene.DirectLighting.OffscreenShadowing.TraceMeshSDFs", help:"Whether to trace against Mesh Signed Distance Fields for offscreen shadowing, or to trace against the lower resolution Global SDF.", type:"Var"}, {name: "r.LumenScene.DirectLighting.OffscreenShadowingTraceStepFactor", help:"", type:"Var"}, {name: "r.LumenScene.DirectLighting.Stochastic", help:"Whether to enable stochastic lighting for Lumen scene (experimental).", type:"Var"}, {name: "r.LumenScene.DirectLighting.Stochastic.Debug", help:"Enable debug print for Lumen stochastic pipeline.", type:"Var"}, {name: "r.LumenScene.DirectLighting.Stochastic.MinWeight", help:"Determines minimal sample influence on final texels. Used to skip samples which would have minimal impact to the final image even if light is fully visible.", type:"Var"}, {name: "r.LumenScene.DirectLighting.Stochastic.SamplePerTexel", help:"Number of light sample per texel for Lumen direct lighting with stochastic selection.", type:"Var"}, {name: "r.LumenScene.DirectLighting.Stochastic.Temporal", help:"Enable temporal filtering.", type:"Var"}, {name: "r.LumenScene.DirectLighting.Stochastic.Temporal.MaxFramesAccumulated", help:"Max history length when accumulating frames. Lower values have less ghosting, but more noise.", type:"Var"}, {name: "r.LumenScene.DirectLighting.Stochastic.Temporal.NeighborhoodClampScale", help:"Scales how permissive is neighborhood clamp. Higher values cause more ghosting, but allow smoother temporal accumulation.", type:"Var"}, {name: "r.LumenScene.DirectLighting.UpdateFactor", help:"Controls for how many texels direct lighting will be updated every frame. Texels = SurfaceCacheTexels / Factor.", type:"Var"}, {name: "r.LumenScene.DumpStats", help:"Whether to log Lumen scene stats on the next frame. 2 - dump mesh DF. 3 - dump LumenScene objects.", type:"Var"}, {name: "r.LumenScene.FarField", help:"Enable/Disable Lumen far-field ray tracing.", type:"Var"}, {name: "r.LumenScene.FarField.FarFieldDitherScale", help:"Dither region between near and far field in world space units.", type:"Var"}, {name: "r.LumenScene.FarField.MaxTraceDistance", help:"Maximum hit-distance for Lumen far-field ray tracing (Default = 1.0e6).", type:"Var"}, {name: "r.LumenScene.FarField.ReferencePos.Z", help:"Far-field reference position in Z (default = 100000.0)", type:"Var"}, {name: "r.LumenScene.FastCameraMode", help:"Whether to update the Lumen Scene for fast camera movement - lower quality, faster updates so lighting can keep up with the camera.", type:"Var"}, {name: "r.LumenScene.GlobalSDF.ClipmapExtent", help:"Global Distance Field first clipmap extent when Lumen is enabled.", type:"Var"}, {name: "r.LumenScene.GlobalSDF.CoveredExpandSurfaceScale", help:"Scales the half voxel SDF expand used by the Global SDF to reconstruct surfaces that are thinner than the distance between two voxels, erring on the side of over-occlusion.", type:"Var"}, {name: "r.LumenScene.GlobalSDF.DitheredTransparencyStepThreshold", help:"Per-step stochastic semi-transparency threshold, for tracing users that have dithered transparency enabled, for regions of space that only contain Two Sided Mesh SDFs.", type:"Var"}, {name: "r.LumenScene.GlobalSDF.DitheredTransparencyTraceThreshold", help:"Per-trace stochastic semi-transparency threshold, for tracing users that have dithered transparency enabled, for regions of space that only contain Two Sided Mesh SDFs. Anything less than 1 causes leaking.", type:"Var"}, {name: "r.LumenScene.GlobalSDF.NotCoveredExpandSurfaceScale", help:"Scales the half voxel SDF expand used by the Global SDF to reconstruct surfaces that are thinner than the distance between two voxels, for regions of space that only contain Two Sided Mesh SDFs.", type:"Var"}, {name: "r.LumenScene.GlobalSDF.NotCoveredMinStepScale", help:"Scales the min step size to improve performance, for regions of space that only contain Two Sided Mesh SDFs.", type:"Var"}, {name: "r.LumenScene.GlobalSDF.Resolution", help:"Global Distance Field resolution when Lumen is enabled.", type:"Var"}, {name: "r.LumenScene.GlobalSDF.SimpleCoverageBasedExpand", help:"Whether to use simple coverage based surface expansion. Less accurate but does not sample the coverage texture.", type:"Var"}, {name: "r.LumenScene.GPUDrivenUpdate", help:"Whether to use GPU to update Lumen Scene. Work in progress.", type:"Var"}, {name: "r.LumenScene.Heightfield.CullForView", help:"Enables Heightfield culling (default = 1)", type:"Var"}, {name: "r.LumenScene.Heightfield.FroxelCulling", help:"Enables Heightfield froxel view culling (default = 1)", type:"Var"}, {name: "r.LumenScene.Heightfield.MaxTracingSteps", help:"Sets the maximum steps for heightfield (Landscape) software ray tracing (default = 32)", type:"Var"}, {name: "r.LumenScene.Heightfield.ReceiverBias", help:"Extra bias for Landscape surface points. Helps to fix mismatching LOD artifacts between fixed LOD in Surface Cache and Landscape CLOD.", type:"Var"}, {name: "r.LumenScene.Heightfield.Tracing", help:"Enables heightfield (Landscape) software ray tracing (default = 1)", type:"Var"}, {name: "r.LumenScene.Lighting.AsyncCompute", help:"Whether to run LumenSceneLighting on the compute pipe if possible.", type:"Var"}, {name: "r.LumenScene.Lighting.Feedback", help:"Whether to prioritize surface cache lighting updates based on the feedback.", type:"Var"}, {name: "r.LumenScene.Lighting.ForceLightingUpdate", help:"Force full Lumen Scene Lighting update every frame. Useful for debugging", type:"Var"}, {name: "r.LumenScene.Lighting.Stats", help:"GPU print out Lumen lighting update stats.", type:"Var"}, {name: "r.LumenScene.MeshCardsPerTask", help:"How many mesh cards to process per single surface cache update task.", type:"Var"}, {name: "r.LumenScene.ParallelUpdate", help:"Whether to run the Lumen Scene update in parallel.", type:"Var"}, {name: "r.LumenScene.PrimitivesPerTask", help:"How many primitives to process per single surface cache update task.", type:"Var"}, {name: "r.LumenScene.PropagateGlobalLightingChange", help:"Whether to detect big scene lighting changes and speedup Lumen update for those frames.", type:"Var"}, {name: "r.LumenScene.Radiosity", help:"Whether to enable the Radiosity, which is an indirect lighting gather from the Surface Cache that provides multibounce diffuse.", type:"Var"}, {name: "r.LumenScene.Radiosity.DistanceFieldSurfaceBias", help:".", type:"Var"}, {name: "r.LumenScene.Radiosity.DistanceFieldSurfaceSlopeBias", help:".", type:"Var"}, {name: "r.LumenScene.Radiosity.HardwareRayTracing", help:"Enables hardware ray tracing for radiosity (default = 1).", type:"Var"}, {name: "r.LumenScene.Radiosity.HardwareRayTracing.SlopeSurfaceBias", help:".", type:"Var"}, {name: "r.LumenScene.Radiosity.HardwareRayTracing.SurfaceBias", help:".", type:"Var"}, {name: "r.LumenScene.Radiosity.HemisphereProbeResolution", help:"Number of traces along one dimension of the hemisphere probe layout.", type:"Var"}, {name: "r.LumenScene.Radiosity.MaxRayIntensity", help:"Clamps Radiosity trace intensity, relative to current view exposure. Useful for reducing artifacts from small bright emissive sources, but loses energy and adds view dependence.", type:"Var"}, {name: "r.LumenScene.Radiosity.ProbeOcclusion", help:"Whether to depth test against the probe hit depths during interpolation and filtering to reduce leaking. Not available with Software Ray Tracing due to imprecision.", type:"Var"}, {name: "r.LumenScene.Radiosity.ProbeOcclusionStrength", help:"Strength of probe occlusion. 0 = No probe occlusion, 1 = Attempt to stop all leaking, but has self-occlusion artifacts, .5 (default) = tradeoff between the extremes.", type:"Var"}, {name: "r.LumenScene.Radiosity.ProbePlaneWeighting", help:"Whether to weight Radiosity probes by plane distance, useful to prevent leaking.", type:"Var"}, {name: "r.LumenScene.Radiosity.ProbeSpacing", help:"Distance between probes, in Surface Cache texels", type:"Var"}, {name: "r.LumenScene.Radiosity.SpatialFilterProbes", help:"Whether to spatially filter Radiosity probes. Filtering reduces noise but increases leaking.", type:"Var"}, {name: "r.LumenScene.Radiosity.SpatialFilterProbes.KernelSize", help:"Larger kernels reduce noise but increase leaking.", type:"Var"}, {name: "r.LumenScene.Radiosity.SpatialFilterProbes.PlaneWeightingDepthScale", help:"Controls the distance at which probes can be interpolated from. Higher values introduce leaking.", type:"Var"}, {name: "r.LumenScene.Radiosity.Temporal", help:"Whether to use temporal super sampling on Radiosity. Increases quality, but also adds latency to the speed that lighting changes propagate, and animated noise in the results.", type:"Var"}, {name: "r.LumenScene.Radiosity.Temporal.FixedJitterIndex", help:"If zero or greater, overrides the temporal jitter index with a fixed index. Useful for debugging and inspecting sampling patterns.", type:"Var"}, {name: "r.LumenScene.Radiosity.Temporal.MaxFramesAccumulated", help:"Lower values cause the temporal filter to propagate lighting changes faster, but also increase flickering from noise.", type:"Var"}, {name: "r.LumenScene.Radiosity.UpdateFactor", help:"Controls for how many texels radiosity will be updated every frame. Texels = SurfaceCacheTexels / Factor.", type:"Var"}, {name: "r.LumenScene.Radiosity.VisualizeProbeRadius", help:"Radius of a visualized radiosity probe.", type:"Var"}, {name: "r.LumenScene.Radiosity.VisualizeProbes", help:"Whether to visualize radiosity probes.", type:"Var"}, {name: "r.LumenScene.Stats", help:"Display various Lumen GPU Scene stats for debugging.", type:"Var"}, {name: "r.LumenScene.SurfaceCache.AtlasSize", help:"Surface cache card atlas size.", type:"Var"}, {name: "r.LumenScene.SurfaceCache.CardCaptureEnableInvalidation", help:"Whether to enable manual card recapture through InvalidateSurfaceCacheForPrimitive().\n", type:"Var"}, {name: "r.LumenScene.SurfaceCache.CardCaptureFactor", help:"Controls how many texels can be captured per frame. Texels = SurfaceCacheTexels / Factor.", type:"Var"}, {name: "r.LumenScene.SurfaceCache.CardCaptureMargin", help:"How far from Lumen scene range start to capture cards.", type:"Var"}, {name: "r.LumenScene.SurfaceCache.CardCaptureRefreshFraction", help:"Fraction of card capture budget allowed to be spent on re-capturing existing pages in order to refresh surface cache materials.\n0 disables card refresh.", type:"Var"}, {name: "r.LumenScene.SurfaceCache.CardCapturesPerFrame", help:"", type:"Var"}, {name: "r.LumenScene.SurfaceCache.CardFixedDebugResolution", help:"Lumen card resolution", type:"Var"}, {name: "r.LumenScene.SurfaceCache.CardMaxResolution", help:"Maximum card resolution in Lumen Scene", type:"Var"}, {name: "r.LumenScene.SurfaceCache.CardMaxTexelDensity", help:"Lumen card texels per world space distance", type:"Var"}, {name: "r.LumenScene.SurfaceCache.CardMinResolution", help:"Minimum mesh card size resolution to be visible in Lumen Scene", type:"Var"}, {name: "r.LumenScene.SurfaceCache.CardTexelDensityScale", help:"Lumen card texels per world space distance", type:"Var"}, {name: "r.LumenScene.SurfaceCache.Compress", help:"Whether to use run time compression for surface cache.\n0 - Disabled\n1 - Compress using UAV aliasing if supported\n2 - Compress using CopyTexture (may be very slow on some RHIs)\n", type:"Var"}, {name: "r.LumenScene.SurfaceCache.FarField.CardDistance", help:"Far Field Lumen card culling distance", type:"Var"}, {name: "r.LumenScene.SurfaceCache.FarField.CardTexelDensity", help:"Far Field Lumen card texels per world space unit", type:"Var"}, {name: "r.LumenScene.SurfaceCache.Feedback", help:"Whether to use surface cache feedback to selectively map higher quality surface cache pages.", type:"Var"}, {name: "r.LumenScene.SurfaceCache.Feedback.MinPageHits", help:"Min number of page hits to demand a new page.", type:"Var"}, {name: "r.LumenScene.SurfaceCache.Feedback.ResLevelBias", help:"Bias resolution of on demand surface cache pages.", type:"Var"}, {name: "r.LumenScene.SurfaceCache.Feedback.TileSize", help:"One surface cache feedback element will be writen out per tile. Aligned to a power of two.", type:"Var"}, {name: "r.LumenScene.SurfaceCache.Feedback.UniqueElements", help:"Limit of unique surface cache feedback elements. Used to resize buffers.", type:"Var"}, {name: "r.LumenScene.SurfaceCache.ForceEvictHiResPages", help:"Evict all optional hi-res surface cache pages.", type:"Var"}, {name: "r.LumenScene.SurfaceCache.Freeze", help:"Freeze surface cache updates for debugging.\n", type:"Var"}, {name: "r.LumenScene.SurfaceCache.FreezeUpdateFrame", help:"Keep updating the same subset of surface cache for debugging and profiling.\n", type:"Var"}, {name: "r.LumenScene.SurfaceCache.LogUpdates", help:"Whether to log Lumen surface cache updates.\n2 - will log mesh names.", type:"Var"}, {name: "r.LumenScene.SurfaceCache.MeshCardsCullFaces", help:"", type:"Var"}, {name: "r.LumenScene.SurfaceCache.MeshCardsDebugSingleCard", help:"Spawn only a specified card on mesh. Useful for debugging.", type:"Var"}, {name: "r.LumenScene.SurfaceCache.MeshCardsMergeComponents", help:"Whether to merge all components with the same RayTracingGroupId into a single MeshCards.", type:"Var"}, {name: "r.LumenScene.SurfaceCache.MeshCardsMergedCardMinSurfaceArea", help:"Minimum area to spawn a merged card.", type:"Var"}, {name: "r.LumenScene.SurfaceCache.MeshCardsMergedMaxWorldSize", help:"Only merged bounds less than this size on any axis are considered, since Lumen Scene streaming relies on object granularity.", type:"Var"}, {name: "r.LumenScene.SurfaceCache.MeshCardsMergedResolutionScale", help:"Scale on the resolution calculation for a merged MeshCards. This compensates for the merged box getting a higher resolution assigned due to being closer to the viewer.", type:"Var"}, {name: "r.LumenScene.SurfaceCache.MeshCardsMergeInstances", help:"Whether to merge all instances of a Instanced Static Mesh Component into a single MeshCards.", type:"Var"}, {name: "r.LumenScene.SurfaceCache.MeshCardsMergeInstancesMaxSurfaceAreaRatio", help:"Only merge if the (combined box surface area) / (summed instance box surface area) < MaxSurfaceAreaRatio", type:"Var"}, {name: "r.LumenScene.SurfaceCache.MeshCardsMinSize", help:"Minimum mesh cards world space size to be included in Lumen Scene.", type:"Var"}, {name: "r.LumenScene.SurfaceCache.MeshTargetScreenSize", help:"Controls which LOD level will be used to capture static meshes into surface cache.", type:"Var"}, {name: "r.LumenScene.SurfaceCache.Nanite.AsyncRasterization", help:"Whether to use Nanite async rasterization for Mesh Card capture.", type:"Var"}, {name: "r.LumenScene.SurfaceCache.Nanite.MultiView", help:"Toggle multi view Lumen Nanite Card capture for debugging.", type:"Var"}, {name: "r.LumenScene.SurfaceCache.NaniteLODScaleFactor", help:"Controls which LOD level will be used to capture Nanite meshes into surface cache.", type:"Var"}, {name: "r.LumenScene.SurfaceCache.NumFramesToKeepUnusedPages", help:"Num frames to keep unused pages in surface cache.", type:"Var"}, {name: "r.LumenScene.SurfaceCache.RecaptureEveryFrame", help:"", type:"Var"}, {name: "r.LumenScene.SurfaceCache.RemovesPerFrame", help:"How many mesh cards removes can be done per frame.", type:"Var"}, {name: "r.LumenScene.SurfaceCache.ResampleLighting", help:"Whether to resample card lighting when cards are reallocated. This is needed for Radiosity temporal accumulation but can be disabled for debugging.", type:"Var"}, {name: "r.LumenScene.SurfaceCache.Reset", help:"Reset all atlases and captured cards.\n", type:"Var"}, {name: "r.LumenScene.SurfaceCache.ResetEveryNthFrame", help:"Continuously reset all atlases and captured cards every N-th frame.\n", type:"Var"}, {name: "r.LumenScene.UpdateViewOrigin", help:"Whether to update view origin for voxel lighting and global distance field. Useful for debugging.", type:"Var"}, {name: "r.LumenScene.UploadEveryFrame", help:"Whether to upload the entire Lumen Scene\'s data every frame. Useful for debugging.", type:"Var"}, {name: "r.LumenScene.ViewOriginDistanceThreshold", help:"Distance threshold below which views\' origins are considered identical. Used for streaming request with multiple views. Default 100 (= 1 meter)", type:"Var"}, {name: "r.LumenScene.VisualizePrimitiveGroups", help:"Visualize Lumen GPU Scene Primitive Groups.", type:"Var"}, {name: "r.LUT.UpdateEveryFrame", help:"Controls whether the tonemapping LUT pass is executed every frame.", type:"Var"}, {name: "r.Material.CullIntermediateUniformExpressions", help:"Enables culling of intermediate uniform expressions, reducing preshader count, saving performance", type:"Var"}, {name: "r.Material.DefaultAutoMaterialUsage", help:"Whether new Materials should automatically set usage flags in the Editor.", type:"Var"}, {name: "r.Material.EnableTranslationLogFile", help:"Enables material translation log file generation for tracking materials translation time (written to \"ShaderDebugInfo/MaterialTranslationLog-X.csv\").", type:"Var"}, {name: "r.Material.EnergyConservation", help:"Enable energy conservation for legacy materials (project settings, read only). Please note that when Substrate is enabled, energy conservation is forced to enabled.", type:"Var"}, {name: "r.Material.ExcludeNonPipelinedShaders", help:"if != 0, standalone shaders that are also part of FShaderPipeline will not be compiled (default).", type:"Var"}, {name: "r.Material.PedanticErrorChecksEnabled", help:"Enables material compilation pedantic error checking", type:"Var"}, {name: "r.Material.PreshaderGapInterval", help:"Insert an empty element in the preshader buffer every specified number of elements in the buffer. Workaround for a shader compiler register overflow bug.", type:"Var"}, {name: "r.Material.RoughDiffuse", help:"Enable rough diffuse material.", type:"Var"}, {name: "r.Material.ShaderMapDump", help:"Outputs a textual dump of all shader maps found for the given named material (specified by path).\nNote that this will include any instances of said material created by a MaterialInstance.\nFiles (.txt extension) will be dumped to Saved\\MaterialShaderMaps named with the DDC key hash.\n", type:"Var"}, {name: "r.Material.Translator.DumpUseGraph", help:"Whether the material translator should emit the Module IR \'Uses\' graph in Graphviz Dot syntax (to \'MaterialIRDumpGraph.dot\').", type:"Var"}, {name: "r.Material.Translator.DumpUseGraphOpts.EnableSuccessors", help:"Whether the Material Module IR \'Uses\' graph should also display \'Instruction Next\' edges.", type:"Var"}, {name: "r.Material.Translator.EnableNew", help:"Controls whether to enable the new material translator prototype (WIP) .", type:"Var"}, {name: "r.MaterialEditor.AllowIgnoringCompilationErrors", help:"Allow ignoring compilation errors of platform shaders and derived materials.", type:"Var"}, {name: "r.MaterialEditor.AnalyticDeriv", help:"Enable analytic derivative code generation.", type:"Var"}, {name: "r.MaterialEditor.AnalyticDeriv.DebugEmitInvalidDerivTokens", help:"Debug: Emit \'$\' tokens to mark expressions with invalid derivatives.\n", type:"Var"}, {name: "r.MaterialEditor.AnalyticDeriv.DebugGenerateAllFunctions", help:"Debug: Generate all derivative functions.", type:"Var"}, {name: "r.MaterialEditor.AnalyticDeriv.DebugTextureSample", help:"Debug: Instrument texture sampling with modes that can be controlled with r.GeneralPurposeTweak/r.GeneralPurposeTweak2.", type:"Var"}, {name: "r.MaterialEditor.ContextMenu.CategoryWeight", help:"The amount of weight placed on categories that match what the user has typed in", type:"Var"}, {name: "r.MaterialEditor.ContextMenu.DescriptionWeight", help:"The amount of weight placed on description that match what the user has typed in", type:"Var"}, {name: "r.MaterialEditor.ContextMenu.KeywordWeight", help:"The amount of weight placed on search items keyword", type:"Var"}, {name: "r.MaterialEditor.ContextMenu.NodeTitleWeight", help:"The amount of weight placed on the search items title", type:"Var"}, {name: "r.MaterialEditor.ContextMenu.PercentageMatchWeightMultiplier", help:"A multiplier for how much weight to give something based on the percentage match it is", type:"Var"}, {name: "r.MaterialEditor.ContextMenu.ShorterMatchWeight", help:"Increasing this weight will make shorter words preferred", type:"Var"}, {name: "r.MaterialEditor.ContextMenu.StartsWithBonusWeightMultiplier", help:"The multiplier given if the keyword starts with a term the user typed in", type:"Var"}, {name: "r.MaterialEditor.ContextMenu.WholeMatchLocalizedWeightMultiplier", help:"The multiplier given if there is an exact localized match to the search term", type:"Var"}, {name: "r.MaterialEditor.ContextMenu.WholeMatchWeightMultiplier", help:"The multiplier given if there is an exact match to the search term", type:"Var"}, {name: "r.MaterialEditor.LWCEnabled", help:"Enable generation of LWC values in materials. If disabled, materials will perform all operations at float-precision", type:"Var"}, {name: "r.MaterialEditor.LWCTruncateMode", help:"Whether or not the material compiler respects the truncate LWC node or automatic transforms.\n0: no truncate (LWC always used even if asked to truncate)\n1: respect the truncate LWC node\n2: respect the truncate LWC node and automatic transforms", type:"Var"}, {name: "r.MaterialEditor.MaxDerivedMaterialInstances", help:"Limits amount of derived material instance shown in platform stats. Use negative number to disable the limit. Material editor must be re-opened if changed at runtime.", type:"Var"}, {name: "r.MaterialEditor.PreshaderDumpToHLSL", help:"Controls whether to append preshader expressions and parameter reference counts to the HLSL source window (as comments at the end of the code).", type:"Var"}, {name: "r.MaterialQualityLevel", help:"0 corresponds to low quality materials, as defined by quality switches in materials, 1 corresponds to high and 2 for medium.", type:"Var"}, {name: "r.MaterialEnableNewHLSLGenerator", help:"Enables the new (WIP) material HLSL generator.\n0 - Don\'t allow\n1 - Allow if enabled by material\n2 - Force all materials to use new generator\n", type:"Var"}, {name: "r.MaterialLogErrorOnFailure", help:"When enabled, when a material fails to compile it will issue an Error instead of a Warning.\nDefault: false", type:"Var"}, {name: "r.MaterialParameterLegacyChecks", help:"When enabled, sanity check new material parameter logic against legacy path.\nNote that this can be slow", type:"Var"}, {name: "r.MaterialQualityLevel", help:"0 corresponds to low quality materials, as defined by quality switches in materials, 1 corresponds to high, 2 for medium, and 3 for Epic.", type:"Var"}, {name: "r.MaterialsDuplicateVerbatim", help:"When enabled, when a material or material function is duplicated, it will not change StateId (which influences DDC keys) pre-emptively.\nDefault: false", type:"Var"}, {name: "r.MegaLights.Allowed", help:"Whether the MegaLights feature is allowed by scalability and device profiles.", type:"Var"}, {name: "r.MegaLights.Debug", help:"Whether to enabled debug mode, which prints various extra debug information from shaders.0 - Disable\n1 - Visualize tracing\n2 - Visualize sampling", type:"Var"}, {name: "r.MegaLights.Debug.LightId", help:"Which light to show debug info for. When set to -1, uses the currently selected light in editor.", type:"Var"}, {name: "r.MegaLights.Debug.VisualizeLight", help:"Whether to visualize selected light. Useful to find in in the level.", type:"Var"}, {name: "r.MegaLights.DefaultShadowMethod", help:"The default shadowing method for MegaLights, unless over-ridden on the light component.\n0 - Ray Tracing. Preferred method, which guarantees fixed MegaLights cost and correct area shadows, but is dependent on the BVH representation quality.\n1 - Virtual Shadow Maps. Has a significant per light cost, but can cast shadows directly from the Nanite geometry using rasterization.", type:"Var"}, {name: "r.MegaLights.EnableForProject", help:"Whether to use MegaLights by default, but this can still be overridden by Post Process Volumes, or disabled per-light. MegaLights uses stochastic sampling to render many shadow casting lights efficiently, with a consistent low GPU cost. MegaLights requires Hardware Ray Tracing, and does not support Directional Lights. Experimental feature.", type:"Var"}, {name: "r.MegaLights.FixedStateFrameIndex", help:"Whether to override View.StateFrameIndex for debugging.", type:"Var"}, {name: "r.MegaLights.GuideByHistory", help:"Whether to reduce sampling chance for lights which were hidden last frame. Reduces noise in areas where bright lights are shadowed.\n0 - disabled\n1 - more rays towards visible lights\n2 - more rays towards visible parts of lights", type:"Var"}, {name: "r.MegaLights.GuideByHistory.Filter", help:"Whether to filter history by sharing visibility between nearby tiles.", type:"Var"}, {name: "r.MegaLights.GuideByHistory.HiddenPDFWeightScale", help:"Weight applied to PDF of lights which were hidden last frame. Low values efficiently discard samples from hidden lights, but add lag in discovering newly enabled lights.", type:"Var"}, {name: "r.MegaLights.HairVoxelTraces", help:"Whether to trace hair voxels.", type:"Var"}, {name: "r.MegaLights.HardwareRayTracing", help:"Whether to use hardware ray tracing for shadow rays.", type:"Var"}, {name: "r.MegaLights.HardwareRayTracing.AvoidSelfIntersections", help:"Whether to skip back face hits for a small distance in order to avoid self-intersections when BLAS mismatches rasterized geometry.\nCurrently shares config with Lumen:\n0 - Disabled. May have extra leaking, but it\'s the fastest mode.\n1 - Enabled. This mode retraces to skip first backface hit up to r.Lumen.HardwareRayTracing.SkipBackFaceHitDistance. Good default on most platforms.\n2 - Enabled. This mode uses AHS to skip any backface hits up to r.Lumen.HardwareRayTracing.SkipBackFaceHitDistance. Faster on platforms with inline AHS support.", type:"Var"}, {name: "r.MegaLights.HardwareRayTracing.Bias", help:"Constant bias for hardware ray traced shadow rays.", type:"Var"}, {name: "r.MegaLights.HardwareRayTracing.EndBias", help:"Constant bias for hardware ray traced shadow rays to prevent proxy geo self-occlusion near the lights.", type:"Var"}, {name: "r.MegaLights.HardwareRayTracing.EvaluateMaterialMode", help:"Which mode to use for material evaluation to support alpha masked materials.\n0 - Don\'t evaluate materials (default)1 - Retrace to evaluate materials", type:"Var"}, {name: "r.MegaLights.HardwareRayTracing.Inline", help:"Uses hardware inline ray tracing for ray traced lighting, when available.", type:"Var"}, {name: "r.MegaLights.HardwareRayTracing.MaxIterations", help:"Limit number of ray tracing traversal iterations on supported platfoms. Improves performance, but may add over-occlusion.", type:"Var"}, {name: "r.MegaLights.HardwareRayTracing.MeshSectionVisibilityTest", help:"Whether to test mesh section visibility at runtime.\nWhen enabled translucent mesh sections are automatically hidden based on the material, but it slows down performance due to extra visibility tests per intersection.\nWhen disabled translucent meshes can be hidden only if they are fully translucent. Individual mesh sections need to be hidden upfront inside the static mesh editor.", type:"Var"}, {name: "r.MegaLights.HardwareRayTracing.NormalBias", help:"Normal bias for hardware ray traced shadow rays.", type:"Var"}, {name: "r.MegaLights.HardwareRayTracing.PullbackBias", help:"Determines the pull-back bias when resuming a screen-trace ray.", type:"Var"}, {name: "r.MegaLights.IESProfiles", help:"Whether to support IES profiles on lights.", type:"Var"}, {name: "r.MegaLights.LightFunctions", help:"Whether to support light functions.", type:"Var"}, {name: "r.MegaLights.MinSampleWeight", help:"Determines minimal sample influence on final pixels. Used to skip samples which would have minimal impact to the final image even if light is fully visible.", type:"Var"}, {name: "r.MegaLights.NumSamplesPerPixel", help:"Number of samples (shadow rays) per half-res pixel.\n2 - 0.5 trace per pixel\n4 - 1 trace per pixel\n16 - 4 traces per pixel", type:"Var"}, {name: "r.MegaLights.Reset", help:"Reset history for debugging.", type:"Var"}, {name: "r.MegaLights.ResetEveryNthFrame", help:"Reset history every Nth frame for debugging.", type:"Var"}, {name: "r.MegaLights.ScreenTraces", help:"Whether to use screen space tracing for shadow rays.", type:"Var"}, {name: "r.MegaLights.ScreenTraces.MaxDistance", help:"Max distance in world space for screen space tracing.", type:"Var"}, {name: "r.MegaLights.ScreenTraces.MaxIterations", help:"Max iterations for HZB tracing.", type:"Var"}, {name: "r.MegaLights.ScreenTraces.MinimumOccupancy", help:"Minimum number of threads still tracing before aborting the trace. Can be used for scalability to abandon traces that have a disproportionate cost.", type:"Var"}, {name: "r.MegaLights.ScreenTraces.RelativeDepthThickness", help:"Determines depth thickness of objects hit by HZB tracing, as a relative depth threshold.", type:"Var"}, {name: "r.MegaLights.ShadingConfidence", help:"Whether to use shading confidence to reduce denoising and passthrough original signal to TSR for pixels which are well sampled.", type:"Var"}, {name: "r.MegaLights.SoftwareRayTracing.Allow", help:"Whether to allow using software ray tracing when hardware ray tracing is not supported.", type:"Var"}, {name: "r.MegaLights.Spatial", help:"Whether denoiser should run spatial filter.", type:"Var"}, {name: "r.MegaLights.Spatial.DepthWeightScale", help:"Scales the depth weight of the spatial filter. Smaller values allow for more sample reuse, but also introduce more bluriness between unrelated surfaces.", type:"Var"}, {name: "r.MegaLights.Spatial.KernelRadius", help:"Spatial filter kernel radius in pixels", type:"Var"}, {name: "r.MegaLights.Spatial.MaxDisocclusionFrames", help:"Number of of history frames to boost spatial filtering in order to minimize noise after disocclusion.", type:"Var"}, {name: "r.MegaLights.Spatial.NumSamples", help:"Number of spatial filter samples.", type:"Var"}, {name: "r.MegaLights.Temporal", help:"Whether to use temporal accumulation for shadow mask.", type:"Var"}, {name: "r.MegaLights.Temporal.MaxFramesAccumulated", help:"Max history length when accumulating frames. Lower values have less ghosting, but more noise.", type:"Var"}, {name: "r.MegaLights.Temporal.MinFramesAccumulatedForHighConfidence", help:"Minimal amount of history length when reducing history length due to a high confidence. Higher values than 1 soften image, but reduce noise in high confidence areas.", type:"Var"}, {name: "r.MegaLights.Temporal.MinFramesAccumulatedForHistoryMiss", help:"Minimal amount of history length when reducing history length due to a history miss. Higher values than 1 soften and slowdown transitions.", type:"Var"}, {name: "r.MegaLights.Temporal.NeighborhoodClampScale", help:"Scales how permissive is neighborhood clamp. Higher values increase ghosting, but reduce noise and instability.", type:"Var"}, {name: "r.MegaLights.TexturedRectLights", help:"Whether to support textured rect lights.", type:"Var"}, {name: "r.MegaLights.Volume", help:"Whether to enable a translucency volume used for Volumetric Fog and Volume Lit Translucency.", type:"Var"}, {name: "r.MegaLights.Volume.Debug", help:"Whether to enabled debug mode, which prints various extra debug information from volume shaders.0 - Disable\n1 - Visualize tracing\n2 - Visualize sampling", type:"Var"}, {name: "r.MegaLights.Volume.DebugSliceIndex", help:"Which volume slice to visualize.", type:"Var"}, {name: "r.MegaLights.Volume.HZBOcclusionTest", help:"Whether to skip computation for cells occluded by HZB.", type:"Var"}, {name: "r.MegaLights.Volume.LightFunctions", help:"Whether to support light functions inside the mega light translucency volume.", type:"Var"}, {name: "r.MegaLights.Volume.MinSampleWeight", help:"Determines minimal sample influence on lighting cached in a volume. Used to skip samples which would have minimal impact to the final image even if light is fully visible.", type:"Var"}, {name: "r.MegaLights.Volume.NumSamplesPerVoxel", help:"Number of samples (shadow rays) per half-res voxel.\n2 - 0.25 trace per voxel\n4 - 0.5 trace per pixel", type:"Var"}, {name: "r.MegaLights.Volume.StochasticSampleInterpolation", help:"Whether to approximate bilinear filtering using stochastic interpolation during shading. Makes shading pass faster, but may introduce a bit of noise.", type:"Var"}, {name: "r.MegaLights.Volume.WorldSpaceTraces", help:"Whether to trace world space shadow rays for volume samples. Useful for debugging.", type:"Var"}, {name: "r.MegaLights.WaveOps", help:"Whether to use wave ops. Useful for debugging.", type:"Var"}, {name: "r.MegaLights.WorldSpaceTraces", help:"Whether to trace world space shadow rays for samples. Useful for debugging.", type:"Var"}, {name: "r.MeshCardRepresentation", help:"", type:"Var"}, {name: "r.MeshCardRepresentation.Async", help:".", type:"Var"}, {name: "r.MeshCardRepresentation.Debug", help:"Enable mesh cards debugging. Skips DDCs and appends extra debug data.", type:"Var"}, {name: "r.MeshCardRepresentation.Debug.SurfelDirection", help:"Generate cards for only surfels pointing in a specific direction.", type:"Var"}, {name: "r.MeshCardRepresentation.MinDensity", help:"How much of filled area needs to be there to spawn a card, [0;1] range.", type:"Var"}, {name: "r.MeshCardRepresentation.NormalTreshold", help:"Normal treshold when surface elements should be clustered together.", type:"Var"}, {name: "r.MeshCardRepresentation.ParallelBuild", help:"Whether to use task for mesh card building.", type:"Var"}, {name: "r.MeshDeformerMaxLOD", help:"Don\'t apply MeshDeformers to SkinnedMeshs above this LOD.\nDefault is -1 (disabled).\n", type:"Var"}, {name: "r.MeshDrawCommands.AllowOnDemandShaderCreation", help:"How to create RHI shaders:\n\t0: Always create them on a Rendering Thread, before executing other MDC tasks.\n\t1: If RHI supports multi-threaded shader creation, create them on demand on tasks threads, at the time of submitting the draws.\n", type:"Var"}, {name: "r.MeshDrawCommands.BatchSize", help:"Batch size of cache mesh draw commands when multithreading of draw command caching is enabled", type:"Var"}, {name: "r.MeshDrawCommands.CacheMultithreaded", help:"Enable multithreading of draw command caching for static meshes. 0=disabled, 1=enabled (default)", type:"Var"}, {name: "r.MeshDrawCommands.DumpStats", help:"Dumps all of the Mesh Draw Command stats for a single frame to a csv file in the saved profile directory.\n", type:"Cmd"}, {name: "r.MeshDrawCommands.Stats", help:"Show on screen mesh draw command stats.\nThe stats for visible triangles are post GPU culling.\n 1 = Show stats per pass.\n 2...N = Show the collection of stats matching the \'Collection\' parameter in the ini file.\nYou can also use \'stat culling\' to see global culling stats.\n", type:"Var"}, {name: "r.MeshMerge.StoreImposterInfoInUVs", help:"Determines whether or not to store imposter info (position.xy in UV2, position.z + scale in UV3) in the merged mesh UV channels\n0: Do not store imposters info in UVs (default)\n1: Store imposter info in UVs (legacy)\n", type:"Var"}, {name: "r.MeshPaintVirtualTexture.DefaultTexelsPerVertex", help:"Default ratio of texels to vertices when creating a texture for a mesh", type:"Var"}, {name: "r.MeshPaintVirtualTexture.Enable", help:"Run time enable mesh painting with virtual textures", type:"Var"}, {name: "r.MeshPaintVirtualTexture.MaxTextureSize", help:"Maximum allowed size for mesh paint textures", type:"Var"}, {name: "r.MeshPaintVirtualTexture.Support", help:"Build time support mesh painting with virtual textures", type:"Var"}, {name: "r.MeshPaintVirtualTexture.TileBorderSize", help:"Virtual texture tile border size for mesh paint textures", type:"Var"}, {name: "r.MeshPaintVirtualTexture.TileSize", help:"Virtual texture tile size for mesh paint textures", type:"Var"}, {name: "r.MeshPaintVirtualTexture.UseCompression", help:"Whether mesh paint textures use a compressed format", type:"Var"}, {name: "r.Metal.ForceDXC", help:"Forces DirectX Shader Compiler (DXC) to be used for all Metal shaders instead of hlslcc.\n 0: Disable (default)\n 1: Force new compiler for all shaders", type:"Var"}, {name: "r.MinScreenRadiusForCSMDepth", help:"Threshold below which meshes will be culled from CSM depth pass.", type:"Var"}, {name: "r.MeshStreaming", help:"When enabled mesh LODs will stream in based on what is visible on screen.", type:"Var"}, {name: "r.MinRoughnessOverride", help:"WARNING: This is an experimental feature that may change at any time.\nSets a global limit for roughness when used in the direct lighting calculations.\nThis can be used to limit the amount of fireflies caused by low roughness, in particular when AA is not in use.\n 0.0: no change (default)", type:"Var"}, {name: "r.Mobile.AllowDeferredShadingOpenGL", help:"0: Do not Allow Deferred Shading on OpenGL (default)\n1: Allow Deferred Shading on OpenGL", type:"Var"}, {name: "r.Mobile.AllowMovableDirectionalLights", help:"0: Do not generate shader permutations to render movable directional lights.\n1: Generate shader permutations to render movable directional lights. (default)", type:"Var"}, {name: "r.Mobile.AllowPixelDepthOffset", help:"Whether to allow \'Pixel Depth Offset\' in materials for ES3.1 feature level. Depth modification in pixel shaders may reduce GPU performance", type:"Var"}, {name: "r.Mobile.AllowSoftwareOcclusion", help:"Whether to allow rasterizing scene on CPU for primitive occlusion.\n", type:"Var"}, {name: "r.Mobile.AlwaysResolveDepth", help:"0: Depth buffer is resolved after opaque pass only when decals or modulated shadows are in use. (Default)\n1: Depth buffer is always resolved after opaque pass.\n", type:"Var"}, {name: "r.Mobile.CompressLandscapeWeightMaps", help:"Whether to compress the terrain weight maps for mobile.", type:"Var"}, {name: "r.Mobile.DisableVertexFog", help:"Set to 1 to disable vertex fogging in all mobile shaders.", type:"Var"}, {name: "r.Mobile.AllowFramebufferFetchOpenGL", help:"0: Use multi-pass rendering without FBF and PLS extensions\n1: Allow use of framebuffer fetch and PLS extensions (default)", type:"Var"}, {name: "r.Mobile.AllowPerPixelShadingModels", help:"Whether to allow \'Per-Pixel Shader Models (From Material Expression)\' in materials for Mobile feature level.", type:"Var"}, {name: "r.Mobile.AllowPixelDepthOffset", help:"Whether to allow \'Pixel Depth Offset\' in materials for Mobile feature level. Depth modification in pixel shaders may reduce GPU performance", type:"Var"}, {name: "r.Mobile.AmbientOcclusion", help:"Caution: An extra sampler will be occupied in mobile base pass pixel shader after enable the mobile ambient occlusion.\n0: Disable Ambient Occlusion on mobile platform. [default]\n1: Enable Ambient Occlusion on mobile platform.\n", type:"Var"}, {name: "r.Mobile.AmbientOcclusionDepthBoundsTest", help:"Whether to use depth bounds test to cull distant pixels during AO pass. This option is only valid when pixel shader path is used", type:"Var"}, {name: "r.Mobile.AmbientOcclusionQuality", help:"The quality of screen space ambient occlusion on mobile platform.\n0: Disabled.\n1: Low.(Default)\n2: Medium.\n3: High.\n", type:"Var"}, {name: "r.Mobile.AmbientOcclusionShaderType", help:"0: ComputeShader.\n1: Seperate ComputeShader.\n2: PixelShader.\n", type:"Var"}, {name: "r.Mobile.AmbientOcclusionTechnique", help:"0: GTAO (default).\n1: SSAO.\n", type:"Var"}, {name: "r.Mobile.AntiAliasing", help:"Mobile default AntiAliasingMethod\n 0: off (no anti-aliasing)\n 1: FXAA (default, faster than TemporalAA but much more shimmering for non static cases)\n 2: TemporalAA(it will fallback to FXAA if SupportsGen4TAA is disabled) \n 3: MSAA", type:"Var"}, {name: "r.Mobile.CustomDepthForTranslucency", help:" Whether to render custom depth/stencil if any tranclucency in the scene uses it. \n 0 = Off \n 1 = On [default]", type:"Var"}, {name: "r.Mobile.DBuffer", help:"Enables DBuffer decal material blend modes when using the mobile forward renderer.\nDBuffer decals are rendered before the base pass, allowing them to affect static lighting and skylighting correctly. \nWhen enabled, a full prepass will be forced which adds CPU / GPU cost. Several texture lookups will be done in the base pass to fetch the decal properties, which adds pixel work.\n 0: off (default)\n 1: on", type:"Var"}, {name: "r.Mobile.DesiredResX", help:"Desired mobile X resolution (longest axis) (non-zero == use for X, calculate Y to retain aspect ratio)", type:"Var"}, {name: "r.Mobile.DesiredResY", help:"Desired mobile Y resolution (shortest axis) (non-zero == use for Y, calculate X to retain aspect ratio)", type:"Var"}, {name: "r.Mobile.DisableVertexFog", help:"If true, vertex fog will be omitted from the most of the mobile base pass shaders. Instead, fog will be applied in a separate pass and only when scene has a fog component.", type:"Var"}, {name: "r.Mobile.EarlyZPass", help:"Whether to use a depth only pass to initialize Z culling for the mobile base pass. Changing this setting requires restarting the editor.\n 0: off\n 1: all opaque \n 2: masked primitives only \n", type:"Var"}, {name: "r.Mobile.EnableCapsuleDirectShadows", help:"0: Capsule direct shadows are disabled in the mobile renderer1: Enables capsule direct shadowing on skinned components with bCastCapsuleDirectShadow enabled with the mobile renderer", type:"Var"}, {name: "r.Mobile.EnableCapsuleShadows", help:"0: Capsule shadows are disabled in the mobile renderer1: Enables capsule shadowing on skinned components with bCastCapsuleDirectShadow or bCastCapsuleIndirectShadow enabled with the mobile renderer", type:"Var"}, {name: "r.Mobile.EnableCloth", help:"If enabled, compile cloth shader permutations and render simulated cloth on mobile platforms and Mobile mode on PC. Cannot be changed at runtime", type:"Var"}, {name: "r.Mobile.EnableMovableSpotlights", help:"If 1 then enable movable spotlight support", type:"Var"}, {name: "r.Mobile.EnableMovablePointLightsShadows", help:"If 1 then enable movable point light shadow support", type:"Var"}, {name: "r.Mobile.EnableMovableSpotlightsShadow", help:"If 1 then enable movable spotlight shadow support", type:"Var"}, {name: "r.Mobile.EnableOcclusionExtraFrame", help:"Whether to allow extra frame for occlusion culling (enabled by default)", type:"Var"}, {name: "r.Mobile.EyeAdaptation", help:"EyeAdaptation for mobile platform.\n 0: Disable\n 1: Enabled (Default)", type:"Var"}, {name: "r.Mobile.FloatPrecisionMode", help:"0: Use Half-precision (default)\n1: Half precision, except Full precision for material expressions\n2: Force use of high precision in pixel shaders.\n", type:"Var"}, {name: "r.Mobile.ForceFullPrecisionInPS", help:"0: Use precision specified in shader code (default)\n1: Force use of high precision in pixel shaders.\n", type:"Var"}, {name: "r.Mobile.ForceRHISwitchVerticalAxis", help:"Enable RHISwitchVerticalAxis when previewing mobile renderer. (Useful to test GLES y-axis flip codepaths)\n0: RHISwitchVerticalAxis disabled (default).\n1: RHISwitchVerticalAxis enabled.\n", type:"Var"}, {name: "r.Mobile.HighQualitySkyCaptureFiltering", help:"1: (default) use high quality filtering when generating mobile sky captures.0: use simple bilinear filtering when generating mobile sky captures.", type:"Var"}, {name: "r.Mobile.Forward.DecalLighting", help:"Enables lit decals when using the mobile forward renderer without DBuffer.\n 0: off\n 1: on, lighting channel 1 is used for decal lighting\n 2: on, lighting channel 2 is used for decal lighting\n 3: on, lighting channel 3 is used for decal lighting", type:"Var"}, {name: "r.Mobile.Forward.EnableClusteredReflections", help:"Whether to enable clustered reflections on mobile forward, it\'s always supported on mobile deferred.", type:"Var"}, {name: "r.Mobile.Forward.EnableIESProfiles", help:"0: IES profiles disabled in mobile forward (default)\n1: IES profiles enabled in mobile forward \n", type:"Var"}, {name: "r.Mobile.Forward.EnableLocalLights", help:"0: Local Lights Disabled (default)\n1: Local Lights Enabled\n2: Local Lights Buffer Enabled\n", type:"Var"}, {name: "r.Mobile.Forward.EnableParticleLights", help:"0: Particle Lights Disabled (default)\n1: Particle Lights Enabled (requires local lights)\n", type:"Var"}, {name: "r.Mobile.Forward.LocalLightsSinglePermutation", help:"Whether to use the same permutation regardless of local lights state. This may improve RT time at expense of some GPU time", type:"Var"}, {name: "r.Mobile.Forward.RenderRectLightsAsSpotLights", help:"0: Rect Lights are rendered as area lights\n1: Rect Lights are rendered as Spot Lights (default)\n", type:"Var"}, {name: "r.Mobile.GTAOPreIntegratedTextureType", help:"0: No Texture.\n1: Texture2D LUT.\n2: Volume LUT(Default).", type:"Var"}, {name: "r.Mobile.IgnoreDeferredShadingSkyLightChannels", help:"Whether to ignore primitive lighting channels when applying SkyLighting in a mobile deferred shading.\nThis may improve GPU performance at the cost of incorrect lighting for a primitves with non-default lighting channels", type:"Var"}, {name: "r.Mobile.MaxVisibleMovableSpotLightShadows", help:"The max number of visible spotlights can cast shadow sorted by screen size, should be as less as possible for performance reason", type:"Var"}, {name: "r.Mobile.MoveSubmissionHintAfterTranslucency", help:"0: Submission hint occurs after occlusion query.\n1: Submission hint occurs after translucency. (Default)", type:"Var"}, {name: "r.Mobile.MobileSupportBloomSetupRareCases", help:"0: Don\'t generate permutations for BloomSetup rare cases. (default, like Sun+MetalMSAAHDRDecode, Dof+MetalMSAAHDRDecode, EyeAdaptaion+MetalMSAAHDRDecode, and any of their combinations)\n1: Generate permutations for BloomSetup rare cases. ", type:"Var"}, {name: "r.Mobile.PixelFogDepthTest", help:"Whether to use depth and stencil tests for fog rendering", type:"Var"}, {name: "r.Mobile.PixelFogQuality", help:"Exponentional height fog rendering quality.\n0 - basic per-pixel fog1 - all per-pixel fog features (second fog, directional inscattering, aerial perspective)", type:"Var"}, {name: "r.Mobile.PixelProjectedReflectionQuality", help:"The quality of pixel projected reflection on mobile platform.\n0: Disabled\n1: Best performance but may have some artifacts in some view angles. [default]\n2: Better quality and reasonable performance and could fix some artifacts.\n3: Best quality but will be much heavier.\n", type:"Var"}, {name: "r.Mobile.PlanarReflectionMode", help:"The PlanarReflection will work differently on different mode on mobile platform, choose the proper mode as expect.\n0: The PlanarReflection actor works as usual on all platforms. [default]\n1: The PlanarReflection actor is only used for mobile pixel projection reflection, it will not affect PC/Console. MobileMSAA will be disabled as a side effect.\n2: The PlanarReflection actor still works as usual on PC/Console platform and is used for mobile pixel projected reflection on mobile platform. MobileMSAA will be disabled as a side effect.\n", type:"Var"}, {name: "r.Mobile.PropagateAlpha", help:"0: Disabled1: Propagate Full Alpha Propagate", type:"Var"}, {name: "r.Mobile.Shadow.CSMDebugHint", help:"", type:"Var"}, {name: "r.Mobile.SceneDepthAux", help:"1: 16F SceneDepthAux Format2: 32F SceneDepthAux Format", type:"Var"}, {name: "r.Mobile.ScreenSpaceReflections", help:"0: Mobile Renderer Screen Space Reflections disabled (default)\n1: Mobile Renderer Screen Space Reflections enabled\n", type:"Var"}, {name: "r.Mobile.ScreenSpaceReflections.Intensity", help:"Scale factor to adjust the intensity of mobile screen space reflections in the range [0.0, 1.0] or -1. (default: -1, ignores this setting)\n", type:"Var"}, {name: "r.Mobile.ShadingModelsMask", help:"The mask that indicates which shading models are enabled on mobile platforms.", type:"Var"}, {name: "r.Mobile.ShadingPath", help:"0: Forward shading (default)\n1: Deferred shading (Mobile HDR is required for Deferred)", type:"Var"}, {name: "r.Mobile.Shadow.CSMShaderCullingMethod", help:"Method to determine which primitives will receive CSM shaders:\n0 - disabled (all primitives will receive CSM)\n1 - Light frustum, all primitives whose bounding box is within CSM receiving distance. (default)\n2 - Combined caster bounds, all primitives whose bounds are within CSM receiving distance and the capsule of the combined bounds of all casters.\n3 - Light frustum + caster bounds, all primitives whose bounds are within CSM receiving distance and capsule of at least one caster. (slowest)\nCombine with 16 to change primitive bounding test to spheres instead of box. (i.e. 18 == combined casters + sphere test)", type:"Var"}, {name: "r.Mobile.SkyLightPermutation", help:"0: Generate both sky-light and non-skylight permutations. (default)\n1: Generate only non-skylight permutations.\n2: Generate only skylight permutations", type:"Var"}, {name: "r.Mobile.SupportGPUScene", help:"Whether to support GPU scene, required for auto-instancing (only ES3.1 feature level)", type:"Var"}, {name: "r.Mobile.TonemapperFilm", help:"Whether mobile platforms should use new film tone mapper", type:"Var"}, {name: "r.Mobile.Shadow.CSMShaderCullingMethod", help:"Method to determine which primitives will receive CSM shaders:\n0 - disabled (all primitives will receive CSM)\n1 - Light frustum, all primitives whose bounding box is within CSM receiving distance. (default)\n2 - Combined caster bounds, all primitives whose bounds are within CSM receiving distance and the capsule of the combined bounds of all casters.\n3 - Light frustum + caster bounds, all primitives whose bounds are within CSM receiving distance and capsule of at least one caster. (slowest)\n4 - Cull all. Prevent primitives from receiving CSM shadows.\n5 - Disable culling if mobile distance field shadowing is used for all views.\nCombine with 16 to change primitive bounding test to spheres instead of box. (i.e. 18 == combined casters + sphere test)", type:"Var"}, {name: "r.Mobile.ShadowmapRoundUpToPowerOfTwo", help:"Round the shadow map up to power of two on mobile platform, in case there is any compatibility issue.\n 0: Disable (Default)\n 1: Enabled", type:"Var"}, {name: "r.Mobile.SSAOHalfResolution", help:"Whether to calculate SSAO at half resolution.\n0: Disabled.\n1: Half Resolution with bilinear upsample\n2: Half Resolution with 4 tap bilateral upsample\n3: Half Resolution with 9 tap bilateral upsample\n", type:"Var"}, {name: "r.Mobile.SupportGPUScene", help:"Whether to support GPU scene, required for auto-instancing (only Mobile feature level)", type:"Var"}, {name: "r.Mobile.SupportInsetShadows", help:"Enables inset shadows on mobile. Currently not supported on platforms not using ShadowMaskTexture. Default = false.", type:"Var"}, {name: "r.Mobile.SupportsGen4TAA", help:"Support desktop Gen4 TAA with mobile rendering\n0: Fallback to FXAA1: Support Desktop Gen4 TAA (default)", type:"Var"}, {name: "r.Mobile.TonemapSubpass", help:" Whether to enable mobile tonemap subpass \n 0 = Off [default]\n 1 = On", type:"Var"}, {name: "r.Mobile.UseClusteredDeferredShading", help:"Toggle use of clustered deferred shading for lights that support it. 0 is off (default), 1 is on. (requires LightGrid: r.Mobile.Forward.EnableLocalLights=1)", type:"Var"}, {name: "r.Mobile.UseCSMShaderBranch", help:"0: Use two shader permutations for CSM and non-CSM shading. (default)\n1: Use a single shader pemutation with a branch in a shader to apply CSM (only with r.AllowStaticLighting=0)", type:"Var"}, {name: "r.Mobile.UseLegacyShadingModel", help:"If 1 then use legacy (pre 4.20) shading model (such as spherical guassian specular calculation.) (will cause a shader rebuild)", type:"Var"}, {name: "r.Mobile.UseLightStencilCulling", help:"Whether to use stencil to cull local lights. 0 is off, 1 is on (default)", type:"Var"}, {name: "r.Mobile.VirtualTextures", help:"Whether virtual texture streaming is enabled on mobile platforms. Requires r.VirtualTextures enabled as well. \n", type:"Var"}, {name: "r.Mobile.XRMSAAMode", help:" Whether to modify how mobile XR msaa support works\n 0 = Standard depth pass/swapchain mode [default]\n 1 = Perform a copy of depth to the depth resolve target 2 = Make the depth swap chain be MSAA and use it directly as scene depth", type:"Var"}, {name: "r.MobileDynamicPointLightsUseStaticBranch", help:"0: Generate unique forward rendering base pass shaders for 0, 1, ... N mobile dynamic point lights. (faster but generates many more shaders)\n1: Use a shared shader with static branching for rendering 1 or more dynamic point lights (slightly slower but reduces shaders generated, recommended for most games).", type:"Var"}, {name: "r.MobileHDR32bppMode", help:"0: If 32bpp is required mobile HDR will use best suited 32 bpp mode. (default)\n1: Force Mobile 32bpp HDR with mosaic encoding.\n2: Force Mobile 32bpp HDR with RGBE encoding mode. (device must support framebuffer fetch)\n3: Force Mobile 32bpp HDR with direct RGBA8 rendering.", type:"Var"}, {name: "r.MobileMSAA", help:"Use MSAA instead of Temporal AA on mobile:\n1: Use Temporal AA (MSAA disabled)\n2: Use 2x MSAA (Temporal AA disabled)\n4: Use 4x MSAA (Temporal AA disabled)\n8: Use 8x MSAA (Temporal AA disabled)", type:"Var"}, {name: "r.MobileNumDynamicPointLights", help:"The number of dynamic point lights to support on mobile devices. Setting this to 0 for games which do not require dynamic point lights will reduce the number of shaders generated.", type:"Var"}, {name: "r.MobileTonemapperUpscale", help:"On mobile, whether to allow upscaling as part of the tonemapper or as a separate pass when possible0: separate pass (default)\n1: as part of the tonemapper pass\n", type:"Var"}, {name: "r.MorphTarget.ForceUpdate", help:"Force morph target deltas to be calculated every frame.\n 0: Default\n 1: Force Update\n", type:"Var"}, {name: "r.MorphTarget.MaxBlendWeight", help:"Maximum value accepted as a morph target blend weight..\nBlend target weights will be checked against this value for validation.Values smaller than this number will be clamped.\n", type:"Var"}, {name: "r.MotionBlur.AllowExternalVelocityFlatten", help:"Whether to allow motion blur\'s velocity flatten into other pass.", type:"Var"}, {name: "r.MotionBlur.Directions", help:"Number of bluring direction (default = 1).", type:"Var"}, {name: "r.MotionBlur.HalfResGather", help:"Whether to do motion blur filter dynamically at half res under heavy motion.", type:"Var"}, {name: "r.MotionBlur.HalfResInput", help:"Whether motion blur also blur with a half resolution input.", type:"Var"}, {name: "r.MotionBlur.PreferCompute", help:"Will use compute shaders for motion blur pass.", type:"Var"}, {name: "r.MotionBlur.VisualizeDebugInformation", help:"Enables checkerboard and debug text visualization when Visualize Motion Blur show flag is enabled.\n", type:"Var"}, {name: "r.MSAA.AllowCustomResolves", help:"Whether to use builtin HW resolve or allow custom shader MSAA resolves", type:"Var"}, {name: "r.MultiGPU.Transfer", help:"Mode to use for cross GPU transfers when multiple nDisplay views are active\n 0: immediate pull transfer\n 1: optimized push transfer (source GPU runs copy, with deferred fence wait on destination GPU)\n 2: optimized pull transfer (destination GPU runs copy, with transfers delayed to last view\'s render); (default)", type:"Var"}, {name: "r.Nanite", help:"Render static meshes using Nanite.", type:"Var"}, {name: "r.Nanite.AllowMaskedMaterials", help:"Whether to allow meshes using masked materials to render using Nanite.", type:"Var"}, {name: "r.Nanite.AllowProgrammableDistances", help:"Whether or not to allow disabling of Nanite programmable raster features (World Position Offset, Pixel Depth Offset, Masked Opaque, or Displacement) at a distance from the camera.", type:"Var"}, {name: "r.Nanite.AllowSkinnedMeshes", help:"Whether to enable support for Nanite skinned meshes", type:"Var"}, {name: "r.Nanite.AllowSplineMeshes", help:"Whether to enable support for Nanite spline meshes", type:"Var"}, {name: "r.Nanite.AllowWorkGraphMaterials", help:"Whether to enable support for Nanite work graph materials", type:"Var"}, {name: "r.Nanite.AsyncRasterization", help:"If available, run Nanite compute rasterization as asynchronous compute.", type:"Var"}, {name: "r.Nanite.AsyncRasterization.CustomPass", help:"If available, run Nanite compute rasterization of custom passes as asynchronous compute.", type:"Var"}, {name: "r.Nanite.AsyncRasterization.LumenMeshCards", help:"If available, run Nanite compute rasterization of Lumen mesh cards as asynchronous compute.", type:"Var"}, {name: "r.Nanite.AsyncRasterization.ShadowDepths", help:"If available, run Nanite compute rasterization of shadows as asynchronous compute.", type:"Var"}, {name: "r.Nanite.BinningTechnique", help:"", type:"Var"}, {name: "r.Nanite.Builder.FallbackTriangleThreshold", help:"Triangle count <= to this threshold uses the source mesh unchanged as the fallback.", type:"Var"}, {name: "r.Nanite.Bundle.Emulation", help:"Whether to force shader bundle dispatch emulation", type:"Var"}, {name: "r.Nanite.Bundle.Raster", help:"Whether to enable Nanite shader bundle dispatch for raster", type:"Var"}, {name: "r.Nanite.Bundle.RasterHW", help:"Whether to enable Nanite shader bundle dispatch for Hardware raster", type:"Var"}, {name: "r.Nanite.Bundle.RasterSW", help:"Whether to enable Nanite shader bundle dispatch for Software raster", type:"Var"}, {name: "r.Nanite.Bundle.Shading", help:"Whether to enable Nanite shader bundle dispatch for shading", type:"Var"}, {name: "r.Nanite.CacheMaterialBinsParallel", help:"Enable parallel caching of raster and shading bins for Nanite materials. 0=disabled, 1=enabled (default)", type:"Var"}, {name: "r.Nanite.CacheRelevanceParallel", help:"Enable parallel caching of Nanite material relevance. 0=disabled, 1=enabled (default)", type:"Var"}, {name: "r.Nanite.CoarseMeshStreaming", help:"Generates 2 Nanite coarse mesh LODs and dynamically streams in the higher quality LOD depending on TLAS usage of the proxy.\n", type:"Var"}, {name: "r.Nanite.CoarseMeshStreamingMode", help:"Streaming mode:\n0: Use TLAS proxies to drive what to stream within the budget (default)\n1: Stream in all registered meshes\n2: Don\'t stream in any coarse LODs\n", type:"Var"}, {name: "r.Nanite.CoarseStreamingMeshMemoryPoolSizeInMB", help:"Pool size for streaming in the render mesh & blas data for the coarse nanite meshes (default 200MB)\nThis budget will be part of the mesh streaming pool size.\nOn consoles the actual BLAS memory will be part of this, on PC only the vertex data because the BLAS is dependent on the GPU & driver.\n", type:"Var"}, {name: "r.Nanite.ComputeMaterials.Sort", help:"", type:"Var"}, {name: "r.Nanite.ComputeRasterization", help:"Whether to allow compute rasterization. When disabled all rasterization will go through the hardware path.", type:"Var"}, {name: "r.Nanite.Culling.DrawDistance", help:"Set to 0 to test disabling Nanite culling due to instance draw distance.", type:"Var"}, {name: "r.Nanite.Culling.Frustum", help:"Set to 0 to test disabling Nanite culling due to being outside of the view frustum.", type:"Var"}, {name: "r.Nanite.Culling.GlobalClipPlane", help:"Set to 0 to test disabling Nanite culling due to being beyond the global clip plane.\nNOTE: Has no effect if r.AllowGlobalClipPlane=0.", type:"Var"}, {name: "r.Nanite.Culling.HZB", help:"Set to 0 to test disabling Nanite culling due to occlusion by the hierarchical depth buffer.", type:"Var"}, {name: "r.Nanite.Culling.TwoPass", help:"Set to 0 to test disabling two pass occlusion culling.", type:"Var"}, {name: "r.Nanite.Culling.WPODisableDistance", help:"Set to 0 to test disabling \'World Position Offset Disable Distance\' for Nanite instances.", type:"Var"}, {name: "r.Nanite.CustomDepth", help:"Whether to allow Nanite to render in the CustomDepth pass", type:"Var"}, {name: "r.Nanite.CustomDepth.ExportMethod", help:"0 - Export depth/stencil into separate targets via PS\n1 - Export depth/stencil direct to target via CS (requires HTILE support)\n", type:"Var"}, {name: "r.Nanite.Debug.ValidateShadeBinning", help:"", type:"Var"}, {name: "r.Nanite.DecompressDepth", help:"", type:"Var"}, {name: "r.Nanite.DicingRate", help:"Size of the micropolygons that Nanite tessellation will dice to, measured in pixels.", type:"Var"}, {name: "r.Nanite.EmitMaterialPerformanceWarnings", help:"Emit log and on-screen messages to warn when a Nanite material is both programmable and using either masking or pixel depth offset (PDO).", type:"Var"}, {name: "r.Nanite.ExportDepth", help:"", type:"Var"}, {name: "r.Nanite.FastTileClear", help:"Whether to enable Nanite fast tile clearing", type:"Var"}, {name: "r.Nanite.FastTileClear.SubTiles", help:"Whether to enable Nanite fast tile clearing (for 4x4 sub tiles)", type:"Var"}, {name: "r.Nanite.FastTileVis", help:"Allows for just showing a single target in the visualization, or -1 to show all accumulated", type:"Var"}, {name: "r.Nanite.FastVisBufferClear", help:"Whether the fast clear optimization is enabled. Set to 2 for tile clear.", type:"Var"}, {name: "r.Nanite.FilterPrimitives", help:"Whether per-view filtering of primitive is enabled.", type:"Var"}, {name: "r.Nanite.ForceEnableMeshes", help:"Force enables all meshes to also build Nanite data, regardless of the enabled flag on the asset.", type:"Var"}, {name: "r.Nanite.ImposterMaxPixels", help:"The maximum size of imposters measured in pixels.", type:"Var"}, {name: "r.Nanite.InstanceHierarchyArgsMaxWorkGroups", help:"Sanitize instance hierarchy arguments to prevent dispatching more workgroups than there are items to consume.\n Sets the dispatch work group size to the minimum of the group work buffer size and the value provided in this cvar.\n Setting it to zero disables the clamping kernel.\n\tNOTE: This cvar is only for testing/hot fixing purposes.", type:"Var"}, {name: "r.Nanite.IsNaniteSkeletalMeshSettingsInitiallyCollapsed", help:"If the Nanite Settings are initially collapsed in the details panel in the Skeletal Mesh Editor Tool.", type:"Var"}, {name: "r.Nanite.IsNaniteStaticMeshSettingsInitiallyCollapsed", help:"If the Nanite Settings are initially collapsed in the details panel in the Static Mesh Editor Tool.", type:"Var"}, {name: "r.Nanite.IsolateInvalidCoarseMesh", help:"Debug mode to render only non-Nanite proxies that incorrectly reference coarse static mesh assets.", type:"Var"}, {name: "r.Nanite.LargePageRectThreshold", help:"Threshold for the size in number of virtual pages overlapped of a candidate cluster to be recorded as large in the stats.", type:"Var"}, {name: "r.Nanite.MaterialBuffers.AsyncUpdates", help:"When non-zero, Nanite material data buffer updates are updated asynchronously.", type:"Var"}, {name: "r.Nanite.MaterialBuffers.Defrag", help:"Whether or not to allow defragmentation of the Nanite material data buffer.", type:"Var"}, {name: "r.Nanite.MaterialBuffers.Defrag.Force", help:"0: Do not force a full defrag.\n1: Force one full defrag on the next update.\n2: Force a full defrag every frame.", type:"Var"}, {name: "r.Nanite.MaterialBuffers.Defrag.LowWaterMark", help:"Ratio of used to allocated memory at which to decide to defrag the Nanite material data buffer.", type:"Var"}, {name: "r.Nanite.MaterialBuffers.ForceFullUpload", help:"0: Do not force a full upload.\n1: Force one full upload on the next update.\n2: Force a full upload every frame.", type:"Var"}, {name: "r.Nanite.MaterialBuffers.MaterialDataMinSizeBytes", help:"The smallest size (in bytes) of the Nanite material data buffer.", type:"Var"}, {name: "r.Nanite.MaterialBuffers.PrimitiveDataMinSizeBytes", help:"The smallest size (in bytes) of the Nanite per-primitive material data buffer.", type:"Var"}, {name: "r.Nanite.MaterialOverrides", help:"Enable support for Nanite specific material overrides.", type:"Var"}, {name: "r.Nanite.MaterialVisibility", help:"Whether to enable Nanite material visibility tests", type:"Var"}, {name: "r.Nanite.MaterialVisibility.Async", help:"Whether to enable parallelization of Nanite material visibility tests", type:"Var"}, {name: "r.Nanite.MaterialVisibility.Instances", help:"", type:"Var"}, {name: "r.Nanite.MaterialVisibility.Primitives", help:"", type:"Var"}, {name: "r.Nanite.MaterialVisibility.RasterBins", help:"", type:"Var"}, {name: "r.Nanite.MaterialVisibility.ShadingBins", help:"", type:"Var"}, {name: "r.Nanite.MaxCandidateClusters", help:"Maximum number of Nanite clusters before cluster culling.", type:"Var"}, {name: "r.Nanite.MaxCandidatePatches", help:"Maximum number of Nanite patches considered for splitting.", type:"Var"}, {name: "r.Nanite.MaxNodes", help:"Maximum number of Nanite nodes traversed during a culling pass.", type:"Var"}, {name: "r.Nanite.MaxPatchesPerGroup", help:"Maximum number of patches to process per patch rasterizer group.", type:"Var"}, {name: "r.Nanite.MaxPixelsPerEdge", help:"The triangle edge length that the Nanite runtime targets, measured in pixels.", type:"Var"}, {name: "r.Nanite.MaxVisibleClusters", help:"Maximum number of visible Nanite clusters.", type:"Var"}, {name: "r.Nanite.MaxVisiblePatches", help:"Maximum number of visible Nanite patches.", type:"Var"}, {name: "r.Nanite.MeshShaderRasterization", help:"If available, use mesh shaders for hardware rasterization.", type:"Var"}, {name: "r.Nanite.MinPixelsPerEdgeHW", help:"The triangle edge length in pixels at which Nanite starts using the hardware rasterizer.", type:"Var"}, {name: "r.Nanite.MultipleSceneViewsInOnePass", help:"Supports rendering multiple views (FSceneView) whenever possible. Currently only ISR stereo rendering is supported.", type:"Var"}, {name: "r.Nanite.OccludedInstancesBufferSizeMultiplier", help:"DEBUG", type:"Var"}, {name: "r.Nanite.ParallelBasePassBuild", help:"", type:"Var"}, {name: "r.Nanite.PersistentThreadsCulling", help:"Perform node and cluster culling in one combined kernel using persistent threads.It doesn\'t scale threads with GPU size and relies on scheduler behavior, so it is not recommended for non-fixed hardware platforms.", type:"Var"}, {name: "r.Nanite.Picking.Crosshair", help:"", type:"Var"}, {name: "r.Nanite.Picking.Domain", help:"", type:"Var"}, {name: "r.Nanite.PrimaryRaster.PixelsPerEdgeScaling", help:"Lower limit percentage to scale the Nanite primary raster MaxPixelsPerEdge value when over budget.", type:"Var"}, {name: "r.Nanite.PrimaryRaster.TimeBudgetMs", help:"Frame\'s time budget for Nanite primary raster in milliseconds.", type:"Var"}, {name: "r.Nanite.PrimShaderRasterization", help:"If available, use primitive shaders for hardware rasterization.", type:"Var"}, {name: "r.Nanite.ProgrammableRaster", help:"Whether to allow programmable raster. When disabled all rasterization will go through the fixed function path.", type:"Var"}, {name: "r.Nanite.ProjectEnabled", help:"This setting allows you to disable Nanite on platforms that support it to reduce the number of shaders. It cannot be used to force Nanite on on unsupported platforms.\n", type:"Var"}, {name: "r.Nanite.ProxyRenderMode", help:"Render proxy meshes if Nanite is unsupported.\n 0: Fall back to rendering Nanite proxy meshes if Nanite is unsupported. (default)\n 1: Disable rendering if Nanite is enabled on a mesh but is unsupported.\n 2: Disable rendering if Nanite is enabled on a mesh but is unsupported, except for static mesh editor toggle.", type:"Var"}, {name: "r.Nanite.RasterIndirectionMultiplier", help:"", type:"Var"}, {name: "r.Nanite.RasterSetupCache", help:"", type:"Var"}, {name: "r.Nanite.RasterSetupTask", help:"", type:"Var"}, {name: "r.Nanite.RasterSort", help:"Whether to enable sorting of rasterizer dispatches and draws", type:"Var"}, {name: "r.Nanite.ResummarizeHTile", help:"", type:"Var"}, {name: "r.Nanite.ShadeBinningMode", help:"0: Auto\n1: Force to Pixel Mode\n2: Force to Quad Mode\n", type:"Var"}, {name: "r.Nanite.ShadowRaster.PixelsPerEdgeScaling", help:"Lower limit percentage to scale the Nanite shadow raster MaxPixelsPerEdge value when over budget.", type:"Var"}, {name: "r.Nanite.ShadowRaster.TimeBudgetMs", help:"Frame\'s time budget for Nanite shadow raster in milliseconds.", type:"Var"}, {name: "r.Nanite.ShowStats", help:"", type:"Var"}, {name: "r.Nanite.ShowUnsupportedError", help:"Specify behavior of Nanite unsupported screen error message.\n 0: disabled\n 1: show error if Nanite is present in the scene but unsupported, and fallback meshes are not used for rendering; (default) 2: show error if Nanite is present in the scene but unsupported, even if fallback meshes are used for rendering", type:"Var"}, {name: "r.Nanite.SkinningBuffers.AsyncUpdates", help:"When non-zero, Nanite transform data buffer updates are updated asynchronously.", type:"Var"}, {name: "r.Nanite.SkinningBuffers.Defrag", help:"Whether or not to allow defragmentation of the Nanite skinning buffers.", type:"Var"}, {name: "r.Nanite.SkinningBuffers.Defrag.Force", help:"0: Do not force a full defrag.\n1: Force one full defrag on the next update.\n2: Force a full defrag every frame.", type:"Var"}, {name: "r.Nanite.SkinningBuffers.Defrag.LowWaterMark", help:"Ratio of used to allocated memory at which to decide to defrag the Nanite skinning buffers.", type:"Var"}, {name: "r.Nanite.SkinningBuffers.ForceFullUpload", help:"0: Do not force a full upload.\n1: Force one full upload on the next update.\n2: Force a full upload every frame.", type:"Var"}, {name: "r.Nanite.SkinningBuffers.HeaderDataMinSizeBytes", help:"The smallest size (in bytes) of the Nanite per-primitive skinning header data buffer.", type:"Var"}, {name: "r.Nanite.SkinningBuffers.TransformDataMinSizeBytes", help:"The smallest size (in bytes) of the Nanite bone transform data buffer.", type:"Var"}, {name: "r.Nanite.SoftwareVRS", help:"Whether to enable Nanite software variable rate shading in compute.", type:"Var"}, {name: "r.Nanite.StatsFilter", help:"Sets the name of a specific Nanite raster pass to capture stats from - enumerate available filters with `NaniteStats List` cmd.", type:"Var"}, {name: "r.Nanite.Streaming.Async", help:"Perform most of the Nanite streaming on an asynchronous worker thread instead of the rendering thread.", type:"Var"}, {name: "r.Nanite.Streaming.AsyncCompute", help:"Schedule GPU work in async compute queue.", type:"Var"}, {name: "r.Nanite.Streaming.BandwidthLimit", help:"Streaming bandwidth limit in megabytes per second. Negatives values are interpreted as unlimited. ", type:"Var"}, {name: "r.Nanite.Streaming.Debug.ExplicitRequests", help:"Process requests coming from explicit calls to RequestNanitePages().", type:"Var"}, {name: "r.Nanite.Streaming.Debug.GPURequests", help:"Process requests coming from GPU rendering feedback", type:"Var"}, {name: "r.Nanite.Streaming.Debug.Prefetch", help:"Process resource prefetch requests from calls to PrefetchResource().", type:"Var"}, {name: "r.Nanite.Streaming.Debug.ReservedResourceIgnoreInitialRootAllocation", help:"Ignore root page initial allocation size for reserved resources.", type:"Var"}, {name: "r.Nanite.Streaming.Debug.ReservedResourceRootPageGrowOnly", help:"Root page allocator only grows.", type:"Var"}, {name: "r.Nanite.Streaming.Debug.StreamingPoolResize", help:"Allow streaming pool to be resized at runtime.", type:"Var"}, {name: "r.Nanite.Streaming.DynamicallyGrowAllocations", help:"Determines if root page and imposter allocations are allowed to grow dynamically from initial allocation set by r.Nanite.Streaming.NumInitialRootPages and r.Nanite.Streaming.NumInitialImposters", type:"Var"}, {name: "r.Nanite.Streaming.DynamicPageUploadBuffer", help:"Set Dynamic flag on the page upload buffer. This can eliminate a buffer copy on some platforms, but potentially also make the transcode shader slower.", type:"Var"}, {name: "r.Nanite.Streaming.GPURequestsBufferMaxSize", help:"The maximum number of elements in the buffer used for GPU feedback.Setting Min=Max disables any dynamic buffer size adjustment.", type:"Var"}, {name: "r.Nanite.Streaming.GPURequestsBufferMinSize", help:"The minimum number of elements in the buffer used for GPU feedback.Setting Min=Max disables any dynamic buffer size adjustment.", type:"Var"}, {name: "r.Nanite.Streaming.Imposters", help:"Load imposters used for faster rendering of distant objects. Requires additional memory and might not be worthwhile for scenes with HLOD or no distant objects.", type:"Var"}, {name: "r.Nanite.Streaming.MaxPageInstallsPerFrame", help:"Maximum number of pages that can be installed per frame. Limiting this can limit the overhead of streaming.", type:"Var"}, {name: "r.Nanite.Streaming.MaxPendingPages", help:"Maximum number of pages that can be pending for installation.", type:"Var"}, {name: "r.Nanite.Streaming.NumInitialImposters", help:"Number of imposters in initial allocation. Allowed to grow on demand if r.Nanite.Streaming.DynamicallyGrowAllocations is enabled.", type:"Var"}, {name: "r.Nanite.Streaming.NumInitialRootPages", help:"Number of root pages in initial allocation. Allowed to grow on demand if r.Nanite.Streaming.DynamicallyGrowAllocations is enabled.", type:"Var"}, {name: "r.Nanite.Streaming.QualityScale.MaxPoolPercentage", help:"Adjust quality down whenever the streaming pool load percentage goes above this threshold.", type:"Var"}, {name: "r.Nanite.Streaming.QualityScale.MinPoolPercentage", help:"Adjust quality up whenever the streaming pool load percentage goes below this threshold.", type:"Var"}, {name: "r.Nanite.Streaming.QualityScale.MinQuality", help:"Quality scaling will never go below this limit. 1.0 disables any scaling.", type:"Var"}, {name: "r.Nanite.Streaming.ReservedResources", help:"Allow allocating Nanite GPU resources as reserved resources for better memory utilization and more efficient resizing (EXPERIMENTAL)", type:"Var"}, {name: "r.Nanite.Streaming.ResetStreamingPool", help:"Resets the Nanite streaming pool on next update.", type:"Cmd"}, {name: "r.Nanite.Streaming.StreamingPoolSize", help:"Size of streaming pool in MB. Does not include memory used for root pages.Be careful with setting this close to the GPU resource size limit (typically 2-4GB) as root pages are allocated from the same physical buffer.", type:"Var"}, {name: "r.Nanite.Streaming.TranscodeWaveSize", help:"Overrides the wave size to use for transcoding.\n 0: Automatic (default);\n 4: Wave size 4;\n 8: Wave size 8;\n 16: Wave size 16;\n 32: Wave size 32;\n 64: Wave size 64;\n 128: Wave size 128;\n", type:"Var"}, {name: "r.Nanite.StreamOut.CacheTraversalData", help:"Cache traversal data during count pass to be able to skip traversal during stream out pass.", type:"Var"}, {name: "r.Nanite.Tessellation", help:"Whether to enable runtime tessellation.", type:"Var"}, {name: "r.Nanite.TestPrecacheDrawSkipping", help:"Set to 1 to pretend all programmable raster draws are not precached yet.", type:"Var"}, {name: "r.Nanite.UseSceneInstanceHierarchy", help:"Control Nanite use of the scene instance culling hierarchy. Has no effect unless r.SceneCulling is also enabled.", type:"Var"}, {name: "r.Nanite.ViewMeshLODBias.Enable", help:"Whether LOD offset to apply for rasterized Nanite meshes for the main viewport should be based off TSR\'s ScreenPercentage (Enabled by default).", type:"Var"}, {name: "r.Nanite.ViewMeshLODBias.Min", help:"Minimum LOD offset for rasterizing Nanite meshes for the main viewport (Default = -2).", type:"Var"}, {name: "r.Nanite.ViewMeshLODBias.Offset", help:"LOD offset to apply for rasterized Nanite meshes for the main viewport when using TSR (Default = 0).", type:"Var"}, {name: "r.Nanite.Visualize", help:"When the viewport view-mode is set to \'Nanite Visualization\', this command specifies which of the various channels to display. Values entered other than the allowed values shown below will be ignored.\n Overview\n Mask\n Triangles\n Patches\n Clusters\n Primitives\n Instances\n Overdraw\n LightmapUV\n EvaluateWPO\n PixelProgrammable\n Tessellation\n RasterBins\n ShadingBins\n Picking\n Groups\n Pages\n Hierarchy\n RasterMode\n SceneZMin\n SceneZMax\n SceneZDelta\n SceneZDecoded\n MaterialCount\n MaterialMode\n MaterialIndex\n HitProxyID\n LightmapUVIndex\n LightmapDataIndex\n PositionBits\n VSMStatic\n ShadingWriteMask\n NoDerivativeOps\n FastClearTiles\n DisplacementScale\n VertexColor\n MeshPaintTexture", type:"Var"}, {name: "r.Nanite.Visualize.Advanced", help:"", type:"Var"}, {name: "r.Nanite.Visualize.ComplexityOverhead", help:"", type:"Var"}, {name: "r.Nanite.Visualize.ComplexityScale", help:"", type:"Var"}, {name: "r.Nanite.Visualize.Composite", help:"", type:"Var"}, {name: "r.Nanite.Visualize.EdgeDetect", help:"", type:"Var"}, {name: "r.Nanite.Visualize.OverdrawScale", help:"", type:"Var"}, {name: "r.Nanite.Visualize.PixelProgrammableVisMode", help:"0: Show masked, pixel depth offset, and dynamic displacement materials.\n1: Show masked materials only.\n2: Show pixel depth offset only.\n3: Show dynamic displacement only.", type:"Var"}, {name: "r.Nanite.VisualizeOverview", help:"Specify the list of modes that can be used in the Nanite visualization overview. Put nothing between the commas to leave a gap.\n\n\tChoose from:\n\n Overview\n Mask\n Triangles\n Patches\n Clusters\n Primitives\n Instances\n Overdraw\n LightmapUV\n EvaluateWPO\n PixelProgrammable\n Tessellation\n RasterBins\n ShadingBins\n Picking\n Groups\n Pages\n Hierarchy\n RasterMode\n SceneZMin\n SceneZMax\n SceneZDelta\n SceneZDecoded\n MaterialCount\n MaterialMode\n MaterialIndex\n HitProxyID\n LightmapUVIndex\n LightmapDataIndex\n PositionBits\n VSMStatic\n ShadingWriteMask\n NoDerivativeOps\n FastClearTiles\n DisplacementScale\n VertexColor\n MeshPaintTexture", type:"Var"}, {name: "r.Nanite.VSMInvalidateOnLODDelta", help:"Experimental: Clusters that are not streamed in to LOD matching the computed Nanite LOD estimate will trigger VSM invalidation such that they are re-rendered when streaming completes.\n NOTE: May cause a large increase in invalidations in cases where the streamer has difficulty keeping up (a future version will need to throttle the invalidations and/or add a threshold).", type:"Var"}, {name: "r.NFOR.AlbedoDivide.RecoverPhase", help:"0: Add back in the last step. Denoised = Albedo_{center} * \\sum_{all frames}{denoised radiance}. Require high sample count for high quality albedo.1: Add back at each scattering or gathering. Denoised = * \\sum_{i \\in frames}{Albedo_i * denoised radiance}.", type:"Var"}, {name: "r.NFOR.BandwidthSelection", help:"true: Apply bandwidth selection. It helps to preserve both high and low frequency details.", type:"Var"}, {name: "r.NFOR.BandwidthSelection.Bandwidth", help:"-1: Use predefined bandwidths {0.5f, 1.0f}.(0,1]: Use a specific bandwidth.", type:"Var"}, {name: "r.NFOR.BandwidthSelection.Map.PreserveDetail", help:"false: Use bandwidth = 1.0 to filter MSE.true: Use the corresponding bandwidth to filter MSE", type:"Var"}, {name: "r.NFOR.BandwidthSelection.MSE.PreserveDetail", help:"false: Use bandwidth = 1.0 to filter MSE.true: Use the corresponding bandwidth to filter MSE", type:"Var"}, {name: "r.NFOR.CPU.Regression.Recombine.Type", help:"0: Apply patch reconstruction to patch for current frame, weighted sum of neighbor patch to the current pixel for other frames.1: Apply weighted sum of neighbor patch to the current pixel for all frames.", type:"Var"}, {name: "r.NFOR.Denoise.Alpha", help:"Indicate if the alpha channel of radiance will be denoised (Default on).", type:"Var"}, {name: "r.NFOR.DenoisingFrameIndex", help:"The index of the denoising frame.-1: Automatically determine the index.i: Use all frames other than the ith frame to denoise.", type:"Var"}, {name: "r.NFOR.Feature.AddConstant", help:"Add a constant 1 feature for denoising. Especially useful when all other features are zero.", type:"Var"}, {name: "r.NFOR.Feature.Depth", help:"true: Add depth as feature for NFOR denoising.", type:"Var"}, {name: "r.NFOR.Feature.Filtering", help:"True: Filter all features.\nFalse: Disable feature filtering (useful for debug).\n", type:"Var"}, {name: "r.NFOR.Feature.MaxAlbedoGreyscale", help:"Set the max albedo in greyscale used for denoising. Scale the albedo variance as well. Used for suppressing specular noise.<=0: Ignore scaling.", type:"Var"}, {name: "r.NFOR.Feature.MaxNormalLength", help:"Set the max normal length used for denoising. Scale the normal variance as well. Used for suppressing specular noise.<=0: Ignore scaling.", type:"Var"}, {name: "r.NFOR.FrameCount", help:"n: Use the previous n frames, the current frame, and the future n frames. Suggested range is 0~2. Max=3.(Offline config)\nThe value is always 0 for online preview denoising\n", type:"Var"}, {name: "r.NFOR.FrameCount.Condition", help:"0: Denoise even if the frame count accumulated is less than the required frame count (used for debug).1: Denoise only when the number of frame count meets requirement.", type:"Var"}, {name: "r.NFOR.LinearSolver.Cholesky.Lambda", help:"The initial lambda for modified Cholesky decomposition to make it positive definite. It will be scaled by the max of the absolute of the matrix element.\nLarge value yields bias with smoothed rendering, while small value leads to variance or artifacts.\nUsed when r.NFOR.LinearSolver.Type = 1 and 2. Selected to match the quality of r.NFOR.LinearSolver.Type = 2\nto r.NFOR.LinearSolver.Type 0.", type:"Var"}, {name: "r.NFOR.LinearSolver.Device", help:"0: Solve Ax=B on CPU. Use householder QR decomposition from Eigen library.1: Solve Ax=B on GPU.", type:"Var"}, {name: "r.NFOR.LinearSolver.Type", help:"The linear regression solver type implemented in GPU.\n0: Newton Schulz iterative method (High quality but slow).\n1: Cholesky decomposition (Fast but has too smoothed result or artifacts).\n2: Fusion of Cholesky and Newton Schulz iterative method (High quality and fast).\n", type:"Var"}, {name: "r.NFOR.NonLocalMean.Atlas", help:"true\t: Use atlas and separable filter to improve the performance of NLM weights query.\nfalse : Calculate the non local mean weights for each pixel in place.(baseline but slow).\n", type:"Var"}, {name: "r.NFOR.NonLocalMean.Atlas.Size", help:"<=0: Use the same size of the input tile.\n\tn: At least the max size of the input tile(2k as default). The larger, the less number of dispatch passes.\n", type:"Var"}, {name: "r.NFOR.NonLocalMean.Atlas.Type", help:"0: float2. Stores one symmetric distance/weight.\n1: float4. Stores two symmetric distance/weights.\n", type:"Var"}, {name: "r.NFOR.NonLocalMean.Feature.Format", help:"0: fp32 \n1: fp16 \n", type:"Var"}, {name: "r.NFOR.NonLocalMean.Feature.PatchDistance", help:"The search distance of the non-local mean algorithm for feature filtering. The searching patch width/height = PatchDistance * 2 + 1.", type:"Var"}, {name: "r.NFOR.NonLocalMean.Feature.PatchSize", help:"The patch size of the non-local mean algorithm for feature filtering. The patch width/height = PatchSize * 2 + 1.", type:"Var"}, {name: "r.NFOR.NonLocalMean.Radiance.PatchDistance", help:"The search distance of the non-local mean algorithm. The searching patch width/height = PatchDistance * 2 + 1.The patch distance for bandwidth selection dependents on this parameters for MSE and selection filtering.", type:"Var"}, {name: "r.NFOR.NonLocalMean.Radiance.PatchSize", help:"The patch size of the non-local mean algorithm. The patch width/height = PatchSize * 2 + 1.", type:"Var"}, {name: "r.NFOR.NonLocalMean.WeightLayout", help:"The layout of the weight. It affects the performance and how weights are handled at each stage.\n 0: Do not use weight buffer.\n 1: NumOfWeightsPerPixel x Width x Height.\n 2: Width x Height x NumOfWeightsPerPixel.\n 3: float4 x Width x Height x DivideAndRoundUp(NumOfWeightsPerPixel,float4)\n", type:"Var"}, {name: "r.NFOR.NumOfTile", help:"n: Divide the image into n x n tiles in [1,32].\n0<=x<=1: Use a single dispatch. Could run out of memory.\n-1: Automatically determine the number of tiles based on r.NFOR.Tile.Size and the view size.\n", type:"Var"}, {name: "r.NFOR.PredivideAlbedo", help:"Enable pre-albedo divide to denoise only the demodulated singal. It preserves more high frequency details.", type:"Var"}, {name: "r.NFOR.PredivideAlbedo.Offset", help:"Offset for albedo for regions other than full reflection and sky materials. Increase to get a smoother result.", type:"Var"}, {name: "r.NFOR.PredivideAlbedo.OffsetSky", help:"Sky or reflection of sky material has very small albedo that will cause noise. Offset more.", type:"Var"}, {name: "r.NFOR.Reconstruction.Debug.FrameIndex", help:">=0: Output the denoising contribution from the ith frame only.-1: do not perform debug. Output contributions from all frames.", type:"Var"}, {name: "r.NFOR.Reconstruction.Type", help:"0: Scatter for the denoising frame, gather for other temporal frames (default).1: Force gathering.", type:"Var"}, {name: "r.NFOR.Regression.Device", help:" 0: CPU (verification). Used only for feature development.\n 1: GPU.\n", type:"Var"}, {name: "r.NFOR.Regression.MaxDataRatioToParemters", help:"The max number of observations per parameter in the regression. <1 to use all.", type:"Var"}, {name: "r.NFOR.Tile.FeatureTileCount.DownScale", help:"Reduce the number of tiles by this factor for feature filtering.", type:"Var"}, {name: "r.NFOR.Tile.Size", help:"The size of the max length of a tile. The default is selected for best performance based on experiment.\nIt takes effect only when r.NFOR.NumOfTile is set to -1. Minimal value = 100.\n", type:"Var"}, {name: "r.NFOR.TileDebug", help:">0: Turn on tile debug mode.", type:"Var"}, {name: "r.NFOR.TileDebug.Index", help:"Tile index number to debug. -1: The middle index in range of 0 ~ (NumOfTile * NumOfTile - 1).>=0: Select a specific tile to render for debug.", type:"Var"}, {name: "r.NVIDIATimestampWorkaround", help:"If true we disable timestamps on pre-maxwell hardware (workaround for driver bug)\n", type:"Var"}, {name: "r.OcclusionCullParallelPrimFetch", help:"Enables Parallel Occlusion Cull primitive fetch.", type:"Var"}, {name: "r.NumFramesUnusedBeforeReleasingGlobalResourceBuffers", help:"Number of frames after which unused global resource allocations will be discarded. Set 0 to ignore. (default=30)", type:"Var"}, {name: "r.OcclusionFeedback.Blending", help:"0: Opaque \n1: Enable blending (default) \n2: Enable pixel discard", type:"Var"}, {name: "r.OcclusionFeedback.Enable", help:"Whether to enable occlusion system based on a rendering feedback. Currently works only with a mobile rendering\n", type:"Var"}, {name: "r.OcclusionQueryDispatchOrder", help:"0: Grouped queries before individual (default)\n1: Individual queries before grouped", type:"Var"}, {name: "r.OIT.SortedPixels", help:"Enable OIT rendering (project settings, can\'t be changed at runtime)", type:"Var"}, {name: "r.OIT.SortedPixels.Debug", help:"Enable debug rendering for OIT. 1: Enable debug for std. translucency 2: Enable for separated translucency.", type:"Var"}, {name: "r.OIT.SortedPixels.Enable", help:"Enable OIT rendering (runtime setting, selects shader permutation)", type:"Var"}, {name: "r.OIT.SortedPixels.MaxSampleCount", help:"Max sample count.", type:"Var"}, {name: "r.OIT.SortedPixels.Method", help:"Toggle OIT methods 0: Regular alpha-blending (i.e., no OIT) 1: MLAB", type:"Var"}, {name: "r.OIT.SortedPixels.PassType", help:"Enable OIT rendering. 0: disable 1: enable OIT for std. translucency 2: enable OIT for separated translucency 3: enable for both std. and separated translucency (default)", type:"Var"}, {name: "r.OIT.SortedPixels.TransmittanceThreshold", help:"Remove translucent rendering surfaces when the accumulated thransmittance is below this threshold", type:"Var"}, {name: "r.OIT.SortedTriangles", help:"Enable per-instance triangle sorting to avoid invalid triangle ordering.", type:"Var"}, {name: "r.OIT.SortedTriangles.Debug", help:"Enable per-instance triangle sorting debug rendering.", type:"Var"}, {name: "r.OIT.SortedTriangles.Pool", help:"Enable index buffer pool allocation which reduce creation/deletion time by re-use buffers.", type:"Var"}, {name: "r.OIT.SortedTriangles.Pool.ReleaseFrameThreshold", help:"Number of frame after which unused buffer are released.", type:"Var"}, {name: "r.OpenGL.AddExtensions", help:"List of comma separated OpenGL extensions to add to a driver reported extensions string", type:"Var"}, {name: "r.OpenGL.AllowRHIThread", help:"Toggle experimental OpenGL RHI thread support.\n0: GL scene rendering operations are performed on the render thread. (default)\n1: GL scene rendering operations are queued onto the RHI thread gaining some parallelism with the render thread. (mobile feature levels only)", type:"Var"}, {name: "r.OpenGL.EnableProgramLRUCache", help:"OpenGL program LRU cache.\nFor use only when driver only supports a limited number of active GL programs.\n0: disable LRU. (default)\n1: When the LRU cache limits are reached, the least recently used GL program(s) will be deleted to make space for new/more recent programs. Expect hitching if requested shader is not in LRU cache.", type:"Var"}, {name: "r.OpenGL.EvictOnBSSDestruct", help:"", type:"Var"}, {name: "r.OpenGL.EvictOnBSSDestruct.Latency", help:"", type:"Var"}, {name: "r.OpenGL.IgnoreLinkFailure", help:"Ignore OpenGL program link failures.\n0: Program link failure generates a fatal error when encountered. (default)\n1: Ignore link failures. this may allow a program to continue but could lead to undefined rendering behaviour.", type:"Var"}, {name: "r.OpenGL.PollRenderQueryResult", help:"Whether to poll render query for result until it\'s ready, otherwise do a blocking call to get result.0: Block, 1: Poll (default)", type:"Var"}, {name: "r.OpenGL.PrintProgramStats", help:"Print to log current program binary stats", type:"Cmd"}, {name: "r.OpenGL.ProgramLRUBinarySize", help:"OpenGL LRU maximum binary shader size.\nLimit the maximum number of active shader programs at any one time.\n0: disable LRU. (default)\nNon-Zero: Maximum number of bytes active shader programs may use. If reached, least recently used shader programs will deleted.", type:"Var"}, {name: "r.OpenGL.ProgramLRUCount", help:"OpenGL LRU maximum occupancy.\nLimit the maximum number of active shader programs at any one time.\n0: disable LRU. (default)\nNon-Zero: Maximum number of active shader programs, if reached least, recently used shader programs will deleted. ", type:"Var"}, {name: "r.OpenGL.ProgramLRUKeepBinaryResident", help:"OpenGL LRU should keep program binary in memory.\nDo not discard the program binary after creation of the GL program.\n0: Program binary is discarded after GL program creation and recreated on program eviction. (default)\n1: Program binary is retained, this improves eviction and re-creation performance but uses more memory.", type:"Var"}, {name: "r.OpenGL.StoreCompressedProgramBinaries", help:"", type:"Var"}, {name: "r.OpenGL.StripExtensions", help:"List of comma separated OpenGL extensions to strip from a driver reported extensions string", type:"Var"}, {name: "r.OpenGL.UseExistingBinaryFileCache", help:"When generating a new binary cache (such as when Shader Pipeline Cache Version Guid changes) use the existing binary file cache to speed up generation of the new cache.\n0: Always rebuild binary file cache when Pipeline Cache Version Guid changes.\n1: When Pipeline Cache Version Guid changes re-use programs from the existing binary cache where possible (default).", type:"Var"}, {name: "r.OptimizedWPO.AffectNonNaniteShaderSelection", help:"Whether the per primitive WPO flag should affect shader selection for non-nanite primitives. It increase the chance of selecting the position only depth VS at the cost of updating cached draw commands whenever the WPO flag changes.", type:"Var"}, {name: "r.Ortho.AllowNearPlaneCorrection", help:"Orthographic near planes can be behind the camera position, which causes some issues with Unreal resolving lighting behind the camera position This CVar enables the Orthographic cameras globally to automatically update the camera location to match the NearPlane location, and force the pseudo camera position to be the replaced near plane location for the projection matrix calculation. This means Unreal can resolve lighting behind the camera correctly.", type:"Var"}, {name: "r.Ortho.AutoPlanes", help:"Globally allow Ortho cameras to utilise the automatic Near/Far plane evaluations.", type:"Var"}, {name: "r.Ortho.AutoPlanes.ClampToMaxFPBuffer", help:"When auto evaluating clip planes, determines whether 16bit depth scaling should be used.16bit scaling is advantageous for any depth downscaling that occurs (e.g. HZB downscaling uses 16 bit textures instead of 32).This feature will calculate the maximum depth scale needed based on the Unreal Unit (cm by default) to Pixel ratio.It assumes that we don\'t need 32bit depth range for smaller scenes, because most actors will be within a reasonable visible frustumHowever it does still scale up to a maximum of UE_OLD_WORLD_MAX which is the typical full range of the depth buffer, so larger scenes still work too.", type:"Var"}, {name: "r.Ortho.AutoPlanes.DepthScale", help:"Allows the 16 bit depth scaling to be adjusted from the default +FP16 Max (66504.0f)This is useful if the far plane doesn\'t need to be as far away, so it will improve depth deltas", type:"Var"}, {name: "r.Ortho.AutoPlanes.ScaleIncrementingUnits", help:"Select whether to scale the Near/Far plane Min/Max values as we increase in unit to pixel ratio (i.e. as we go from CM to M to KM)", type:"Var"}, {name: "r.Ortho.AutoPlanes.ShiftPlanes", help:"Shifts the whole frustum in the Z direction.This can be useful if, for example you need the Near plane closer to the camera, at the reduction of the Far plane value (e.g. a horizontal 2.5D scene).", type:"Var"}, {name: "r.Ortho.CalculateDepthThicknessScaling", help:"Whether to automatically derive the depth thickness test scale from the Near/FarPlane difference.\n0: Disabled (use scaling specified by r.Ortho.DepthThicknessScale)\n1: Enabled (default)", type:"Var"}, {name: "r.Ortho.CameraHeightAsViewTarget", help:"Sets whether to use the camera height as a pseudo camera to view target.\nPrimarily helps with VSM clipmap selection and avoids overcorrecting NearPlanes.\n", type:"Var"}, {name: "r.Ortho.Debug.ForceAllCamerasToOrtho", help:"Debug Force all cameras in the scene to use Orthographic views", type:"Var"}, {name: "r.Ortho.Debug.ForceCameraFarPlane", help:"Debug Force Ortho Far Plane when creating a new camera actor", type:"Var"}, {name: "r.Ortho.Debug.ForceCameraNearPlane", help:"Debug Force Ortho Near Plane when creating a new camera actor", type:"Var"}, {name: "r.Ortho.Debug.ForceOrthoWidth", help:"Debug Force Ortho Width when creating a new camera actor", type:"Var"}, {name: "r.Ortho.Debug.ForceUseAutoPlanes", help:"Debug Force boolean for whether to use the automatic near and far plane evaluation", type:"Var"}, {name: "r.Ortho.DefaultUpdateNearClipPlane", help:"Ortho near clip plane value to correct to when using ortho near clip correction", type:"Var"}, {name: "r.Ortho.DepthThicknessScale", help:"Orthographic scene depth scales proportionally lower than perspective, typically on a scale of 1/100Use this value to tweak the scale of depth thickness testing values simultaneously across various screen trace passes", type:"Var"}, {name: "r.Ortho.EditorDebugClipPlaneScale", help:"Only affects the editor ortho viewports in Lit modes.\nSet the scale to proportionally alter the near plane based on current Ortho width that is set.\nThis changes when geometry clips in the scene as the Orthozoom is changed. Helpful for varying mesh sizes.\nOther light artefacts may appear when this value changes, this is unavoidable for now.\n", type:"Var"}, {name: "r.Ortho.FogHeightAdjustment", help:"When enabled, uses the Ortho camera height to determine the fog cutoff height", type:"Var"}, {name: "r.Ortho.UsePreviousMotionVelocityFlattenPass", help:"Enable/Disable the option for Ortho motion blur pass to use the previous flatten textures (e.g. from TSR). Currently causes shimmering on distance planes if disabled", type:"Var"}, {name: "r.Ortho.VSM.ClipmapLODBias", help:"LOD setting for adjusting the VSM first level from it\'s OrthoWidth based value.", type:"Var"}, {name: "r.Ortho.VSM.EstimateClipmapLevels", help:"Enable/Disable calculating the FirstLevel VSM based on the current camera OrthoWidth", type:"Var"}, {name: "r.Ortho.VSM.ProjectViewOrigin", help:"Enable/Disable moving the WorldOrigin of the VSM clipmaps to focus around the ViewTarget (if present)", type:"Var"}, {name: "r.Ortho.VSM.RayCastViewOrigin", help:"Enable/Disable whether the ViewOrigin should be estimated with a raycast if the ViewTarget is not present (i.e. standalone camera)", type:"Var"}, {name: "r.OverrideShaderDebugDir", help:"Override output location of shader debug files\nEmpty: use default location Saved\\ShaderDebugInfo.\n", type:"Var"}, {name: "r.Paper2D.UsePrebuiltVertexBuffers", help:"Draw sprites using prebuilt vertex buffers.", type:"Var"}, {name: "r.ParallelInitViews", help:"Toggles parallel init views. 0 = off; 1 = on", type:"Var"}, {name: "r.ParallelInitDynamicShadows", help:"Toggles parallel dynamic shadow initialization. 0 = off; 1 = on", type:"Var"}, {name: "r.ParallelMeshDecal", help:"Toggles parallel mesh decal rendering. Parallel rendering must be enabled for this to have an effect.", type:"Var"}, {name: "r.ParallelSingleLayerWaterPass", help:"Toggles parallel single layer water pass rendering. Parallel rendering must be enabled for this to have an effect.", type:"Var"}, {name: "r.PathTracing.AdaptiveSampling", help:"Toggles the use of adaptive sampling\n0: off\n1: on (default)\n", type:"Var"}, {name: "r.PathTracing.AdaptiveSampling.MinimumSamplesPerPixel", help:"Changes the minimum samples-per-pixel before applying adaptive sampling (default=16)\n", type:"Var"}, {name: "r.PathTracing", help:"Enables the path tracing renderer (to guard the compilation of path tracer specific material permutations)", type:"Var"}, {name: "r.PathTracing.AdaptiveSampling", help:"Determines if adaptive sampling is enabled. When non-zero, the path tracer will try to skip calculation of pixels below the specified error threshold.\n0: off (uniform sampling - default)\n1: on (adaptive sampling)\nRequires r.PathTracing.Experimental=true to modify.\n", type:"Var"}, {name: "r.PathTracing.AdaptiveSampling.ErrorThreshold", help:"This is the target perceptual error threshold. Once a pixel\'s error falls below this value, it will not be sampled again (default: 0.001)\n", type:"Var"}, {name: "r.PathTracing.AdaptiveSampling.Visualize", help:"Select a visualization mode to help understand how adaptive sampling is working.\n0: off\n1: Visualize active pixels with heatmap (converged pixels are displayed as is)\n2: Visualize sample count heatmap (against current max samples)\n3-7: Visualize variance mip levels\n", type:"Var"}, {name: "r.PathTracing.AdjustMultiGPUPasses", help:"Run extra passes per frame when multiple GPUs are active, to improve perf scaling as GPUs are added (default = true)\n", type:"Var"}, {name: "r.PathTracing.ApproximateCaustics", help:"When non-zero, the path tracer will approximate caustic paths to reduce noise. This reduces speckles and noise from low-roughness glass and metals. (default = 1 (enabled))", type:"Var"}, {name: "r.PathTracing.AtmosphereOpticalDepthLUTNumSamples", help:"Number of ray marching samples used when building the transmittance lookup texture used for transmittance calculations by the path tracer in reference atmosphere mode. (default = 16384)", type:"Var"}, {name: "r.PathTracing.AtmosphereOpticalDepthLUTResolution", help:"Size of the square lookup texture used for transmittance calculations by the path tracer in reference atmosphere mode. (default = 512)", type:"Var"}, {name: "r.PathTracing.BackgroundAlpha", help:"Value of the alpha channel for pixels that do hit anything (default 0.0)\nNote that this refers to the normal interpretation of alpha which the path tracer uses internally, so 0 corresponds to a transparent pixel while 1 refers to a solid pixel.", type:"Var"}, {name: "r.PathTracing.CameraMediumTracking", help:"Enables automatic camera medium tracking to detect when a camera starts inside water or solid glass automatically\n false: off\n true : on (default)\n", type:"Var"}, {name: "r.PathTracing.CloudAccelerationMapNumSamples", help:"Number of ray marching samples used when building the cloud acceleration map for the path tracer in reference atmosphere mode. (default = 64)", type:"Var"}, {name: "r.PathTracing.CloudAccelerationMapResolution", help:"Size of the square texture used to accelerate cloud ray marching for the path tracer in reference atmosphere mode. (default = 512)", type:"Var"}, {name: "r.PathTracing.CloudAccelerationMapVisualize", help:"If true, replace clouds with a visualization of the acceleration map to help visualize it and fine tune its resolution (default = false)", type:"Var"}, {name: "r.PathTracing.CloudMapDepth", help:"Depth of the texture used to cache volumetric cloud appearance in reference atmosphere mode. (default = 64)", type:"Var"}, {name: "r.PathTracing.CloudMapEnable", help:"Controls the use of a texture to cache the cloud material.\n true : Clouds will be voxelized into a texture for faster evaluation (default)\n false: Cloud material will be invoked per ray march step via callable shaders (more accurate, but more expensive)\nRequires r.PathTracing.Experimental=true to modify.\n", type:"Var"}, {name: "r.PathTracing.CloudMapResolution", help:"Size of the texture used to cache volumetric cloud appearance in reference atmosphere mode. (default = 512)", type:"Var"}, {name: "r.PathTracing.CloudRoughnessCutoff", help:"Do not evaluate volumetric clouds beyond this roughness level to improve performance (default=0.05)", type:"Var"}, {name: "r.PathTracing.Compaction", help:"Enables path compaction to improve GPU occupancy for the path tracer. Requires r.PathTracing.Experimental=true to modify. (default: true (enabled))", type:"Var"}, {name: "r.PathTracing.Debug", help:"Enable debug rendering for path tracer. Used for only development and needs to be enabled before starting the engine.\n", type:"Var"}, {name: "r.PathTracing.DebugVisualize", help:"Enables a debug mode for the path tracer which can visualize payload fields and perform basic lighting without sample accumulation. (default: )", type:"Var"}, {name: "r.PathTracing.DebugVisualizeLightSamples", help:"Number of light samples for the path tracing light sampling debug mode (default: 1)", type:"Var"}, {name: "r.PathTracing.DecalRoughnessCutoff", help:"Do not evaluate decals beyond this roughness level to improve performance (default=0.15)", type:"Var"}, {name: "r.PathTracing.Denoiser", help:"Enable denoising of the path traced output (if a denoiser plugin is active) (default = -1 (driven by postprocesing volume))\n-1: inherit from PostProcessVolume\n0: disable denoiser\n1: enable denoiser (if a denoiser plugin is active)\n", type:"Var"}, {name: "r.PathTracing.Denoiser.Name", help:"Set the spatial denoiser name. It is the corresponding name registered by a denoiser plugin\nAny registered denoiser should be able to denoise a single frame spatially.\n", type:"Var"}, {name: "r.PathTracing.Denoiser.NormalSpace", help:"The space normal is in\n0: World space (default)\n1: Camera space. Some denoisers require camera space normal\n", type:"Var"}, {name: "r.PathTracing.Denoiser.Prepass.OutputVarianceTexture", help:"0: No variance texture will be generated in Prepass1: Output variance texture to denoisers, or the postprocess material usually used by MRQ", type:"Var"}, {name: "r.PathTracing.Denoiser.Prepass.RankedLuminanceVariance", help:"Select the luminance type when calculating the variance:\n0: use default luminance to estimate variance.\n1: Use channel ranked luminance when calculating variance.\n", type:"Var"}, {name: "r.PathTracing.Denoiser.Prepass.VarianceType", help:"Select the per-pixel variance type:0: Multiple channel (RGB) variance for radiance1: Combined single channel variance for radiance, albedo and normal", type:"Var"}, {name: "r.PathTracing.DispatchSize", help:"Controls the tile size used when rendering the image. Reducing this value may prevent GPU timeouts for heavy renders. (default = 2048)", type:"Var"}, {name: "r.PathTracing.EnableCameraBackfaceCulling", help:"When non-zero, the path tracer will skip over backfacing triangles when tracing primary rays from the camera. (default = 1 (enabled))", type:"Var"}, {name: "r.PathTracing.EnableEmissive", help:"Indicates if emissive materials should contribute to scene lighting (default = -1 (driven by postprocesing volume)", type:"Var"}, {name: "r.PathTracing.EnableReferenceAtmosphere", help:"Should the path tracer use a volumetric calculation to represent the sky atmosphere?\n-1: Inherit from PostProcess settings (default)\n 0: Disabled\n 1: Enable\n", type:"Var"}, {name: "r.PathTracing.EnableReferenceClouds", help:"Should the path tracer use a volumetric calculation to represent volumetric clouds? (This requires Reference Atmosphere to be enabled)\n 0: Disabled (default)\n 1: Enable\n", type:"Var"}, {name: "r.PathTracing.EnableReferenceDOF", help:"Should the path tracer ray trace the depth-of-field effect instead of the post-processed effect?\n-1: Inherit from PostProcess settings (default)\n 0: Disabled\n 1: Enable\n", type:"Var"}, {name: "r.PathTracing.Experimental", help:"Enables some experimental features of the path tracing renderer that require compiling additional permutations of the path tracer. (default: false)", type:"Var"}, {name: "r.PathTracing.FilterWidth", help:"Sets the anti-aliasing filter width (default = 3.0 which corresponds to a gaussian with standard deviation of a 1/2 pixel)", type:"Var"}, {name: "r.PathTracing.FlushDispatch", help:"Enables flushing of the command list after dispatch to reduce the likelyhood of TDRs on Windows (default: 2)\n0: off\n1: flush after each dispatch\n2: flush after each tile\n", type:"Var"}, {name: "r.PathTracing.FrameIndependentTemporalSeed", help:"Indicates to use different temporal seed for each sample across frames rather than resetting the sequence at the start of each frame\n0: off\n1: on (default)\n", type:"Var"}, {name: "r.PathTracing.HeterogeneousVolumes.RebuildEveryFrame", help:"Rebuilds volumetric acceleration structures every frame (default = true)\n", type:"Var"}, {name: "r.PathTracing.IndirectDispatch", help:"Enables indirect dispatch (if supported by the hardware) for compacted path tracing (default: false (disabled))", type:"Var"}, {name: "r.PathTracing.LightFunctionColor", help:"Enables light functions to be colored instead of greyscale (default = false)\n0: off (default)\n1: on (light function material output is used directly instead of converting to greyscale)\n", type:"Var"}, {name: "r.PathTracing.LightGridAxis", help:"Choose the coordinate axis along which to project the light grid (default = -1, automatic)\n", type:"Var"}, {name: "r.PathTracing.LightGridMaxCount", help:"Controls the maximum number of lights per cell in the 2D light grid. The minimum of this value and the number of lights in the scene is used. (default = 128)\n", type:"Var"}, {name: "r.PathTracing.LightGridResolution", help:"Controls the resolution of the 2D light grid used to cull irrelevant lights from lighting calculations (default = 256)\n", type:"Var"}, {name: "r.PathTracing.RandomSequence", help:"Changes the underlying random sequence\n0: LCG (default\n1: Halton\n2: Scrambled Halton\n", type:"Var"}, {name: "r.PathTracing.RayCountFrequency", help:"Sets the ray count computation frequency (default = every 128 iterations)", type:"Var"}, {name: "r.PathTracing.SamplesPerPixel", help:"Defines the samples per pixel before resetting the simulation (default = -1 (driven by postprocesing volume))", type:"Var"}, {name: "r.PathTracing.VarianceMapRebuildFrequency", help:"Sets the variance map rebuild frequency (default = every 16 iterations)", type:"Var"}, {name: "r.Photography.Allow", help:"If 1, allow the user to freeze the scene and potentially use a roaming camera to\ntake screenshots. Set this dynamically to permit or forbid photography per-level,\nper-cutscene, etc. (Default: 1)", type:"Var"}, {name: "r.Photography.AutoPause", help:"If 1, the photography system will attempt to ensure that the level is paused while in photography mode. Set to 0 to manage pausing and unpausing manually from the PlayerCameraManager Blueprint callbacks. Note: Blueprint callbacks will be called regardless of AutoPause value. (Default: auto-pause (1)", type:"Var"}, {name: "r.Photography.AutoPostprocess", help:"If 1, the photography system will attempt to automatically disable HUD, subtitles, and some standard postprocessing effects during photography sessions/captures which are known to give poor photography results. Set to 0 to manage all postprocessing tweaks manually from the PlayerCameraManager Blueprint callbacks. Note: Blueprint callbacks will be called regardless of AutoPostprocess value. (Default: auto-disable (1)", type:"Var"}, {name: "r.PathTracing.MaxPathIntensity", help:"When positive, light paths greater that this amount are clamped to prevent fireflies (default = -1 (driven by postprocesing volume))", type:"Var"}, {name: "r.PathTracing.MaxRaymarchSteps", help:"Upper limit on the number of ray marching steps in volumes. This limit should not be hit in most cases, but raising it can reduce bias in case it is. (default = 256).", type:"Var"}, {name: "r.PathTracing.MaxSSSBounces", help:"Sets the maximum number of bounces inside subsurface materials. Lowering this value can make subsurface scattering render too dim, while setting it too high can cause long render times. (default = 256)", type:"Var"}, {name: "r.PathTracing.MeshDecalBias", help:"Bias applied to mesh decal rays to avoid intersection with geometry (default = 1.0f)", type:"Var"}, {name: "r.PathTracing.MeshDecalRoughnessCutoff", help:"Do not evaluate mesh decals beyond this roughness level to improve performance (default=0.15)", type:"Var"}, {name: "r.PathTracing.MISCompensation", help:"Activates MIS compensation for skylight importance sampling. (default = 1 (enabled))\nThis option only takes effect when r.PathTracing.MISMode = 2\n", type:"Var"}, {name: "r.PathTracing.MISMode", help:"Selects the sampling technique for light integration (default = 2 (MIS enabled))\n0: Material sampling\n1: Light sampling\n2: MIS betwen material and light sampling (default)\n", type:"Var"}, {name: "r.PathTracing.MultiGPU", help:"Run the path tracer using all available GPUs when enabled (default = 0)\nUsing this functionality in the editor requires -MaxGPUCount=N setting on the command line", type:"Var"}, {name: "r.PathTracing.OutputPostProcessResources", help:"Output the pathtracing resources to the postprocess passes\n false: off\n true : on (Buffers including, raw/denoised radiance, albedo, normal, and variance)\n", type:"Var"}, {name: "r.PathTracing.ProgressDisplay", help:"Enables an in-frame display of progress towards the defined sample per pixel limit. The indicator dissapears when the maximum is reached and sample accumulation has stopped\n false: off\n true : on (default)\n", type:"Var"}, {name: "r.PathTracing.SamplerType", help:"Controls the way the path tracer generates its random numbers\n0: use a different high quality random sequence per pixel (default)\n1: optimize the random sequence across pixels to reduce visible error at the target sample count\n", type:"Var"}, {name: "r.PathTracing.SamplesPerPixel", help:"Sets the maximum number of samples per pixel (default = -1 (driven by postprocesing volume))", type:"Var"}, {name: "r.PathTracing.SkylightCaching", help:"Attempts to re-use skylight data between frames. (default = 1 (enabled))\nWhen set to 0, the skylight texture and importance samping data will be regenerated every frame. This is mainly intended as a benchmarking and debugging aid\n", type:"Var"}, {name: "r.PathTracing.SpatialDenoiser", help:"Enable spatial denoising of the path traced output\n-1: inherit from PostProcessVolume\n0: disable denoiser\n1: enable denoiser (if a denoiser plugin is active)\n", type:"Var"}, {name: "r.PathTracing.SpatialDenoiser.Type", help:"The type of spatial denoiser\n0: Use spatial denoiser only plugin\n1: Use spatial denoiser plugin that also provides temporal denoising\n", type:"Var"}, {name: "r.PathTracing.SSSGuidingRatio", help:"Sets the ratio between classical random walks and walks guided towards the surface. A value of 0.0 corresponds to a purely classical random walk, while a value of 1.0 is fully guided towards the surface (at the expense of fireflies in non-flat regions of the model. (default = 0.5)", type:"Var"}, {name: "r.PathTracing.Substrate.CompileSimplifiedMaterials", help:"Compile a simplified representation of Substrate materials which merges all slabs into one. This is mainly intended for debugging purposes. Enabling this double the number of path tracing shader permutations.\n false: off (default)\n true : on\n", type:"Var"}, {name: "r.PathTracing.Substrate.UseSimplifiedMaterials", help:"Instead of evaluating all layers, use an optimized material in which all slabs have been merged.\n false: off (default)\n true : on\nRequires r.PathTracing.Substrate.CompileSimplifiedMaterials=true to be set.\n", type:"Var"}, {name: "r.PathTracing.TemporalDenoiser", help:"Enable temporal denoising of the path traced output\n-1: inherit from PostProcessVolume (TODO when out of experimental phase)\n0: disable denoiser\n1: enable denoiser (if a denoiser plugin is active)\n", type:"Var"}, {name: "r.PathTracing.TemporalDenoiser.alpha", help:"The weight of history in the exponential mean average\n", type:"Var"}, {name: "r.PathTracing.TemporalDenoiser.DeltaE", help:"Cut off the history weight to zero at CIE DeltaE for low frequency.\n1.0 :the just noticeable difference (JND),\n2.0 :perceptible for close look\n10.0:Perceptible at a glance This works as an alternative control instead of kappa. 2 as default.", type:"Var"}, {name: "r.PathTracing.TemporalDenoiser.DeltaE.HighFrequency", help:"Cut off the history weight to zero when using high frequency per pixel difference.\nIt should only be enabled when the source image is smooth or denoised.", type:"Var"}, {name: "r.PathTracing.TemporalDenoiser.DenoiseSourceImageFirst", help:"Denoise the source image with IntelImageDenoisier", type:"Var"}, {name: "r.PathTracing.TemporalDenoiser.DistanceMetrics", help:"0: Luminance based metrics for distance estimation. Color with same luminance will create error in motion and history weights estimation.1: Direct color difference2: Visual color difference based on CIELAB2000 color difference.", type:"Var"}, {name: "r.PathTracing.TemporalDenoiser.EnableSubPixelOffset", help:"Enable subpixel offset when merging\n-1: inherit from PostProcessVolume\n0: disable denoiser\n1: enable denoiser (if a denoiser plugin is active)\n", type:"Var"}, {name: "r.PathTracing.TemporalDenoiser.eta", help:"Eta param. Error distance below this will have max history weight. Use DeltaE to derive Eta if -1\n", type:"Var"}, {name: "r.PathTracing.TemporalDenoiser.kappa", help:"Scaling parameter to determine how fast the history weight falls and the cutting point to zero. Use DeltaE to derive kappa if -1\n", type:"Var"}, {name: "r.PathTracing.TemporalDenoiser.mode", help:"0: disabled \n1: offline rendering only\n2: online rendering (for debug)\n", type:"Var"}, {name: "r.PathTracing.TemporalDenoiser.MotionOperation", help:"0: use the motion vector directly estimated1: subtract between the motion", type:"Var"}, {name: "r.PathTracing.TemporalDenoiser.MotionVector.Type", help:"The type of motion vecotr estimation algorithm\n0: Built-in motion vector estimator\n1: Motion vector estimator from the plugin\n", type:"Var"}, {name: "r.PathTracing.TemporalDenoiser.Name", help:"Set the temporal denoiser name. It is the corresponding name registered by a denoiser plugin\nThe temporal denoiser usually has better temporal stability when rendering offline.\n", type:"Var"}, {name: "r.PathTracing.TemporalDenoiser.PatchCount", help:"The number of similar patches found by Non-Local Mean to use for temporal denoising\n1: default. Accumulae the one with the minimal distance exponentially.>1 && < 16: Use bilaterial filtering to accumulate multiple patches.", type:"Var"}, {name: "r.PathTracing.TemporalDenoiser.source", help:"0: Denoised Radance when possible (Default) \n1: Normal\n2: Albedo\n3: Raw RadianceOtherwise: Feature Fusion (TODO)", type:"Var"}, {name: "r.PathTracing.TemporalDenoiser.SubPixelOffset.StartMip", help:"From 0 to this mip, we will perform subpixel offset", type:"Var"}, {name: "r.PathTracing.TemporalDenoiser.TotalVariation", help:"!=0: Use less history if the total variation is large in a local patch", type:"Var"}, {name: "r.PathTracing.TemporalDenoiser.Type", help:"The type of temporal denoiser\n0: Use the built-in temporal denoiser\n1: Use the temporal denoiser from plugin\n", type:"Var"}, {name: "r.PathTracing.TemporalDenoiser.VisualizeMotionVector", help:"1: visualize the motion vector compared to the raster motion vector\n", type:"Var"}, {name: "r.PathTracing.TemporalDenoiser.VisWarp", help:"0: disable1: visualize warped source by the motion vector2: weights, warped source, and combined", type:"Var"}, {name: "r.PathTracing.UseAnalyticTransmittance", help:"Determines use of analytical or null-tracking estimation when evaluating transmittance\n false: off (uses null-tracking estimation)\n true : on (uses analytical estimation when possible) (default)\n", type:"Var"}, {name: "r.PathTracing.UseDBuffer", help:"Whether to support DBuffer functionality (default=true)", type:"Var"}, {name: "r.PathTracing.VisibleLights", help:"Should light sources be visible to camera rays? (default = 0 (off))\n0: Hide lights from camera rays (default)\n1: Make all lights visible to camera\n2: Make skydome only visible to camera\n", type:"Var"}, {name: "r.PathTracing.VolumeMISMode", help:"Selects the sampling technique for volumetric integration of local lighting (default = 1)\n0: Density sampling\n1: Light sampling (default)\n", type:"Var"}, {name: "r.PathTracing.WiperMode", help:"Enables wiper mode to render using the path tracer only in a region of the screen for debugging purposes (default = false, wiper mode disabled)", type:"Var"}, {name: "r.Photography.Constrain.CameraSize", help:"Radius (in Unreal Units) of sphere around the camera; used to prevent the camera clipping into nearby geometry when constraining camera with collision. Negative values disable default camera collisions. (Default: 14.0)", type:"Var"}, {name: "r.Photography.Constrain.MaxCameraDistance", help:"Maximum distance (in Unreal Units) which camera is allowed to wander from its initial position when constraining camera by distance. Negative values disable default distance contraints. (Default: 2500.0)", type:"Var"}, {name: "r.Photography.EnableMultipart", help:"If 1, allow the photography system to take high-resolution shots that need to be rendered in tiles which are later stitched together. (Default: 1)", type:"Var"}, {name: "r.Photography.SettleFrames", help:"The number of frames to let the rendering \'settle\' before taking a photo. Useful to allow temporal AA/smoothing to work well; if not using any temporal effects, can be lowered for faster capture. (Default: 10)", type:"Var"}, {name: "r.Photography.TranslationSpeed", help:"Normal speed (in Unreal Units per second) at which to move the roaming photography camera. (Default: 100.0)", type:"Var"}, {name: "r.PostProcessAAQuality", help:"Defines the postprocess anti aliasing method which allows to adjust for quality or performance.\n 0:off, 1:very low (faster FXAA), 2:low (FXAA), 3:medium (faster TemporalAA), 4:high (default TemporalAA), 5:very high, 6:max", type:"Var"}, {name: "r.PhysicsField.BuildClipmap", help:"Build the Physics field clipmap", type:"Var"}, {name: "r.PhysicsField.ClipmapCount", help:"Number of clipmaps used for the physics field", type:"Var"}, {name: "r.PhysicsField.ClipmapDistance", help:"Max distance from the clipmap center", type:"Var"}, {name: "r.PhysicsField.ClipmapExponent", help:"Exponent used to derive each clipmap\'s size, together with r.PhysicsField.ClipmapDistance", type:"Var"}, {name: "r.PhysicsField.ClipmapResolution", help:"Resolution of the physics field. Higher values increase fidelity but also increase memory and composition cost.", type:"Var"}, {name: "r.PhysicsField.EnableCulling", help:"Enable the spatial culling based on the field nodes bounds", type:"Var"}, {name: "r.PhysicsField.EnableField", help:"Enable/Disable the Physics field clipmap", type:"Var"}, {name: "r.PhysicsField.Rendering.EvalType", help:"Physics field boolean to check if we are evaluating exactly(0) or sampling(1) the field for visualisation.\n", type:"Var"}, {name: "r.PhysicsField.Rendering.SystemType", help:"Physics field boolean to check if we want to display the CPU(0) or GPU(1) field.\n", type:"Var"}, {name: "r.PhysicsField.Rendering.TargetType", help:"Physics field target to be used in the viewport show options.\n", type:"Var"}, {name: "r.PhysicsField.Rendering.TransientLifetime", help:"Physics field transient commands lifetime for rendering.\n", type:"Var"}, {name: "r.PhysicsField.SingleTarget", help:"Limnit the physics field build to only one target, the linear force", type:"Var"}, {name: "r.PostProcessAllowStencilTest", help:"Enables stencil testing in post process materials.\n0: disable stencil testing\n1: allow stencil testing\n2: allow stencil testing and, if necessary, making a copy of custom depth/stencil buffer\n", type:"Var"}, {name: "r.PostProcessAllowStencilTest", help:"Enables stencil testing in post process materials.\n0: disable stencil testing\n1: allow stencil testing\n", type:"Var"}, {name: "r.PostProcessing.DownsampleChainQuality", help:"Defines the quality used for downsampling to the scene color in scene color chains.\n 0: low quality\n 1: high quality (default)\n", type:"Var"}, {name: "r.PostProcessing.DownsampleQuality", help:"Defines the quality used for downsampling to half or quarter res the scene color in post processing chain.\n 0: low quality (default)\n 1: high quality\n", type:"Var"}, {name: "r.PostProcessing.GBufferPicking", help:"Evaluate GBuffer value for debugging purpose.", type:"Var"}, {name: "r.PostProcessing.PropagateAlpha", help:"0 to disable scene alpha channel support in the post processing.\n 0: disabled (default);\n 1: enabled in linear color space;\n 2: same as 1, but also enable it through the tonemapper. Compositing after the tonemapper is incorrect, as their is no meaning to tonemap the alpha channel. This is only meant to be use exclusively for broadcasting hardware that does not support linear color space compositing and tonemapping.", type:"Var"}, {name: "r.PostProcessing.PropagateAlpha", help:"Enforce alpha in scene color (overriding r.SceneColorFormat if necessary) and propagate it through the renderer\'s post-processing chain, default: false", type:"Var"}, {name: "r.PostProcessing.QuarterResolutionDownsample", help:"Uses quarter resolution downsample instead of half resolution to feed into exposure / bloom.", type:"Var"}, {name: "r.PostProcessing.UserSceneTextureDebug", help:"Enable debug display of post process UserSceneTexture inputs and outputs.\n 0: disabled\n 1: enabled\n 2: enable on error -- missing input or unused output (default). Suppressed by DisableAllScreenMessages.\n 3: enable only for view with texture visualized through Vis / VisualizeTexture command, to avoid debug clutter in other views.\n", type:"Var"}, {name: "r.PrecachePSOsOnComponentRecreateRenderContext", help:"If > 0, re-creating a component\'s render context will also re-precache the component\'s PSOs.", type:"Var"}, {name: "r.PreloadShaderPriority", help:"Change PreloadShaderGroup I/O priority.\n0-Min\n1-Low\n2-Medium (Default)\n3-High\n4-Max\n", type:"Var"}, {name: "r.PreViewTranslation", help:"To limit issues with float world space positions we offset the world by the\nPreViewTranslation vector. This command allows to disable updating this vector.\n 0: disable update\n 1: update the offset is each frame (default)", type:"Var"}, {name: "r.PrimitiveHasTileOffsetData", help:"1 to upload lower-precision tileoffset primitive data to gpu, 0 to use higher-precision double float.\n", type:"Var"}, {name: "r.ProgramBinaryCache.Enable", help:"If true, enables binary program cache. Enabled by default only on Android", type:"Var"}, {name: "r.ProgramBinaryCache.RestartAndroidAfterPrecompile", help:"If true, Android apps will restart after precompiling the binary program cache. Enabled by default only on Android", type:"Var"}, {name: "r.ProfileGPU.ThresholdPercent", help:"Percent of the total execution duration the event needs to be larger than to be printed.", type:"Var"}, {name: "r.PS4MixedModeShaderDebugInfo", help:"Whether to compile shaders to allow mixed mode shader debugging. This will currently generate slower code.\n 0: Normal mode\n 1: Mixed mode)", type:"Var"}, {name: "r.pso.CreateOnRHIThread", help:"0: Run PSO creation on task threads\n1: Run PSO creation on RHI thread.", type:"Var"}, {name: "r.pso.EnableAsyncCacheConsolidation", help:"0: Require Render Thread and RHI Thread to synchronize before flushing the PSO cache.1: Flush the PSO cache without synchronizing the Render Thread with the RHI Thread.\n", type:"Var"}, {name: "r.pso.PrecompileThreadPoolPercentOfHardwareThreads", help:"If > 0, use this percentage of cores (rounded up) for the PSO precompile thread pool\nUse this as an alternative to r.pso.PrecompileThreadPoolSize\n0 to disable threadpool usage when precompiling PSOs. (default 75%)", type:"Var"}, {name: "r.pso.PrecompileThreadPoolSize", help:"The number of threads available for concurrent PSO Precompiling.\n0 to disable threadpool usage when precompiling PSOs. (default)", type:"Var"}, {name: "r.pso.PrecompileThreadPoolSizeMax", help:"The maximum number of threads available for concurrent PSO Precompiling.\nIgnored unless r.pso.PrecompileThreadPoolPercentOfHardwareThreads is specified\nDefault is no maximum (INT_MAX)", type:"Var"}, {name: "r.pso.PrecompileThreadPoolSizeMin", help:"The minimum number of threads available for concurrent PSO Precompiling.\nIgnored unless r.pso.PrecompileThreadPoolPercentOfHardwareThreads is specified\n0 = no minimum (default 2)", type:"Var"}, {name: "r.pso.PrecompileThreadPoolThreadPriority", help:"Thread priority for the PSO precompile pool", type:"Var"}, {name: "r.PSO.RuntimeCreationHitchThreshold", help:"Threshold for runtime PSO creation to count as a hitch (in msec) (default 20)", type:"Var"}, {name: "r.PSOPrecache.CascadePrecachingTime", help:"Controls when PSO precaching happens for Cascade systems:\n\t0: no precaching\n\t1: precaching at asset loading time (default)\n\t2: precaching at component loading time\n\t3: precaching at component proxy creation time", type:"Var"}, {name: "r.PSOPrecache.Components", help:"Precache all possible used PSOs by components during Postload (default 1 if PSOPrecaching is enabled).", type:"Var"}, {name: "r.PSOPrecache.CustomDepth", help:"Also Precache PSOs with for custom depth pass. 0: No PSOs are compiled for this pass.\n 1: PSOs are compiled for all primitives which explicitly request custom depth rendering (default).\n 2: PSOs are compiled for all primitives which also request regular depth rendering.\n", type:"Var"}, {name: "r.PSOPrecache.D3D12.DriverCacheAware", help:"If enabled, the PSO precaching system will not precache PSOs that the D3D12 graphics driver considers similar for caching, i.e. it will not precache PSOs that while technically different will still result in a driver cache hit.\nThis is not implemented for all GPU vendors and can result in performance issues or cache misses if the heuristics the engine uses does not match the graphics driver\'s behavior that decides whether a PSO is in the cache or not.", type:"Var"}, {name: "r.PSOPrecache.DitheredLODFadingOutMaskPass", help:"Precache PSOs for DitheredLODFadingOutMaskPass.\n 0: No PSOs are compiled for this pass (default).\n 1: PSOs are compiled for all primitives which render to depth pass.\n", type:"Var"}, {name: "r.PSOPrecache.DrawnComponentBoostStrategy", help:"Increase priority of queued precache PSOs which are also required by the component for rendering.\n0 do not increase priority of drawn PSOs (default)\n1 if the component has been rendered then increase the priority of it\'s PSO precache requests. (this requires r.PSOPrecache.ProxyCreationDelayStrategy == 1.)", type:"Var"}, {name: "r.PSOPrecache.GlobalShaders", help:"Precache global shaders during startup (disable(0) - only compute shaders(1) - all global shaders(2).\nNote: r.PSOPrecache.GlobalShaders == 2 is only supported when IsDynamicShaderPreloadingEnabled is enabled.", type:"Var"}, {name: "r.PSOPrecache.KeepInMemoryComputeMaxNum", help:"If r.PSOPrecache.KeepInMemoryUntilUsed is enabled, this value will control the maximum number of precached compute PSOs that are kept in memory at a time.\nIf set to 0, no limit will be applied (not recommended outside of testing, as it can cause unbounded memory usage).", type:"Var"}, {name: "r.PSOPrecache.KeepInMemoryGraphicsMaxNum", help:"If r.PSOPrecache.KeepInMemoryUntilUsed is enabled, this value will control the maximum number of precached graphics PSOs that are kept in memory at a time.\nIf set to 0, no limit will be applied (not recommended outside of testing, as it can cause unbounded memory usage).", type:"Var"}, {name: "r.PSOPrecache.KeepInMemoryUntilUsed", help:"If enabled and if the underlying GPU vendor is NVIDIA, precached PSOs will be kept in memory instead of being deleted immediately after creation, and will only be deleted once they are actually used for rendering.\nThis can speed up the re-creation of precached PSOs for NVIDIA drivers and avoid small hitches, at the cost of memory.\nIt\'s recommended to set r.PSOPrecache.KeepInMemoryGraphicsMaxNum and r.PSOPrecache.KeepInMemoryComputeMaxNum to a non-zero value to ensure the number of in-memory PSOs is bounded.", type:"Var"}, {name: "r.PSOPrecache.LightMapPolicyMode", help:"Defines which light map policies should be checked during PSO precaching of the base pass.\n 0: All possible LMP will be checked.\n 1: Only LMP_NO_LIGHTMAP will be precached (default).\n", type:"Var"}, {name: "r.PSOPrecache.Mode", help:" 0: Full PSO (default)\n 1: Preload shaders\n", type:"Var"}, {name: "r.PSOPrecache.NiagaraComponentPSOPrecachePriority", help:"Niagara component PSO precache priority level.\n 0. Niagara component\'s PSO precache requests are set to high priority (default)\n 1. Niagara component\'s PSO precache requests are set to highest priority", type:"Var"}, {name: "r.PSOPrecache.NiagaraPrecachePSOAtAssetLoadingTime", help:"Controls whether Niagara systems start PSO precaching at asset loading time (1 = default) or only when activated (0).", type:"Var"}, {name: "r.PSOPrecache.PrecacheAlphaColorChannel", help:"Also Precache PSOs with scene color alpha channel enabled. Planar reflections and scene captures use this for compositing into a different scene later.", type:"Var"}, {name: "r.PSOPrecache.ProjectedShadows", help:"Also Precache PSOs with for projected shadows. 0: No PSOs are compiled for this pass.\n 1: PSOs are compiled for all primitives which render to depth pass (default).\n", type:"Var"}, {name: "r.PSOPrecache.ProxyCreationDelayStrategy", help:"Control the component proxy creation strategy when the requested PSOs for precaching are still compiling. Ignored if r.PSOPrecache.ProxyCreationWhenPSOReady = 0.\n 0: delay creation until PSOs are ready (default)\n 1: create a proxy using the default material until PSOs are ready. Currently implemented for static and skinned meshes - Niagara components will delay creation instead", type:"Var"}, {name: "r.PSOPrecache.ProxyCreationWhenPSOReady", help:"Delay the component proxy creation when the requested PSOs for precaching are still compiling.\n 0: always create regardless of PSOs status (default)\n 1: delay the creation of the render proxy depending on the specific strategy controlled by r.PSOPrecache.ProxyCreationDelayStrategy\n", type:"Var"}, {name: "r.PSOPrecache.Resources", help:"Precache all possible used PSOs by resources during Postload (default 0 if PSOPrecaching is enabled).", type:"Var"}, {name: "r.PSOPrecache.ShaderPreloadFilterUniqueRequest", help:"Perf improvement (reduce contention on r/w lock). When kicking preload shaders job, only request one preload request per shaderIndex inside the same ShaderMapResource.\n", type:"Var"}, {name: "r.PSOPrecache.StaticMeshComponentPSOPrecachePriority", help:"Static Mesh component PSO precache priority level.\n 0. Static Mesh component\'s PSO precache requests are set to high priority (default)\n 1. Static Mesh component\'s PSO precache requests are set to highest priority", type:"Var"}, {name: "r.PSOPrecache.TranslucencyAllPass", help:"Precache PSOs for TranslucencyAll pass.\n 0: No PSOs are compiled for this pass (default).\n 1: PSOs are compiled for all primitives which render to a translucency pass.\n", type:"Var"}, {name: "r.PSOPrecache.UseBackgroundThreadForCollection", help:"Use background threads for PSO precache data collection on the mesh pass processors.\n", type:"Var"}, {name: "r.PSOPrecaching", help:"0 to Disable PSOs precaching\n1 to Enable PSO precaching\n", type:"Var"}, {name: "r.PSOPrecaching.PermitPriorityEscalation", help:"Whether to permit requests to increase high pri PSO precaching tasks to highest.\n1: High priority tasks can be escalated to highest if requested. (default)\n0: High priority tasks will remain unchanged.", type:"Var"}, {name: "r.PSOPrecaching.WaitForHighPriorityRequestsOnly", help:"0 to wait for all pending PSO precache requests during loading (default)\n1 to only wait for the high priority and above PSO precache requests during loading\n2 to only wait for the highest priority PSO precache requests during loading", type:"Var"}, {name: "r.PurgeEditorSceneDuringPIE", help:"0 to keep editor scene fully initialized during PIE (default)\n1 to purge editor scene from memory during PIE and restore when the session finishes.", type:"Var"}, {name: "r.RayTracing.AllowInline", help:"Allow use of Inline Ray Tracing if supported (default=1).", type:"Var"}, {name: "r.RayTracing.AllowPipeline", help:"Allow use of Ray Tracing pipelines if supported (default=1).", type:"Var"}, {name: "r.RayTracing.AsyncBuild", help:"Whether to build ray tracing acceleration structures on async compute queue.\n", type:"Var"}, {name: "r.RayTracing.AutoInstance", help:"Whether to auto instance static meshes\n", type:"Var"}, {name: "r.RayTracing.CompileMaterialAHS", help:" 0: skip compilation of any-hit shaders for materials (useful if alpha masked or translucent materials are not needed)\n 1: compile any hit shaders for all ray tracing materials (default)\n", type:"Var"}, {name: "r.RayTracing.CompileMaterialCHS", help:" 0: skip compilation of closest-hit shaders for materials (useful if only shadows or ambient occlusion effects are needed)\n 1: compile closest hit shaders for all ray tracing materials (default)\n", type:"Var"}, {name: "r.RayTracing.Culling", help:"Enable culling in ray tracing for objects that are behind the camera\n 0: Culling disabled (default)\n 1: Culling by distance and solid angle enabled. Only cull objects behind camera.\n 2: Culling by distance and solid angle enabled. Cull objects in front and behind camera.\n 3: Culling by distance OR solid angle enabled. Cull objects in front and behind camera.", type:"Var"}, {name: "r.RayTracing.Culling.Angle", help:"Do camera culling for objects behind the camera with a projected angle smaller than this threshold in ray tracing effects (default = 1 degrees)", type:"Var"}, {name: "r.RayTracing.Culling.PerInstance", help:"", type:"Var"}, {name: "r.RayTracing.Culling.Radius", help:"Do camera culling for objects behind the camera outside of this radius in ray tracing effects (default = 30000 (300m))", type:"Var"}, {name: "r.RayTracing.Culling.UseGroupIds", help:"Cull using aggregate ray tracing group id bounds when defined instead of primitive or instance bounds.", type:"Var"}, {name: "r.RayTracing.Culling.UseMinDrawDistance", help:"Use min draw distance for culling", type:"Var"}, {name: "r.RayTracing.Debug.InstanceOverlap.BoundingBoxScale", help:"Scaling factor for instance bounding box extent for avoiding z-fighting. (default = 1.001)\n", type:"Var"}, {name: "r.RayTracing.Debug.InstanceOverlap.Scale", help:"Scaling factor for instance traversal heat map visualization. (default = 16)\n", type:"Var"}, {name: "r.RayTracing.Debug.InstanceOverlap.ShowWireframe", help:"Show instance bounding boxes in wireframe in Instances Overlap mode. (default = 1)\n", type:"Var"}, {name: "r.RayTracing.Debug.PickerDomain", help:"Changes the picker domain to highlight:\n0 - Triangles (default)\n1 - Instances\n", type:"Var"}, {name: "r.RayTracing.DebugDisableTriangleCull", help:"Forces all ray tracing geometry instances to be double-sided by disabling back-face culling. This is useful for debugging and profiling. (default = 0)", type:"Var"}, {name: "r.RayTracing.DebugForceOpaque", help:"Forces all ray tracing geometry instances to be opaque, effectively disabling any-hit shaders. This is useful for debugging and profiling. (default = 0)", type:"Var"}, {name: "r.Raytracing.DebugForceRuntimeBLAS", help:"Force building BLAS at runtime.", type:"Var"}, {name: "r.RayTracing.DebugTimingScale", help:"Scaling factor for ray timing heat map visualization. (default = 1)\n", type:"Var"}, {name: "r.RayTracing.DebugTraversalScale.Box", help:"Scaling factor for box traversal heat map visualization. (default = 150)\n", type:"Var"}, {name: "r.RayTracing.DebugTraversalScale.Cluster", help:"Scaling factor for cluster traversal heat map visualization. (default = 2500)\n", type:"Var"}, {name: "r.RayTracing.DebugTraversalScale.Triangle", help:"Scaling factor for triangle traversal heat map visualization. (default = 30)\n", type:"Var"}, {name: "r.RayTracing.DebugTriangleHitCount.MaxThreshold", help:"Maximum hit count threshold for debug ray tracing triangle hit count heat map visualization. (default = 6)\n", type:"Var"}, {name: "r.RayTracing.DebugTriangleHitCount.TopKMostHits", help:"Highlight top k most hit instances in the view. (default = 10)\n", type:"Var"}, {name: "r.RayTracing.DebugTriangleHitCountPerInstance.MaxThreshold", help:"Maximum hit count threshold for debug ray tracing hit count per instance heat map visualization. (default = 100000)\n", type:"Var"}, {name: "r.RayTracing.DebugVisualizationMode", help:"Sets the ray tracing debug visualization mode (default = None - Driven by viewport menu) .\n", type:"Var"}, {name: "r.RayTracing.DebugVisualizationMode.OpaqueOnly", help:"Sets whether the view mode rendes opaque objects only (default = 1, render only opaque objects, 0 = render all objects)", type:"Var"}, {name: "r.RayTracing.DebugVisualizationMode.ProceduralPrimitives", help:"Whether to include procedural primitives in visualization modes.\nCurrently only supports Nanite primitives in inline barycentrics mode.", type:"Var"}, {name: "r.RayTracing.DecalGrid.Axis", help:"Choose the coordinate axis along which to project the decal grid (default = -1, automatic)\n", type:"Var"}, {name: "r.RayTracing.DecalGrid.MaxCount", help:"Controls the maximum number of decals per cell in the 2D decal grid. The minimum of this value and the number of decal in the scene is used. (default = 128)\n", type:"Var"}, {name: "r.RayTracing.DecalGrid.Resolution", help:"Controls the resolution of the 2D decal grid used to cull irrelevant decal from calculations (default = 256)\n", type:"Var"}, {name: "r.RayTracing.DynamicGeometry.MaxUpdatePrimitivesPerFrame", help:"Sets the dynamic ray tracing acceleration structure build budget in terms of maximum number of updated triangles per frame (<= 0 then disabled and all acceleration structures are updated - default)", type:"Var"}, {name: "r.RayTracing.DynamicGeometry.SharedVertexBufferGarbageCollectLatency", help:"Amount of update cycles before a heap is deleted when not used (default 30).", type:"Var"}, {name: "r.RayTracing.DynamicGeometry.SharedVertexBufferSizeInMB", help:"Size of the a single shared vertex buffer used during the BLAS update of dynamic geometries (default 4MB)", type:"Var"}, {name: "r.RayTracing.DynamicGeometryLastRenderTimeUpdateDistance", help:"Dynamic geometries within this distance will have their LastRenderTime updated, so that visibility based ticking (like skeletal mesh) can work when the component is not directly visible in the view (but reflected).", type:"Var"}, {name: "r.RayTracing.Enable", help:"Whether ray tracing is enabled at runtime.\nIf r.RayTracing.EnableOnDemand is enabled, ray tracing can be toggled on/off at runtime. Otherwise this is only checked during initialization.", type:"Var"}, {name: "r.RayTracing.EnableOnDemand", help:"Controls whether ray tracing features can be toggled on demand at runtime without restarting the game (experimental).\nRequires r.RayTracing=1. Has a small performance and memory overhead.\n 0: off\n 1: on", type:"Var"}, {name: "r.RayTracing.ExcludeSky", help:"A toggle that controls inclusion of sky geometry in the ray tracing scene (excluding sky can make ray tracing faster). This setting is ignored for the Path Tracer.\n 0: Sky objects included in the ray tracing scene\n 1: Sky objects excluded from the ray tracing scene (default)", type:"Var"}, {name: "r.RayTracing.ExcludeTranslucent", help:"A toggle that modifies the inclusion of translucent objects in the ray tracing scene.\n 0: Translucent objects included in the ray tracing scene (default)\n 1: Translucent objects excluded from the ray tracing scene", type:"Var"}, {name: "r.RayTracing.GlobalIllumination", help:"-1: Value driven by postprocess volume (default) \n 0: ray tracing global illumination off \n 1: ray tracing global illumination enabled", type:"Var"}, {name: "r.RayTracing.GlobalIllumination.Denoiser", help:"Denoising options (default = 1)", type:"Var"}, {name: "r.RayTracing.GlobalIllumination.DiffuseThreshold", help:"Diffuse luminance threshold for evaluating global illuminationNOTE: This parameter is experimental", type:"Var"}, {name: "r.RayTracing.GlobalIllumination.EnableTwoSidedGeometry", help:"Enables two-sided geometry when tracing GI rays (default = 1)", type:"Var"}, {name: "r.RayTracing.GlobalIllumination.EvalSkyLight", help:"Evaluate SkyLight multi-bounce contributionNOTE: This parameter is experimental", type:"Var"}, {name: "r.RayTracing.GlobalIllumination.MaxBounces", help:"Max bounces (default = -1 (driven by postprocesing volume))", type:"Var"}, {name: "r.RayTracing.GlobalIllumination.MaxRayDistance", help:"Max ray distance (default = 1.0e27)", type:"Var"}, {name: "r.RayTracing.GlobalIllumination.NextEventEstimationSamples", help:"Number of sample draws for next-event estimation (default = 2)NOTE: This parameter is experimental", type:"Var"}, {name: "r.RayTracing.GlobalIllumination.SamplesPerPixel", help:"Samples per pixel (default = -1 (driven by postprocesing volume))", type:"Var"}, {name: "r.RayTracing.GlobalIllumination.ScreenPercentage", help:"Screen percentage for ray tracing global illumination (default = 50)", type:"Var"}, {name: "r.RayTracing.GlobalIllumination.TileSize", help:"Render ray traced global illumination in NxN piel tiles, where each tile is submitted as separate GPU command buffer, allowing high quality rendering without triggering timeout detection. (default = 0, tiling disabled)", type:"Var"}, {name: "r.RayTracing.GlobalIllumination.UseRussianRoulette", help:"Perform Russian Roulette to only cast diffuse rays on surfaces with brighter albedos (default = 0)NOTE: This parameter is experimental", type:"Var"}, {name: "r.RayTracing.InstancedStaticMeshes", help:"Include static mesh instances in ray tracing effects (default = 1 (Instances enabled in ray tracing))", type:"Var"}, {name: "r.RayTracing.InstancedStaticMeshes.CullClusterMaxRadiusMultiplier", help:"Multiplier for the maximum instance size (default = 20cm)", type:"Var"}, {name: "r.RayTracing.InstancedStaticMeshes.CullClusterRadius", help:"Ignore instances outside of this radius in ray tracing effects (default = 10000 (100m))", type:"Var"}, {name: "r.RayTracing.InstancedStaticMeshes.Culling", help:"Enable culling for instances in ray tracing (default = 0 (Culling disabled))", type:"Var"}, {name: "r.RayTracing.InstancedStaticMeshes.LowScaleCullRadius", help:"Cull radius for small instances (default = 1000 (10m))", type:"Var"}, {name: "r.RayTracing.InstancedStaticMeshes.LowScaleRadiusThreshold", help:"Threshold that classifies instances as small (default = 50cm))", type:"Var"}, {name: "r.RayTracing.Landscape.DetectTextureStreaming", help:"If on, update ray tracing geometry when texture streaming state changes. Useful when WorldPositionOffset is used in the landscape material", type:"Var"}, {name: "r.RayTracing.Landscape.LODsUpdateEveryFrame", help:"If on, LODs that are lower than the specified level will be updated every frame, which can be used to workaround some artifacts caused by texture streaming if you\'re using WorldPositionOffset on the landscape", type:"Var"}, {name: "r.RayTracing.Geometry.Cable", help:"Include Cable meshes in ray tracing effects (default = 1 (cable meshes enabled in ray tracing))", type:"Var"}, {name: "r.RayTracing.Geometry.Cable.WPO", help:"World position offset evaluation for cable meshes with EvaluateWPO enabled in ray tracing effects.\n 0: Cable meshes with world position offset visible in ray tracing, WPO evaluation disabled.\n 1: Cable meshes with world position offset visible in ray tracing, WPO evaluation enabled (default).\n", type:"Var"}, {name: "r.RayTracing.Geometry.Cable.WPO.Culling", help:"Enable culling for WPO evaluation for cable meshes in ray tracing (default = 1 (Culling enabled))", type:"Var"}, {name: "r.RayTracing.Geometry.Cable.WPO.CullingRadius", help:"Do not evaluate world position offset for cable meshes outside of this radius in ray tracing effects (default = 12000 (120m))", type:"Var"}, {name: "r.RayTracing.Geometry.GeometryCache", help:"Include geometry cache primitives in ray tracing effects (default = 1 (geometry cache enabled in ray tracing))", type:"Var"}, {name: "r.RayTracing.Geometry.GeometryCollection", help:"Include geometry collection proxy meshes in ray tracing effects (default = 0 (Geometry collection meshes disabled in ray tracing))", type:"Var"}, {name: "r.RayTracing.Geometry.HierarchicalInstancedStaticMesh", help:"Include HISM in ray tracing effects (default = 1)", type:"Var"}, {name: "r.RayTracing.Geometry.InstancedStaticMeshes", help:"Include static mesh instances in ray tracing effects (default = 1 (Instances enabled in ray tracing))", type:"Var"}, {name: "r.RayTracing.Geometry.InstancedStaticMeshes.CullAngle", help:"Solid angle to test instance bounds against for culling (default 2 degrees)\n -1 => use distance based culling", type:"Var"}, {name: "r.RayTracing.Geometry.InstancedStaticMeshes.CullClusterMaxRadiusMultiplier", help:"Multiplier for the maximum instance size (default = 20)", type:"Var"}, {name: "r.RayTracing.Geometry.InstancedStaticMeshes.CullClusterRadius", help:"Ignore instances outside of this radius in ray tracing effects (default = 10000 (100m))", type:"Var"}, {name: "r.RayTracing.Geometry.InstancedStaticMeshes.Culling", help:"Enable culling for instances in ray tracing (default = 1 (Culling enabled))", type:"Var"}, {name: "r.RayTracing.Geometry.InstancedStaticMeshes.EvaluateWPO", help:"Whether to evaluate WPO on instanced static meshes\n 0 - off (default) 1 - on for all with WPO -1 - on only for meshes with evaluate WPO enabled", type:"Var"}, {name: "r.RayTracing.Geometry.InstancedStaticMeshes.LowScaleCullRadius", help:"Cull radius for small instances (default = 1000 (10m))", type:"Var"}, {name: "r.RayTracing.Geometry.InstancedStaticMeshes.LowScaleRadiusThreshold", help:"Threshold that classifies instances as small (default = 50cm))", type:"Var"}, {name: "r.RayTracing.Geometry.InstancedStaticMeshes.MinLOD", help:"Clamps minimum LOD to this value (default = 0, highest resolution LOD may be used)", type:"Var"}, {name: "r.RayTracing.Geometry.InstancedStaticMeshes.SimulationClusterRadius", help:"Bucket instances based on distance to camera for simulating WPO (default = 500 (5m), disable if <= 0)", type:"Var"}, {name: "r.RayTracing.Geometry.InstancedStaticMeshes.SimulationCount", help:"Maximum number of instances to simulate per instanced static mesh, presently capped to 256", type:"Var"}, {name: "r.RayTracing.Geometry.Landscape", help:"Include landscapes in ray tracing effects (default = 1 (landscape enabled in ray tracing))", type:"Var"}, {name: "r.RayTracing.Geometry.Landscape.DetectTextureStreaming", help:"If on, update ray tracing geometry when texture streaming state changes. Useful when WorldPositionOffset is used in the landscape material", type:"Var"}, {name: "r.RayTracing.Geometry.Landscape.FractionalLODUpdateThreshold", help:"Minimal difference in fractional LOD between latest built/cached ray tracing geometry and latest value used for rendering (default 0)\n0.1 implies a 10% change in the fraction LOD, for instance a change from LOD level 1.1 to 1.2\nLarger values will reduce the number of landscape tile updates, but introduce more error between the ray tracing and raster representations", type:"Var"}, {name: "r.RayTracing.Geometry.Landscape.LODsUpdateEveryFrame", help:"If on, LODs that are lower than the specified level will be updated every frame, which can be used to workaround some artifacts caused by texture streaming if you\'re using WorldPositionOffset on the landscape", type:"Var"}, {name: "r.RayTracing.Geometry.LandscapeGrass", help:"Include landscapes grass in ray tracing effects (default = 1)", type:"Var"}, {name: "r.RayTracing.Geometry.MaxBuiltPrimitivesPerFrame", help:"Sets the ray tracing acceleration structure build budget in terms of maximum number of triangles per frame (<= 0 then disabled and all acceleration structures are build immediatly - default)", type:"Var"}, {name: "r.RayTracing.Geometry.NaniteProxies", help:"Include Nanite proxy meshes in ray tracing effects (default = 1 (Nanite proxy meshes enabled in ray tracing))", type:"Var"}, {name: "r.RayTracing.Geometry.NaniteSkinnedProxies", help:"Include Nanite skinned proxy meshes in ray tracing effects (default = 1 (Nanite proxy meshes enabled in ray tracing))", type:"Var"}, {name: "r.RayTracing.Geometry.NiagaraMeshes", help:"Include Niagara meshes in ray tracing effects (default = 1 (Niagara meshes enabled in ray tracing))", type:"Var"}, {name: "r.RayTracing.Geometry.NiagaraRibbons", help:"Include Niagara ribbons in ray tracing effects (default = 1 (Niagara ribbons enabled in ray tracing))", type:"Var"}, {name: "r.RayTracing.Geometry.NiagaraSprites", help:"Include Niagara sprites in ray tracing effects (default = 1 (Niagara sprites enabled in ray tracing))", type:"Var"}, {name: "r.RayTracing.Geometry.PendingBuildPriorityBoostPerFrame", help:"Increment the priority for all pending build requests which are not scheduled that frame (0.001 - default)", type:"Var"}, {name: "r.RayTracing.Geometry.ProceduralMeshes", help:"Include procedural meshes in ray tracing effects (default = 1 (procedural meshes enabled in ray tracing))", type:"Var"}, {name: "r.RayTracing.Geometry.SkeletalMeshes", help:"Include skeletal meshes in ray tracing effects (default = 1 (skeletal meshes enabled in ray tracing))", type:"Var"}, {name: "r.RayTracing.Geometry.SkeletalMeshes.LODBias", help:"Global LOD bias for skeletal meshes in ray tracing.\nWhen non-zero, a different LOD level other than the predicted LOD level will be used for ray tracing. Advanced features like morph targets and cloth simulation may not work properly.\nFinal LOD level to use in ray tracing is the sum of this global bias and the bias set on each skeletal mesh asset.", type:"Var"}, {name: "r.RayTracing.Geometry.SplineMeshes", help:"Include splines meshes in ray tracing effects (default = 1 (spline meshes enabled in ray tracing))", type:"Var"}, {name: "r.RayTracing.Geometry.StaticMeshes", help:"Include static meshes in ray tracing effects (default = 1 (static meshes enabled in ray tracing))", type:"Var"}, {name: "r.RayTracing.Geometry.StaticMeshes.WPO", help:"World position offset evaluation for static meshes with EvaluateWPO enabled in ray tracing effects.\n 0: static meshes with world position offset hidden in ray tracing.\n 1: static meshes with world position offset visible in ray tracing, WPO evaluation enabled (default).\n 2: static meshes with world position offset visible in ray tracing, WPO evaluation disabled.", type:"Var"}, {name: "r.RayTracing.Geometry.StaticMeshes.WPO.Culling", help:"Enable culling for WPO evaluation for static meshes in ray tracing (default = 1 (Culling enabled))", type:"Var"}, {name: "r.RayTracing.Geometry.StaticMeshes.WPO.CullingRadius", help:"Do not evaluate world position offset for static meshes outside of this radius in ray tracing effects (default = 12000 (120m))", type:"Var"}, {name: "r.RayTracing.Geometry.SupportSkeletalMeshes", help:"Whether the project supports skeletal meshes in ray tracing effects. Turning this off disables creation of all skeletal mesh ray tracing GPU resources, saving GPU memory and time. This setting is read-only at runtime. (default: 1)", type:"Var"}, {name: "r.RayTracing.Geometry.Text", help:"Include text meshes in ray tracing effects (default = 1 (text meshes enabled in ray tracing))", type:"Var"}, {name: "r.RayTracing.LightFunction", help:"Whether to support light material functions in ray tracing effects. (default = 1)", type:"Var"}, {name: "r.RayTracing.LightGridAxis", help:"Choose the coordinate axis along which to project the light grid (default = -1, automatic)\n", type:"Var"}, {name: "r.RayTracing.LightGridMaxCount", help:"Controls the maximum number of lights per cell in the 2D light grid. The minimum of this value and the number of lights in the scene is used. (default = 128)\n", type:"Var"}, {name: "r.RayTracing.LightGridResolution", help:"Controls the resolution of the 2D light grid used to cull irrelevant lights from lighting calculations (default = 256)\n", type:"Var"}, {name: "r.RayTracing.MeshDrawCommands.CacheMultithreaded", help:"Enable multithreading of raytracing primitive mesh command caching. 0=disabled, 1=enabled (default)", type:"Var"}, {name: "r.RayTracing.MultiGpuMaskTLAS", help:"For Multi-GPU, controls which GPUs TLAS and material pipeline updates run on. (default = 1)\n 0: Run TLAS and material pipeline updates on all GPUs. Original behavior, which may be useful for debugging.\n 1: Run TLAS and material pipeline updates masked to the active view\'s GPUs to improve performance. BLAS updates still run on all GPUs.", type:"Var"}, {name: "r.RayTracing.Nanite.BLASScratchSizeMultipleMB", help:"Round the size of the BLAS build scratch buffer to be a multiple of this value.\nThis helps maintain consistent memory usage and prevent memory usage spikes.\nDefault = 64 MB.", type:"Var"}, {name: "r.RayTracing.Nanite.CutError", help:"Global target cut error to control quality when using procedural raytracing geometry for Nanite meshes.", type:"Var"}, {name: "r.RayTracing.Nanite.ForceUpdateVisible", help:"Force BLAS of visible primitives to be updated next frame.", type:"Var"}, {name: "r.RayTracing.Nanite.MaxBuiltPrimitivesPerFrame", help:"Limit number of BLAS built per frame based on a budget defined in terms of maximum number of triangles.", type:"Var"}, {name: "r.RayTracing.Nanite.MaxStagingBufferSizeMB", help:"Limit the size of the staging buffer used during stream out (lower values can cause updates to be throttled)\nDefault = 1024 MB.\nMax value = 2048 MB.", type:"Var"}, {name: "r.RayTracing.Nanite.Mode", help:"0 - fallback mesh (default);\n1 - streamed out mesh;", type:"Var"}, {name: "r.RayTracing.Nanite.ProfileStreamOut", help:"[Development only] Stream out pending requests every frame in order to measure performance.", type:"Var"}, {name: "r.RayTracing.Nanite.StreamOut.MaxNumIndices", help:"Max number of indices to stream out per frame.", type:"Var"}, {name: "r.RayTracing.Nanite.StreamOut.MaxNumVertices", help:"Max number of vertices to stream out per frame.", type:"Var"}, {name: "r.RayTracing.Nanite.Update", help:"Whether to process Nanite RayTracing update requests.", type:"Var"}, {name: "r.RayTracing.NonBlockingPipelineCreation", help:"Enable background ray tracing pipeline creation, without blocking RHI or Render thread.\nFallback opaque black material will be used for missing shaders meanwhile.\n 0: off (rendering will always use correct requested material)\n 1: on (default, non-blocking mode may sometimes use the fallback opaque black material outside of offline rendering scenarios)\n", type:"Var"}, {name: "r.RayTracing.NumAlwaysResidentLODs", help:"Number of LODs per ray tracing geometry group to always keep resident (even when not referenced by TLAS).\nDoesn\'t apply when ray tracing is disabled, in which case all ray tracing geometry is evicted.", type:"Var"}, {name: "r.RayTracing.ParallelMeshBatchSetup", help:"Whether to setup ray tracing materials via parallel jobs.", type:"Var"}, {name: "r.RayTracing.ParallelMeshBatchSize", help:"Batch size for ray tracing materials parallel jobs.", type:"Var"}, {name: "r.RayTracing.Reflections", help:"-1: Value driven by postprocess volume (default) \n0: use traditional rasterized SSR\n1: use ray traced reflections\n", type:"Var"}, {name: "r.RayTracing.Reflections.DirectLighting", help:"Enables ray tracing reflections direct lighting (default = 1)", type:"Var"}, {name: "r.RayTracing.Reflections.EmissiveAndIndirectLighting", help:"Enables ray tracing reflections emissive and indirect lighting (default = 1)", type:"Var"}, {name: "r.RayTracing.Reflections.HeightFog", help:"Enables height fog in ray traced reflections (default = 1)", type:"Var"}, {name: "r.RayTracing.Reflections.MaxBounces", help:"Sets the maximum number of ray tracing reflection bounces (default = -1 (max bounces driven by postprocessing volume))", type:"Var"}, {name: "r.RayTracing.Reflections.MaxRayDistance", help:"Sets the maximum ray distance for ray traced reflection rays. When ray shortening is used, skybox will not be sampled in RT reflection pass and will be composited later, together with local reflection captures. Negative values turn off this optimization. (default = -1 (infinite rays))", type:"Var"}, {name: "r.RayTracing.Reflections.MaxRoughness", help:"Sets the maximum roughness until which ray tracing reflections will be visible (default = -1 (max roughness driven by postprocessing volume))", type:"Var"}, {name: "r.RayTracing.Reflections.MaxUnderCoatBounces", help:"How many bounces to apply ray traced reflections to the undercoat layer. Extra bounces will use reflection probes. (default 0, always use probes)", type:"Var"}, {name: "r.RayTracing.Reflections.MinClearCoatLevel", help:"Minimum level at which to apply clear coat shading (default 0.01)\n Note: causes some variation in height fog due to using the bottom layer path", type:"Var"}, {name: "r.RayTracing.Reflections.MinRayDistance", help:"Sets the minimum ray distance for ray traced reflection rays. Actual reflection ray length is computed as Lerp(MaxRayDistance, MinRayDistance, Roughness), i.e. reflection rays become shorter when traced from rougher surfaces. (default = -1 (infinite rays))", type:"Var"}, {name: "r.RayTracing.Reflections.ReflectionCaptures", help:"Enables ray tracing reflections to use reflection captures as the last bounce reflection. Particularly usefull for metals in reflection. (default = 0)", type:"Var"}, {name: "r.RayTracing.Reflections.SamplesPerPixel", help:"Sets the samples-per-pixel for reflections (default = -1 (driven by postprocesing volume))", type:"Var"}, {name: "r.RayTracing.Reflections.ScreenPercentage", help:"Screen percentage the reflections should be ray traced at (default = 100).", type:"Var"}, {name: "r.RayTracing.Reflections.Shadows", help:"Enables shadows in ray tracing reflections) -1: Shadows driven by postprocessing volume (default) 0: Shadows disabled 1: Hard shadows 2: Soft area shadows", type:"Var"}, {name: "r.RayTracing.Reflections.SortMaterials", help:"Sets whether refected materials will be sorted before shading\n0: Disabled (Default)\n 1: Enabled, using Trace->Sort->Trace\n", type:"Var"}, {name: "r.RayTracing.Reflections.SortSize", help:"Size of horizon for material ID sort\n0: Disabled\n1: 256 Elements\n2: 512 Elements\n3: 1024 Elements\n4: 2048 Elements\n5: 4096 Elements (Default)\n", type:"Var"}, {name: "r.RayTracing.Reflections.SortTileSize", help:"Size of pixel tiles for sorted reflections\n Default 64\n", type:"Var"}, {name: "r.RayTracing.Reflections.TestPathRoughness", help:"Accumulate roughness along path and test accumulated roughness against MaxRoughness before launching the next bounce (default 1)", type:"Var"}, {name: "r.RayTracing.Shadow.MaxBatchSize", help:"Maximum number of shadows to trace at the same time.", type:"Var"}, {name: "r.RayTracing.Shadow.SamplesPerPixel", help:"Sets the samples-per-pixel for directional light occlusion (default = 1)", type:"Var"}, {name: "r.RayTracing.Shadows", help:"0: use traditional rasterized shadow map\n1: use ray tracing shadows (default)", type:"Var"}, {name: "r.RayTracing.ResidentGeometryMemoryPoolSizeInMB", help:"Size of the ray tracing geometry pool.\nIf pool size is larger than the requested geometry size, some unreferenced geometries will stay resident to reduce build overhead when they are requested again.", type:"Var"}, {name: "r.RayTracing.Scene.BuildMode", help:"Controls the mode in which ray tracing scene is built:\n 0: Fast build\n 1: Fast trace (default)\n", type:"Var"}, {name: "r.RayTracing.SceneCaptures", help:"Enable ray tracing in scene captures.\n -1: Use scene capture settings (default) \n 0: off \n 1: on", type:"Var"}, {name: "r.RayTracing.SceneUpdateOnce", help:"Experimental: Improves GPU perf by updating ray tracing scene once, but may cause artifacts (mainly for nDisplay)\n", type:"Var"}, {name: "r.RayTracing.Shadows", help:"0: use traditional rasterized shadow map (default)\n1: use ray tracing shadows", type:"Var"}, {name: "r.RayTracing.Shadows.AcceptFirstHit", help:"Whether to allow shadow rays to terminate early, on first intersected primitive. This may result in worse denoising quality in some cases. (default = 0)", type:"Var"}, {name: "r.RayTracing.Shadows.AvoidSelfIntersectionTraceDistance", help:"Max trace distance of epsilon trace to avoid self intersections. If set to 0, epsilon trace will not be used.", type:"Var"}, {name: "r.RayTracing.Shadows.EnableHairVoxel", help:"Enables use of hair voxel data for tracing shadow (default = 1)", type:"Var"}, {name: "r.RayTracing.Shadows.HairOcclusionThreshold", help:"Define the number of hair that need to be crossed, before casting occlusion (default = 1)", type:"Var"}, {name: "r.RayTracing.Shadows.Lights.Directional", help:"Enables ray tracing shadows for directional lights (default = 1)", type:"Var"}, {name: "r.RayTracing.Shadows.Lights.Point", help:"Enables ray tracing shadows for point lights (default = 1)", type:"Var"}, {name: "r.RayTracing.Shadows.Lights.Rect", help:"Enables ray tracing shadows for rect light (default = 1)", type:"Var"}, {name: "r.RayTracing.Shadows.Lights.Spot", help:"Enables ray tracing shadows for spot lights (default = 1)", type:"Var"}, {name: "r.RayTracing.Shadows.LODTransitionEnd", help:"The end of an LOD transition range (default = 5000)", type:"Var"}, {name: "r.RayTracing.Shadows.LODTransitionStart", help:"The start of an LOD transition range (default = 4000)", type:"Var"}, {name: "r.RayTracing.Shadows.MaxBatchSize", help:"Maximum number of shadows to trace at the same time.", type:"Var"}, {name: "r.RayTracing.Shadows.MaxTranslucencyHitCount", help:"-1: Evaluate all intersections (default). 0: Disable translucent shadow testing.>0: Limit the number of intersections.", type:"Var"}, {name: "r.RayTracing.Shadows.SamplesPerPixel", help:"Sets the samples-per-pixel for directional light occlusion (default = 1)", type:"Var"}, {name: "r.RayTracing.Shadows.Translucency", help:"0: Translucent material will not cast shadow (by default).1: Translucent material cast approximate translucent shadows based on opacity (Very expensive).", type:"Var"}, {name: "r.RayTracing.Sky.HairOcclusionThreshold", help:"Define the number of hair that need to be crossed, before casting occlusion (default = 1)", type:"Var"}, {name: "r.RayTracing.SkyLight.EnableMaterials", help:"Enables material shader binding for shadow rays. If this is disabled, then a default trivial shader is used. (default = 0)", type:"Var"}, {name: "r.RayTracing.SkyLight.EnableMaterials", help:"Enables material shader binding for shadow rays. If this is disabled, then a default trivial shader is used. (default = 1)", type:"Var"}, {name: "r.RayTracing.SkyLight.HairVoxel", help:"Include hair voxel representation to estimate sky occlusion", type:"Var"}, {name: "r.RayTracing.StochasticRectLight", help:"0: use analytical evaluation (default)\n1: use stochastic evaluation\n", type:"Var"}, {name: "r.RayTracing.StochasticRectLight.IsTextureImportanceSampling", help:"Enable importance sampling for rect light evaluation (default = 1)", type:"Var"}, {name: "r.RayTracing.StochasticRectLight.SamplesPerPixel", help:"Sets the samples-per-pixel for rect light evaluation (default = 1)", type:"Var"}, {name: "r.RayTracing.SkyLight.ScreenPercentage", help:"Screen percentage at which to evaluate sky occlusion", type:"Var"}, {name: "r.RayTracing.Streaming.MaxPendingRequests", help:"Maximum number of requests that can be pending streaming.", type:"Var"}, {name: "r.RayTracing.UseTextureLod", help:"0 to disable texture LOD.\n 0: off\n 1: on", type:"Var"}, {name: "r.RayTracing.Transmission.MeanFreePathType", help:"0: Use the extinction scale from subsurface profile as MFP.1: Use the max MFP from Subsurface profile to generate samples for transmission (Substrate is not supported).", type:"Var"}, {name: "r.RayTracing.Transmission.RejectionSamplingTrials", help:"Determines the number of rejection-sampling trials (default = 0)", type:"Var"}, {name: "r.RayTracing.Transmission.SamplingTechnique", help:"0: Uses constant tracking of an infinite homogeneous medium\n1: Uses constant tracking of a finite homogeneous medium whose extent is determined by transmission sampling distance (default)", type:"Var"}, {name: "r.RayTracing.Transmission.TransmissionSamplingDistanceCulling", help:"Enables visibility testing to cull transmission sampling distance (default = 1)", type:"Var"}, {name: "r.RayTracing.UpdateCachedState", help:"Update cached ray tracing state (mesh commands and instances).", type:"Cmd"}, {name: "r.RayTracing.UseReferenceBasedResidency", help:"(EXPERIMENTAL) Whether raytracing geometries should be resident or evicted based on whether they\'re referenced in TLAS", type:"Var"}, {name: "r.RayTracing.UseTextureLod", help:"Enable automatic texture mip level selection in ray tracing material shaders.\n 0: highest resolution mip level is used for all texture (default).\n 1: texture LOD is approximated based on total ray length, output resolution and texel density at hit point (ray cone method).", type:"Var"}, {name: "r.RDG.AsyncCompute", help:"Controls the async compute policy.\n 0:disabled, no async compute is used;\n 1:enabled for passes tagged for async compute (default);\n 2:enabled for all compute passes implemented to use the compute command list;\n", type:"Var"}, {name: "r.RDG.AsyncComputeTransientAliasing", help:"RDG will alias async compute resources on the same heap as graphics resources using fences. This must also be supported by the RHI. 0: disables transient async compute aliasing; 1: enables transient async compute aliasing (default);", type:"Var"}, {name: "r.RDG.ClobberResources", help:"Clears all render targets and texture / buffer UAVs with the requested clear color at allocation time. Useful for debugging.\n 0:off (default);\n 1: 1000 on RGBA channels;\n 2: NaN on RGBA channels;\n 3: +INFINITY on RGBA channels.\n", type:"Var"}, {name: "r.RDG.CullPasses", help:"The graph will cull passes with unused outputs.\n 0:off;\n 1:on(default);\n", type:"Var"}, {name: "r.RDG.Debug.DisableTransientResources", help:"Filters out transient resources from the transient allocator. Use r.rdg.debug.resourcefilter to specify the filter. Defaults to all resources if enabled.", type:"Var"}, {name: "r.RDG.Debug.ExtendResourceLifetimes", help:"Extends the resource lifetimes of resources (or a specific resource filter specified by r.RDG.Debug.ResourceFilter) so that they cannot overlap memory with any other resource within the graph. Useful to debug if transient aliasing is causing issues.\n 0: disabled (default);\n 1: enabled;\n", type:"Var"}, {name: "r.RDG.Debug.FlushGPU", help:"Enables flushing the GPU after every pass. Disables async compute (r.RDG.AsyncCompute=0) and parallel execute (r.RDG.ParallelExecute=0) when set.\n 0: disabled (default);\n 1: enabled.", type:"Var"}, {name: "r.RDG.Debug.GraphFilter", help:"Filters certain debug events to a specific graph. Set to \'None\' to reset.\n", type:"Var"}, {name: "r.RDG.Debug.PassFilter", help:"Filters certain debug events to specific passes. Set to \'None\' to reset.\n", type:"Var"}, {name: "r.RDG.Debug.ResourceFilter", help:"Filters certain debug events to a specific resource. Set to \'None\' to reset.\n", type:"Var"}, {name: "r.RDG.Events", help:"Controls how RDG events are emitted.\n 0: off;\n 1: events are enabled and RDG_EVENT_SCOPE_FINAL is respected; (default)\n 2: all events are enabled (RDG_EVENT_SCOPE_FINAL is ignored);\n 3: same as 2, but RDG pass names are also included.", type:"Var"}, {name: "r.RDG.MergeRenderPasses", help:"The graph will merge identical, contiguous render passes into a single render pass.\n 0:off;\n 1:on(default);\n", type:"Var"}, {name: "r.RDG.OverlapUAVs", help:"RDG will overlap UAV work when requested; if disabled, UAV barriers are always inserted.", type:"Var"}, {name: "r.RDG.ParallelDestruction", help:"RDG will destruct the graph using an async task. 0: graph destruction is done synchronously; 1: graph destruction may be done asynchronously (default);", type:"Var"}, {name: "r.RDG.ParallelExecute", help:"Whether to enable parallel execution of passes when supported. 0: off 1: parallel with all tasks awaited (default) 2: parallel with async tasks", type:"Var"}, {name: "r.RDG.ParallelExecute.PassMax", help:"The maximum span of contiguous passes eligible for parallel execution for the span to be offloaded to a task.", type:"Var"}, {name: "r.RDG.ParallelExecute.PassMin", help:"The minimum span of contiguous passes eligible for parallel execution for the span to be offloaded to a task.", type:"Var"}, {name: "r.RDG.ParallelExecute.PassTaskModeThreshold", help:" 0: A pass that is not marked async will mark the entire parallel pass set as awaited. 1: A pass that does not match the task mode of the current batch will always flush the current batch.>1: Same as the above, but only if the current batch is larger than the threshold.", type:"Var"}, {name: "r.RDG.ParallelExecuteStress", help:"Stress tests the parallel execution path by launching one task per pass. Render pass merging is also disabled.", type:"Var"}, {name: "r.RDG.ParallelSetup", help:"RDG will setup passes in parallel when prompted by calls to FRDGBuilder::FlushSetupQueue. 0: pass setup is done synchronously in AddPass; 1: pass setup is done asynchronously (default);", type:"Var"}, {name: "r.RDG.TransientAllocator", help:"RDG will use the RHITransientResourceAllocator to allocate all transient resources. 0: disables the transient allocator; 1: enables the transient allocator (default); 2: enables the transient allocator for resources with FastVRAM flag only", type:"Var"}, {name: "r.RDG.TransientAllocator.IndirectArgumentBuffers", help:"Whether indirect argument buffers should use transient resource allocator. Default: 0", type:"Var"}, {name: "r.RDG.TransientExtractedResources", help:"RDG will allocate extracted resources as transient, unless explicitly marked non-transient by the user. 0: disables external transient resources; 1: enables external transient resources (default); 2: force enables all external transient resources (not recommended);", type:"Var"}, {name: "r.RDG.TransitionLog", help:"Logs resource transitions to the console.\n 0: disabled(default);\n>0: enabled for N frames;\n<0: enabled;\n", type:"Var"}, {name: "r.RDG.Validation", help:"Enables validation of correctness in API calls and pass parameter dependencies.\n 0: disabled;\n 1: enabled (default);\n", type:"Var"}, {name: "r.RDG.VerboseCSVStats", help:"Controls the verbosity of CSV profiling stats for RDG.\n 0: emits one CSV profile for graph execution;\n 1: emits a CSV profile for each phase of graph execution.", type:"Var"}, {name: "r.RecompileRenderer", help:"Recompiles the renderer module on the fly.", type:"Cmd"}, {name: "r.ReflectionCaptureGPUArrayCopy", help:"Do a fast copy of the reflection capture array when resizing if possible. This avoids hitches on the rendering thread when the cubemap array needs to grow.\n 0 is off, 1 is on (default)", type:"Var"}, {name: "r.RecreateRenderStateContext", help:"Recreate render state.", type:"Cmd"}, {name: "r.RectLight.VisualizeCullingBarnDoors", help:"Whether to render a visualization of the barn doors used to cull the rect light.", type:"Var"}, {name: "r.RectLightAtlas.Debug", help:"Enable rect. light atlas debug information.", type:"Var"}, {name: "r.RectLightAtlas.Debug.MipLevel", help:"Set MIP level for visualizing atlas texture in debug mode.", type:"Var"}, {name: "r.RectLightAtlas.FilterQuality", help:"Define the filtering quality used for filtering texture (0:Box filter, 1:Gaussian filter).", type:"Var"}, {name: "r.RectLightAtlas.ForceUpdate", help:"Force rect. light atlas update very frame.", type:"Var"}, {name: "r.RectLightAtlas.Format", help:"Define the atlas format used.\n - 0: R11G11B10 (faster but can caused hue shift). \n - 1: RGA16F (more accurate but slower)", type:"Var"}, {name: "r.RectLightAtlas.MaxResolution", help:"The maximum resolution for storing rect. light textures.\n", type:"Var"}, {name: "r.RectLightAtlas.MaxTextureRatio", help:"Define the max Width/Height or Height/Width ratio that a texture can have.", type:"Var"}, {name: "r.ReflectionCapture.EnableDeferredReflectionsAndSkyLighting", help:"Whether to evaluate deferred reflections and sky contribution when rendering reflection captures.", type:"Var"}, {name: "r.ReflectionCapture.EnableLightFunctions", help:"0. Disable light functions in reflection/sky light capture (default).\nOthers. Enable light functions.", type:"Var"}, {name: "r.ReflectionCaptureUpdateEveryFrame", help:"When set, reflection captures will constantly be scheduled for update.\n", type:"Var"}, {name: "r.ReflectionMethod", help:"0 - None. Reflections can come from placed Reflection Captures, Planar Reflections and Skylight but no global reflection method will be used.\n1 - Lumen. Use Lumen Reflections, which supports Screen / Software / Hardware Ray Tracing together and integrates with Lumen Global Illumination for rough reflections and Global Illumination seen in reflections.\n2 - SSR. Standalone Screen Space Reflections. Low cost, but limited by screen space information.\n", type:"Var"}, {name: "r.Reflections.Denoiser.HistoryConvolution.SampleCount", help:"Number of samples to use for history post filter (default = 1).", type:"Var"}, {name: "r.Reflections.Denoiser.ReconstructionSamples", help:"Maximum number of samples for the reconstruction pass (default = 16).", type:"Var"}, {name: "r.Reflections.Denoiser.PreConvolution", help:"Number of pre-convolution passes (default = 1).", type:"Var"}, {name: "r.Reflections.Denoiser.ReconstructionSamples", help:"Maximum number of samples for the reconstruction pass (default = 8).", type:"Var"}, {name: "r.Refraction.Blur", help:"Enables rough refractions, i.e. blurring of the background.", type:"Var"}, {name: "r.Refraction.Blur.MaxExposedLuminance", help:"Clamp scene pre-exposed luminance to this maximum value. It helps to reduce bright specular highlight flickering, even when r.Refraction.Blur.TemporalAA=1.", type:"Var"}, {name: "r.Refraction.Blur.MaxStandardDeviationInScreenRatio", help:"This will clamp the maximum refraction blur radius on screen.", type:"Var"}, {name: "r.Refraction.Blur.TemporalAA", help:"Enables temporal AA of the scene color buffer in order to avoid flickering in rough refractions.", type:"Var"}, {name: "r.Refraction.OffsetQuality", help:"When enabled, the offset buffer is made float for higher quality. This is important to maintain the softness of the blurred scene buffer.", type:"Var"}, {name: "r.RenderCaptureDraws", help:"Enable capturing of render capture texture for the next N draws", type:"Var"}, {name: "r.RenderCommandFenceBundling", help:"Controls whether render command fences are allowed to be batched.\n 0: disabled;\n 1: enabled (default);\n", type:"Var"}, {name: "r.RenderCommandPipe.Cable", help:"Whether to enable the Cable Render Command Pipe 0: off; 1: on (default)", type:"Var"}, {name: "r.RenderCommandPipe.Groom", help:"Whether to enable the Groom Render Command Pipe 0: off; 1: on (default)", type:"Var"}, {name: "r.RenderCommandPipe.NiagaraDynamicData", help:"Whether to enable the NiagaraDynamicData Render Command Pipe 0: off; 1: on (default)", type:"Var"}, {name: "r.RenderCommandPipe.SkeletalMesh", help:"Whether to enable the SkeletalMesh Render Command Pipe 0: off; 1: on (default)", type:"Var"}, {name: "r.RenderCommandPipeMode", help:"Controls behavior of the main render thread command pipe. 0: Render commands are launched individually as tasks;\n 1: Render commands are enqueued into a render command pipe for the render thread only.;\n 2: Render commands are enqueued into a render command pipe for all declared pipes.;\n", type:"Var"}, {name: "r.RenderPass.Validation", help:"", type:"Var"}, {name: "r.RenderTargetPool.AllowMultipleAliasingDiscardsPerFrame", help:"If enabled, allows rendertargets to be discarded and reacquired in the same frame.\nThis should give better aliasing efficiency, but carries some RHIthread/GPU performance overhead\nwith some RHIs (due to additional commandlist flushes)\n 0:off (default), 1:on", type:"Var"}, {name: "r.RenderTargetPool.Events", help:"Visualize the render target pool events over time in one frame. Optional parameter defines threshold in KB.\nTo disable the view use the command without any parameter", type:"Cmd"}, {name: "r.RenderTargetPool.TransientAliasingMode", help:"Enables transient resource aliasing for rendertargets. Used only if GSupportsTransientResourceAliasing is true.\n0 : Disabled\n1 : enable transient resource aliasing for fastVRam rendertargets\n2 : enable transient resource aliasing for fastVRam rendertargets and those with a Transient hint. Best for memory usage - has some GPU cost (~0.2ms)\n3 : enable transient resource aliasing for ALL rendertargets (not recommended)\n", type:"Var"}, {name: "r.RenderTargetSwitchWorkaround", help:"Workaround needed on some mobile platforms to avoid a performance drop related to switching render targets.\nOnly enabled on some hardware. This affects the bloom quality a bit. It runs slower than the normal code path but\nstill faster as it avoids the many render target switches. (Default: 0)\nWe want this enabled (1) on all 32 bit iOS devices (implemented through DeviceProfiles).", type:"Var"}, {name: "r.RenderThreadTimeIncludesDependentWaits", help:"0: RT stat only includes non-idle time, 1: RT stat includes dependent waits (matching RenderThreadTime_CriticalPath)", type:"Var"}, {name: "r.ResetRenderTargetsExtent", help:"To reset internal render target extents", type:"Cmd"}, {name: "r.RHI.FastClearUAVMaxSize", help:"Max size in bytes to fast clear tiny UAV. 0 by default or when feature is not supported by the platform", type:"Var"}, {name: "r.RHICmdAsyncRHIThreadDispatch", help:"Experiemental option to do RHI dispatches async. This keeps data flowing to the RHI thread faster and avoid a block at the end of the frame.", type:"Var"}, {name: "r.RHICmdBalanceParallelLists", help:"Allows to enable a preprocess of the drawlists to try to balance the load equally among the command lists.\n 0: off \n 1: enabled 2: experiemental, uses previous frame results (does not do anything in split screen etc)", type:"Var"}, {name: "r.RHICmdBalanceTranslatesAfterTasks", help:"Experimental option to balance the parallel translates after the render tasks are complete. This minimizes the number of deferred contexts, but adds latency to starting the translates. r.RHICmdBalanceParallelLists overrides and disables this option", type:"Var"}, {name: "r.RHICmdBasePassDeferredContexts", help:"True to use deferred contexts to parallelize base pass command list execution.", type:"Var"}, {name: "r.RHI.Name", help:"Show current RHI\'s name", type:"Cmd"}, {name: "r.RHICmd.ParallelTranslate.CombineSingleAndParallel", help:"When true, allows the batching of both parallel and single threaded RHI command lists into the same translate job. Any parallel command lists that get batched with a single thread command list will fall back to translating on the RHI thread. Enabling this may trade reduced parallelism for reduced dispatch overhead.", type:"Var"}, {name: "r.RHICmd.ParallelTranslate.Enable", help:"When true, allows recorded RHI command lists to be translated in parallel, on supported platforms. Setting this to false will make all command lists translate on the RHI thread.", type:"Var"}, {name: "r.RHICmd.ParallelTranslate.MaxCommandsPerTranslate", help:"When parallel translation is enabled, specifies the target maximum number of RHI command list commands to allow in a single translation job. If a newly submitted command list would cause an existing translate job to exceed this threshold, a new job will be started. A value of 0 means \'no limit\'. Translate jobs will not be split. A value less than 0 means \'always split\'. Command lists will never be batched together in the same translate job.", type:"Var"}, {name: "r.RHICmdCollectRHIThreadStatsFromHighLevel", help:"This pushes stats on the RHI thread executes so you can determine which high level pass they came from. This has an adverse effect on framerate. This is on by default.", type:"Var"}, {name: "r.RHICmdDeferSkeletalLockAndFillToRHIThread", help:"If > 0, then do the bone and cloth copies on the RHI thread. Experimental option.", type:"Var"}, {name: "r.RHICmdFlushOnQueueParallelSubmit", help:"Wait for completion of parallel commandlists immediately after submitting. For issue diagnosis. Only available on some RHIs.", type:"Var"}, {name: "r.RHICmdFlushRenderThreadTasks", help:"If true, then we flush the render thread tasks every pass. For issue diagnosis. This is a master switch for more granular cvars.", type:"Var"}, {name: "r.RHICmdFlushRenderThreadTasksBasePass", help:"Wait for completion of parallel render thread tasks at the end of the base pass. A more granular version of r.RHICmdFlushRenderThreadTasks. If either r.RHICmdFlushRenderThreadTasks or r.RHICmdFlushRenderThreadTasksBasePass is > 0 we will flush.", type:"Var"}, {name: "r.RHICmdFlushRenderThreadTasksPrePass", help:"Wait for completion of parallel render thread tasks at the end of the pre pass. A more granular version of r.RHICmdFlushRenderThreadTasks. If either r.RHICmdFlushRenderThreadTasks or r.RHICmdFlushRenderThreadTasksPrePass is > 0 we will flush.", type:"Var"}, {name: "r.RHICmdFlushRenderThreadTasksShadowPass", help:"Wait for completion of parallel render thread tasks at the end of each shadow pass. A more granular version of r.RHICmdFlushRenderThreadTasks. If either r.RHICmdFlushRenderThreadTasks or r.RHICmdFlushRenderThreadTasksShadowPass is > 0 we will flush.", type:"Var"}, {name: "r.RHICmdFlushRenderThreadTasksTranslucentPass", help:"Wait for completion of parallel render thread tasks at the end of the translucent pass. A more granular version of r.RHICmdFlushRenderThreadTasks. If either r.RHICmdFlushRenderThreadTasks or r.RHICmdFlushRenderThreadTasksTranslucentPass is > 0 we will flush.", type:"Var"}, {name: "r.RHICmdFlushRenderThreadTasksVelocityPass", help:"Wait for completion of parallel render thread tasks at the end of the velocity pass. A more granular version of r.RHICmdFlushRenderThreadTasks. If either r.RHICmdFlushRenderThreadTasks or r.RHICmdFlushRenderThreadTasksVelocityPass is > 0 we will flush.", type:"Var"}, {name: "r.RHICmdFlushUpdateTextureReference", help:"If true, then we flush the rhi thread when we do RHIUpdateTextureReference, otherwise this is deferred. For issue diagnosis.", type:"Var"}, {name: "r.RHICmdForceRHIFlush", help:"Force a flush for every task sent to the RHI thread. For issue diagnosis.", type:"Var"}, {name: "r.RHICmdMergeSmallDeferredContexts", help:"When it can be determined, merge small parallel translate tasks based on r.RHICmdMinDrawsPerParallelCmdList.", type:"Var"}, {name: "r.RHICmdMinCmdlistForParallelSubmit", help:"Minimum number of parallel translate command lists to submit. If there are fewer than this number, they just run on the RHI thread and immediate context.", type:"Var"}, {name: "r.RHICmdMinCmdlistForParallelTranslate", help:"If there are fewer than this number of parallel translates, they just run on the RHI thread and immediate context. Only relevant if r.RHICmdBalanceTranslatesAfterTasks is on.", type:"Var"}, {name: "r.RHICmdMinCmdlistSizeForParallelTranslate", help:"In kilobytes. Cmdlists are merged into one parallel translate until we have at least this much memory to process. For a given pass, we won\'t do more translates than we have task threads. Only relevant if r.RHICmdBalanceTranslatesAfterTasks is on.", type:"Var"}, {name: "r.RHICmdMinDrawsPerParallelCmdList", help:"The minimum number of draws per cmdlist. If the total number of draws is less than this, then no parallel work will be done at all. This can\'t always be honored or done correctly. More effective with RHICmdBalanceParallelLists.", type:"Var"}, {name: "r.RHICmdPrePassDeferredContexts", help:"True to use deferred contexts to parallelize prepass command list execution.", type:"Var"}, {name: "r.RHICmdShadowDeferredContexts", help:"True to use deferred contexts to parallelize shadow command list execution.", type:"Var"}, {name: "r.RHICmdSpewParallelListBalance", help:"For debugging, spews the size of the parallel command lists. This stalls and otherwise wrecks performance.\n 0: off (default)\n 1: enabled (default)", type:"Var"}, {name: "r.RHICmdTranslucencyPassDeferredContexts", help:"True to use deferred contexts to parallelize base pass command list execution.", type:"Var"}, {name: "r.RHICmdUseDeferredContexts", help:"True to use deferred contexts to parallelize command list execution. Only available on some RHIs.", type:"Var"}, {name: "r.RHICmdUseParallelAlgorithms", help:"True to use parallel algorithms. Ignored if r.RHICmdBypass is 1.", type:"Var"}, {name: "r.RHICmdUseThread", help:"Uses the RHI thread. For issue diagnosis.", type:"Var"}, {name: "r.RHICmdVelocityPassDeferredContexts", help:"True to use deferred contexts to parallelize velocity pass command list execution.", type:"Var"}, {name: "r.RHICmdMaxOutstandingMemoryBeforeFlush", help:"In kilobytes. The amount of outstanding memory before the RHI will force a flush. This should generally be set high enough that it doesn\'t happen on typical frames.", type:"Var"}, {name: "r.RHICmdMinDrawsPerParallelCmdList", help:"The minimum number of draws per cmdlist. If the total number of draws is less than this, then no parallel work will be done at all. This can\'t always be honored or done correctly.", type:"Var"}, {name: "r.RHISetGPUCaptureOptions", help:"Utility function to change multiple CVARs useful when profiling or debugging GPU rendering. Setting to 1 or 0 will guarantee all options are in the appropriate state.\nr.rhithread.enable, r.rhicmdbypass, r.showmaterialdrawevents, toggledrawevents\nPlatform RHI\'s may implement more feature toggles.", type:"Cmd"}, {name: "r.RHISetGPUCaptureOptions", help:"Utility function to change multiple CVARs useful when profiling or debugging GPU rendering. Setting to 1 or 0 will guarantee all options are in the appropriate state.\nr.showmaterialdrawevents, toggledrawevents.", type:"Cmd"}, {name: "r.RHIValidation.DebugBreak.Transitions", help:"Controls whether the debugger should break when a validation error is encountered.\n 0: disabled;\n 1: break in the debugger if a validation error is encountered.", type:"Var"}, {name: "r.SceneCapture.EnableViewExtensions", help:"Whether to enable view extensions when doing scene capture.\n0: Disable view extensions (default).\n1: Enable view extensions.\n", type:"Var"}, {name: "r.SceneCapture.AllowRenderInMainRenderer", help:"Whether to allow SceneDepth & DeviceDepth scene capture to render in the main renderer as an optimization.\n0: render as an independent renderer.\n1: render as part of the main renderer if Render in Main Renderer is enabled on scene capture component.\n", type:"Var"}, {name: "r.SceneCapture.BasePassOptimization", help:"Whether to apply optimized render path when capturing base pass or normals for scene capture 2D. Experimental!\n", type:"Var"}, {name: "r.SceneCapture.CubeSinglePass", help:"Whether to run all 6 faces of cube map capture in a single scene renderer pass.", type:"Var"}, {name: "r.SceneCapture.CullByDetailMode", help:"Whether to prevent scene capture updates according to the current detail mode", type:"Var"}, {name: "r.SceneCapture.DepthPrepassOptimization", help:"Whether to apply optimized render path when capturing depth prepass for scene capture 2D. Experimental!\n", type:"Var"}, {name: "r.SceneCapture.DumpMemory", help:"Editor specific command to dump scene capture memory to log", type:"Cmd"}, {name: "r.SceneCapture.EnableOrthographicTiling", help:"Render the scene in n frames (i.e TileCount) - Ignored in Perspective mode, works only in Orthographic mode and when r.SceneCapture.OverrideOrthographicTilingValues is on.", type:"Var"}, {name: "r.SceneCapture.OrthographicNumXTiles", help:"Number of X tiles to render. Ignored in Perspective mode, works only in Orthographic mode and when r.SceneCapture.OverrideOrthographicTilingValues is on.", type:"Var"}, {name: "r.SceneCapture.OrthographicNumYTiles", help:"Number of Y tiles to render. Ignored in Perspective mode, works only in Orthographic mode and when r.SceneCapture.OverrideOrthographicTilingValues is on.", type:"Var"}, {name: "r.SceneCapture.OverrideOrthographicTilingValues", help:"Override defined orthographic values from SceneCaptureComponent2D - Ignored in Perspective mode.", type:"Var"}, {name: "r.SceneColorFringeQuality", help:" 0: off but best for performance\n 1: 3 texture samples (default)n", type:"Var"}, {name: "r.SceneRenderTargetResizeMethod", help:"Control the scene render target resize method:\n(This value is only used in game mode and on windowing platforms.)\n0: Resize to match requested render size (Default) (Least memory use, can cause stalls when size changes e.g. ScreenPercentage)\n1: Fixed to screen resolution.\n2: Expands to encompass the largest requested render dimension. (Most memory use, least prone to allocation stalls.)", type:"Var"}, {name: "r.ScreenPercentage", help:"To render in lower resolution and upscale for better performance (combined up with the blenable post process setting).\n70 is a good value for low aliasing and performance, can be verified with \'show TestImage\'\nin percent, >0 and <=100, larger numbers are possible (supersampling) but the downsampling quality is improvable.<0 is treated like 100.", type:"Var"}, {name: "r.SceneColorFringeQuality", help:" 0: off but best for performance\n 1: 3 texture samples (default)", type:"Var"}, {name: "r.SceneCulling", help:"Enable/Disable scene culling.\n While enabled, it will only build the instance hierarchy if used by any system - currently that corresponds to Nanite being enabled.\n Forces a recreate of all render state since (at present) there is only an incremental update path.", type:"Var"}, {name: "r.SceneCulling.Async.Query", help:"Enable/Disable async culling scene queries.", type:"Var"}, {name: "r.SceneCulling.Async.Update", help:"Enable/Disable async culling scene update.", type:"Var"}, {name: "r.SceneCulling.DbgPattern", help:"", type:"Var"}, {name: "r.SceneCulling.DebugRenderMode", help:"SceneCulling debug render mode.\n 0 = Disabled (default)\n 1 = Enabled", type:"Var"}, {name: "r.SceneCulling.ExplicitCellBounds", help:"Enable to to construct explicit cell bounds by processing the instance bounds as the scene is updated. Adds some GPU cost to the update but this is typically more than paid for by improved culling.", type:"Var"}, {name: "r.SceneCulling.MaxCellSize", help:"Hierarchy max cell size. Objects with larger bounds will be classified as uncullable.", type:"Var"}, {name: "r.SceneCulling.MinCellSize", help:"Set the minimum cell size & level in the hierarchy, rounded to nearest POT. Clamps the level for object footprints.\n This trades culling effectiveness for construction cost and memory use.\n The minimum cell size is (will be) used for precomputing the key for static ISMs.\n Currently read-only as there is implementation to rebuild the whole structure on a change.\n", type:"Var"}, {name: "r.SceneCulling.Precomputed", help:"Enable/Disable precomputed spatial hashes for scene culling.", type:"Var"}, {name: "r.SceneCulling.SmallFootprintSideThreshold", help:"Queries with a smaller footprint (maximum) side (in number of cells in the lowest level) go down the footprint based path.\n The default (16) <=> a footprint of 16x16x16 cells or 8 blocks", type:"Var"}, {name: "r.SceneCulling.TreatInstancedDynamicAsUnCullable", help:"If this is turned on, dynamic primitives with instances are treated as uncullable (not put into the hierarchy and instead brute-forced on the GPU). This significantly reduces the hierarchy update cost on the CPU and for scenes with a large proportion of static elements, does not increase the GPU cost.", type:"Var"}, {name: "r.SceneCulling.ValidateAllInstanceAllocations", help:"Perform validation of all instance IDs stored in the grid. This is very slow.", type:"Var"}, {name: "r.SceneCulling.ValidateGPUData", help:"Perform readback and validation of uploaded GPU-data against CPU copy. This is quite slow and forces CPU/GPU syncs.", type:"Var"}, {name: "r.SceneDepthHZBAsyncCompute", help:"Selects whether HZB for scene depth buffer should be built with async compute.\n 0: Don\'t use async compute (default)\n 1: Use async compute, start as soon as possible\n 2: Use async compute, start after ComputeLightGrid.CompactLinks pass", type:"Var"}, {name: "r.SceneRenderCleanUpMode", help:"Controls when to perform clean up of the scene renderer.\n 0: clean up is performed immediately after render on the render thread.\n 1: clean up deferred until the start of the next scene render on the render thread.\n 2: clean up deferred until the start of the next scene render on the render thread, with some work distributed to an async task. (default)\n", type:"Var"}, {name: "r.SceneRenderTargetResizeMethod", help:"Control the scene render target resize method:\n(This value is only used in game mode and on windowing platforms unless \'r.SceneRenderTargetsResizingMethodForceOverride\' is enabled.)\n0: Resize to match requested render size (Default) (Least memory use, can cause stalls when size changes e.g. ScreenPercentage)\n1: Fixed to screen resolution.\n2: Expands to encompass the largest requested render dimension. (Most memory use, least prone to allocation stalls.)", type:"Var"}, {name: "r.SceneRenderTargetResizeMethodForceOverride", help:"Forces \'r.SceneRenderTargetResizeMethod\' to be respected on all configurations.\n0: Disabled.\n1: Enabled.\n", type:"Var"}, {name: "r.ScreenPercentage", help:"To render in lower resolution and upscale for better performance (combined up with the blenable post process setting).\n70 is a good value for low aliasing and performance, can be verified with \'show TestImage\'\nin percent, >0 and <=100, larger numbers are possible (supersampling) but the downsampling quality is improvable.<=0 compute the screen percentage is determined by r.ScreenPercentage.Default cvars.", type:"Var"}, {name: "r.ScreenPercentage.Auto.PixelCountMultiplier", help:"", type:"Var"}, {name: "r.ScreenPercentage.Default", help:"", type:"Var"}, {name: "r.ScreenPercentage.Default.Desktop.Mode", help:"", type:"Var"}, {name: "r.ScreenPercentage.Default.Mobile.Mode", help:"", type:"Var"}, {name: "r.ScreenPercentage.Default.PathTracer.Mode", help:"", type:"Var"}, {name: "r.ScreenPercentage.Default.VR.Mode", help:"", type:"Var"}, {name: "r.ScreenPercentage.MaxResolution", help:"Controls the absolute maximum number of rendered pixel before any upscaling such that doesn\'t go higher than the specified 16:9 resolution of this variable. For instance set this value to 1440 so that you are not rendering more than 2560x1440 = 3.6M pixels. This is useful to set this on PC in your project\'s DefaultEditor.ini so you are not rendering more pixel on PC in PIE that you would in average on console with your project specific dynamic resolution settings.", type:"Var"}, {name: "r.ScreenPercentage.MinResolution", help:"Controls the absolute minimum number of rendered pixel.", type:"Var"}, {name: "r.SeparateTranslucencyAutoDownsample", help:"Whether to automatically downsample separate translucency based on last frame\'s GPU time.\nAutomatic downsampling is only used when r.SeparateTranslucencyScreenPercentage is 100", type:"Var"}, {name: "r.SeparateTranslucencyDurationDownsampleThreshold", help:"When smoothed full-res translucency GPU duration is larger than this value (ms), the entire pass will be downsampled by a factor of 2 in each dimension.", type:"Var"}, {name: "r.SeparateTranslucencyDurationUpsampleThreshold", help:"When smoothed half-res translucency GPU duration is smaller than this value (ms), the entire pass will be restored to full resolution.\nThis should be around 1/4 of r.SeparateTranslucencyDurationDownsampleThreshold to avoid toggling downsampled state constantly.", type:"Var"}, {name: "r.SeparateTranslucencyMinDownsampleChangeTime", help:"Minimum time in seconds between changes to automatic downsampling state, used to prevent rapid swapping between half and full res.", type:"Var"}, {name: "r.SetFramePace", help:"Set a target frame rate for the frame pacer.To set 30fps: \"r.SetFramePace 30\"", type:"Cmd"}, {name: "r.ShaderBundle.MaxSize", help:"Maximum number of items in a work graph shader bundle.", type:"Var"}, {name: "r.ShaderCodeLibrary.AsyncIOAllowDontCache", help:"", type:"Var"}, {name: "r.ShaderCodeLibrary.MaxShaderGroupSize", help:"Max (uncompressed) size of a group of shaders to be compressed/decompressed together.If a group exceeds it, it will be evenly split into subgroups which strive to not exceed it. However, if a shader group is down to one shader and still exceeds the limit, the limit will be ignored.", type:"Var"}, {name: "r.ShaderCodeLibrary.MaxShaderPreloadWaitTime", help:"If we wait on shader preloads longer than this amount of seconds, we will log it as a warning.", type:"Var"}, {name: "r.ShaderCodeLibrary.PreloadShaderMaps", help:"If > 0, shader maps will be preloaded at package/resource load time.", type:"Var"}, {name: "r.ShaderCodeLibrary.SeparateLoadingCache", help:"if > 0, each shader code library has it\'s own loading cache.", type:"Var"}, {name: "r.ShaderCodeLibrary.ShaderMapResourceRef", help:"Track reference to the shader group for different shadermaps.\nNormally used when dynamic shader preloading is enable to make sure we dont unload a shader group shared by two different shadermaps", type:"Var"}, {name: "r.ShaderCodeLibrary.VisualizeShaderUsage", help:"If 1, a bitmap with the used shaders (for each shader library chunk) will be saved at the exit. Works in standalone games only.", type:"Var"}, {name: "r.ShaderCompiler.AllowDistributedCompilation", help:"If 0, only local (spawned by the engine) ShaderCompileWorkers will be used. If 1, SCWs will be distributed using one of several possible backends (XGE, FASTBuild, SN-DBS)", type:"Var"}, {name: "r.ShaderCompiler.CrashOnHungShaderMaps", help:"If set to 1, the shader compiler will crash on hung shadermaps.", type:"Var"}, {name: "r.ShaderCompiler.DebugDDCKeyAsset", help:"if set, assets containing this name will print their full DDC key hash information when requested", type:"Var"}, {name: "r.ShaderCompiler.DebugDiscardCacheOutputs", help:"if != 0, cache outputs are discarded (not added to the output map) for debugging purposes.\nEliminates usefulness of the cache, but allows repeated triggering of the same jobs for stress testing (for example, rapid undo/redo in the Material editor).", type:"Var"}, {name: "r.ShaderCompiler.DebugDumpDetailedShaderSource", help:"If true, and if the preprocessed job cache is enabled, this will dump multiple copies of the shader source for any job which has debug output enabled:\n\t1. The unmodified output of the preprocessing step as constructed by the PreprocessShader implementation of the IShaderFormat (Preprocessed_<shader>.usf\n\t2. The stripped version of the above (with comments, line directives, and whitespace-only lines removed), which is the version hashed for inclusion in the job input hash when the preprocessed job cache is enabled (Stripped_<shader>.usf)\t3. The final source as passed to the platform compiler (this will differ if the IShaderFormat compile function applies further modifications to the source after preprocessing; otherwise this will be the same as 2 above (<shader>.usf)\nIf false, or the preprocessed job cache is disabled, this will simply dump whatever source is passed to the compiler (equivalent to either 1 or 3 depending on if the IShaderFormat implementation modifies the source in the compile step.", type:"Var"}, {name: "r.ShaderCompiler.DebugDumpJobDiagnostics", help:"If true, all diagnostic messages (errors and warnings) for each shader job will be dumped alongside other debug data (in Diagnostics.txt)", type:"Var"}, {name: "r.ShaderCompiler.DebugDumpJobInputHashes", help:"If true, the job input hash will be dumped alongside other debug data (in InputHash.txt)", type:"Var"}, {name: "r.ShaderCompiler.DebugDumpShaderCode", help:"If true, each shader job will dump a ShaderCode.bin containing the contents of the output shader code object (the contents of this can differ for each shader format; note that this is the data that is hashed to produce the OutputHash.txt file)", type:"Var"}, {name: "r.ShaderCompiler.DebugDumpShaderCodePlatformHashes", help:"If true, each shader job will dump a PlatformHash.txt file containing the shader code hash as reported by the platform compiler (if the associated shader format registers this hash with the shader stats).\nNote the distinction between this and OutputHash.txt - these files can be used to find shaders which have identical code and only result in different output hashes due to diffs in other metadata.", type:"Var"}, {name: "r.ShaderCompiler.DebugDumpWorkerCrashLog", help:"If true, the ShaderCompileWorker will dump its entire log to the Saved folder when a crash is detected.", type:"Var"}, {name: "r.ShaderCompiler.DebugDumpWorkerInputs", help:"If true, worker input files will be saved for each individual compile job alongside other debug data (note that r.DumpShaderDebugInfo must also be enabled for this to function)", type:"Var"}, {name: "r.ShaderCompiler.DebugStallDDCQuery", help:"For debugging, a value in milliseconds to stall in the DDC completion callback, to help reproduce threading bugs, or simulate higher latency DDC for perf testing.", type:"Var"}, {name: "r.ShaderCompiler.DebugStallSubmitJob", help:"For debugging, a value in milliseconds to stall in SubmitJob, to help reproduce threading bugs.", type:"Var"}, {name: "r.ShaderCompiler.DebugValidateJobCache", help:"Enables debug mode for job cache which will fully execute all jobs and validate that job outputs with matching input hashes match.", type:"Var"}, {name: "r.ShaderCompiler.DisableSourceStripping", help:"If true, the process which strips comments, line directives and whitespace from final preprocessed source is disabled. This results in file associations being maintained and visible in RenderDoc etc., at the cost of less effective deduplication.", type:"Var"}, {name: "r.ShaderCompiler.DistributedControllerTimeout", help:"Maximum number of seconds we expect to pass between getting distributed controller complete a task (this is used to detect problems with the distribution controllers).", type:"Var"}, {name: "r.ShaderCompiler.DistributedJobDescriptionLevel", help:"Sets the level of descriptive details for each distributed job batch. The following modes are supported:\n Mode 0: Disabled.\n Mode 1: Basic information of the first 20 compile jobs per batch.\n Mode 2: Additional information of the shader format per compile job.\nThis will show up in the UBA trace files. By default 0.", type:"Var"}, {name: "r.ShaderCompiler.DistributedMinBatchSize", help:"Minimum number of shaders to compile with a distributed controller.\nSmaller number of shaders will compile locally.", type:"Var"}, {name: "r.ShaderCompiler.DumpDDCKeys", help:"if != 0, DDC keys for each shadermap will be dumped into project\'s Saved directory (ShaderDDCKeys subdirectory)", type:"Var"}, {name: "r.ShaderCompiler.DumpDebugInfoForCacheHits", help:"If true, debug info (via IShaderFormat::OutputDebugData) will be output for all jobs including duplicates and cache/DDC hits. If false, only jobs that actually executed compilation will dump debug info.", type:"Var"}, {name: "r.ShaderCompiler.EmitWarningsOnLoad", help:"When 1, shader compiler warnings are emitted to the log for all shaders as they are loaded.", type:"Var"}, {name: "r.ShaderCompiler.JobCache", help:"if != 0, shader compiler cache (based on the unpreprocessed input hash) will be disabled. By default, it is enabled.", type:"Var"}, {name: "r.ShaderCompiler.JobCacheDDC", help:"Skips compilation of all shaders on Material and Material Instance PostLoad and relies on on-demand shader compilation to compile what is needed.", type:"Var"}, {name: "r.ShaderCompiler.JobCacheDDCCookEnableRemotePolicy", help:"If true, individual shader jobs will be cached to remote/shared DDC instances in all cook commandlet only; if false they will only cache to DDC instances on the local machine.\n", type:"Var"}, {name: "r.ShaderCompiler.JobCacheDDCEnableRemotePolicy", help:"If true, individual shader jobs will be cached to remote/shared DDC instances in all operation modes; if false they will only cache to DDC instances on the local machine.\n", type:"Var"}, {name: "r.ShaderCompiler.JobCacheOverflowReducePercent", help:"When shader compiler job cache memory overflows, reduce memory to this percentage of the maximum. Reduces overhead relative to cleaning up items one at a time when at max budget.", type:"Var"}, {name: "r.ShaderCompiler.LogSlowJobThreshold", help:"If a single compilation job\'s compile time exceeds the specified value (in seconds), info about the job will be automatically logged for investigation.", type:"Var"}, {name: "r.ShaderCompiler.MaxDumpedShaderSources", help:"Maximum number of preprocessed shader sources to dump as a build artifact on shader compile errors. By default 10.", type:"Var"}, {name: "r.ShaderCompiler.MaxJobCacheMemoryMB", help:"if != 0, shader compiler cache will be limited to this many megabytes (16GB by default). If 0, the usage will be unlimited. Minimum of this or r.ShaderCompiler.MaxJobCacheMemoryPercent applies.", type:"Var"}, {name: "r.ShaderCompiler.MaxJobCacheMemoryPercent", help:"if != 0, shader compiler cache will be limited to this percentage of available physical RAM (5% by default). If 0, the usage will be unlimited. Minimum of this or r.ShaderCompiler.MaxJobCacheMemoryMB applies.", type:"Var"}, {name: "r.ShaderCompiler.MaxShaderStatsToPrint", help:"Max number of shaders FShaderJobCache stats logs out", type:"Var"}, {name: "r.ShaderCompiler.MemoryLimit", help:"Specifies a memory limit (in MiB) for all ShaderCompileWorker (SCW) processes.If the total memory consumption of all SCW processes exceeds this limit, the editor will start to suspend workers and reschedule compile jobs.By default 0, effectively disabling the limitation. If this is non-zero, it must be greater than or equal to 1024 since shader compilation must be granted at least 1024 MiB of memory in total.", type:"Var"}, {name: "r.ShaderCompiler.ParallelInProcess", help:"EXPERIMENTAL- If true, shader compilation will be executed in-process in parallel. Note that this will serialize if the legacy preprocessor is enabled.", type:"Var"}, {name: "r.ShaderCompiler.PerShaderDDCAsync", help:"if != 0, Per-shader DDC queries will run async, instead of in the SubmitJobs task.", type:"Var"}, {name: "r.ShaderCompiler.PerShaderDDCCook", help:"If true, per-shader DDC caching will be enabled during cooks.", type:"Var"}, {name: "r.ShaderCompiler.PerShaderDDCGlobal", help:"if != 0, Per-shader DDC queries enabled for global and default shaders.", type:"Var"}, {name: "r.ShaderCompiler.PrintIndividualProcessStats", help:"If true, in a multiprocess cook, stats will be printed for each individual process (as well as aggregated across all).", type:"Var"}, {name: "r.ShaderCompiler.PrintStats", help:"Prints out to the log the stats for the shader compiler.", type:"Cmd"}, {name: "r.ShaderCompiler.RecompileShadersOnSave", help:"When enabled, the editor will attempt to recompile any shader files that have changed when saved. Useful for iterating on shaders in the editor.\nDefault: false", type:"Var"}, {name: "r.ShaderCompiler.ShadermapCompilationTimeout", help:"Maximum number of seconds a single shadermap (which can be comprised of multiple jobs) can be compiled after being considered hung.", type:"Var"}, {name: "r.ShaderCompiler.StatsPrintoutInterval", help:"Minimum interval (in seconds) between printing out debugging stats (by default, no closer than once per minute).", type:"Var"}, {name: "r.ShaderCompiler.ThreadLocalPreprocessBuffer", help:"Amount to preallocate for preprocess output per worker thread, to save reallocation overhead in the preprocessor.", type:"Var"}, {name: "r.ShaderCompiler.TooLongIOThresholdSeconds", help:"By default, task files for SCW will be read/written sequentially, but if we ever spend more than this time (0.3s by default) doing that, we\'ll switch to parallel.We don\'t default to parallel writes as it increases the CPU overhead from the shader compiler.", type:"Var"}, {name: "r.ShaderCompilerWarningsFilter", help:"Additional filtering for shader warnings; 2=show all, 1=show global shader warnings only, 0=show no shader warnings.", type:"Var"}, {name: "r.ShaderComplexity.CacheShaders", help:"If non zero, store the shader complexity shaders in the material shader map, to prevent compile on-the-fly lag. (default=0)", type:"Var"}, {name: "r.ShaderComplexity.MaxLWCComplexity", help:"Value used for scaling the material LWC usage visualization", type:"Var"}, {name: "r.ShaderComplexity.MobileMaskedCostMultiplier", help:"Extra cost of masked materials if we do not use masked in early Z optimization", type:"Var"}, {name: "r.ShaderLibrary.PrintExtendedStats", help:"if != 0, shader library will produce extended stats, including the textual representation", type:"Var"}, {name: "r.ShaderPipelineCache.AlwaysGenerateOSCache", help:"1 generates the cache every run, 0 generates it only when it is missing.", type:"Var"}, {name: "r.ShaderPipelineCache.AutoSaveTimeBoundPSO", help:"Set the time where any logged PSO\'s will be saved when -logpso is on th ecommand line.", type:"Var"}, {name: "r.ShaderPipelineCache.AutoSaveTimeBoundPSO", help:"Set the time where any logged PSO\'s will be saved when -logpso is on the command line.", type:"Var"}, {name: "r.ShaderPipelineCache.DoNotPrecompileComputePSO", help:"Disables precompilation of compute PSOs (replayed from a recorded file) on start. This is a safety switch in case things go wrong", type:"Var"}, {name: "r.ShaderPipelineCache.ExcludePrecachePSO", help:"1 excludes saving runtime-precached graphics PSOs in the file cache, 0 (default) includes them. Excluding precached PSOs requires PSO precaching to be enabled.", type:"Var"}, {name: "r.ShaderPipelineCache.GlobalShadersOnlyWhenPSOPrecaching", help:"Only compile PSOs from the GlobalShader cache when runtime PSOPrecaching is enabled (default disabled)", type:"Var"}, {name: "r.ShaderPipelineCache.LogPSO", help:"1 Logs new PSO entries into the file cache and allow saving, 0 uses existing PSO file cache in readonly mode (if enabled).", type:"Var"}, {name: "r.ShaderPipelineCache.LogPSO", help:"1 Logs new PSO entries into the file cache and allows saving.", type:"Var"}, {name: "r.ShaderPipelineCache.MaxPrecompileTime", help:"The maximum time to allow a PSO to be precompiled. if greather than 0, the amount of wall time we will allow pre-compile of PSOs and then switch to background processing.", type:"Var"}, {name: "r.ShaderPipelineCache.Open", help:"Takes the desired filename to open and then loads the pipeline file cache.", type:"Cmd"}, {name: "r.ShaderPipelineCache.PrintNewPSODescriptors", help:"1 prints descriptions for all new PSO entries to the log/console while 0 does not. Defaults to 0 in *Shipping* builds, otherwise 1.", type:"Var"}, {name: "r.ShaderPipelineCache.ReportPSO", help:"1 reports new PSO entries via a delegate, but does not record or modify any cache file.", type:"Var"}, {name: "r.ShaderPipelineCache.OnlyOpenUserCache", help:"If > 0, only the user cache file will be opened, and the static file cache will not be opened. Defaults to 0.", type:"Var"}, {name: "r.ShaderPipelineCache.Open", help:"Close and reopen the user cache.", type:"Cmd"}, {name: "r.ShaderPipelineCache.PrecompileBatchSize", help:"Set the number of PipelineStateObjects to compile in a single batch operation when pre-optimizing the cache. Defaults to a maximum of 50 per frame, due to async. file IO it is less in practice.", type:"Var"}, {name: "r.ShaderPipelineCache.PrecompileBatchTime", help:"The target time (in ms) to spend precompiling each frame when cpre-optimizing or 0.0 to disable. When precompiling is faster the batch size will grow and when slower will shrink to attempt to occupy the full amount. Defaults to 10.0 (off).", type:"Var"}, {name: "r.ShaderPipelineCache.PreCompileMask", help:"Mask used to precompile the cache. Defaults to all PSOs (-1)", type:"Var"}, {name: "r.ShaderPipelineCache.PreOptimizeEnabled", help:"Set non zero to PreOptimize PSOs - this allows some PSOs to be compiled in the foreground before going in to game", type:"Var"}, {name: "r.ShaderPipelineCache.PrintNewPSODescriptors", help:"1 prints descriptions for all new PSO entries to the log/console while 0 does not. 2 prints additional details about graphics PSO. Defaults to 0.", type:"Var"}, {name: "r.ShaderPipelineCache.ReportPSO", help:"1 reports new PSO entries via a delegate, but does not record or modify any cache file. New PSOs are reported in bulk once per frame.", type:"Var"}, {name: "r.ShaderPipelineCache.SaveAfterPSOsLogged", help:"Set the number of PipelineStateObjects to log before automatically saving. 0 will disable automatic saving. Shipping defaults to 0, otherwise default is 100.", type:"Var"}, {name: "r.ShaderPipelineCache.SaveAfterPSOsLogged", help:"Set the number of PipelineStateObjects to log before automatically saving. 0 will disable automatic saving (which is the default now, as automatic saving is found to be broken).", type:"Var"}, {name: "r.ShaderPipelineCache.UserCacheUnusedElementCheckPeriod", help:"The amount of time in days between running the garbage collection on unused PSOs in the user cache. Use a negative value to disable.", type:"Var"}, {name: "r.ShaderPipelineCache.UserCacheUnusedElementRetainDays", help:"The amount of time in days to keep unused PSO entries in the cache.", type:"Var"}, {name: "r.ShaderPipelineCacheTools.IgnoreObsoleteStableCacheFiles", help:"When set to the default value of 0, building the cache (and usually the whole cook) will fail if any .spc file can\'t be loaded, to prevent further testing.\nBy setting to 1, a project may choose to ignore this instead (warning will still be issued).", type:"Var"}, {name: "r.ShaderPipelineCacheTools.IncludeComputePSODuringCook", help:"0 disables cook-time addition, 1 enables cook-time addition, 2 adds only Niagara PSOs.", type:"Var"}, {name: "r.ShaderPrintEnable", help:"ShaderPrint debugging toggle.\n", type:"Var"}, {name: "r.ShaderPrintFontSize", help:"ShaderPrint font size.\n", type:"Var"}, {name: "r.ShaderPrintFontSpacingX", help:"ShaderPrint horizontal spacing between symbols.\n", type:"Var"}, {name: "r.ShaderPrintFontSpacingY", help:"ShaderPrint vertical spacing between symbols.\n", type:"Var"}, {name: "r.ShaderPrintMaxValueCount", help:"ShaderPrint output buffer size.\n", type:"Var"}, {name: "r.ShaderPrint", help:"ShaderPrint debugging toggle.\n", type:"Var"}, {name: "r.ShaderPrint.DrawOccludedLines", help:"Whether to draw occluded lines using checkboarding and lower opacity.\n", type:"Var"}, {name: "r.ShaderPrint.FontSize", help:"ShaderPrint font size.\n", type:"Var"}, {name: "r.ShaderPrint.FontSpacingX", help:"ShaderPrint horizontal spacing between symbols.\n", type:"Var"}, {name: "r.ShaderPrint.FontSpacingY", help:"ShaderPrint vertical spacing between symbols.\n", type:"Var"}, {name: "r.ShaderPrint.Lock", help:"Lock the line drawing.\n", type:"Var"}, {name: "r.ShaderPrint.MaxCharacters", help:"ShaderPrint output buffer size.\n", type:"Var"}, {name: "r.ShaderPrint.MaxLine", help:"ShaderPrint max line count.\n", type:"Var"}, {name: "r.ShaderPrint.MaxTriangle", help:"ShaderPrint max triangle count.\n", type:"Var"}, {name: "r.ShaderPrint.MaxWidget", help:"ShaderPrint max widget count.\n", type:"Var"}, {name: "r.ShaderPrint.Zoom", help:"Enable zoom magnification around the mouse cursor.\n", type:"Var"}, {name: "r.ShaderPrint.Zoom.Corner", help:"Select in which corner the zoom magnifer is displayed (0:top-left, 1:top-right, 2:bottom-right, 3:bottom-left).\n", type:"Var"}, {name: "r.ShaderPrint.Zoom.Factor", help:"Zoom factor for magnification around the mouse cursor.\n", type:"Var"}, {name: "r.ShaderPrint.Zoom.Pixel", help:"Number of pixels magnified around the mouse cursor.\n", type:"Var"}, {name: "r.Shaders.AllowCompilingThroughWorkers", help:"Allows shader compilation through external ShaderCompileWorker processes.\n1 - (Default) Allows external shader compiler workers\n0 - Disallows external shader compiler workers. Will run shader compilation in proc of UE process.", type:"Var"}, {name: "r.Shaders.AllowUniqueSymbols", help:"When enabled, this tells supported shader compilers to generate symbols based on source files.\nEnabling this can cause a drastic increase in the number of symbol files, enable only if absolutely necessary.\nThis setting can be overriden in any Engine.ini under the [ShaderCompiler] section.", type:"Var"}, {name: "r.Shaders.ExportDebugInfo", help:"Whether to export the shader reflection and debug data from shader bytecode as separate files.r.Shaders.KeepDebugInfo must be enabled and r.DumpShaderDebugInfo will enable this cvar.For some platforms this cvar can be overriden in the Engine.ini, under the [ShaderCompiler] section.", type:"Var"}, {name: "r.Shaders.ExportDebugInfoMode", help:" 0: Export as loose files.\n 1: Export as an uncompressed archive.\n", type:"Var"}, {name: "r.Shaders.CheckLevel", help:"0 => DO_CHECK=0, DO_GUARD_SLOW=0, 1 => DO_CHECK=1, DO_GUARD_SLOW=0, 2 => DO_CHECK=1, DO_GUARD_SLOW=1 for all shaders.", type:"Var"}, {name: "r.Shaders.ExtraData", help:"Enables generation of extra shader data that can be used at runtime. This includes shader names and other platform specific data.\nThis can add bloat to compiled shaders and can prevent shaders from being deduplicated.\nThis setting can be overriden in any Engine.ini under the [ShaderCompiler] section.", type:"Var"}, {name: "r.Shaders.KeepDebugInfo", help:"Whether to keep shader reflection and debug data from shader bytecode, default is to strip. When using graphical debuggers like Nsight it can be useful to enable this on startup.For some platforms this cvar can be overriden in the Engine.ini, under the [ShaderCompiler] section.", type:"Var"}, {name: "r.Shaders.Optimize", help:"Whether to optimize shaders. When using graphical debuggers like Nsight it can be useful to disable this on startup.", type:"Var"}, {name: "r.Shaders.ForceDXC", help:"Forces DirectX Shader Compiler (DXC) to be used for all shaders instead of HLSLcc if supported.\n 1: Force new compiler for all shaders (default)\n 0: Disable", type:"Var"}, {name: "r.Shaders.GenerateSymbols", help:"Enables generation of data for shader debugging when compiling shaders. This explicitly does not write any shader symbols to disk.\nThis setting can be overriden in any Engine.ini under the [ShaderCompiler] section.", type:"Var"}, {name: "r.Shaders.Optimize", help:"Whether to optimize shaders. When using graphical debuggers like Nsight it can be useful to disable this on startup.\nThis setting can be overriden in any Engine.ini under the [ShaderCompiler] section.", type:"Var"}, {name: "r.Shaders.PropagateLocalWorkerOOMs", help:"When set, out-of-memory conditions in a local shader compile worker will be treated as regular out-of-memory conditions and propagated to the main process.\nThis is useful when running in environment with hard memory limits, where it does not matter which process in particular caused us to violate the memory limit.", type:"Var"}, {name: "r.Shaders.RemoveDeadCode", help:"Run a preprocessing step that removes unreferenced code before compiling shaders.\nThis can improve the compilation speed for shaders which include many large utility headers.\n\t0: Keep all input source code.\n\t1: Remove unreferenced code before compilation (Default)\n", type:"Var"}, {name: "r.Shaders.RemoveUnusedInterpolators", help:"Enables removing unused interpolators mode when compiling shader pipelines.\n 0: Disable (default)\n 1: Enable removing unused", type:"Var"}, {name: "r.Shaders.SkipCompression", help:"Skips shader compression after compiling. Shader compression time can be quite significant when using debug shaders. This CVar is only valid in non-shipping/test builds.", type:"Var"}, {name: "r.Shaders.SymbolPathOverride", help:"Override output location of shader symbols. If the path contains the text \'{Platform}\', that will be replaced with the shader platform string.\nEmpty: use default location Saved/ShaderSymbols/{Platform}\nThis setting can be overriden in any Engine.ini under the [ShaderCompiler] section.", type:"Var"}, {name: "r.Shaders.Symbols", help:"Enables debugging of shaders in platform specific graphics debuggers. This will generate and write shader symbols.\nThis enables the behavior of both r.Shaders.GenerateSymbols and r.Shaders.WriteSymbols.\nEnables shader debugging features that require shaders to be recompiled. This compiles shaders with symbols and also includes extra runtime information like shader names. When using graphical debuggers it can be useful to enable this on startup.\nThis setting can be overriden in any Engine.ini under the [ShaderCompiler] section.", type:"Var"}, {name: "r.Shaders.SymbolsInfo", help:"In lieu of a full set of platform shader PDBs, save out a slimmer ShaderSymbols.Info which contains shader platform hashes and shader debug info.\nAn option for when it is not practical to save PDBs for shaders all the time.\nThis setting can be overriden in any Engine.ini under the [ShaderCompiler] section.", type:"Var"}, {name: "r.Shaders.UseGBufferRefactor", help:"Whether to use the refactored GBuffer that autogenerates encode/decode functions. Will be removed before UE5 ships.", type:"Var"}, {name: "r.Shaders.Validation", help:"Enabled shader compiler validation warnings and errors.", type:"Var"}, {name: "r.Shaders.WarningsAsErrors", help:"Whether to treat warnings as errors when compiling shaders. (0: disabled (default), 1: global shaders only, 2: all shaders)). This setting may be ignored on older platforms.", type:"Var"}, {name: "r.Shaders.WriteSymbols", help:"Enables writing shader symbols to disk for platforms that support that. This explicitly does not enable generation of shader symbols.\nThis setting can be overriden in any Engine.ini under the [ShaderCompiler] section.", type:"Var"}, {name: "r.Shaders.WriteSymbols.Zip", help:" 0: Export as loose files.\n 1: Export as an uncompressed archive.\n", type:"Var"}, {name: "r.ShaderSource.CompressionLevel", help:"Compression level for shader source stored in memory. See FOodleDataCompression::ECompressionLevel enum for supported values; default is SuperFast.", type:"Var"}, {name: "r.ShaderSource.CompressionMethod", help:"Compression method for shader source stored in memory. See FOodleDataCompression::ECompressor enum for supported values; defaults to Mermaid.", type:"Var"}, {name: "r.Shading.EnergyConservation", help:"0 to disable energy conservation on shading models.\n 0: off\n 1: on", type:"Var"}, {name: "r.Shading.EnergyConservation.Format", help:"Energy conservation table format 0: 16bits, 1: 32bits.", type:"Var"}, {name: "r.Shading.EnergyConservation.Resolution", help:"Energy conservation table resolution. Used only when using runtime generated tables.", type:"Var"}, {name: "r.Shading.EnergyConservation.RuntimeGeneration", help:"Enable Energy conservation tables generation at runtime instead of relying on precomputed tables.", type:"Var"}, {name: "r.Shading.EnergyPreservation", help:"0 to disable energy preservation on shading models, i.e. the energy attenuation on diffuse lighting caused by the specular reflection. Require energy conservation to be enabled\n 0: off\n 1: on", type:"Var"}, {name: "r.Shading.FurnaceTest", help:"Enable/disable furnace for shading validation.", type:"Var"}, {name: "r.Shading.FurnaceTest.SampleCount", help:"Number of sampler per pixel used for furnace tests.", type:"Var"}, {name: "r.Shadow.AlwaysAllocateMaxResolutionAtlases", help:"If enabled, will always allocate shadow map atlases at the maximum resolution rather than trimming unused space. This will waste more memory but can possibly reduce render target pool fragmentation and thrash.", type:"Var"}, {name: "r.Shadow.ConservativeBounds", help:"Whether to use safe and conservative shadow frustum creation that wastes some shadowmap space", type:"Var"}, {name: "r.Shadow.CSM.MaxMobileCascades", help:"The maximum number of cascades with which to render dynamic directional light shadows when using the mobile renderer.", type:"Var"}, {name: "r.Shadow.CSMCaching", help:"0: Render CSM every frame.\n1: Enable CSM caching. (default)", type:"Var"}, {name: "r.Shadow.CSMScissorOptim", help:"Compute optimized scissor rect size to exclude portions of the CSM slices outside the view frustum", type:"Var"}, {name: "r.Shadow.CSMScrollingOverlapAreaThrottle", help:"The minimum ratio of the overlap area for CSM scrolling.", type:"Var"}, {name: "r.Shadow.Denoiser.Use1SPPCodePath", help:"Whether to use the 1spp code path.", type:"Var"}, {name: "r.Shadow.DetectVertexShaderLayerAtRuntime", help:"Forces the compilation of the vslayer shader permutation even if the platform (RHI) does not declare compile-time support through RHISupportsVertexShaderLayer.Enabled by default for windows/SM5 as DX11 almost universally supports this at runtime.", type:"Var"}, {name: "r.Shadow.FarShadow.LODDistanceFactor", help:"Multiplier for LOD selection distance when rendering far shadows", type:"Var"}, {name: "r.Shadow.FarShadowDistanceOverride", help:"Overriding far shadow distance for all directional lighst", type:"Var"}, {name: "r.Shadow.FarShadowStaticMeshLODBias", help:"Notice: only selected geometry types (static meshes and landscapes) respect this value.", type:"Var"}, {name: "r.Shadow.ForceSerialSingleRenderPass", help:"Force Serial shadow passes to render in 1 pass.", type:"Var"}, {name: "r.Shadow.InsetDownscaleFactor", help:"Use a lower resolution for inset shadows (OriginalResolution / DownscaleFactor)", type:"Var"}, {name: "r.Shadow.LODDistanceFactor", help:"Multiplier for LOD selection distance when rendering regular shadows (global)", type:"Var"}, {name: "r.Shadow.LODDistanceFactor.CascadeScale", help:"Multiplier for LOD selection distance when rendering regular shadows (scales with cascade index)", type:"Var"}, {name: "r.Shadow.MaxCSMScrollingStaticShadowSubjects", help:"The maximum number of extra static shadow subjects need to be drawed when scrolling CSM.", type:"Var"}, {name: "r.Shadow.MaxNumFarShadowCascades", help:"Max number of far shadow cascades that can be cast from a directional light", type:"Var"}, {name: "r.Shadow.MinDirectionalLightAngleForRTHF", help:"", type:"Var"}, {name: "r.Shadow.Nanite", help:"Enables shadows from Nanite meshes.", type:"Var"}, {name: "r.Shadow.NaniteLODBias", help:"LOD bias for nanite geometry in shadows. 0 = full detail. >0 = reduced detail.", type:"Var"}, {name: "r.Shadow.NaniteUpdateStreaming", help:"Produce Nanite geometry streaming requests from shadow map rendering.", type:"Var"}, {name: "r.Shadow.NaniteUseHZB", help:"Enables HZB for Nanite shadows.", type:"Var"}, {name: "r.Shadow.OnePassPointLight.UseCachedMDCs", help:"Controls whether to use a dedicated cached mesh draw command pass for one pass point lights. This increases the cost of caching / storing mesh draw commands but improves the CPU rendering time of point lights.", type:"Var"}, {name: "r.Shadow.PerObjectCastDistanceMin", help:"Minimum cast distance for Per-Object shadows, i.e., CastDistDance = Max(r.Shadow.PerObjectCastDistanceRadiusScale * object-radius, r.Shadow.PerObjectCastDistanceMin).\n Default: UE_FLOAT_HUGE_DISTANCE / 32.0f", type:"Var"}, {name: "r.Shadow.PerObjectSpotLightDepthBias", help:"Depth bias that is applied in the depth pass for per-object projected shadows from spot lights", type:"Var"}, {name: "r.Shadow.PerObjectSpotLightSlopeDepthBias", help:"Slope scale depth bias that is applied in the depth pass for per-object projected shadows from spot lights", type:"Var"}, {name: "r.Shadow.RadiusThresholdRSM", help:"Cull shadow casters in the RSM if they are too small, values is the minimal screen space bounding sphere radius\n(default 0.06)", type:"Var"}, {name: "r.Shadow.RecordInteractionShadowPrimitives", help:"", type:"Var"}, {name: "r.Shadow.ResolutionScaleZeroDisablesSm", help:"DEPRECATED: If 1 (default) then setting Shadow Resolution Scale to zero disables shadow maps for the light.", type:"Var"}, {name: "r.Shadow.Scene.DebugDrawLightActiveStateTracking", help:".", type:"Var"}, {name: "r.Shadow.Scene.LightActiveFrameCount", help:"Number of frames before a light that has been moving (updated or transform changed) goes to inactive state.\n This determines the number of frames that the MobilityFactor goes to zero over, and thus a higher number spreads invalidations out over a longer time.", type:"Var"}, {name: "r.shadow.ShadowMapsRenderEarly", help:"If enabled, shadows will render earlier in the frame. This can help async compute scheduling on some platforms\nNote: This is not compatible with VSMs\n", type:"Var"}, {name: "r.Shadow.SpotLightDepthBias", help:"Depth bias that is applied in the depth pass for per object projected shadows from spot lights", type:"Var"}, {name: "r.Shadow.ShouldBeginDeferredCullingAfterShadowRendering", help:"Temporary: If turned on, a new deferred scope of instance culling will be started directly after shadow depth rendering (iff instance occlusion culling is enabled) to work around a bug.", type:"Var"}, {name: "r.Shadow.SkipCullingNaniteMeshes", help:"When enabled, CPU culling will ignore nanite meshes.", type:"Var"}, {name: "r.Shadow.SpotLightDepthBias", help:"Depth bias that is applied in the depth pass for whole-scene projected shadows from spot lights", type:"Var"}, {name: "r.Shadow.SpotLightSlopeDepthBias", help:"Slope scale depth bias that is applied in the depth pass for per object projected shadows from spot lights", type:"Var"}, {name: "r.Shadow.SpotLightSlopeDepthBias", help:"Slope scale depth bias that is applied in the depth pass for whole-scene projected shadows from spot lights", type:"Var"}, {name: "r.Shadow.StencilCulling", help:"Whether to use stencil light culling during shadow projection (default) or only depth.", type:"Var"}, {name: "r.Shadow.TransitionScale", help:"This controls the \'fade in\' region between a caster and where his shadow shows up. Larger values make a smaller region which will have more self shadowing artifacts", type:"Var"}, {name: "r.Shadow.TransitionScale", help:"This controls the \'fade in\' region between a caster and where its shadow shows up. Larger values make a smaller region which will have more self shadowing artifacts", type:"Var"}, {name: "r.Shadow.TranslucentPerObject.ProjectEnabled", help:"Enable/Disable translucency shadows on a per-project basis. Turning off can significantly reduce the number of permutations if your project has many translucent materials.\n", type:"Var"}, {name: "r.Shadow.Virtual.AccumulateStats", help:"When nonzero, VSM stats will be collected over multiple frames and written to a CSV file output to the Saved/Profiling directory.\n If set to a number N > 0 it will auto disable and write the result after N frames, if < 0 it must be manually turned off by setting back to 0.", type:"Var"}, {name: "r.Shadow.Virtual.AllocatePagePoolAsReservedResource", help:"Allocate VSM page pool as a reserved/virtual texture, backed by N small physical memory allocations to reduce fragmentation.", type:"Var"}, {name: "r.Shadow.Virtual.Cache", help:"Turn on to enable caching", type:"Var"}, {name: "r.Shadow.Virtual.Cache.AllocateViaLRU", help:"Prioritizes keeping more recently requested cached physical pages when allocating for new requests.", type:"Var"}, {name: "r.Shadow.Virtual.Cache.ClipmapPanning", help:"Enable support for panning cached clipmap pages for directional lights, allowing re-use of cached data when the camera moves. Keep this enabled outside of debugging.", type:"Var"}, {name: "r.Shadow.Virtual.Cache.CPUCullInvalidationsOutsideLightRadius", help:"CPU culls invalidations that are outside a local light\'s radius.", type:"Var"}, {name: "r.Shadow.Virtual.Cache.DebugSkipDynamicPageInvalidation", help:"Skip invalidation of cached pages when geometry moves for debugging purposes. This will create obvious visual artifacts when disabled.", type:"Var"}, {name: "r.Shadow.Virtual.Cache.DebugSkipRevealedPrimitivesInvalidation", help:"Debug skip invalidation of revealed Non-Nanite primitives, i.e. they go from being culled on the CPU to unculled.", type:"Var"}, {name: "r.Shadow.Virtual.Cache.DeformableMeshesInvalidate", help:"If enabled, Primitive Proxies that are marked as having deformable meshes (HasDeformableMesh() == true) cause invalidations regardless of whether their transforms are updated.", type:"Var"}, {name: "r.Shadow.Virtual.Cache.DrawInvalidatingBounds", help:"Turn on debug render cache invalidating instance bounds, heat mapped by number of pages invalidated.\n 1 = Draw all bounds.\n 2 = Draw those invalidating static cached pages only\n 3 = Draw those invalidating dynamic cached pages only", type:"Var"}, {name: "r.Shadow.Virtual.Cache.ForceInvalidateDirectional", help:"Forces the clipmap to always invalidate, useful to emulate a moving sun to avoid misrepresenting cache performance.", type:"Var"}, {name: "r.Shadow.Virtual.Cache.InvalidateUseHZB", help:" When enabled, instances invalidations are tested against the HZB. Instances that are fully occluded will not cause page invalidations.", type:"Var"}, {name: "r.Shadow.Virtual.Cache.MaxLightAgeSinceLastRequest", help:"The maximum number of frames to allow lights (and their associated pages) that aren\'t present in the current frame to live in the cache.\nLarger values can allow pages from offscreen local lights to live longer, but can also increase various page table management overheads.", type:"Var"}, {name: "r.Shadow.Virtual.Cache.MaxPageAgeSinceLastRequest", help:"The maximum number of frames to allow cached pages that aren\'t requested in the current frame to live. 0=disabled.", type:"Var"}, {name: "r.Shadow.Virtual.Cache.StaticSeparate", help:"When enabled, caches static objects in separate pages from dynamic objects.\nThis can improve performance in largely static scenes, but doubles the memory cost of the physical page pool.", type:"Var"}, {name: "r.Shadow.Virtual.Cache.StaticSeparate.FramesStaticThreshold", help:"Number of frames without an invalidation before an object will transition to static caching.", type:"Var"}, {name: "r.Shadow.Virtual.Clipmap.FirstCoarseLevel", help:"First level of the clipmap to mark coarse pages for. Lower values allow higher resolution coarse pages near the camera but increase total page counts.", type:"Var"}, {name: "r.Shadow.Virtual.Clipmap.FirstLevel", help:"First level of the virtual clipmap. Lower values allow higher resolution shadows closer to the camera, but may increase page count.", type:"Var"}, {name: "r.Shadow.Virtual.Clipmap.GreedyLevelSelection", help:"When enabled, allows greedily sampling more detailed clipmap levels if they happen to be mapped.\nThis can increase shadow quality from certain viewing angles, but makes the clipmap boundry less stable which can exacerbate visual artifacts at low shadow resolutions.", type:"Var"}, {name: "r.Shadow.Virtual.Clipmap.LastCoarseLevel", help:"Last level of the clipmap to mark coarse pages for. Higher values provide dense clipmap data for a longer radius but increase total page counts.", type:"Var"}, {name: "r.Shadow.Virtual.Clipmap.LastLevel", help:"Last level of the virtual clipmap. Indirectly determines radius the clipmap can cover. Each extra level doubles the maximum range, but may increase page count.", type:"Var"}, {name: "r.Shadow.Virtual.Clipmap.MinCameraViewportWidth", help:"If greater than zero, clamps the camera viewport dimensions used to adjust the clipmap resolution.\nThis can be useful to avoid dynamic resolution indirectly dropping the shadow resolution far too low.", type:"Var"}, {name: "r.Shadow.Virtual.Clipmap.UseConservativeCulling", help:"Conservative culling removes the frustum-clipped culling volume for the non-nanite geometry for VSM rendering. This means a lot more geometry is submitted, and also marked as rendered.\nUseful to diagnose if there are culling artifacts in virtual shadow map clip maps due to errors in the tracking code.", type:"Var"}, {name: "r.Shadow.Virtual.Clipmap.WPODisableDistance", help:"When enabled, disables WPO animation in clipmap levels based on a primitive\'s WPO disable distance and r.Shadow.Virtual.Clipmap.WPODisableDistance.LodBias setting.", type:"Var"}, {name: "r.Shadow.Virtual.Clipmap.WPODisableDistance.LodBias", help:"The number of clipmap levels further than the distance that an instance would be animated to allow shadow animation.\nTypically 2-4 works well but may need to be adjusted for very low light angles with significant WPO movement.", type:"Var"}, {name: "r.Shadow.Virtual.Clipmap.ZRangeScale", help:"Scale of the clipmap level depth range relative to the radius. Affects z-near/z-far of the shadow map. Should generally be at least 10 or it will result in excessive cache invalidations. Values that are too large cause depth imprecisions and shadow flickering.", type:"Var"}, {name: "r.Shadow.Virtual.CoarsePagePixelThresholdDynamic", help:"If a dynamic (non-nanite) instance has a smaller estimated pixel footprint than this value, it should not be drawn into a coarse page. Higher values cull away more instances.", type:"Var"}, {name: "r.Shadow.Virtual.CoarsePagePixelThresholdDynamicNanite", help:"If a dynamic Nanite instance has a smaller estimated pixel footprint than this value, it should not be drawn into a coarse page. Higher values cull away more instances.\nThis value is typically lower than the non-Nanite one because Nanite has lower overhead for drawing small objects.", type:"Var"}, {name: "r.Shadow.Virtual.CoarsePagePixelThresholdStatic", help:"If a static (non-nanite) instance has a smaller estimated pixel footprint than this value, it should not be drawn into a coarse page. Higher values cull away more instances.\nThis value is typically lower than the non-static one because the static pages have better caching.", type:"Var"}, {name: "r.Shadow.Virtual.CullBackfacingPixels", help:"When enabled does not generate shadow data for pixels that are backfacing to the light.", type:"Var"}, {name: "r.Shadow.Virtual.DebugDrawFroxelRange", help:"Range in froxel tiles from the mouse cursor which to draw debug froxels in.", type:"Var"}, {name: "r.Shadow.Virtual.DebugDrawFroxels", help:"Render the froxels using shaderprint (which needs to be enabled) r.ShaderPrint.MaxLine also needs to be set to a high value as this produces many lines.", type:"Var"}, {name: "r.Shadow.Virtual.DebugSkipMergePhysical", help:"Skip the merging of the static VSM cache into the dynamic one. This will create obvious visual artifacts when disabled.", type:"Var"}, {name: "r.Shadow.Virtual.DistantLightForceCacheFootprintFraction", help:"Fraction of footprint size below which start force-caching lights that are invalidated (i.e., are moving or re-added)\n Larger values may improve performance but may also produce more visible artifacts\n The base footprint is based on the page size.\n 0.0 == Never force-cache (default), 1.0 == Always force-cache.", type:"Var"}, {name: "r.Shadow.Virtual.DistantLightMode", help:"Control whether distant light mode is enabled for local lights.\n0 == Off, \n1 == On (default), \n2 == Force All.\nWhen on, lights with a pixel footprint below the threshold are marked as distant. Updates to distant lights are throttled (force-cached), they use simpler page-table logic and the memory cost is lower.", type:"Var"}, {name: "r.Shadow.Virtual.DynamicHZB", help:"When enabled, a separate HZB is built for dynamic cached pages.\nThis can improve performance in cached scenes with a lot of dynamic overdraw, e.g. a forest with a static sun light.\nConstructing separate HZB doubles the memory cost of the HZB (1/4 of the page pool) and incurs some cost for building the second HZB.", type:"Var"}, {name: "r.Shadow.Virtual.DynamicRes.MaxPagePoolLoadFactor", help:"If allocation exceeds this factor of total page pool capacity, shadow resolution will be biased downwards. 0 = disabled", type:"Var"}, {name: "r.Shadow.Virtual.DynamicRes.MaxResolutionLodBias", help:"As page allocation approaches the pool capacity, VSM resolution ramps down by biasing the LOD up, similar to \'ResolutionLodBiasDirectional\'.\nThis is the maximum LOD bias to clamp to for global dynamic shadow resolution reduction. 0 = disabled", type:"Var"}, {name: "r.Shadow.Virtual.Enable", help:"Enable Virtual Shadow Maps. Renders geometry into virtualized shadow depth maps for shadowing.\nProvides high - quality shadows for next - gen projects with simplified setup.High efficiency culling when used with Nanite.", type:"Var"}, {name: "r.Shadow.Virtual.ForceFullHZBUpdate", help:"Forces full HZB update every frame rather than just dirty pages.\n", type:"Var"}, {name: "r.Shadow.Virtual.ForceOnlyVirtualShadowMaps", help:"If enabled, disallow creation of conventional non-virtual shadow maps for any lights that get a virtual shadow map.\nThis can improve performance and save memory, but any geometric primitives that cannot be rendered into the virtual shadow map will not cast shadows.", type:"Var"}, {name: "r.Shadow.Virtual.ForcePerLightShadowMaskClear", help:"For debugging purposes. When enabled, the shadow mask texture is cleared before the projection pass writes to it. Projection pass writes all relevant pixels, so clearing should be unnecessary.", type:"Var"}, {name: "r.Shadow.Virtual.MarkCoarsePagesDirectional", help:"Marks coarse pages in directional light virtual shadow maps so that low resolution data is available everywhere.Ability to disable is primarily for profiling and debugging.", type:"Var"}, {name: "r.Shadow.Virtual.MarkCoarsePagesLocal", help:"Marks coarse pages in local light virtual shadow maps so that low resolution data is available everywhere.Ability to disable is primarily for profiling and debugging.", type:"Var"}, {name: "r.Shadow.Virtual.MarkPagesUsingFroxels", help:"Experimental: If enabled the virtual shadow map pages are marked using froxels that are generated during HZB build.\n Higher throughput as it is not bandwidth limited. Is approximate as it only marks the center of each froxel representing 8x8 pixels.", type:"Var"}, {name: "r.Shadow.Virtual.MarkPixelPages", help:"Marks pages in virtual shadow maps based on depth buffer pixels. Ability to disable is primarily for profiling and debugging.", type:"Var"}, {name: "r.Shadow.Virtual.MarkPixelPagesMipModeLocal", help:"When enabled, this uses a subset of mips to reduce instance duplication in VSMs. Will result in better performance but a harsher falloff on mip transitions.\n 0 - Disabled: Use all 8 mips\n 1 - Quality Mode: Use 4 higher res mips (16k, 4k, 1k, 256)\n 2 - Performance Mode: Use 4 lower res mips (8k, 2k, 512, 128)\n", type:"Var"}, {name: "r.Shadow.Virtual.MaxDistantUpdatePerFrame", help:"Maximum number of distant lights to update each frame. Invalidated lights that were missed may be updated in a later frame (round-robin).", type:"Var"}, {name: "r.Shadow.Virtual.MaxPhysicalPages", help:"Maximum number of physical pages in the pool.\nMore space for pages means more memory usage, but allows for higher resolution shadows.\nIdeally this value is large enough to fit enough pages for all the lights in the scene, but not too large to waste memory.\nEnable \'ShowStats\' to see how many pages are allocated in the pool right now.\nFor more page pool control, see the \'ResolutionLodBias*\', \'DynamicRes.*\' and \'Cache.StaticSeparate\' cvars.", type:"Var"}, {name: "r.Shadow.Virtual.Nanite.MaterialVisibility", help:"Enable Nanite CPU-side visibility filtering of draw commands, depends on r.Nanite.MaterialVisibility being enabled.", type:"Var"}, {name: "r.Shadow.Virtual.NonNanite.Batch", help:".", type:"Var"}, {name: "r.Shadow.Virtual.NonNanite.CulledInstanceAllocationFactor", help:"Allocation size scale factor for the buffer used to store instances after culling.\nThe total size accounts for the worst-case scenario in which all instances are emitted into every clip or mip level.\nThis is far more than we\'d expect in reasonable circumstances, so this scale factor is used to reduce memory pressure.\nThe actual number cannot be known on the CPU as the culling emits an instance for each clip/mip level that is overlapped.\nSetting to 1.0 is fully conservative. Lowering this is likely to produce artifacts unless you\'re certain the buffer won\'t overflow.", type:"Var"}, {name: "r.Shadow.Virtual.NonNanite.IncludeInCoarsePages", help:"Include non-Nanite geometry in coarse pages.Rendering non-Nanite geometry into large coarse pages can be expensive; disabling this can be a significant performance win.", type:"Var"}, {name: "r.Shadow.Virtual.NonNanite.LargeInstancePageAreaThreshold", help:"How large area is considered a \'large\' footprint, summed over all overlapped levels, if set to -1 uses the physical page pool size / 8.\nUsed as a threshold when storing page area coverage stats for diagnostics.", type:"Var"}, {name: "r.Shadow.Virtual.NonNanite.MaxCulledInstanceAllocationSize", help:"Maximum number of instances that may be output from the culling pass into all VSM mip/clip levels. At 12 byte per instance reference this represents a 1.5GB clamp.", type:"Var"}, {name: "r.Shadow.Virtual.NonNanite.NumPageAreaDiagSlots", help:"Number of slots in diagnostics to report non-nanite instances with the largest page area coverage, < 0 uses the max number allowed, 0 disables.", type:"Var"}, {name: "r.Shadow.Virtual.NonNanite.SinglePassBatched", help:".", type:"Var"}, {name: "r.Shadow.Virtual.NonNanite.UseHZB", help:"Cull Non-Nanite instances using HZB.\n Set to 0 to disable.\n Set to 1 to use HZB from previous frame. Can incorrectly cull in some cases due to outdated data.\n Set to 2 to use two-pass Nanite culling with HZB from the current frame.", type:"Var"}, {name: "r.Shadow.Virtual.NonNanite.UseRadiusThreshold", help:"If enabled (default) the r.Shadow.RadiusThreshold cvar is also used for uncached virtual shadow maps to cull small non-nanite instances.", type:"Var"}, {name: "r.Shadow.Virtual.NonNaniteVSM", help:"Enable support for non-nanite Virtual Shadow Maps.Read-only and to be set in a config file (requires restart).", type:"Var"}, {name: "r.Shadow.Virtual.NormalBias", help:"Receiver offset along surface normal for shadow lookup. Scaled by distance to camera.Higher values avoid artifacts on surfaces nearly parallel to the light, but also visibility offset shadows and increase the chance of hitting unmapped pages.", type:"Var"}, {name: "r.Shadow.Virtual.OnePassProjection", help:"Projects all local light virtual shadow maps in a single pass for better performance.", type:"Var"}, {name: "r.Shadow.Virtual.OnePassProjection.MaxLightsPerPixel", help:"Maximum lights per pixel that get full filtering when using one pass projection and clustered shading.Generally set to 8 (32bpp), 16 (64bpp) or 32 (128bpp). Lower values require less transient VRAM during the lighting pass.", type:"Var"}, {name: "r.Shadow.Virtual.OnePassProjection.SkipScreenShadowMask", help:"Allows skipping the screen space shadow mask entirely when only a virtual shadow map would write into it.\nShould generally be left enabled outside of debugging.", type:"Var"}, {name: "r.Shadow.Virtual.PageDilationBorderSizeDirectional", help:"If a screen pixel falls within this fraction of a page border for directional lights, the adacent page will also be mapped.Higher values can reduce page misses at screen edges or disocclusions, but increase total page counts.", type:"Var"}, {name: "r.Shadow.Virtual.PageDilationBorderSizeLocal", help:"If a screen pixel falls within this fraction of a page border for local lights, the adacent page will also be mapped.Higher values can reduce page misses at screen edges or disocclusions, but increase total page counts.", type:"Var"}, {name: "r.Shadow.Virtual.PageMarkingPixelStrideX", help:"During page marking, instead of testing every screen pixel, test every Nth pixel.\nPage marking from screen pixels is used to determine which VSM pages are seen from the camera and need to be rendered.\nIncreasing this value reduces page-marking costs, but could introduce artifacts due to missing pages.\nWith sufficiently low values, it is likely a neighbouring pixel will mark the required page anyway.", type:"Var"}, {name: "r.Shadow.Virtual.PageMarkingPixelStrideY", help:"Same as PageMarkingPixelStrideX, but on the vertical axis of the screen.", type:"Var"}, {name: "r.Shadow.Virtual.ResolutionLodBiasDirectional", help:"Bias applied to LOD calculations for directional lights. -1.0 doubles resolution, 1.0 halves it and so on.", type:"Var"}, {name: "r.Shadow.Virtual.ResolutionLodBiasDirectionalMoving", help:"Bias applied to LOD calculations for directional lights that are moving. -1.0 doubles resolution, 1.0 halves it and so on.\nThe bias transitions smoothly back to ResolutionLodBiasDirectional as the light transitions to non-moving, see \'r.Shadow.Scene.LightActiveFrameCount\'.", type:"Var"}, {name: "r.Shadow.Virtual.ResolutionLodBiasLocal", help:"Bias applied to LOD calculations for local lights. -1.0 doubles resolution, 1.0 halves it and so on.", type:"Var"}, {name: "r.Shadow.Virtual.ResolutionLodBiasLocalMoving", help:"Bias applied to LOD calculations for local lights that are moving. -1.0 doubles resolution, 1.0 halves it and so on.\nThe bias transitions smoothly back to ResolutionLodBiasLocal as the light transitions to non-moving, see \'r.Shadow.Scene.LightActiveFrameCount\'.", type:"Var"}, {name: "r.Shadow.Virtual.ScreenRayLength", help:"Length of the screen space shadow trace away from receiver surface (smart shadow bias) before the VSM / SMRT lookup.", type:"Var"}, {name: "r.Shadow.Virtual.ShowClipmapStats", help:"Set to the number of clipmap you want to show stats for (-1 == off)", type:"Var"}, {name: "r.Shadow.Virtual.ShowLightDrawEvents", help:"Enable Virtual Shadow Maps per-light draw events - may affect performance especially when there are many small lights in the scene.", type:"Var"}, {name: "r.Shadow.Virtual.ShowStats", help:"Show VSM statistics.", type:"Var"}, {name: "r.Shadow.Virtual.SMRT.AdaptiveRayCount", help:"Shoot fewer rays in fully shadowed and unshadowed regions. Currently only supported with OnePassProjection. ", type:"Var"}, {name: "r.Shadow.Virtual.SMRT.ExtrapolateMaxSlopeDirectional", help:"Maximum depth slope when extrapolating behind occluders for directional lights.\nHigher values allow softer penumbra edges but can introduce light leaks behind second occluders.\nSetting to 0 will disable slope extrapolation slightly improving projection performance, at the cost of reduced penumbra quality.", type:"Var"}, {name: "r.Shadow.Virtual.SMRT.ExtrapolateMaxSlopeLocal", help:"Maximum depth slope when extrapolating behind occluders for local lights.\nHigher values allow softer penumbra edges but can introduce light leaks behind second occluders.\nSetting to 0 will disable slope extrapolation slightly improving projection performance, at the cost of reduced penumbra quality.", type:"Var"}, {name: "r.Shadow.Virtual.SMRT.MaxRayAngleFromLight", help:"Max angle (in radians) a ray is allowed to span from the light\'s perspective for local lights.Smaller angles limit the screen space size of shadow penumbra. Larger angles lead to more noise. ", type:"Var"}, {name: "r.Shadow.Virtual.SMRT.MaxSlopeBiasLocal", help:"Maximum depth slope. Low values produce artifacts if shadow resolution is insufficient. High values can worsen light leaks near occluders and sparkly pixels in shadowed areas.", type:"Var"}, {name: "r.Shadow.Virtual.SMRT.RayCountDirectional", help:"Ray count for shadow map tracing of directional lights. 0 = disabled.", type:"Var"}, {name: "r.Shadow.Virtual.SMRT.RayCountLocal", help:"Ray count for shadow map tracing of local lights. 0 = disabled.", type:"Var"}, {name: "r.Shadow.Virtual.SMRT.RayLengthScaleDirectional", help:"Length of ray to shoot for directional lights, scaled by distance to camera.Shorter rays limit the screen space size of shadow penumbra. Longer rays require more samples to avoid shadows disconnecting from contact points. ", type:"Var"}, {name: "r.Shadow.Virtual.SMRT.SamplesPerRayDirectional", help:"Shadow map samples per ray for directional lights", type:"Var"}, {name: "r.Shadow.Virtual.SMRT.SamplesPerRayHair", help:"Shadow map samples per ray for hair", type:"Var"}, {name: "r.Shadow.Virtual.SMRT.SamplesPerRayLocal", help:"Shadow map samples per ray for local lights", type:"Var"}, {name: "r.Shadow.Virtual.SMRT.TexelDitherScaleDirectional", help:"Applies a dither to the shadow map ray casts for directional lights to help hide aliasing due to insufficient shadow resolution.\nSetting this too high can cause shadows light leaks near occluders.", type:"Var"}, {name: "r.Shadow.Virtual.SMRT.TexelDitherScaleLocal", help:"Applies a dither to the shadow map ray casts for local lights to help hide aliasing due to insufficient shadow resolution.\nSetting this too high can cause shadows light leaks near occluders.", type:"Var"}, {name: "r.Shadow.Virtual.SubsurfaceShadowMinSourceAngle", help:"Minimum source angle (in degrees) used for shadow & transmittance of sub-surface materials with directional lights.\nTo emulate light diffusion with sub-surface materials, VSM can increase the light source radius depending on the material opacity.\nThe higher this value, the more diffuse the shadowing with these materials will appear.", type:"Var"}, {name: "r.Shadow.Virtual.TranslucentQuality", help:"Quality of shadow for lit translucent surfaces. This will be applied on all translucent surfaces, and has high-performance impact.\nSet to 1 to enable the high-quality mode.", type:"Var"}, {name: "r.Shadow.Virtual.UseConservativeDistantLightThreshold", help:"Base the distant light cutoff on the minimum mip level instead of the shadow resolution calculated through the old path.\n This fixes problems around the use of an inscribed sphere.", type:"Var"}, {name: "r.Shadow.Virtual.UseFarShadowCulling", help:"Switch between implementing the far shadow culling logic for VSMs.", type:"Var"}, {name: "r.Shadow.Virtual.UseHZB", help:"Enables HZB for (Nanite) Virtual Shadow Maps - Non-Nanite unfortunately has a separate flag with different semantics: r.Shadow.Virtual.NonNanite.UseHZB.\n 0 - No HZB occlusion culling\n 1 - Approximate Single-pass HZB occlusion culling (using previous frame HZB)\n 2 - Two-pass occlusion culling (default).", type:"Var"}, {name: "r.Shadow.Virtual.Visualize", help:"When the viewport view-mode is set to \'Virtual Shadow Map Visualization\', this command specifies which of the various channels to display. Values entered other than the allowed values shown below will be ignored.\n mask\n mip\n vpage\n cache\n naniteoverdraw\n raycount\n dirty\n invalid\n merged\n debug\n clipmapvirtual", type:"Var"}, {name: "r.Shadow.Virtual.Visualize.Advanced", help:"Enable to show advanced VSM debug modes in the visualization UI menu.", type:"Var"}, {name: "r.Shadow.Virtual.Visualize.DumpLightNames", help:"Dump light names with virtual shadow maps (for developer use in non-shipping builds)", type:"Cmd"}, {name: "r.Shadow.Virtual.Visualize.Layout", help:"Overlay layout when virtual shadow map visualization is enabled:\n 0: Full screen\n 1: Thumbnail\n 2: Split screen", type:"Var"}, {name: "r.Shadow.Virtual.Visualize.LightName", help:"Sets the name of a specific light to visualize (for developer use in non-shipping builds)", type:"Var"}, {name: "r.Shadow.Virtual.Visualize.NextLight", help:"Set `r.Shadow.Virtual.Visualize.LightName` to the next light.", type:"Cmd"}, {name: "r.Shadow.Virtual.Visualize.PrevLight", help:"Set `r.Shadow.Virtual.Visualize.LightName` to the previous light.", type:"Cmd"}, {name: "r.Shadow.Virtual.Visualize.ShowCachedPagesOnly", help:"When true, shows the cached pages for all lights and hides uncached pages.", type:"Var"}, {name: "r.Shadow.VisualizePrimitiveOctree", help:"Render a wireframe outline of the nodes in the primitive octree for debugging purposes", type:"Var"}, {name: "r.ShowShaderCompilerWarnings", help:"When set to 1, will display all warnings.", type:"Var"}, {name: "r.SimpleForwardShading", help:"Whether to use the simple forward shading base pass shaders which only support lightmaps + stationary directional light + stationary skylight\nAll other lighting features are disabled when true. This is useful for supporting very low end hardware, and is only supported on PC platforms.\n0:off, 1:on", type:"Var"}, {name: "r.ShowShaderCompilerWarnings", help:"When set to 1, will display all warnings. Note that this flag is ignored if r.ShaderDevelopmentMode=1 (in dev mode warnings are shown by default).", type:"Var"}, {name: "r.SingleLayerWater.UsesLightFunctionAtlas", help:"Enable sampling of the light function atlas on SingleLAyer Water mateirals.", type:"Var"}, {name: "r.SkeletalMesh.KeepMobileMinLODSettingOnDesktop", help:"If non-zero, mobile setting for MinLOD will be stored in the cooked data for desktop platforms", type:"Var"}, {name: "r.SkeletalMesh.LODMaterialReference", help:"Whether a material needs to be referenced by at least one unstripped mesh LOD to be considered as used.", type:"Var"}, {name: "r.SkeletalMesh.MinLodQualityLevel", help:"The quality level for the Min stripping LOD. \n", type:"Var"}, {name: "r.SkeletalMesh.UseCachedMDCs", help:"Whether skeletal meshes will take the cached MDC path.", type:"Var"}, {name: "r.SkeletalMeshClothBlend.Enabled", help:"Enable the use of the cloth blend weight value set by the skeletal mesh component. When disabled all cloth blend weight will become 0.", type:"Var"}, {name: "r.SkinCache.Allow", help:"Whether or not to allow the GPU skin Cache system to be enabled.\n", type:"Var"}, {name: "r.SkinCache.Capture", help:"Trigger a render capture for the next skin cache dispatches.", type:"Var"}, {name: "r.SkinCache.ForceRecomputeTangents", help:"0: off (default)\n1: Forces enabling and using the skincache and forces all skinned object to Recompute Tangents\n", type:"Var"}, {name: "r.SkinCache.Mode", help:"Whether or not to use the GPU compute skinning cache.\nThis will perform skinning on a compute job and not skin on the vertex shader.\nRequires r.SkinCache.CompileShaders=1\n 0: off\n 1: on(default)\n 2: only use skin cache for skinned meshes that ticked the Recompute Tangents checkbox (unavailable in shipping builds)", type:"Var"}, {name: "r.SkinCache.DefaultBehavior", help:"Default behavior if all skeletal meshes are included/excluded from the skin cache. If Support Ray Tracing is enabled on a mesh, will force inclusive behavior on that mesh.\n Exclusive ( 0): All skeletal meshes are excluded from the skin cache. Each must opt in individually.\n Inclusive ( 1): All skeletal meshes are included into the skin cache. Each must opt out individually. (default)", type:"Var"}, {name: "r.SkinCache.MaxDispatchesPerCmdList", help:"Maximum number of compute shader dispatches which are batched together into a single command list to fix potential TDRs.", type:"Var"}, {name: "r.SkinCache.MaxRayTracingPrimitivesPerCmdList", help:"Maximum amount of primitives which are batched together into a single command list to fix potential TDRs.", type:"Var"}, {name: "r.SkinCache.Mode", help:"Whether or not to use the GPU compute skinning cache.\nThis will perform skinning on a compute job and not skin on the vertex shader.\nRequires r.SkinCache.CompileShaders=1 and r.SkinCache.Allow=1\n 0: off\n 1: on(default)\n", type:"Var"}, {name: "r.SkinCache.RecomputeTangents", help:"This option enables recomputing the vertex tangents on the GPU.\nCan be changed at runtime, requires both r.SkinCache.CompileShaders=1 and r.SkinCache.Mode=1\n 0: off\n 1: on, forces all skinned object to Recompute Tangents\n 2: on, only recompute tangents on skinned objects who ticked the Recompute Tangents checkbox(default)\n", type:"Var"}, {name: "r.SkinCache.PrintMemorySummary", help:"Print break down of memory usage. 0: off (default), 1: print when out of memory, 2: print every frame", type:"Var"}, {name: "r.SkinCache.RayTracing.MaxUpdatePrimitivesPerFrame", help:"Sets the skinned ray tracing acceleration structure build budget in terms of maximum number of updated triangles per frame (<= 0 then disabled and all acceleration structures are updated - default)", type:"Var"}, {name: "r.SkinCache.RecomputeTangents", help:"This option enables recomputing the vertex tangents on the GPU.\nCan be changed at runtime, requires both r.SkinCache.CompileShaders=1, r.SkinCache.Mode=1 and r.SkinCache.Allow=1\n 0: off\n 1: on, forces all skinned object to Recompute Tangents\n 2: on, only recompute tangents on skinned objects who ticked the Recompute Tangents checkbox(default)\n", type:"Var"}, {name: "r.SkinCache.RecomputeTangentsParallelDispatch", help:"This option enables parallel dispatches for recompute tangents.\n 0: off (default), triangle pass is interleaved with vertex pass, requires resource barriers in between. \n 1: on, batch triangle passes together, resource barrier, followed by vertex passes together, cost more memory. \n", type:"Var"}, {name: "r.SkinCache.SkipCompilingGPUSkinVF", help:"Reduce GPU Skin Vertex Factory shader permutations. Cannot be disabled while the skin cache is turned off.\n False ( 0): Compile all GPU Skin Vertex factory variants.\n True ( 1): Don\'t compile all GPU Skin Vertex factory variants.", type:"Var"}, {name: "r.SkinCache.Visualize", help:"Specifies which visualization mode to display: \'Overview\' \'Memory\' \'RayTracingLODOffset\' ", type:"Var"}, {name: "r.SkinnedMesh.ReleasePreviousLODInfoOnInitialization", help:"Whether to flush the render thread (incurring a game thread stall) and clean existing LOD info when re-initializating.", type:"Var"}, {name: "r.SkinnedMesh.RenderNanite", help:"When true, allows skinned meshes to render as Nanite when enabled on the mesh (otherwise uses fallback mesh).", type:"Var"}, {name: "r.SkinnedMesh.UpdateBoundsNotifyStreamingRadiusChangeRatio", help:"Update the streaming manager when the radius changes by more than this ratio since the last update. A negative value will disable the update.", type:"Var"}, {name: "r.Skinning.TransformProviders", help:"When set, transform providers are enabled (if registered).", type:"Var"}, {name: "r.SkipDrawOnPSOPrecaching", help:"Skips mesh draw call when the PSO is still compiling (default 0).", type:"Var"}, {name: "r.SkipInvalidDXTDimensions", help:"If set will skip over creating DXT textures that are smaller than 4x4 or other invalid dimensions.", type:"Var"}, {name: "r.SkipNaniteLPIs", help:"Skip Nanite primitives in the light-primitive interactions & the primitive octree as they perform GPU-driven culling separately.\n Values: 1 - (auto, default) Skipping is auto-disabled if r.AllowStaticLighting is enabled for the project as it breaks some associated editor features otherwise. 2 - (forced) Skipping is always enabled regardless of r.AllowStaticLighting. May cause issues with static lighting. Use with care.", type:"Var"}, {name: "r.SkipRedundantTransformUpdate", help:"Skip updates UpdatePrimitiveTransform is called redundantly, if the proxy allows it.", type:"Var"}, {name: "r.SkipUnloadedShaders", help:"Skip the draw call when the shaders are not fully preloaded. Useful for debugging", type:"Var"}, {name: "r.SkyAtmosphere", help:"SkyAtmosphere components are rendered when this is not 0, otherwise ignored.\n", type:"Var"}, {name: "r.SkyAtmosphere.AerialPerspective.DepthTest", help:"When enabled, a depth test will be used to not write pixel closer to the camera than StartDepth, effectively improving performance.", type:"Var"}, {name: "r.SkyAtmosphere.AerialPerspectiveLUT.Depth", help:"The length of the LUT in kilometers (default = 96km to get nice cloud/atmosphere interactions in the distance for default sky). Further than this distance, the last slice is used.", type:"Var"}, {name: "r.SkyAtmosphere.AerialPerspectiveLUT.DepthResolution", help:"The number of depth slice to use for the aerial perspective volume texture.", type:"Var"}, {name: "r.SkyAtmosphere.AerialPerspectiveLUT.FastApplyOnOpaque", help:"When enabled, the low resolution camera frustum/froxel volume containing atmospheric fog\n, usually used for fog on translucent surface, is used to render fog on opaque.\nIt is faster but can result in visual artefacts if there are some high frequency details\nsuch as earth shadow or scattering lob.", type:"Var"}, {name: "r.SkyAtmosphere.AerialPerspectiveLUT.SampleCountMaxPerSlice", help:"The sample count used per slice to evaluate aerial perspective. The effective sample count is usually lower and depends on SampleCountScale on the component as well as .ini files.\nscattering and transmittance in camera frustum space froxel.\n", type:"Var"}, {name: "r.SkyAtmosphere.AerialPerspectiveLUT.Width", help:"", type:"Var"}, {name: "r.SkyAtmosphere.DistanceToSampleCountMax", help:"The distance in kilometer after which SampleCountMax samples will be used to ray march the atmosphere.", type:"Var"}, {name: "r.SkyAtmosphere.DistantSkyLightLUT", help:"Enable the generation the sky ambient lighting value.\n", type:"Var"}, {name: "r.SkyAtmosphere.DistantSkyLightLUT.Altitude", help:"The altitude at which the sky samples are taken to integrate the sky lighting. Default to 6km, typicaly cirrus clouds altitude.\n", type:"Var"}, {name: "r.SkyAtmosphere.EditorNotifications", help:"Enable the rendering of in editor notification to warn the user about missing sky dome pixels on screen. It is better to keep it enabled and will be removed when shipping.\n", type:"Var"}, {name: "r.SkyAtmosphere.FastSkyLUT", help:"When enabled, a look up texture is used to render the sky.\nIt is faster but can result in visual artefacts if there are some high frequency details\nin the sky such as earth shadow or scattering lob.", type:"Var"}, {name: "r.SkyAtmosphere.FastSkyLUT.DistanceToSampleCountMax", help:"Fast sky distance in kilometer after which at which SampleCountMax samples will be used to ray march the atmosphere.", type:"Var"}, {name: "r.SkyAtmosphere.FastSkyLUT.Height", help:"", type:"Var"}, {name: "r.SkyAtmosphere.FastSkyLUT.SampleCountMax", help:"Fast sky maximum sample count used to compute sky/atmosphere scattering and transmittance.\nThe maximum sample count used to compute FastSkyLUT scattering. The effective sample count is usually lower and depends on distance and SampleCountScale on the component, as well as .ini files.\nThe minimal value will be clamped to r.SkyAtmosphere.FastSkyLUT.SampleCountMin + 1.\n", type:"Var"}, {name: "r.SkyAtmosphere.FastSkyLUT.SampleCountMin", help:"Fast sky minimum sample count used to compute sky/atmosphere scattering and transmittance.\nThe minimal value will be clamped to 1.\n", type:"Var"}, {name: "r.SkyAtmosphere.FastSkyLUT.Width", help:"", type:"Var"}, {name: "r.SkyAtmosphere.LUT32", help:"Use full 32bit per-channel precision for all sky LUTs.\n", type:"Var"}, {name: "r.SkyAtmosphere.MultiScatteringLUT.Height", help:"", type:"Var"}, {name: "r.SkyAtmosphere.MultiScatteringLUT.HighQuality", help:"The when enabled, 64 samples are used instead of 2, resulting in a more accurate multi scattering approximation (but also more expenssive).\n", type:"Var"}, {name: "r.SkyAtmosphere.MultiScatteringLUT.SampleCount", help:"The sample count used to evaluate multi-scattering.\n", type:"Var"}, {name: "r.SkyAtmosphere.MultiScatteringLUT.Width", help:"", type:"Var"}, {name: "r.SkyAtmosphere.SampleCountMax", help:"The maximum sample count used to compute sky/atmosphere scattering and transmittance The effective sample count is usually lower and depends on distance and SampleCountScale on the component, as well as .ini files.\nThe minimal value will be clamped to r.SkyAtmosphere.SampleCountMin + 1.\n", type:"Var"}, {name: "r.SkyAtmosphere.SampleCountMin", help:"The minimum sample count used to compute sky/atmosphere scattering and transmittance.\nThe minimal value will be clamped to 1.\n", type:"Var"}, {name: "r.SkyAtmosphere.SampleLightShadowmap", help:"Enable the sampling of atmospheric lights shadow map in order to produce volumetric shadows.", type:"Var"}, {name: "r.SkyAtmosphere.TransmittanceLUT", help:"Enable the generation of the sky transmittance.\n", type:"Var"}, {name: "r.SkyAtmosphere.TransmittanceLUT.Height", help:"", type:"Var"}, {name: "r.SkyAtmosphere.TransmittanceLUT.SampleCount", help:"The sample count used to evaluate transmittance.", type:"Var"}, {name: "r.SkyAtmosphere.TransmittanceLUT.UseSmallFormat", help:"If true, the transmittance LUT will use a small R8BG8B8A8 format to store data at lower quality.", type:"Var"}, {name: "r.SkyAtmosphere.TransmittanceLUT.Width", help:"", type:"Var"}, {name: "r.SkyAtmosphereASyncCompute", help:"SkyAtmosphere on async compute (default: false). When running on the async pipe, SkyAtmosphere lut generation will overlap with the occlusion pass.\n", type:"Var"}, {name: "r.SkyLight.CubemapMaxResolution", help:"Force max resolution of skylight cubemap (default to -1: takes default property value of USkyLightComponent::CubeMapResolution)", type:"Var"}, {name: "r.SkyLight.RealTimeReflectionCapture", help:"Make sure the sky light real time capture is not run on platform where it is considered out of budget. Cannot be changed at runtime.", type:"Var"}, {name: "r.SkyLight.RealTimeReflectionCapture.DepthBuffer", help:"When enabled, the real-time sky light capture will have a depth buffer, this is for multiple meshes to be cover each other correctly. The height fog will also be applied according to the depth buffer.", type:"Var"}, {name: "r.SkyLight.RealTimeReflectionCapture.ShadowFromOpaque", help:"Opaque meshes cast shadow from directional lights onto sky and clouds when enabled.\n", type:"Var"}, {name: "r.SkyLight.RealTimeReflectionCapture.TimeSlice", help:"When enabled, the real-time sky light capture and convolutions will by distributed over several frames to lower the per-frame cost.", type:"Var"}, {name: "r.SkyLight.RealTimeReflectionCapture.TimeSlice.SkyCloudCubeFacePerFrame", help:"When enabled, the real-time sky light capture, when time sliced, will not render cloud in all cube face in a single frame; but one face per frame. That is to distribute the cloud tracing cost even more, but will add latency and potentially can result in lighting discrepancy between faces if the sun is moving fast. Value in [1,6].", type:"Var"}, {name: "r.SkylightCapture.LODDistanceScale", help:"LODDistanceScale for the Sky Light Capture. Default is 1Negative values will be clamped to 1", type:"Var"}, {name: "r.so.MaxDistanceForOccluder", help:"Max radius where to look for occluders.", type:"Var"}, {name: "r.so.MaxOccluderNum", help:"Maximum number of primitives that can be rendered as occluders", type:"Var"}, {name: "r.so.MinScreenRadiusForOccluder", help:"Threshold below which meshes will be culled from beeing an occluder.", type:"Var"}, {name: "r.so.SIMD", help:"Use SIMD routines in software occlusion", type:"Var"}, {name: "r.so.ThreadName", help:"0 = AnyHiPriThreadNormalTask1 = AnyHiPriThreadHiPriTask2 = AnyNormalThreadNormalTask (Default)3 = AnyNormalThreadHiPriTask4 = AnyBackgroundThreadNormalTask5 = AnyBackgroundHiPriTask", type:"Var"}, {name: "r.so.VisualizeBuffer", help:"Visualize rasterized occlusion buffer", type:"Var"}, {name: "r.SparseVolumeTexture.RemoteDDCBehavior", help:"Controls how SVTs use remote DDC. 0: The bLocalDDCOnly property controls per-SVT caching behavior, 1: Force local DDC only usage for all SVTs, 2: Force local + remote DDC usage for all SVTs", type:"Var"}, {name: "r.SparseVolumeTexture.Streaming.AsyncCompute", help:"Schedule GPU work in async compute queue.", type:"Var"}, {name: "r.SparseVolumeTexture.Streaming.AsyncThread", help:"Perform most of the SVT streaming on an asynchronous worker thread instead of the rendering thread.", type:"Var"}, {name: "r.SparseVolumeTexture.Streaming.BandwidthLimit", help:"Bandwidth limit for SVT streaming in MiB/s. When requests exceed this limit, the system will stream at lower mip levels instead.", type:"Var"}, {name: "r.SparseVolumeTexture.Streaming.DDCChunkSize", help:"Size of DDC chunks the streaming data is split into (in MiB). A smaller size leads to more requests but can improve streaming performance. Default: 2 MiB", type:"Var"}, {name: "r.SparseVolumeTexture.Streaming.EmptyPhysicalTileTextures", help:"Streams out all streamable tiles of all physical tile textures.", type:"Var"}, {name: "r.SparseVolumeTexture.Streaming.ForceBlockingRequests", help:"If enabled, all SVT streaming requests will block on completion, guaranteeing that requested mip levels are available in the same frame they have been requested in (if there is enough memory available to stream them in).", type:"Var"}, {name: "r.SparseVolumeTexture.Streaming.ForceEstimateFrameRate", help:"Forces the streaming system to always estimate the SVT playback frame rate instead of using the explicit frame rate that is passed in with the streaming requests. Intended for debugging.", type:"Var"}, {name: "r.SparseVolumeTexture.Streaming.InstanceCleanupThreshold", help:"Number of SVT streaming system updates to wait until unused streaming instances are cleaned up. A streaming instance is an internal book keeping object to track playback of a SVT asset in a given context. Default: 5", type:"Var"}, {name: "r.SparseVolumeTexture.Streaming.InstanceWindowSize", help:"Window size in SVT frames around which requests to a SVT are considered to belong to the same instance. A streaming instance is an internal book keeping object to track playback of a SVT asset in a given context. Default: 5.0", type:"Var"}, {name: "r.SparseVolumeTexture.Streaming.LogVerbosity", help:"0: no logging, 1: basic logging, 2: additional logging (might spam the log) 3: log everything (will spam the log)", type:"Var"}, {name: "r.SparseVolumeTexture.Streaming.MaxPendingRequests", help:"Maximum number of IO requests that can be pending for installation.", type:"Var"}, {name: "r.SparseVolumeTexture.Streaming.PrintMemoryStats", help:"Prints memory sizes of all frames of all SVTs registered with the streaming system.", type:"Var"}, {name: "r.SparseVolumeTexture.Streaming.RequestMipBias", help:"Bias to apply the calculated mip level to stream at. This is used to account for the mip estimation based on projected screen space size being very conservative. The default value of 1.0 was found empirically to roughly result in a 1:1 voxel to pixel ratio.", type:"Var"}, {name: "r.SparseVolumeTexture.Streaming.RequestSize", help:"IO request size in KiB. The SVT streaming manager will attempt to create IO requests of roughly this size. Default: -1 (unlimited)", type:"Var"}, {name: "r.SparseVolumeTexture.Streaming.RequestSizeGranularity", help:"Rounds up calculated streaming request sizes to a multiple of this value (in bytes). This avoids performance issues where the system might issue multiple very small requests.", type:"Var"}, {name: "r.SparseVolumeTexture.Streaming.ReservedResourcesMemoryLimit", help:"Memory limit in MiB on the maximum size of the streaming pool textures when using reserved resources. Without this limit it is theoretically possible to allocate enormous amounts of memory. Set to -1 to disable the limit. Default: -1", type:"Var"}, {name: "r.SparseVolumeTexture.Streaming.ShowDebugInfo", help:"Prints debug info about the streaming SVT instances to the screen.", type:"Var"}, {name: "r.SparseVolumeTexture.Streaming.UseReservedResources", help:"Allocate the SVT tile data texture (streaming pool) as a reserved/virtual texture, backed by N small physical memory allocations to reduce fragmentation. This lifts the 2GB resource size limit and also allows for better GPU memory management when allocating the texture.", type:"Var"}, {name: "r.SSGI.Quality", help:"Whether to use screen space diffuse indirect and at what quality setting.\n", type:"Var"}, {name: "r.SplineMesh.RenderNanite", help:"When true, allows spline meshes to render as Nanite when enabled on the mesh (otherwise uses fallback mesh).", type:"Var"}, {name: "r.SplineMesh.SceneTextures", help:"Whether to cache all spline mesh splines in the scene to textures (performance optimization).", type:"Var"}, {name: "r.SplineMesh.SceneTextures.CaptureNextUpdate", help:"Set to 1 to perform a capture of the next spline mesh texture update. Set to > 1 to capture the next N updates.", type:"Var"}, {name: "r.SplineMesh.SceneTextures.ForceUpdate", help:"When true, will force an update of the whole spline mesh scene texture each frame (for debugging).", type:"Var"}, {name: "r.SplineMesh.SceneTextures.InstanceIDUploadCopy", help:"When true, will make a copy of the registered instance IDs on buffer upload.", type:"Var"}, {name: "r.SplitScreenDebug.Enable", help:"Debug feature to replace the main view with a pair of split screen views for testing purposes.", type:"Var"}, {name: "r.SplitScreenDebug.FOVZoom", help:"Amount to zoom FOV. Split screen expands the FOV for the new aspect. This setting can counteract that expansion.", type:"Var"}, {name: "r.SplitScreenDebug.Letterbox", help:"When non-zero, letterboxes away this percent of screen (rounds up to nearest multiple of 8 pixels, max 50%).", type:"Var"}, {name: "r.SplitScreenDebug.LumenScene", help:"For split screen debugging, allocate a separate Lumen scene for the second view.", type:"Var"}, {name: "r.SplitScreenDebug.Orbit", help:"When rotating by yaw, orbit around camera target actor, to keep third person character visible.", type:"Var"}, {name: "r.SplitScreenDebug.Rotate0", help:"Rotate first split screen view by this amount. Values [-1..1] are rotations in view space by fraction of horizontal FOV, outside that range are yaw rotation in degrees.", type:"Var"}, {name: "r.SplitScreenDebug.Rotate1", help:"Rotate second split screen view by this amount. Values [-1..1] are rotations in view space by fraction of horizontal FOV, outside that range are yaw rotation in degrees.", type:"Var"}, {name: "r.SplitScreenDebug.Vertical", help:"Split screen debug use vertical split (two panes vertically stacked). If false, uses horizontal split (two panes side by side).", type:"Var"}, {name: "r.SSGI.LeakFreeReprojection", help:"Whether use a more expensive but leak free reprojection of previous frame\'s scene color.\n", type:"Var"}, {name: "r.SSGI.MinimumLuminance", help:"", type:"Var"}, {name: "r.SSGI.Quality", help:"Quality setting to control number of ray shot with SSGI, between 1 and 4 (defaults to 4).\n", type:"Var"}, {name: "r.SSGI.RejectUncertainRays", help:"Rejects the screen space ray if it was uncertain due to going behind screen geometry.", type:"Var"}, {name: "r.SSGI.SkyDistance", help:"Distance of the sky in KM.", type:"Var"}, {name: "r.SSGI.TerminateCertainRay", help:"Optimisations that if the screen space ray is certain and didn\'t find any geometry, don\'t fallback on otehr tracing technic.", type:"Var"}, {name: "r.SSProfiles.Transmission.UseLegacy", help:"0. Use more physically correct transmission profile.\n1. Use legacy transmission profile (default).", type:"Var"}, {name: "r.SSProfilesPreIntegratedTextureForceUpdate", help:"0: Only update the preintegrated texture as needed.\n1: Force to update the preintegrated texture for debugging.\n", type:"Var"}, {name: "r.SSProfilesPreIntegratedTextureResolution", help:"The resolution of the subsurface profile preintegrated texture.\n", type:"Var"}, {name: "r.SSProfilesSamplingChannelSelection", help:"0. Select the sampling channel based on max DMFP.\n1. based on max MFP.", type:"Var"}, {name: "r.SSR.Compute", help:"Use compute for SSR if possible. Only available for non tiled SSR with no stencil prepass currently\n 0 is PS (default), 1 is sync compute, 2 is async compute", type:"Var"}, {name: "r.SSR.HalfResSceneColor", help:"Use half res scene color as input for SSR. Improves performance without much of a visual quality loss.", type:"Var"}, {name: "r.SSS.Checkerboard", help:"Enables or disables checkerboard rendering for subsurface profile rendering.\nThis is necessary if SceneColor does not include a floating point alpha channel (e.g 32-bit formats)\n 0: Disabled (high quality) \n 1: Enabled (low quality). Surface lighting will be at reduced resolution.\n 2: Automatic. Non-checkerboard lighting will be applied if we have a suitable rendertarget format\n", type:"Var"}, {name: "r.SSR.TiledComposite", help:"Enable tiled optimization of the screen space reflection.", type:"Var"}, {name: "r.SSR.TiledComposite.MinSpecular", help:"Ignore pixels with very small specular contribution in case max roughness cannot filter them out", type:"Var"}, {name: "r.SSR.TiledComposite.OverrideMaxRoughness", help:"Ignore pixels with roughness larger than this value.<0: use derived value from ScreenSpaceReflectionMaxRoughness of FinalPostProcessSettings.", type:"Var"}, {name: "r.SSR.TiledComposite.TwoSidedFoliage", help:"0: diable SSR for foliage if tiling is enabled.", type:"Var"}, {name: "r.SSR.TiledComposite.Visualize", help:"1: Visualize the tiling region.", type:"Var"}, {name: "r.SSS.Burley.AlwaysUpdateParametersFromSeparable", help:"0: Will not update parameters when the program loads. (default)1: Always update from the separable when the program loads. (Correct only when Subsurface color is 1).", type:"Var"}, {name: "r.SSS.Burley.BilateralFilterKernelFunctionType", help:"0: Depth Only. It is more performant (x2 faster for close view).1: Depth and normal. It leads to better quality in regions like eyelids. (default)", type:"Var"}, {name: "r.SSS.Burley.EnableProfileIdCache", help:"0: Disable profile id cache using in the sampling pass.\n1: Consumes 1 byte per pixel more memory to make Burley pass much faster. (default)\n", type:"Var"}, {name: "r.SSS.Burley.MinGenerateMipsTileCount", help:"4000. (default) The minimal number of tiles to trigger subsurface radiance mip generation. Set to zero to always generate mips (Experimental value)", type:"Var"}, {name: "r.SSS.Burley.NumSamplesOverride", help:"When zero, Burley SSS adaptively determines the number of samples. When non-zero, this value overrides the sample count.\n", type:"Var"}, {name: "r.SSS.Burley.Quality", help:"0: Fallback mode. Burley falls back to run scattering in Separable with transmission in Burley for better performance. Separable parameters are automatically fitted.1: Automatic. The subsurface will only switch to separable in half resolution. (default)", type:"Var"}, {name: "r.SSS.Checkerboard", help:"Enables or disables checkerboard rendering for subsurface profile rendering.\nThis is necessary if SceneColor does not include a floating point alpha channel (e.g 32-bit formats)\n 0: Disabled (high quality). If the rendertarget format does not have an alpha channel (e.g., PF_FloatR11G11B10), it leads to over-washed SSS. \n 1: Enabled (low quality). Surface lighting will be at reduced resolution.\n 2: Automatic. Non-checkerboard lighting will be applied if we have a suitable rendertarget format\n", type:"Var"}, {name: "r.SSS.Checkerboard.NeighborSSSValidation", help:"Enable or disable checkerboard neighbor subsurface scattering validation.\nThis validation can remove border light leakage into subsurface scattering, creating a sharpe border with correct color 0: Disabled (default) 1: Enabled. Add 1 subsurface profile id query/pixel (low quality), 4 id query/pixel (high quality) at recombine pass", type:"Var"}, {name: "r.SSS.HalfRes", help:" 0: full quality (not optimized, as reference)\n 1: parts of the algorithm runs in half resolution which is lower quality but faster (default)", type:"Var"}, {name: "r.SSS.HalfRes", help:" 0: full quality (Combined Burley and Separable pass. Separable is not optimized, as reference)\n 1: parts of the algorithm runs in half resolution which is lower quality but faster (default, Separable only)", type:"Var"}, {name: "r.SSS.SampleSet", help:"Defines how many samples we use for Screenspace Subsurface Scattering feature.\n 0: lowest quality (6*2+1)\n 1: medium quality (9*2+1)\n 2: high quality (13*2+1) (default)", type:"Var"}, {name: "r.SSS.Scale", help:"Affects the Screen space subsurface scattering pass(use shadingmodel SubsurfaceProfile, get near to the object as the default)\nis human skin which only scatters about 1.2cm)\n 0: off (if there is no object on the screen using this pass it should automatically disable the post process pass)\n<1: scale scatter radius down (for testing)\n 1: use given radius form the Subsurface scattering asset (default)\n>1: scale scatter radius up (for testing)", type:"Var"}, {name: "r.SSS.SampleSet", help:"Defines how many samples we use for Separable Screenspace Subsurface Scattering feature.\n 0: lowest quality (6*2+1)\n 1: medium quality (9*2+1)\n 2: high quality (13*2+1) (default)", type:"Var"}, {name: "r.SSS.Scale", help:"Affects the Screen space Separable subsurface scattering pass (use shadingmodel SubsurfaceProfile, get near to the object as the default)\nis human skin which only scatters about 1.2cm)\n 0: off (if there is no object on the screen using this pass it should automatically disable the post process pass)\n<1: scale scatter radius down (for testing)\n 1: use given radius form the Subsurface scattering asset (default)\n>1: scale scatter radius up (for testing)", type:"Var"}, {name: "r.SSS.SubSurfaceColorAsTansmittanceAtDistance", help:"Normalized distance (0..1) at which the surface color is interpreted as transmittance color to compute extinction coefficients.", type:"Var"}, {name: "r.StaticMesh.DefaultMeshPaintTextureSupport", help:"Default setting for whether static mesh assets support mesh paint textures.", type:"Var"}, {name: "r.StaticMesh.DisableThreadedBuild", help:"Activate to force static mesh building from a single thread.\n", type:"Var"}, {name: "r.StaticMesh.KeepMobileMinLODSettingOnDesktop", help:"If non-zero, mobile setting for MinLOD will be stored in the cooked data for desktop platforms", type:"Var"}, {name: "r.StaticMesh.MinLodQualityLevel", help:"The quality level for the Min stripping LOD. \n", type:"Var"}, {name: "r.StencilLODMode", help:"Specifies the dither LOD stencil mode.\n 0: Graphics pass.\n 1: Compute pass (on supported platforms).\n 2: Compute async pass (on supported platforms).", type:"Var"}, {name: "r.Streaming.AllowFastForceResident", help:"Whether it is allowed to load in missing mips for fast-force-resident assets ASAP. Useful to accelerate force-resident process but risks disturbing streaming metric calculation. Fast-force-resident mips can\'t be sacrificed even when overbudget so use with caution.", type:"Var"}, {name: "r.Streaming.AllowParallelStreamingRenderAssets", help:"Whether it is allowed to do UpdateStreamingRenderAssets with a ParallelFor to use more cores.", type:"Var"}, {name: "r.Streaming.AllowUpdateResourceSize", help:"AllowUpdateResourceSize", type:"Var"}, {name: "r.Streaming.DefaultNoRefLODBias", help:"The default LOD bias for no-ref meshes", type:"Var"}, {name: "r.Streaming.DeferredRemoveDynamicInstances", help:"Whether to defer removing components from the dynamic instance manager to avoid stalling the game thread on component deregistration.", type:"Var"}, {name: "r.Streaming.DropMips", help:"0: Drop No Mips \n1: Drop Cached Mips\n2: Drop Cached and Hidden Mips", type:"Var"}, {name: "r.Streaming.DropMips", help:"0: Drop No Mips \n1: Drop Cached Mips\n2: Drop Cached and Hidden Mips\n3: Drop cached mips and non-inlined LODs of no-ref meshes", type:"Var"}, {name: "r.Streaming.EnableAutoDetectNoStreamableTextures", help:"Enables auto-detection at cook time of primitive components with no streamable textures. Can also be turned-off at runtime to skip optimisation.", type:"Var"}, {name: "r.Streaming.EnableStrippingDuplicatePrimitiveComponent", help:"Move UPrimitiveComponent from static instances to dynamic component manager when primitive is updated.", type:"Var"}, {name: "r.Streaming.FlushDeferredMipLevelChangeCallbacksBeforeGC", help:"Whether to flush deferred mip level change callbacks before GC.", type:"Var"}, {name: "r.Streaming.FullyLoadMeshes", help:"If non-zero, stream in all mesh LODs. This allows semi-disabling mesh LOD streaming without recook.", type:"Var"}, {name: "r.Streaming.LowResHandlingMode", help:"How to handle assets with too many missing MIPs or LODs. 0 (default): do nothing, 1: load before regular streaming requests, 2: load before async loading precache requests.", type:"Var"}, {name: "r.Streaming.MaxReferenceChecksBeforeStreamOut", help:"Number of times the engine wait for references to be released before forcing streamout. (default=2)", type:"Var"}, {name: "r.Streaming.NoRefLODBiasQualityLevel", help:"The quality level for the no-ref mesh streaming LOD bias", type:"Var"}, {name: "r.Streaming.ParallelRenderAssetsNumWorkgroups", help:"How many workgroups we want to use for ParellelRenderAsset updates. Splits the work up a bit more so we don\'t get as many waits. Though adds overhead to GameThread if too high.", type:"Var"}, {name: "r.Streaming.PoolSize.VRAMPercentageClamp", help:"When using PoolSizeVRAMPercentage, a maximum amout of memory to reserve in MB.\nThis avoids reserving too much space for systems with a lot of VRAM. (default=1024)", type:"Var"}, {name: "r.Streaming.PoolSizeForMeshes", help:"< 0: Mesh and texture share the same pool, otherwise the size of pool dedicated to meshes.", type:"Var"}, {name: "r.Streaming.PrioritizeMeshLODRetention", help:"Whether to prioritize retaining mesh LODs", type:"Var"}, {name: "r.Streaming.ProcessAddedRenderAssetsAfterAsyncWork", help:"Whether to call ProcessAddedRenderAssets in subsqequent UpdateResourceStreaming stages after Async work has completed.", type:"Var"}, {name: "r.Streaming.SyncStatesWhenBlocking", help:"If true, SyncStates will be called to fully update async states before flushing outstanding streaming requests. Used by Movie Render Queue to ensure all streaming requests are handled each frame to avoid pop-in.", type:"Var"}, {name: "r.Streaming.UseAsyncRequestsForDDC", help:"Whether to use async DDC requests in order to react quickly to cancel and suspend rendering requests (default=0)", type:"Var"}, {name: "r.Streaming.UseGenericStreamingPath", help:"Control when to use the mip data provider implementation: (default=0)\n0 to use it when there is a custom asset override.\n1 to always use it.\n2 to never use it.", type:"Var"}, {name: "r.Streaming.UseMobileLODBiasOnDesktopES31", help:"If set apply mobile Min LOD bias on desktop platforms when running in ES31 mode", type:"Var"}, {name: "r.Streaming.UseTextureStreamingBuiltData", help:"Turn on/off usage of texture streaming built data (0 to turn off).", type:"Var"}, {name: "r.Substrate", help:"Enable Substrate materials (Beta).", type:"Var"}, {name: "r.Substrate.AllocationMode", help:"Substrate resource allocation mode. \n 0: Allocate resources based on view requirement, \n 1: Allocate resources based on view requirement, but can only grow over frame to minimize resources reallocation and hitches, \n 2: Allocate resources based on platform settings.", type:"Var"}, {name: "r.Substrate.AsyncClassification", help:"Run Substrate material classification in async (with shadow).", type:"Var"}, {name: "r.Substrate.BytesPerPixel", help:"Substrate allocated byte per pixel to store materials data. Higher value means more complex material can be represented.", type:"Var"}, {name: "r.Substrate.ClosuresPerPixel", help:"Substrate closure count per pixel can be constrained. That is usefull to reduce the number of byte written durting the base pass, but also to limit the number of closures in Forward. Higher value means more complex material can be represented.", type:"Var"}, {name: "r.Substrate.DBufferPass", help:"Apply DBuffer after the base-pass as a separate pass. Read only because when this is changed, it will require the recompilation of all shaders.", type:"Var"}, {name: "r.Substrate.DBufferPass.DedicatedTiles", help:"Use dedicated tile for DBuffer application when DBuffer pass is enabled.", type:"Var"}, {name: "r.Substrate.Debug.AdvancedVisualizationShaders", help:"Enable advanced Substrate material debug visualization shaders. Base pass shaders can output such advanced data.", type:"Var"}, {name: "r.Substrate.Debug.PeelLayersAboveDepth", help:"Substrate debug control to progressively peel off materials layer by layer.", type:"Var"}, {name: "r.Substrate.Debug.RoughnessTracking", help:"Substrate debug control to disable roughness tracking, e.g. top layer roughness affecting bottom layer roughness to simulate light scattering.", type:"Var"}, {name: "r.Substrate.Glints", help:"Enable Glint support for Substrate slabs. If changed, shaders needs to be recompiled.", type:"Var"}, {name: "r.Substrate.Glints.LevelBias", help:"Constantly bias the glint level. A negative value will reinforce the glint effect while a positive value will attenuate it. Be careful as this might cause aliasing.", type:"Var"}, {name: "r.Substrate.Glints.LevelMin", help:"The minimum glint level used to render glints. Mostly affect the look of distance surfaces. A value greater than 0 will force glints to always be visible instead of using the analytic BSDF. Be careful as this might cause aliasing.", type:"Var"}, {name: "r.Substrate.Glints.LUT", help:"Select one of the glint rendering LUT for testing.", type:"Var"}, {name: "r.Substrate.OpaqueMaterialRoughRefraction", help:"Enable Substrate opaque material rough refractions effect from top layers over layers below.", type:"Var"}, {name: "r.Substrate.OpaqueMaterialRoughRefraction.BlurScale", help:"Scale opaque rough refraction strengh for debug purposes.", type:"Var"}, {name: "r.Substrate.RoughDiffuse", help:"Enable Substrate rough diffuse model (works only if r.Material.RoughDiffuse is enabled in the project settings). Togglable at runtime", type:"Var"}, {name: "r.Substrate.ShadingQuality", help:"Define Substrate shading quality (1: accurate lighting, 2: approximate lighting). This variable is read-only.", type:"Var"}, {name: "r.Substrate.SheenQuality", help:"Define Substrate sheen quality (1: Disney-based sheen, 2: Charlie-based sheen, ). r.Substrate.ShadingQuality=2 forces SheenQuality to 2. This variable is read-only.", type:"Var"}, {name: "r.Substrate.SpecularProfile", help:"Enable Specular Profile support for Substrate slabs. If changed, shaders needs to be recompiled.", type:"Var"}, {name: "r.Substrate.SpecularProfile.ForceUpdate", help:"0: Only update the specular profile as needed.\n1: Force to update the specular profile every frame for debugging.\n", type:"Var"}, {name: "r.Substrate.SpecularProfile.Resolution", help:"The resolution of the specular profile texture.\n", type:"Var"}, {name: "r.Substrate.TileCoord8bits", help:"Format of tile coord. This variable is read-only.", type:"Var"}, {name: "r.Substrate.UseClosureCountFromMaterial", help:"When enable, scale the number of Lumen\'s layers for multi-closures pixels based on material data. Otherwise use r.Substrate.ClosuresPerPixel.", type:"Var"}, {name: "r.Substrate.UseCmaskClear", help:"TEST.", type:"Var"}, {name: "r.SubstrateBackCompatibility", help:"Disables Substrate multiple scattering and replaces Chan diffuse by Lambert.", type:"Var"}, {name: "r.SupportAtmosphericFog", help:"Enables AtmosphericFog shader permutations.", type:"Var"}, {name: "r.SupportCloudShadowOnForwardLitTranslucent", help:"Enables cloud shadow to affect all translucenct surface not relying on the translucent lighting volume.", type:"Var"}, {name: "r.SupportExpFogMatchesVolumetricFog", help:"When enabled, the height fog scattering/ambient/emissive/phase will match the volumetric fog better.", type:"Var"}, {name: "r.SupportLocalFogVolumes", help:"Enables local fog volume rendering and shader code.", type:"Var"}, {name: "r.SupportMaterialLayers", help:"Support new material layering in 4.19. Disabling it reduces some overhead in place to support the experimental feature.", type:"Var"}, {name: "r.SupportSimpleForwardShading", help:"Whether to compile the shaders to support r.SimpleForwardShading being enabled (PC only).", type:"Var"}, {name: "r.SupportSkyAtmosphere", help:"Enables SkyAtmosphere rendering and shader code.", type:"Var"}, {name: "r.SupportSkyAtmosphereAffectsHeightFog", help:"Enables SkyAtmosphere affecting height fog. It requires r.SupportSkyAtmosphere to be true.", type:"Var"}, {name: "r.SurfelDensity", help:"", type:"Var"}, {name: "r.SurfelLODDensityFraction", help:"", type:"Var"}, {name: "r.SurfelMaxPerObject", help:"", type:"Var"}, {name: "r.TemporalAA.AllowDownsampling", help:"Allows half-resolution color buffer to be produced during TAA. Only possible when motion blur is off and when using compute shaders for post processing.", type:"Var"}, {name: "r.SupportsTexture2DArrayStreaming", help:"Enable Support of Texture2DArray Streaming\n", type:"Var"}, {name: "r.SupportsVolumeTextureStreaming", help:"Enable Support of VolumeTexture Streaming\n", type:"Var"}, {name: "r.TemporalAA.Debug.OverrideTemporalIndex", help:"Override the temporal index for debugging purposes.", type:"Var"}, {name: "r.TemporalAA.Upsampling", help:"Whether to do primary screen percentage with temporal AA or not.\n 0: use spatial upscale pass independently of TAA (default);\n 1: TemporalAA performs spatial and temporal upscale as screen percentage method.", type:"Var"}, {name: "r.TemporalAA.Mobile.UseCompute", help:" 0: Uses pixel shader to save bandwidth with FBC on tiled gpu;\n 1: Uses compute shader (default);\n", type:"Var"}, {name: "r.TemporalAA.Quality", help:"Quality of the main Temporal AA pass.\n 0: Disable input filtering;\n 1: Enable input filtering;\n 2: Enable more input filtering, enable mobility based anti-ghosting (Default)\n 3: Quality 1 input filtering, enable anti-ghosting", type:"Var"}, {name: "r.TemporalAA.R11G11B10History", help:"Select the bitdepth of the history.", type:"Var"}, {name: "r.TemporalAA.Upsampling", help:"Whether to do primary screen percentage with temporal AA or not.\n 0: use spatial upscale pass independently of TAA;\n 1: TemporalAA performs spatial and temporal upscale as screen percentage method (default).", type:"Var"}, {name: "r.TemporalAA.Upscaler", help:"Choose the upscaling algorithm.\n 0: Forces the default temporal upscaler of the renderer;\n 1: GTemporalUpscaler which may be overridden by a third party plugin (default).", type:"Var"}, {name: "r.TemporalAA.UseMobileConfig", help:"1 to use mobile TAA config. This will disable groupshared caching of the color and depth buffers.\n 0: disabled (default);\n 1: enabled;\n", type:"Var"}, {name: "r.TemporalAAUpsampleFiltered", help:"Use filtering to fetch color history during TamporalAA upsampling (see AA_FILTERED define in TAA shader). Disabling this makes TAAU faster, but lower quality. ", type:"Var"}, {name: "r.TessellationAdaptivePixelsPerTriangle", help:"Global tessellation factor multiplier", type:"Var"}, {name: "r.TemporalAAScaleSamples", help:"Whether or not to scale the number of jittered positions for temporal AA when upsampling to maintain a consistent density.", type:"Var"}, {name: "r.Test.Aplha.OpaqueLerpWorldRange", help:"Sets the gradient length in world unit on which opaque pixel are lerped to translucent for testing purposes.", type:"Var"}, {name: "r.Test.Aplha.OpaqueWorldDistance", help:"Sets the world distance beyond which the opaque pixel are lerped to translucent for testing purposes.", type:"Var"}, {name: "r.Test.ClobberRenderRarget", help:"Clears the texture returned by the rendertarget pool with a special color\nso we can see better which passes would need to clear. Doesn\'t work on volume textures and non rendertargets yet.\n 0:off (default);\n 1: 1000 on RGBA channels;\n 2: NaN on RGBA channels;\n 3: +INFINITY on RGBA channels.\n", type:"Var"}, {name: "r.Test.ConstrainedView", help:"Allows to test different viewport rectangle configuations (in game only) as they can happen when using Matinee/Editor.\n0: off(default)\n1..7: Various Configuations", type:"Var"}, {name: "r.Test.ConstrainedView", help:"Allows to test different viewport rectangle configuations (in game only) as they can happen when using cinematics/Editor.\n0: off(default)\n1..7: Various Configuations", type:"Var"}, {name: "r.Test.EditorConstrainedView", help:"Allows to test different viewport rectangle configuations (in game only) as they can happen when using Matinee/Editor.\n0: off(default)\n1..7: Various Configuations", type:"Var"}, {name: "r.Test.EditorConstrainedView", help:"Allows to test different viewport rectangle configuations (in game only) as they can happen when using cinematics/Editor.\n0: off(default)\n1..7: Various Configuations", type:"Var"}, {name: "r.Test.FreezeTemporalHistories.Progress", help:"Progress the temporal histories by one frame when modified.", type:"Var"}, {name: "r.Test.OverrideTimeMaterialExpressions", help:"Value to freeze time material expressions with.", type:"Var"}, {name: "r.Test.ViewRollAngle", help:"Roll the camera in degrees, for testing motion vector upscaling precision. (disabled by default)", type:"Var"}, {name: "r.TextureProfiler.DumpRenderTargets", help:"Dumps all render targets allocated by the RHI.\nArguments:\n-CombineTextureNames Combines all textures of the same name into a single line of output\n-CSV Produces CSV ready output", type:"Cmd"}, {name: "r.TextureProfiler.DumpTextures", help:"Dumps all textures allocated by the RHI. Does not include render targets\nArguments:\n-CombineTextureNames Combines all textures of the same name into a single line of output\n-CSV Produces CSV ready output", type:"Cmd"}, {name: "r.TextureProfiler.EnableRenderTargetCSV", help:"True to enable csv profiler output for all Render Targets.", type:"Var"}, {name: "r.TextureProfiler.EnableTextureCSV", help:"True to enable csv profiler output for all textures. Does not include render targets.", type:"Var"}, {name: "r.TextureProfiler.MinRenderTargetSizeMB", help:"The minimum combined size for render targets to be reported. All combined sizes less than this threshold will be reported as Other.", type:"Var"}, {name: "r.TextureProfiler.MinTextureSizeMB", help:"The minimum size for any texture to be reported. All textures below this threshold will be reported as Other.", type:"Var"}, {name: "r.TextureReferenceRevertsLastRenderContainer", help:"", type:"Var"}, {name: "r.TexturesCookToDerivedDataReferences", help:"Whether cooked textures are serialized using Derived Data References.", type:"Var"}, {name: "r.TiledDeferredShading", help:"Whether to use tiled deferred shading. 0 is off, 1 is on (default)", type:"Var"}, {name: "r.TiledDeferredShading.MinimumCount", help:"Number of applicable lights that must be on screen before switching to tiled deferred.\n0 means all lights that qualify (e.g. no shadows, ...) are rendered tiled deferred. Default: 80", type:"Var"}, {name: "r.TextureUEDeltaDebugColor", help:"UE Delta Tile Debug Color", type:"Var"}, {name: "r.Tonemapper.ConfigIndexOverride", help:"direct configindex override. Ignores all other tonemapper configuration cvars", type:"Var"}, {name: "r.Tonemapper.GrainQuantization", help:"0: low (minor performance benefit)\n1: high (default, with high frequency pixel pattern to fight 8 bit color quantization)", type:"Var"}, {name: "r.Tonemapper.MergeWithUpscale.Mode", help:"ScreenPercentage upscale integrated into tonemapper pass (if certain conditions apply, e.g., no FXAA)\n if enabled both features are done in one pass (faster, affects post process passes after the tonemapper including material post process e.g. sharpen)\n 0: off, the features run in separate passes (default)\n 1: always enabled, try to merge the passes unless something makes it impossible\n 2: merge when the ratio of areas is above the r.Tonemapper.MergeWithUpscale.Threshold and it is otherwise possible", type:"Var"}, {name: "r.Tonemapper.MergeWithUpscale.Threshold", help:"If r.Tonemapper.MergeWithUpscale.Mode is 2, the ratio of the area before upscale/downscale to the area afterwards\nis compared to this threshold when deciding whether or not to merge the passes. The reasoning is that if the ratio\nis too low, running the tonemapper on the higher number of pixels is more expensive than doing two passes\n\nDefauls to 0.49 (e.g., if r.ScreenPercentage is 70 or higher, try to merge)", type:"Var"}, {name: "r.Tonemapper.Quality", help:"Defines the Tonemapper Quality in the range 0..5\nDepending on the used settings we might pick a faster shader permutation\n 0: basic tonemapper only, lowest quality\n 1: + FilmContrast\n 2: + Vignette\n 3: + FilmShadowTintAmount\n 4: + Grain\n 5: + GrainJitter = full quality (default)", type:"Var"}, {name: "r.Tonemapper.Sharpen", help:"Sharpening in the tonemapper (not for ES2), actual implementation is work in progress, clamped at 10\n 0: off(default)\n 0.5: half strength\n 1: full strength", type:"Var"}, {name: "r.TonemapperFilm", help:"Use new film tone mapper", type:"Var"}, {name: "r.Tonemapper.Quality", help:"Defines the Tonemapper Quality in the range 0..5\nDepending on the used settings we might pick a faster shader permutation\n 0: basic tonemapper only, lowest quality\n 2: + Vignette\n 4: + Grain\n 5: + GrainJitter = full quality (default)", type:"Var"}, {name: "r.Tonemapper.Sharpen", help:"Sharpening in the tonemapper (not for mobile), actual implementation is work in progress, clamped at 10\n <0: inherit from PostProcessVolume settings (default)\n 0: off\n 0.5: half strength\n 1: full strength", type:"Var"}, {name: "r.TransientResourceAliasing.Buffers", help:"Enables transient resource aliasing for specified buffers. Used only if GSupportsTransientResourceAliasing is true.\n", type:"Var"}, {name: "r.TransitionChecksEnableDX11", help:"Enables transition checks in the DX11 RHI.", type:"Var"}, {name: "r.TrackCsvNamedEvents", help:"Whether to record named events in the csv profiler", type:"Var"}, {name: "r.TrackShaderMaps", help:"Enables the tracking of every shadermap instantiated. Required to run ListShaderMaps command.", type:"Var"}, {name: "r.Translucency.AutoBeforeDOF", help:"Automatically bin After DOF translucency before DOF if behind focus distance (Experimental)", type:"Var"}, {name: "r.Translucency.DynamicRes.ChangePercentageThreshold", help:"Minimal increase percentage threshold to alow when changing resolution of translucency.", type:"Var"}, {name: "r.Translucency.DynamicRes.MaxScreenPercentage", help:"Maximal screen percentage for translucency.", type:"Var"}, {name: "r.Translucency.DynamicRes.MinScreenPercentage", help:"Minimal screen percentage for translucency.", type:"Var"}, {name: "r.Translucency.DynamicRes.TargetedHeadRoomPercentage", help:"Targeted GPU headroom for translucency (in percent from r.DynamicRes.DynamicRes.TimeBudget).", type:"Var"}, {name: "r.Translucency.DynamicRes.TimeBudget", help:"Frame\'s time budget for translucency rendering in milliseconds.", type:"Var"}, {name: "r.Translucency.DynamicRes.UpperBoundQuantization", help:"Quantization step count to use for upper bound screen percentage.\nIf non-zero, rendertargets will be resized based on the dynamic resolution fraction, saving GPU time during clears and resolves.\nOnly recommended for use with the transient allocator (on supported platforms) with a large transient texture cache (e.g RHI.TransientAllocator.TextureCacheSize=512)", type:"Var"}, {name: "r.Translucency.HeterogeneousVolumes", help:"Enables composting with heterogeneous volumes when rendering translucency (Default = 0)\n", type:"Var"}, {name: "r.Translucency.ScreenPercentage.Basis", help:"Basis of the translucency\'s screen percentage (Experimental).\n 0: Uses the primary view\'s resolution (notably scaling with r.ScreenPercentage and r.DynamicRes.*)\n 1: Uses the secondary view\'s resolution (temporal upscale\'s output resolution)", type:"Var"}, {name: "r.Translucency.StandardSeparated", help:"Render translucent meshes in separate buffer from the scene color.\nThis prevent those meshes from self refracting and leaking scnee color behind over edges when it should be affect by colored transmittance.\nForced disabled when r.SeparateTranslucency is 0.\n", type:"Var"}, {name: "r.Translucency.Velocity", help:"Whether translucency can draws depth/velocity (enabled by default)", type:"Var"}, {name: "r.TranslucencyLightingVolume.AccurateRectLights", help:"When disabled rect lights are approximated as spot lights in the translucency volume.\nOnly accurate rect lights are included in batching, so it is recommended to enable this when batching is used.", type:"Var"}, {name: "r.TranslucencyLightingVolume.Batch", help:"When enabled, batches supported lights into a single draw call for efficiency", type:"Var"}, {name: "r.Translucent.UsesIESProfiles", help:"Enable IES profiles support for translucent surfaces. When enabled, it will add an extrat sampler to the pixel shader (limited to 16 on dx11 based system)", type:"Var"}, {name: "r.Translucent.UsesLightFunctionAtlas", help:"Enable sampling of the light function atlas on translucent materials using forward shading.", type:"Var"}, {name: "r.Translucent.UsesRectLights", help:"Enable rect light support for translucent surfaces. When enabled, it will add an extrat sampler to the pixel shader (limited to 16 on dx11 based system)", type:"Var"}, {name: "r.TranslucentSortPolicy", help:"0: Sort based on distance from camera centerpoint to bounding sphere centerpoint. (default, best for 3D games)\n1: Sort based on projected distance to camera.2: Sort based on the projection onto a fixed axis. (best for 2D games)", type:"Var"}, {name: "r.TranslucentSortPolicy", help:"0: Sort based on distance from camera centerpoint to bounding sphere centerpoint. (default, best for 3D games)\n1: Sort based on projected distance to camera.\n2: Sort based on the projection onto a fixed axis. (best for 2D games)", type:"Var"}, {name: "r.TSR.16BitVALU", help:"Whether to use 16bit VALU on platform that have bSupportsRealTypes=RuntimeDependent", type:"Var"}, {name: "r.TSR.16BitVALU.AMD", help:"Overrides whether to use 16bit VALU on AMD desktop GPUs", type:"Var"}, {name: "r.TSR.16BitVALU.Intel", help:"Overrides whether to use 16bit VALU on Intel desktop GPUs", type:"Var"}, {name: "r.TSR.16BitVALU.Nvidia", help:"Overrides whether to use 16bit VALU on Nvidia desktop GPUs", type:"Var"}, {name: "r.TSR.AplhaChannel", help:"Controls whether TSR should process the scene color\'s alpha channel.\n -1: based of r.PostProcessing.PropagateAlpha (default);\n 0: disabled;\n 1: enabled.\n", type:"Var"}, {name: "r.TSR.AsyncCompute", help:"Controls how TSR run on async compute. Some TSR passes can overlap with previous passes.\n 0: Disabled;\n 1: Run on async compute only passes that are completly independent from any intermediary resource of this frame, namely ClearPrevTextures and ForwardScatterDepth passes;\n 2: Run on async compute only passes that are completly independent or only dependent on the depth and velocity buffer which can overlap for instance with translucency or DOF. Any passes on critical path remains on the graphics queue (default);\n 3: Run all passes on async compute;", type:"Var"}, {name: "r.TSR.Debug.ArraySize", help:"Size of array for the TSR.Debug.* RDG textures", type:"Var"}, {name: "r.TSR.ForceSeparateTranslucency", help:"Overrides r.SeparateTranslucency whenever TSR is enabled (enabled by default).\n", type:"Var"}, {name: "r.TSR.History.R11G11B10", help:"Select the bitdepth of the history. r.TSR.History.R11G11B10=1 Saves memory bandwidth that is of particular interest of the TSR\'s UpdateHistory\'s runtime performance by saving memory both at previous frame\'s history reprojection and write out of the output and new history.\nThis optimisation is unsupported with r.PostProcessing.PropagateAlpha=True.\n\nPlease also not that increasing r.TSR.History.ScreenPercentage=200 adds 2 additional implicit encoding bits in the history compared to the TSR.Output\'s bitdepth thanks to the downscaling pass from TSR history resolution to TSR output resolution.", type:"Var"}, {name: "r.TSR.History.SampleCount", help:"Maximum number sample for each output pixel in the history. Higher values means more stability on highlights on static images, but may introduce additional ghosting on firefliers style of VFX. Minimum value supported is 8.0 as TSR was in 5.0 and 5.1. Maximum value possible due to the encoding of the TSR.History.Metadata is 32.0. Defaults to 16.0.\n\nUse \"r.TSR.Visualize 0\" command to see how many samples where accumulated in TSR history on areas of the screen.", type:"Var"}, {name: "r.TSR.History.ScreenPercentage", help:"Resolution multiplier of the history of TSR based of output resolution. While increasing the resolution adds runtime cost to TSR, it allows to maintain a better sharpness and stability of the details stored in history through out the reprojection.\n\nSetting to 200 brings on a very particular property relying on NyQuist-Shannon sampling theorem that establishes a sufficient condition for the sample rate of the accumulated details in the history. As a result only values between 100 and 200 are supported.\nIt is controlled by default in the anti-aliasing scalability group set to 200 on Epic and Cinematic, 100 otherwise.", type:"Var"}, {name: "r.TSR.History.UpdateQuality", help:"Selects shader permutation of the quality of the update of the history in the TSR HistoryUpdate pass currently driven by the sg.AntiAliasingQuality scalability group. For further details about what each offers, you are invited to look at DIM_UPDATE_QUALITY in TSRUpdateHistory.usf and customise to your need.", type:"Var"}, {name: "r.TSR.LensDistortion", help:"Whether to apply lens distortion in TSR at runtime (enabled by default, requires r.TSR.Support.LensDistortion enabled at cook time).", type:"Var"}, {name: "r.TSR.RejectionAntiAliasingQuality", help:"Controls the quality of TSR\'s built-in spatial anti-aliasing technology when the history needs to be rejected. While this may not be critical when the rendering resolution is not much lowered than display resolution, this technic however becomes essential to hide lower rendering resolution rendering because of two reasons:\n - the screen space size of aliasing is inverse proportional to rendering resolution;\n - rendering at lower resolution means need more frame to reach at least 1 rendered pixel per display pixel.\n\nUse \"r.TSR.Visualize 6\" command to see on screen where the spatial anti-aliaser quicks in green.\n\nBy default, it is only disabled by default in the low anti-aliasing scalability group.", type:"Var"}, {name: "r.TSR.ReprojectionField", help:"Enables TSR\'s reprojection field for higher reprojection vector upscale and dilate quality (Enabled by default on high, epic and cinematic anti-aliasing quality).\n\nWhen the reprojection fields is enabled, it dilates the reprojection vector by half spatially anti-aliased rendering pixel from the depth buffer, instead by a full rendering pixel in dilate velocity pass. This allows hide the rendering resolution due whenever velocity buffer ends up extruding some object to edges, for instance when rotating. This come at the cost of spatial anti-aliasing in the DilateVelocity pass as well as an extra dependent texture fetches right at the begining of the HistoryUpdate pass.\n\nThe reprojection field also embeds a jacobian 2x2 matrix for each pixel to have more precise reprojection of the historyfor the display pixels in the rendering pixels. This for instance allows to maintains sharp geometric edges on movements.", type:"Var"}, {name: "r.TSR.ReprojectionField.AntiAliasPixelSpeed", help:"Defines the output pixel velocity at which point the dilation should be spatial anti-aliased based of the depth buffer to avoid reprojection aliasing by extrusion on fast geometric edges (Default to 0.125, best tuned with r.TSR.Visualize=11).", type:"Var"}, {name: "r.TSR.Resurrection", help:"Allows TSR to resurrect previously discarded details from many frames ago.\n\nWhen enabled, the entire frames of the TSR are stored in a same unique Texture2DArray including a configurable number of persistent frame (defined by r.TSR.Resurrection.PersistentFrameCount) that are occasionally recorded (defined by r.TSR.Resurrection.PersistentFrameInterval).\nThen every frame, TSR will attempt to reproject either previous frame, or the oldest persistent frame available based which matches best the current frames. The later option will happen when something previously seen by TSR shows up again (no matter through parallax disocclusion, shading changes, translucent VFX moving) which will have the advantage bypass the need to newly accumulate a second time by simply resurrected the previously accumulated details.\n\nCommand \"r.TSR.Visualize 4\" too see parts of the screen is being resurrected by TSR in green.\nCommand \"r.TSR.Visualize 5\" too see the oldest frame being possibly resurrected.\n\nCurrently experimental and disabled by default.", type:"Var"}, {name: "r.TSR.Resurrection.PersistentFrameCount", help:"Configures the number of persistent frame to record in history for futur history resurrection. This will increase the memory footprint of the entire TSR history. Must be an even number greater or equal to 2. (default=2)", type:"Var"}, {name: "r.TSR.Resurrection.PersistentFrameInterval", help:"Configures in number of frames how often persistent frame should be recorded in history for futur history resurrection. This has no implication on memory footprint of the TSR history. Must be an odd number greater or equal to 1. Uses the VisualizeTSR show flag and r.TSR.Visualize=5 to tune this parameter to your content. (default=31)", type:"Var"}, {name: "r.TSR.ShadingRejection.Flickering", help:"Instability in TSR output 99% of the time coming from instability of the shading rejection, for different reasons:\n - One first source of instability is most famously moire pattern between structured geometry and the rendering pixel grid changing every frame due to the offset of the jittering pixel grid offset;\n - Another source of instability can happen on extrem geometric complexity due to temporal history\'s chicken-and-egg problem that can not be overcome by other mechanisms in place in TSR\'s RejectHistory pass: how can the history be identical to rendered frame if the amount of details you have in the rendered frame is not in history? how can the history accumulate details if the history is too different from the rendered frame?\n\nWhen enabled, this flickering temporal analysis monitor how the luminance of the scene right before any translucency drawing stored in the TSR.Flickering.Luminance resource how it involves over successive frames. And if it is detected to constantly flicker regularily above a certain threshold defined with this r.TSR.ShadingRejection.Flickering.* cvars, the heuristic attempts to stabilize the image by letting ghost within luminance boundary tied to the amplititude of flickering.\n\nUse \"r.TSR.Visualize 7\" command to see on screen where this heuristic quicks in orange and red. Pink is where it is disabled.\n\nOne particular caveat of this heuristic is that any opaque geometry with incorrect motion vector can make a pixel look identically flickery quicking this heuristic in and leaving undesired ghosting effects on the said geometry. When that happens, it is highly encourage to verify the motion vector through the VisualizeMotionBlur show flag and how these motion vectors are able to reproject previous frame with the VisualizeReprojection show flag.\n\nThe variable to countrol the frame frequency at which a pixel is considered flickery and needs to be stabilized with this heuristic is defined with the r.TSR.ShadingRejection.Flickering.Period in frames. For instance, a value r.TSR.ShadingRejection.Flickering.Period=3, it means any pixel that have its luminance changing of variation every more often than every frames is considered flickering.\n\nHowever another caveats on this boundary between flickering pixel versus animated pixel is that: flickering happens regardless of frame rate, whereas a visual effects that are/should be based on time and are therefore independent of the frame rate. This mean that a visual effect that looks smooth at 60hz might appear to \'flicker\' at lower frame rates, like 24hz for instance.\nTo make sure a visual effect authored by an artists doesn\'t start to ghost of frame rate, r.TSR.ShadingRejection.Flickering.AdjustToFrameRate is enabled by default such that this frame frequency boundary is automatically when the frame rate drops below a refresh rate below r.TSR.ShadingRejection.Flickering.FrameRateCap.\n\nWhile r.TSR.ShadingRejection.Flickering is controled based of scalability settings turn on/off this heuristic on lower/high-end GPU the other r.TSR.ShadingRejection.Flickering.* can be set orthogonally in the Project\'s DefaultEngine.ini for a consistent behavior across all platforms.\n\nIt is enabled by default in the anti-aliasing scalability group High, Epic and Cinematic.", type:"Var"}, {name: "r.TSR.ShadingRejection.Flickering.AdjustToFrameRate", help:"Whether r.TSR.ShadingRejection.Flickering.Period settings should adjust to frame rate when below r.TSR.ShadingRejection.Flickering.FrameRateCap. Please read r.TSR.ShadingRejection.Flickering\'s help for further details. (Enabled by default).", type:"Var"}, {name: "r.TSR.ShadingRejection.Flickering.FrameRateCap", help:"Framerate cap in hertz at which point there is automatic adjustment of r.TSR.ShadingRejection.Flickering.Period when the rendering frame rate is lower. Please read r.TSR.ShadingRejection.Flickering\'s help for further details. (Default to 60hz)", type:"Var"}, {name: "r.TSR.ShadingRejection.Flickering.MaxParallaxVelocity", help:"Some material might for instance might do something like parallax occlusion mapping such as CitySample\'s buildings\' window\'s interiors. This often can not render accurately a motion vector of this fake interior geometry and therefore make the heuristic believe it is in fact flickering.\n\nThis variable define the parallax velocity in 1080p pixel at frame rate defined by r.TSR.ShadingRejection.Flickering.FrameRateCap at which point the heuristic should be disabled to not ghost. \n(Default to 10 pixels 1080p).\n", type:"Var"}, {name: "r.TSR.ShadingRejection.Flickering.Period", help:"Periode in frames in which luma oscilations at equal or greater frequency is considered flickering and should ghost to stabilize the image Please read r.TSR.ShadingRejection.Flickering\'s help for further details. (Default to 3 frames).", type:"Var"}, {name: "r.TSR.ShadingRejection.SampleCount", help:"Maximum number of sample in each output pixel of the history after total shading rejection.\n\nLower values means higher clarity of the image after shading rejection of the history, but at the trade of higher instability of the pixel on following frames accumulating new details which can be distracting to the human eye (Defaults to 2.0).", type:"Var"}, {name: "r.TSR.ShadingRejection.TileOverscan", help:"The shading rejection run a network of convolutions on the GPU all in single 32x32 without roundtrip to main video memory. However chaining many convlutions in this tiles means that some convolutions on the edge arround are becoming corrupted and therefor need to overlap the tile by couple of padding to hide it. Higher means less prones to tiling artifacts, but performance loss.", type:"Var"}, {name: "r.TSR.Support.LensDistortion", help:"Whether to compile lens distortion support in TSR\'s shaders (adds the lens distortion LUT in the HistoryUpdate pass in branches that even disabled can add a bit of VALU cost when no lens distortion is used).\n 0: unsupported;\n 1: supported only on desktop (default);\n 2: supported everywhere;\n", type:"Var"}, {name: "r.TSR.Velocity.WeightClampingPixelSpeed", help:"Defines the output pixel velocity at which the the high frequencies of the history get\'s their contributing weight clamped. It\'s basically to lerp the effect of r.TSR.Velocity.WeightClampingSampleCount when the pixel velocity get smaller than r.TSR.Velocity.WeightClampingPixelSpeed. (Default = 1.0f).", type:"Var"}, {name: "r.TSR.Velocity.WeightClampingSampleCount", help:"Number of sample to count to in history pixel to clamp history to when output pixel velocity reach r.TSR.Velocity.WeightClampingPixelSpeed. Higher value means higher stability on movement, but at the expense of additional blur due to successive convolution of each history reprojection.\n\nUse \"r.TSR.Visualize 0\" command to see how many samples where accumulated in TSR history on areas of the screen.\n\nPlease note this clamp the sample count in history pixel, not output pixel, and therefore lower values are by designed less noticeable with higher r.TSR.History.ScreenPercentage. This is done so such that increasing r.TSR.History.ScreenPercentage uniterally & automatically give more temporal stability and maintaining sharpness of the details reprojection at the expense of that extra runtime cost regardless of this setting.\n\nA story telling game might preferer to keep this 4.0 for a \'cinematic look\' whereas a competitive game like Fortnite would preferer to lower that to 2.0. (Default = 4.0f).", type:"Var"}, {name: "r.TSR.Visualize", help:"Selects the TSR internal visualization mode.\n -3: Display the reprojection field\'s grid based overview;\n -2: Display an grid based overview regardless of VisualizeTSR show flag;\n -1: Display an grid based overview on the VisualizeTSR show flag (default, opened with the `show VisualizeTSR` command at runtime or Show > Visualize > TSR in editor viewports);\n 0: Number of accumulated samples in the history, particularily interesting to tune r.TSR.ShadingRejection.SampleCount and r.TSR.Velocity.WeightClampingSampleCount;\n 1: Parallax disocclusion based of depth and velocity buffers;\n 2: Mask where the history is rejected;\n 3: Mask where the history is clamped;\n 4: Mask where the history is resurrected (with r.TSR.Resurrection=1);\n 5: Mask where the history is resurrected in the resurrected frame (with r.TSR.Resurrection=1), particularily interesting to tune r.TSR.Resurrection.PersistentFrameInterval;\n 6: Mask where spatial anti-aliasing is being computed;\n 7: Mask where the flickering temporal analysis heuristic is taking effects (with r.TSR.ShadingRejection.Flickering=1);\n 8: Summary of the reprojection field, show the the jacobian on X in green and Y in blue;\n 9: Reprojection field\'s dilating offset to apply in the HistoryUpdate;\n 10: Coverage of the dilating offset to apply in the HistoryUpdate (red the coverage is close to 0, green is close to 1, blue has been fully dilated to 1 without computing any spatial anti-aliasing from the depth buffer);\n 11: Mask where the reprojection field is anti-aliased from the depth buffer in green (handy to tune r.TSR.ReprojectionField.AntiAliasPixelSpeed);\n 12: Mask where the pixel\'s jacobian is null in the reprojection field in orange;\n 13: Mask where the pixel\'s jacobian has reached its encoding limit in the reprojection field in red;\n 14: Mask where the reprojected history is upscaled (in red) or downscaled (in green) by the reprojection field\'s jacobian (for instance due to getting closer or further away from camera respectively, or an object is getting scaled dynamicaly);\n", type:"Var"}, {name: "r.TSR.WaveOps", help:"Whether to use wave ops in the shading rejection heuristics to speeds up convolutions.\n\nThe shading rejection heuristic optimisation can be particularily hard for shader compiler and hit bug in them causing corruption/quality loss.\n\nNote this optimisation is currently disabled on SPIRV platforms (mainly Vulkan and Metal) due to 5min+ compilation times in SPIRV backend of DXC which is not great for editor startup.", type:"Var"}, {name: "r.TSR.WaveSize", help:"Overrides the WaveSize to use.\n 0: Automatic (default);\n 16: WaveSizeOps 16;\n 32: WaveSizeOps 32;\n 64: WaveSizeOps 64;\n", type:"Var"}, {name: "r.UbaController.AllowProcessReuse", help:"If true, remote process is allowed to fetch new processes from the queue (this requires the remote processes to have UbaRequestNextProcess implemented)\n", type:"Var"}, {name: "r.UbaController.AutoLaunchVisualizer", help:"If true, UBA visualizer will be launched automatically\n", type:"Var"}, {name: "r.UbaController.DetailedTrace", help:"If true, a UBA will output detailed trace\n", type:"Var"}, {name: "r.UbaController.DumpTraceFiles", help:"If true, UBA controller dumps trace files for later use with UBA visualizer in the Saved folder under UbaController (Enabled by default)", type:"Var"}, {name: "r.UbaController.LogVerbosity", help:"Specifies how much of UBA logs is forwarded to UE logs..\n0 - Default, only forward errrors and warnings.\n1 - Also forward regular information about UBA sessions.\n2 - Forward all UBA logs.", type:"Var"}, {name: "r.UbaController.MaxTimeWithoutTasks", help:"Time to wait (in seconds) before stop processing attempts if we don\'t have any pending task.\n", type:"Var"}, {name: "r.UbaController.ProcessLogEnabled", help:"If true, each detoured process will write a log file. Note this is only useful if UBA is compiled in debug\n", type:"Var"}, {name: "r.UbaController.SleepTimeBetweenActions", help:"How much time the job processor thread should sleep between actions .\n", type:"Var"}, {name: "r.UbaHorde.ForwardAgentLogs", help:"Enables or disables logging of stdout on agent side to show in controller log.", type:"Var"}, {name: "r.UnbindResourcesBetweenDrawsInDX11", help:"Unbind resources between material changes in DX11.", type:"Var"}, {name: "r.UniformBufferPooling", help:"If we pool object in RHICreateUniformBuffer to have less real API calls to creat buffers\n 0: off (for debugging)\n 1: on (optimization)", type:"Var"}, {name: "r.UpdateReflectionCaptureEveryFrame", help:"When set, reflection captures will constantly be scheduled for update.\n", type:"Var"}, {name: "r.Upscale.Panini.D", help:"Allow and configure to apply a panini distortion to the rendered image. Values between 0 and 1 allow to fade the effect (lerp).\nImplementation from research paper \"Pannini: A New Projection for Rendering Wide Angle Perspective Images\"\n 0: off (default)\n>0: enabled (requires an extra post processing pass if upsampling wasn\'t used - see r.ScreenPercentage)\n 1: Panini cylindrical stereographic projection", type:"Var"}, {name: "r.Upscale.Panini.S", help:"Panini projection\'s hard vertical compression factor.\n 0: no vertical compression factor (default)\n 1: Hard vertical compression", type:"Var"}, {name: "r.Upscale.Panini.ScreenFit", help:"Panini projection screen fit effect factor (lerp).\n 0: fit vertically\n 1: fit horizontally (default)", type:"Var"}, {name: "r.UniformBufferPooling", help:"If we pool object in RHICreateUniformBuffer to have less real API calls to create buffers\n 0: off (for debugging)\n 1: on (optimization)", type:"Var"}, {name: "r.UniformExpressionCacheAsyncUpdates", help:"Whether to allow async updates of uniform expression caches.", type:"Var"}, {name: "r.UseFastIntersect", help:"Use optimized 8 plane fast intersection code if we have 8 permuted planes.", type:"Var"}, {name: "r.UseMobileBloom", help:"HACK: Set to 1 to use mobile bloom.", type:"Var"}, {name: "r.UseParallelGetDynamicMeshElementsTasks", help:"If > 0, and if FApp::ShouldUseThreadingForPerformance(), then parts of GetDynamicMeshElements will be done in parallel.", type:"Var"}, {name: "r.UsePreExposure", help:"0 to disable pre-exposure, 1 to enable it (default).\nPre-exposure allows the engine to apply the last frame exposure to luminance values before writing them in rendertargets.\nIt avoids rendertarget overflow when using low precision formats like fp16.\nThe pre-exposure value can be overriden through r.EyeAdaptation.PreExposureOverride\n", type:"Var"}, {name: "r.UseLegacyMaintainYFOVViewMatrix", help:"Whether to use the old way to compute perspective view matrices when the aspect ratio constraint is vertical", type:"Var"}, {name: "r.Velocity.EnableLandscapeGrass", help:"Specify if you want to output velocity for the grass component for WPO.\n True (default)\n False", type:"Var"}, {name: "r.Velocity.EnableVertexDeformation", help:"Enables materials with World Position Offset and/or World Displacement to output velocities during velocity pass even when the actor has not moved. \n0=Off, 1=On, 2=Auto(Default). \nAuto setting is off if r.VelocityOutputPass=2, or else on. \nWhen r.VelocityOutputPass=2 this can incur a performance cost due to additional draw calls.", type:"Var"}, {name: "r.Velocity.ForceOutput", help:"Force velocity output on all primitives.\nThis can incur a performance cost unless r.VelocityOutputPass=1.\nBut it can be useful for testing where velocity output isn\'t being enabled as expected.\n0: Disabled (default)\n1: Enabled", type:"Var"}, {name: "r.VelocityOutputPass", help:"When to write velocity buffer.\n 0: Renders during the depth pass. This splits the depth pass into 2 phases: with and without velocity.\n 1: Renders during the regular base pass. This adds an extra GBuffer target during base pass rendering. 2: Renders after the regular base pass.\n", type:"Var"}, {name: "r.VertexDeformationOutputsVelocity", help:"Deprecated CVar. Use r.Velocity.EnableVertexDeformation instead.\n", type:"Var"}, {name: "r.ViewMode.ShaderTimeSlice", help:"Max time to allocate each frame to generate new shaders. 0 disables (default=.02", type:"Var"}, {name: "r.ViewDistanceScale.SkeletalMeshOverlay", help:"Controls the distance scale for skeletal mesh overlay, Default = 1.0. \nHigher values will increase skeletal mesh overlay draw distance. This value is applied together with r.ViewDistanceScale", type:"Var"}, {name: "r.ViewHasTileOffsetData", help:"1 to upload lower-precision tileoffset view data to gpu, 0 to use only higher-precision double float.\n", type:"Var"}, {name: "r.Viewport.EnableSelectionOutlineColors", help:"Enable Selection Outline Colors", type:"Var"}, {name: "r.ViewTextureMipBias.Min", help:"Automatic view mip bias\'s minimum value (default to -1).", type:"Var"}, {name: "r.ViewTextureMipBias.Min", help:"Automatic view mip bias\'s minimum value (default to -2).", type:"Var"}, {name: "r.Visibility.DynamicMeshElements.NumMainViewTasks", help:"Controls the number of gather dynamic mesh elements tasks to run asynchronously during view visibility.", type:"Var"}, {name: "r.Visibility.DynamicMeshElements.NumShadowViewTasks", help:"Controls the number of gather dynamic mesh elements tasks to run asynchronously during shadow visibility.", type:"Var"}, {name: "r.Visibility.DynamicMeshElements.Parallel", help:"Enables parallel processing of the gather dynamic mesh elements visibility phase.", type:"Var"}, {name: "r.Visibility.FrustumCull.Enabled", help:"Enables frustum culling.", type:"Var"}, {name: "r.Visibility.FrustumCull.NumPrimitivesPerTask", help:"Assigns a fixed number of primitives for each frustum cull task. 0: Automatic;>0: Fixed number of primitives per task (clamped to fixed limits);", type:"Var"}, {name: "r.Visibility.FrustumCull.UseFastIntersect", help:"Use optimized 8 plane fast intersection code if we have 8 permuted planes.", type:"Var"}, {name: "r.Visibility.FrustumCull.UseOctree", help:"Use the octree for visibility calculations.", type:"Var"}, {name: "r.Visibility.FrustumCull.UseSphereTestFirst", help:"Performance tweak. Uses a sphere cull before and in addition to a box for frustum culling.", type:"Var"}, {name: "r.Visibility.LocalLightPrimitiveInteraction", help:"Whether to allow computing local primitive interactions. May greatly speedup render thread time if not needed.", type:"Var"}, {name: "r.Visibility.OcclusionCull.MaxQueriesPerTask", help:"Assigns a fixed number of occlusion queries for each occlusion cull task. 0: Automatic;>0: Fixed number of occlusion queries per task;", type:"Var"}, {name: "r.Visibility.Relevance.NumPrimitivesPerPacket", help:"Assigns a fixed number of primitives for each relevance packet. 0: Automatic;>0: Fixed number of primitives per packet (clamped to fixed limits);", type:"Var"}, {name: "r.Visibility.SkipAlwaysVisible", help:"Whether visibility passes should skip primitives marked always visible0: All primitives are processed by visibility passes1: Only primitives not marked with bAlwaysVisible will be processed by visibility passes", type:"Var"}, {name: "r.Visibility.TaskSchedule", help:"Controls how the visibility task graph is scheduled.0: Work is primarily done on the render thread with the potential for parallel help;1: Work is done on an async task graph (if supported by platform);", type:"Var"}, {name: "r.VisualizeLightingOnProbes", help:"Enables debug probes rendering to visualise diffuse/specular lighting (direct and indirect) on simple sphere scattered in the world. 0: disabled.\n 1: camera probes only.\n 2: world probes only.\n 3: camera and world probes.\n", type:"Var"}, {name: "r.VisualizeTexturePool", help:"Allows to enable the visualize the texture pool (currently only on console).\n 0: off (default)\n 1: on", type:"Var"}, {name: "r.VolumetricCloud", help:"VolumetricCloud components are rendered when this is not 0, otherwise ignored.", type:"Var"}, {name: "r.VolumetricCloud.AllowAnalyticDerivatives", help:"Enables compiling cloud shaders with support for analytical derivatives when needed by the material.", type:"Var"}, {name: "r.VolumetricCloud.ApplyFogLate", help:"When true, fog will be applied on cloud later in the frame. Tis helps hiding latency in fog upsate on cloud due to reprojection and reconstruction. It is however more expenssive.", type:"Var"}, {name: "r.VolumetricCloud.DisableCompute", help:"Do not use compute shader for cloud tracing.", type:"Var"}, {name: "r.VolumetricCloud.DistanceToSampleMaxCount", help:"Distance in kilometers over which the total number of ray samples will be evenly distributed. Before that, the number of ray samples will span 1 to SampleCountMax, for for tracing distance ranging from 0 to DistanceToSampleCountMax (kilometers).", type:"Var"}, {name: "r.VolumetricCloud.EmptySpaceSkipping", help:"Enable/disable empty space skipping to accelerate cloud tracing through emty areas. EXPERIMENTAL", type:"Var"}, {name: "r.VolumetricCloud.EmptySpaceSkipping.SampleCorners", help:"0 means center samples only, >0 means corner are also sampled.", type:"Var"}, {name: "r.VolumetricCloud.EmptySpaceSkipping.StartTracingSliceBias", help:"The number of slices to bias the start depth with. A valuie of -1 means a bias of one slice towards the view point.", type:"Var"}, {name: "r.VolumetricCloud.EmptySpaceSkipping.VolumeDepth", help:"Set the distance in kilometer over which empty space can be evalauted.", type:"Var"}, {name: "r.VolumetricCloud.EnableAerialPerspectiveSampling", help:"Enable/disable the aerial perspective contribution on clouds.", type:"Var"}, {name: "r.VolumetricCloud.EnableAtmosphericLightsSampling", help:"Enable/disable atmospheric lights contribution on clouds.", type:"Var"}, {name: "r.VolumetricCloud.EnableDistantSkyLightSampling", help:"Enable/disable the distant sky light contribution on clouds.", type:"Var"}, {name: "r.VolumetricCloud.EnableLocalLightsSampling", help:"[EXPERIMENTAL] Enable/disable local lights contribution on clouds. Expenssive! Use for cinematics if needed.", type:"Var"}, {name: "r.VolumetricCloud.HighQualityAerialPerspective", help:"Enable/disable a second pass to trace the aerial perspective per pixel on clouds instead of using the aerial persepctive texture. Only usable when r.VolumetricCloud.EnableAerialPerspectiveSampling=1 and only needed for extra quality when r.VolumetricRenderTarget=1.", type:"Var"}, {name: "r.VolumetricCloud.LocalLights.ShadowSampleCount", help:"[EXPERIMENTAL] Set the volumetric shadow sample count when evaluating local lights. Expenssive! Use for cinematics if needed.", type:"Var"}, {name: "r.VolumetricCloud.ReflectionRaySampleMaxCount", help:"The maximum number of samples taken while ray marching primary rays in reflections.", type:"Var"}, {name: "r.VolumetricCloud.SampleMinCount", help:"The minimum number of samples to take along a ray. This can help with quality for volume close to the camera, e.g. if cloud layer is also used as low altitude fog. SampleMinCount should remain relatively small because it is applied to all tracing process.", type:"Var"}, {name: "r.VolumetricCloud.Shadow.ReflectionRaySampleMaxCount", help:"The maximum number of samples taken while ray marching shadow rays in reflections.", type:"Var"}, {name: "r.VolumetricCloud.Shadow.SampleAtmosphericLightShadowmap", help:"Enable the sampling of atmospheric lights shadow map in order to produce volumetric shadows.", type:"Var"}, {name: "r.VolumetricCloud.Shadow.ViewRaySampleMaxCount", help:"The maximum number of samples taken while ray marching shadow rays.", type:"Var"}, {name: "r.VolumetricCloud.ShadowMap", help:"Enable/disable the shadow map, only if the scene contains a DirectionalLight component with Cast Cloud Shadows enabled on it.", type:"Var"}, {name: "r.VolumetricCloud.ShadowMap.Debug", help:"Print information to debug the cloud shadow map.", type:"Var"}, {name: "r.VolumetricCloud.ShadowMap.LightDistanceOverride", help:"When > 0, overrides the volumetric cloud shadow map light distance from the ground (km). This would usually be based on the shadow map extent.", type:"Var"}, {name: "r.VolumetricCloud.ShadowMap.MaxResolution", help:"The maximum resolution of the cloud shadow map. The active resolution is controlled by the CloudShadowMapResolutionScale property on the Directional Light component.", type:"Var"}, {name: "r.VolumetricCloud.ShadowMap.RaySampleHorizonMultiplier", help:"The multipler on the sample count applied when the atmospheric light reach the horizon. Less pixels in the shadow map need to be traced, but rays need to travel a lot longer.", type:"Var"}, {name: "r.VolumetricCloud.ShadowMap.RaySampleMaxCount", help:"The maximum number of samples taken while ray marching shadow rays to evaluate the cloud shadow map.", type:"Var"}, {name: "r.VolumetricCloud.ShadowMap.SnapLength", help:"Snapping size in kilometers of the cloud shadowmap position to avoid flickering.", type:"Var"}, {name: "r.VolumetricCloud.ShadowMap.SnapToPixelGrid", help:"Snaps world origin to the shadow map pixel grid. Avoids shimmering with camera movement when r.VolumetricCloud.ShadowMap.SnapLength is small.", type:"Var"}, {name: "r.VolumetricCloud.ShadowMap.SpatialFiltering", help:"Enable/disable the shadow map dilation/smoothing spatial filter. Enabled when greater than 0 and it represents the number of blur iterations (constrained to a maximum of 4).", type:"Var"}, {name: "r.VolumetricCloud.ShadowMap.TemporalFiltering.LightRotationCutHistory", help:"When the atmospheric light rotation in degree is larger than that, the temporal accumulation is restarted.", type:"Var"}, {name: "r.VolumetricCloud.ShadowMap.TemporalFiltering.NewFrameWeight", help:"Experimental and needs more work so disabled by default. Value between [0.0, 1.0] representing the weight of current frame\'s contribution. Low values can cause precision issues resulting in depth not converging over time. Disabled when set to 1.", type:"Var"}, {name: "r.VolumetricCloud.SkyAO", help:"Enable/disable cloud sky ambient occlusion, the scene must contain a Skylight component with Cloud Ambient Occlusion enabled on it.", type:"Var"}, {name: "r.VolumetricCloud.SkyAO.Debug", help:"Print information to debug the cloud sky AO map.", type:"Var"}, {name: "r.VolumetricCloud.SkyAO.Filtering", help:"Enable/disable the sky AO dilation/smoothing filter.", type:"Var"}, {name: "r.VolumetricCloud.SkyAO.MaxResolution", help:"The maximum resolution of the texture storing ambient occlusion information for the environment lighting coming from sky light. The active resolution is controlled by the CloudAmbientOcclusionMapResolutionScale property on the Skylight component.", type:"Var"}, {name: "r.VolumetricCloud.SkyAO.SnapLength", help:"Snapping size in kilometers of the cloud sky AO texture position to avoid flickering.", type:"Var"}, {name: "r.VolumetricCloud.SkyAO.TraceSampleCount", help:"The number of samples taken to evaluate ground lighting occlusion.", type:"Var"}, {name: "r.VolumetricCloud.SoftBlendingDistanceOnTranslucent", help:"The soft blending in distance in kilometer used to soft blend in cloud over translucent from the evaluated start depth.", type:"Var"}, {name: "r.VolumetricCloud.StepSizeOnZeroConservativeDensity", help:"Raymarch step size when a sample giving zero conservative density is encountered. If > 1, performance will likely improve but banding artifacts can show up if too large.", type:"Var"}, {name: "r.VolumetricCloud.ViewRaySampleMaxCount", help:"The maximum number of samples taken while ray marching view primary rays.", type:"Var"}, {name: "r.VolumetricFog.ConservativeDepth", help:"[Experimental] Whether to allow the volumetric to use conservative depth to accelerate computations.", type:"Var"}, {name: "r.VolumetricFog.Emissive", help:"Whether to allow the volumetric fog emissive component.", type:"Var"}, {name: "r.VolumetricFog.InjectRaytracedLights", help:"Whether lights with ray traced shadows are injected into volumetric fog", type:"Var"}, {name: "r.VolumetricFog.LightFunctionSupersampleScale", help:"Scales the slice depth distribution.", type:"Var"}, {name: "r.VolumetricFog.LightFunction", help:"This is an alias, please use r.VolumetricFog.UsesLightFunctionAtlas.", type:"Var"}, {name: "r.VolumetricFog.LightFunction.DirectionalLightSupersampleScale", help:"Scales the slice depth distribution.", type:"Var"}, {name: "r.VolumetricFog.LightScatteringSampleJitterMultiplier", help:"Multiplier for random offset value used to jitter each world sample position when generating the 3D fog volume. Enable/disable with r.VolumetricFog.Jitter", type:"Var"}, {name: "r.VolumetricFog.LightSoftFading", help:"Enabled when >0, controls the soft fading of spot and rect light edges in order to make them appear smoother, resulting in less flickering. A value of 1 is a good starting point and it means that fading will be applied over the size of 1 froxel on the screen.", type:"Var"}, {name: "r.VolumetricFog.RectLightTexture", help:"Whether to allow the volumetric fog to use rect light source texture.", type:"Var"}, {name: "r.VolumetricFog.UpsampleJitterMultiplier", help:"Multiplier for random offset value used to jitter the sample position of the 3D fog volume to hide fog pixelization due to sampling from a lower resolution texture.", type:"Var"}, {name: "r.VolumetricFog.UsesLightFunctionAtlas", help:"Whether the light function atlas is sampled when rendering local lights.", type:"Var"}, {name: "r.VPLDirectionalLightTraceDistance", help:"", type:"Var"}, {name: "r.VPLGridDimension", help:"", type:"Var"}, {name: "r.VPLMeshGlobalIllumination", help:"", type:"Var"}, {name: "r.VPLPlacementCameraRadius", help:"", type:"Var"}, {name: "r.VPLSelfOcclusionReplacement", help:"", type:"Var"}, {name: "r.VPLSpreadUpdateOver", help:"", type:"Var"}, {name: "r.VPLSurfelRepresentation", help:"", type:"Var"}, {name: "r.VPLViewCulling", help:"", type:"Var"}, {name: "r.VolumetricRenderTarget", help:"", type:"Var"}, {name: "r.VolumetricRenderTarget.MinimumDistanceKmToEnableReprojection", help:"This is the distance in kilometer at which the `cloud surface` must be before we enable reprojection of the previous frame data. One could start with a value of 4km. This helps hide reprojection issues due to imperfect approximation of cloud depth as a single front surface, especially visible when flying through the cloud layer. It is not perfect but will help in lots of cases. The problem when using this method: clouds will look noisier when closer to that distance.", type:"Var"}, {name: "r.VolumetricRenderTarget.Mode", help:"[0] trace quarter resolution + reconstruct at half resolution + upsample [1] trace half res + upsample [2] trace at quarter resolution + reconstruct full resolution (cannot intersect with opaque meshes and forces UpsamplingMode=2 [3] Cinematic mode with tracing done at full reoslution in render target so that clouds can also be applied on translucent.)", type:"Var"}, {name: "r.VolumetricRenderTarget.PreferAsyncCompute", help:"Whether to prefer using async compute to generate volumetric cloud render targets.", type:"Var"}, {name: "r.VolumetricRenderTarget.ReprojectionBoxConstraint", help:"Whether reprojected data should be constrained to the new incoming cloud data neighborhod value.", type:"Var"}, {name: "r.VolumetricRenderTarget.Scale", help:"Scales volumetric render target size (1.0 = 100%). Supported by VRT mode 2 only.", type:"Var"}, {name: "r.VolumetricRenderTarget.UpsamplingMode", help:"Used in compositing volumetric RT over the scene. [0] bilinear [1] bilinear + jitter [2] nearest + depth test [3] bilinear + jitter + keep closest [4] bilaterial upsampling", type:"Var"}, {name: "r.VolumetricRenderTarget.UvNoiseSampleAcceptanceWeight", help:"Used when r.VolumetricRenderTarget.UpsamplingMode is in a mode using jitter - this value control the acceptance of noisy cloud samples according to their similarities. A higher value means large differences will be less accepted for blending.", type:"Var"}, {name: "r.Voxel", help:"", type:"Var"}, {name: "r.Voxel.Level2", help:"", type:"Var"}, {name: "r.Voxel.Method", help:"", type:"Var"}, {name: "r.Voxel.TileSize", help:"", type:"Var"}, {name: "r.VRS.BasePass", help:"Enables Variable Rate Shading for the base pass\n0: Disabled1: Full2: Conservative (default)", type:"Var"}, {name: "r.VRS.ContrastAdaptiveShading", help:"Enables using Variable Rate Shading based on the luminance from the previous frame\'s post process output \n", type:"Var"}, {name: "r.VRS.ContrastAdaptiveShading.ConservativeEdgeThreshold", help:"", type:"Var"}, {name: "r.VRS.ContrastAdaptiveShading.EdgeThreshold", help:"", type:"Var"}, {name: "r.VRS.ContrastAdaptiveShading.HDR10CorrectionMultiplier", help:"Approximation multiplier to account for how perceptual values are spread out in SDR vs HDR10\n", type:"Var"}, {name: "r.VRS.ContrastAdaptiveShading.Preview", help:"Whether to include CAS in VRS preview overlay.0 - off, 1 - on (default)", type:"Var"}, {name: "r.VRS.DebugForceRate", help:"-1: None, 0: Force 1x1, 1: Force 1x2, 2: Force 2x1, 3: Force 2x2, 4: Force 2x4, 5: Force 4x2, 6: Force 4x4", type:"Var"}, {name: "r.VRS.Decals", help:"Enables Variable Rate Shading for decals\n0: Disabled1: Full2: Conservative (default)", type:"Var"}, {name: "r.VRS.Enable", help:"Enables hardware Variable Rate Shading and Shading Rate Image generation (8x8 or 16x16 tile size).0: Off, 1: On", type:"Var"}, {name: "r.VRS.EnableSoftware", help:"Enables software (2x2 tile size) Shading Rate Image generation for use with Nanite Software VRS. Allows generating iamges even when r.VRS.Enable/r.VRS.Support=0 or Tier 2 VRS is unsupported by the hardware.Image generation will only be enabled if r.Nanite.SoftwareVRS is also set to 1.0: Off, 1: On", type:"Var"}, {name: "r.VRS.LightFunctions", help:"Enables Variable Rate Shading for light functions\n0: Disabled1: Full (default)2: Conservative", type:"Var"}, {name: "r.VRS.NaniteEmitGBuffer", help:"Enable VRS with Nanite EmitGBuffer rendering.\n0: Disabled1: Full2: Conservative (default)", type:"Var"}, {name: "r.VRS.Preview", help:"Show a debug visualization of the VRS shading rate image texture. Conservative and software images are only available via Contrast Adaptive Shading.0 - off, 1 - full (hardware), 2 - conservative (hardware), 3 - full (software), 4 - conservative (software)", type:"Var"}, {name: "r.VRS.ReflectionEnvironmentSky", help:"Enable VRS with ReflectionEnvironmentAndSky (PS) rendering.\n0: Disabled1: Full2: Conservative (default)", type:"Var"}, {name: "r.VRS.SSAO", help:"Enable VRS with SSAO rendering.\n0: Disabled1: Full2: Conservative (default)", type:"Var"}, {name: "r.VRS.SSR", help:"Enable VRS with SSR (PS) rendering.\n0: Disabled1: Full2: Conservative (default)", type:"Var"}, {name: "r.VRS.Support", help:"Toggles support for hardware Variable Rate Shading. Requires shader recompilation.0: Off, 1: On", type:"Var"}, {name: "r.VRS.Translucency", help:"Enable VRS with translucency rendering.\n0: Disabled1: Full (default)2: Conservative", type:"Var"}, {name: "r.VsyncInformationInsights", help:"Whether to show Vsync and Input events in UnrealInsights", type:"Var"}, {name: "r.VT.AnisotropicFiltering", help:"Is anisotropic filtering for VTs enabled?", type:"Var"}, {name: "r.VT.AsyncPageRequestTask", help:"Performs VT page requests on an async task.", type:"Var"}, {name: "r.VT.AVT.AgeToFree", help:"Number of frames for an allocation to be unused before it is considered for free", type:"Var"}, {name: "r.VT.AVT.LevelIncrement", help:"Number of levels to increment each time we grow an allocated virtual texture", type:"Var"}, {name: "r.VT.AVT.MaxAllocPerFrame", help:"Max number of allocated VT for adaptive VT to alloc per frame", type:"Var"}, {name: "r.VT.AVT.MaxFreePerFrame", help:"Max number of allocated VT for adaptive VT to free per frame", type:"Var"}, {name: "r.VT.AVT.MaxPageResidency", help:"Percentage of page table to allocate before we start freeing to make space", type:"Var"}, {name: "r.VT.Dump", help:"Lot a whole lot of info on the VT system state.", type:"Cmd"}, {name: "r.VT.EnableCompressCrunch", help:"Enable Crunch compression for virtual textures, for supported formats", type:"Var"}, {name: "r.VT.EnableCompressZlib", help:"Enables Zlib compression for virtual textures, if no compression is enabled/supported", type:"Var"}, {name: "r.VT.EnableFeedBack", help:"process readback buffer? dev option.", type:"Var"}, {name: "r.VT.CsvStats", help:"Send virtual texturing stats to CSV profiler\n0=off, 1=on, 2=verbose", type:"Var"}, {name: "r.VT.Dump", help:"Dump a whole lot of info on the VT system state.", type:"Cmd"}, {name: "r.VT.DumpPoolUsage", help:"Dump detailed info about VT pool usage.", type:"Cmd"}, {name: "r.VT.EnableAutoImport", help:"Enable virtual texture on texture import", type:"Var"}, {name: "r.VT.EnableFeedback", help:"Enable processing of the GPU generated feedback buffer.", type:"Var"}, {name: "r.vt.FeedbackFactor", help:"The size of the VT feedback buffer is calculated by dividing the render resolution by this factor", type:"Var"}, {name: "r.VT.EnablePlayback", help:"Enable playback of recorded feedback requests.", type:"Var"}, {name: "r.vt.FeedbackFactor", help:"The size of the VT feedback buffer is calculated by dividing the render resolution by this factor.The value set here is rounded up to the nearest power of two before use.", type:"Var"}, {name: "r.VT.FlushAndEvictFileCache", help:"Flush both the virtual texture physcial page cache and disk file cachje", type:"Cmd"}, {name: "r.VT.ListPhysicalPools", help:"Lot a whole lot of info on the VT system state.", type:"Cmd"}, {name: "r.VT.FlushAndEvictFileCache", help:"Flush both the virtual texture physcial page cache and disk file cache", type:"Cmd"}, {name: "r.VT.ForceContinuousUpdate", help:"Force continuous update on all virtual textures.", type:"Var"}, {name: "r.VT.IOPriority_HighPagePri", help:"Priority of high priority VT I/O requests", type:"Var"}, {name: "r.VT.IOPriority_NormalPagePri", help:"Priority of default priority VT I/O requests", type:"Var"}, {name: "r.VT.ListPhysicalPools", help:"Dump a whole lot of info on the VT system state.", type:"Cmd"}, {name: "r.VT.MaxUploadsPerFrame", help:"Max number of page uploads per frame", type:"Var"}, {name: "r.VT.NumFeedbackTasks", help:"Number of tasks to create to process virtual texture updates.", type:"Var"}, {name: "r.VT.NumGatherTasks", help:"Number of tasks to create to process virtual texture updates.", type:"Var"}, {name: "r.VT.NumTranscodeRequests", help:"Number of transcode request that can be in flight. default 128\n", type:"Var"}, {name: "r.VT.MaxAnisotropy", help:"MaxAnisotropy setting for Virtual Texture sampling.", type:"Var"}, {name: "r.VT.MaxContinuousUpdatesPerFrame", help:"Max number of page uploads for pages that are already mapped.", type:"Var"}, {name: "r.VT.MaxContinuousUpdatesPerFrameInEditor", help:"Max number of page uploads for pages that are already mapped when in editor.", type:"Var"}, {name: "r.VT.MaxReleasedPerFrame", help:"Max number of allocated virtual textures to release per frame", type:"Var"}, {name: "r.VT.MaxTilesProducedPerFrame", help:"Max number of pages that can be produced per frame", type:"Var"}, {name: "r.VT.MaxUploadMemory", help:"Maximum amount of upload memory to allocate in MB before throttling virtual texture streaming requests.\nWe never throttle high priority requests so allocation can peak above this value.", type:"Var"}, {name: "r.VT.MaxUploadRequests", help:"Maximum number of virtual texture tile upload requests that can be in flight.", type:"Var"}, {name: "r.VT.MaxUploadsPerFrame", help:"Max number of page uploads per frame in game", type:"Var"}, {name: "r.VT.MaxUploadsPerFrame.Streaming", help:"If positive, max number of page uploads per frame in game for streaming VT. Negative means no limit.\nIf zero, SVTs won\'t be budgeted separately. They will be limited by r.VT.MaxUploadsPerFrame along with other types of VTs. This is the old behavior.\nThis limit should be high if streaming pages is slow so that I/O requests are not throttled which can cause long delays to acquire page data.", type:"Var"}, {name: "r.VT.MaxUploadsPerFrameInEditor", help:"Max number of page uploads per frame when in editor", type:"Var"}, {name: "r.VT.MenuRestricted", help:"Restrict virtual texture menu options", type:"Var"}, {name: "r.VT.Mobile.ManualTrilinearFiltering", help:"Whether to use a manual trilinear filtering for VTs on mobile platforms.\nThis more expensive filtering is used on mobile platforms that do not support Temporal Anti-Aliasing.\n", type:"Var"}, {name: "r.VT.NumFeedbackTasks", help:"Number of tasks to create to read virtual texture feedback.", type:"Var"}, {name: "r.VT.NumGatherTasks", help:"Number of tasks to create to combine virtual texture feedback.", type:"Var"}, {name: "r.VT.PageFreeThreshold", help:"Number of frames since the last time a VT page was used, before it\'s considered free.\nVT pages are not necesarily marked as used on the CPU every time they\'re accessed by the GPU.\nIncreasing this threshold reduces the chances that an in-use frame is considered free.", type:"Var"}, {name: "r.VT.ParallelFeedbackTasks", help:"Use worker threads for virtual texture feedback tasks.", type:"Var"}, {name: "r.VT.PlaybackMipBias", help:"Mip bias to apply during playback of recorded feedback requests.", type:"Var"}, {name: "r.VT.PoolAutoGrow", help:"Enable physical pool growing on oversubscription.", type:"Var"}, {name: "r.VT.PoolSizeScale", help:"Scale factor for virtual texture physical pool size.\n", type:"Var"}, {name: "r.VT.ProduceLockedTilesOnFlush", help:"Should locked tiles be (re)produced when flushing the cache", type:"Var"}, {name: "r.VT.TileBorderSize", help:"Size in pixels to use for virtual texture tiles borders (rounded to next power-of-2)", type:"Var"}, {name: "r.VT.RenderCaptureNextPagesDraws", help:"Trigger a render capture during the next RVT RenderPages draw calls.", type:"Var"}, {name: "r.VT.Residency.AdjustmentRate", help:"Rate at which we adjust mip bias due to Virtual Texture pool residency.\nDefault 0.2", type:"Var"}, {name: "r.VT.Residency.LockedUpperBound", help:"Virtual Texture pool locked page residency above which we kill any mip bias.\nThat\'s because locked pages are never affected by the mip bias setting. So it is unlikely that we can get the pool within budget.\nDefault 0.65", type:"Var"}, {name: "r.VT.Residency.LowerBound", help:"Virtual Texture pool residency below which we decrease mip bias.\nDefault 0.95", type:"Var"}, {name: "r.VT.Residency.MaxMipMapBias", help:"Maximum mip bias to apply to prevent Virtual Texture pool residency over-subscription.\nDefault 4", type:"Var"}, {name: "r.VT.Residency.Notify", help:"Show on screen notifications for virtual texture physical pool residency", type:"Var"}, {name: "r.VT.Residency.Show", help:"Show on screen HUD for virtual texture physical pool residency", type:"Var"}, {name: "r.VT.Residency.UpperBound", help:"Virtual Texture pool residency above which we increase mip bias.\nDefault 0.95", type:"Var"}, {name: "r.VT.RVT.DirectCompress", help:"Compress texture data direct to the physical texture on platforms that support it.", type:"Var"}, {name: "r.VT.RVT.DirtyPagesKeptMappedFrames", help:"Number of frames since the last time a VT page was used, before it will be unmapped instead of simply updated during RVT page invalidation.", type:"Var"}, {name: "r.VT.RVT.EnableBaseColor", help:"Enable \'Base Color\' RVT Material Type", type:"Var"}, {name: "r.VT.RVT.EnableBaseColorRoughness", help:"Enable \'Base Color, Normal, Roughness\' RVT Material Type", type:"Var"}, {name: "r.VT.RVT.EnableBaseColorSpecular", help:"Enable \'Base Color, Normal, Roughness, Specular\' family of RVT Material Types", type:"Var"}, {name: "r.VT.RVT.EnableDisplacement", help:"Enable \'Displacement\' RVT Material Type", type:"Var"}, {name: "r.VT.RVT.EnableMask4", help:"Enable \'Mask4\' RVT Material Type", type:"Var"}, {name: "r.VT.RVT.EnableWorldHeight", help:"Enable \'World Height\' RVT Material Type", type:"Var"}, {name: "r.VT.RVT.HighQualityPerPixelHeight", help:"Use higher quality sampling of per pixel heightmaps when rendering to Runtime Virtual Texture.\n", type:"Var"}, {name: "r.VT.RVT.MipColors", help:"Render mip colors to RVT BaseColor.", type:"Var"}, {name: "r.VT.RVT.StreamingMips", help:"Enable streaming mips for RVT", type:"Var"}, {name: "r.VT.RVT.StreamingMips.UseAlways", help:"Whenever streaming low mips are in use, only show the streaming mips and never show runtime generated pages.\n", type:"Var"}, {name: "r.VT.RVT.StreamingMips.UseInEditor", help:"Use streaming mips for RVT when in Editor.\n 0: Never use.\n 1: Use the setting from RVT component (default).\n 2: Always use when available.\n", type:"Var"}, {name: "r.VT.RVT.TileCountBias", help:"Bias to apply to Runtime Virtual Texture size.\n Group 0", type:"Var"}, {name: "r.VT.RVT.TileCountBias.Group0", help:"Bias to apply to Runtime Virtual Texture size.\n Group 0", type:"Var"}, {name: "r.VT.RVT.TileCountBias.Group1", help:"Bias to apply to Runtime Virtual Texture size.\n Group 1", type:"Var"}, {name: "r.VT.RVT.TileCountBias.Group2", help:"Bias to apply to Runtime Virtual Texture size.\n Group 2", type:"Var"}, {name: "r.VT.SaveAllocatorImages", help:"Save images showing allocator usage.", type:"Cmd"}, {name: "r.VT.ShowDecodeErrors", help:"Highlight virtual textures with decode errors in hot pink.", type:"Cmd"}, {name: "r.VT.SplitPhysicalPoolSize", help:"Create multiple physical pools per format to keep pools at this maximum size in tiles.\nA value of 64 tiles will force 16bit page tables. This can be a page table memory optimization for large physical pools.\nDefaults to 0 (off).", type:"Var"}, {name: "r.VT.Support16BitPageTable", help:"Enable support for 16 bit page table entries.\nThis can reduce page table memory when only 16bit addressing is needed.\nBut this can increase the number of page table spaces required when a mixture of 16bit and 32bit addressing is needed.\nDefaults on.\n", type:"Var"}, {name: "r.VT.SyncProduceLockedTiles", help:"Should we sync loading when producing locked tiles", type:"Var"}, {name: "r.VT.TileBorderSize", help:"Size in pixels to use for virtual texture tiles borders (rounded to multiple-of-2)", type:"Var"}, {name: "r.VT.UploadMemoryPageSize", help:"Size in MB for a single page of virtual texture upload memory.", type:"Var"}, {name: "r.VT.ValidateCompressionOnLoad", help:"Validates that VT data contains no compression errors when loading from DDCThis is slow, but allows debugging corrupt VT data (and allows recovering from bad DDC)", type:"Var"}, {name: "r.VT.ValidateCompressionOnSave", help:"Validates that VT data contains no compression errors before saving to DDCThis is slow, but allows debugging corrupt VT data", type:"Var"}, {name: "r.Vulkan.AllowAsyncCompute", help:"0 to disable async compute queue(if available)1 to allow async compute queue", type:"Var"}, {name: "r.Vulkan.AllowPresentOnComputeQueue", help:"0 to present on the graphics queue1 to allow presenting on the compute queue if available", type:"Var"}, {name: "r.Vulkan.AllowUniformUpload", help:"Allow Uniform Buffer uploads outside of renderpasses\n 0: Disabled, buffers are always reallocated\n 1: Enabled, buffers are uploaded outside renderpasses", type:"Var"}, {name: "r.Vulkan.AlwaysWriteDS", help:"", type:"Var"}, {name: "r.Vulkan.CPURenderthreadFramePacer", help:"Whether to enable the simple RHI thread CPU Framepacer for Vulkan", type:"Var"}, {name: "r.Vulkan.CPURHIThreadFramePacer", help:"Whether to enable the simple RHI thread CPU Framepacer for Vulkan", type:"Var"}, {name: "r.Vulkan.CpuWaitForFence", help:"Whether to have the Cpu wait for the fence in AcquireImageIndex", type:"Var"}, {name: "r.Vulkan.DebugBarrier", help:"Forces a full barrier for debugging. This is a mask/bitfield (so add up the values)!\n 0: Don\'t (default)\n 1: Enable heavy barriers after EndRenderPass()\n 2: Enable heavy barriers after every dispatch\n 4: Enable heavy barriers after upload cmd buffers\n 8: Enable heavy barriers after active cmd buffers\n 16: Enable heavy buffer barrier after uploads\n 32: Enable heavy buffer barrier between acquiring back buffer and blitting into swapchain\n", type:"Var"}, {name: "r.Vulkan.DebugVsync", help:"Whether to print vulkan vsync data", type:"Var"}, {name: "r.Vulkan.DelayAcquireBackBuffer", help:"Whether to delay acquiring the back buffer \n 0: acquire next image on frame start \n 1: acquire next image just before presenting, rendering is done to intermediate image which is then copied to a real backbuffer (default) \n 2: acquire next image on first use", type:"Var"}, {name: "r.Vulkan.DescriptorSetLayoutMode", help:"0 to not change layouts (eg Set 0 = Vertex, 1 = Pixel, etc\n1 to use a new set for common Uniform Buffers\n2 to collapse all sets into Set 0\n", type:"Var"}, {name: "r.Vulkan.DSetCacheMaxPoolLookups", help:"Maximum count of pool\'s caches to lookup before allocating new descriptor.\n", type:"Var"}, {name: "r.Vulkan.DSetCacheTargetSetsPerPool", help:"Target number of descriptor set allocations per single pool.\n", type:"Var"}, {name: "r.Vulkan.DynamicGlobalUBs", help:"2 to treat ALL uniform buffers as dynamic\n1 to treat global/packed uniform buffers as dynamic [default]\n0 to treat them as regular", type:"Var"}, {name: "r.Vulkan.EnableValidation", help:"0 to disable validation layers (default)\n1 to enable errors\n2 to enable errors & warnings\n3 to enable errors, warnings & performance warnings\n4 to enable errors, warnings, performance & information messages\n5 to enable all messages", type:"Var"}, {name: "r.Vulkan.ExtensionFramePacer", help:"Whether to enable the google extension Framepacer for Vulkan (when available on device)", type:"Var"}, {name: "r.Vulkan.ForceCoherentOperations", help:"1 forces memory invalidation and flushing of coherent memory\n", type:"Var"}, {name: "r.Vulkan.IgnoreCPUReads", help:"Debugging utility for GPU->CPU reads.\n 0 will read from the GPU (default).\n 1 will read from GPU but fill the buffer instead of copying from a texture.\n 2 will NOT read from the GPU and fill with zeros.\n", type:"Var"}, {name: "r.Vulkan.PipelineCacheCompression", help:"Enable/disable compression on the Vulkan pipeline cache disk file\n", type:"Var"}, {name: "r.Vulkan.PipelineCacheFromShaderPipelineCache", help:"0 look for a pipeline cache in the normal locations with the normal names.1 tie the vulkan pipeline cache to the shader pipeline cache, use the PSOFC guid as part of the filename, etc.", type:"Var"}, {name: "r.Vulkan.PipelineCacheLoad", help:"0 to disable loading the pipeline cache1 to enable using pipeline cache", type:"Var"}, {name: "r.Vulkan.PipelineLRUCacheEvictBinaryPreloadScreen", help:"1: Use a preload screen while loading preevicted PSOs ala r.Vulkan.PipelineLRUCacheEvictBinary", type:"Var"}, {name: "r.Vulkan.ProfileCmdBuffers", help:"Insert GPU timing queries in every cmd buffer\n", type:"Var"}, {name: "r.Vulkan.RHIThread", help:"0 to only use Render Thread\n1 to use ONE RHI Thread\n2 to use multiple RHI Thread\n", type:"Var"}, {name: "r.Vulkan.RobustBufferAccess", help:"0 to disable robust buffer access1 to enable (default)", type:"Var"}, {name: "r.Vulkan.StandardValidation", help:"2 to use VK_LAYER_KHRONOS_validation (default) if available\n1 to use VK_LAYER_LUNARG_standard_validation if available, or \n0 to use individual validation layers (deprecated)", type:"Var"}, {name: "r.Vulkan.SubmitAfterEveryEndRenderPass", help:"Forces a submit after every end render pass.\n 0: Don\'t(default)\n 1: Enable submitting", type:"Var"}, {name: "r.Vulkan.SubmitOcclusionBatchCmdBuffer", help:"1 to submit the cmd buffer after end occlusion query batch (default)", type:"Var"}, {name: "r.Vulkan.SubmitOnCopyToResolve", help:"Submits the Queue to the GPU on every RHICopyToResolveTarget call.\n 0: Do not submit (default)\n 1: Submit", type:"Var"}, {name: "r.Vulkan.SubmitOnDispatch", help:"0 to not do anything special on dispatch(default)\n1 to submit the cmd buffer after each dispatch", type:"Var"}, {name: "r.Vulkan.SubmitOnTextureUnlock", help:"Whether to submit upload cmd buffer on each texture unlock.\n 0: Do not submit\n 1: Submit (default)", type:"Var"}, {name: "r.Vulkan.UniqueValidationMessages", help:"Filter out validation errors with the same code (only when r.Vulkan.EnableValidation is non zero)", type:"Var"}, {name: "r.Vulkan.UseBufferBinning", help:"Enable binning sub-allocations within buffers to help reduce fragmentation at the expense of higher high watermark [read-only]\n", type:"Var"}, {name: "r.Vulkan.UseRealUBs", help:"0: Emulate uniform buffers on Vulkan SM4/SM5 (debugging ONLY)\n1: Use real uniform buffers [default]", type:"Var"}, {name: "r.Vulkan.UseSingleQueue", help:"Forces using the same queue for uploads and graphics.\n 0: Uses multiple queues(default)\n 1: Always uses the gfx queue for submissions", type:"Var"}, {name: "r.Vulkan.WaitForIdleOnSubmit", help:"Waits for the GPU to be idle on every submit. Useful for tracking GPU hangs.\n 0: Do not wait(default)\n 1: Wait", type:"Var"}, {name: "r.WarningOnRedundantTransformUpdate", help:"Produce a warning when UpdatePrimitiveTransform_RenderThread is called redundantly.", type:"Var"}, {name: "r.WarnOfBadDrivers", help:"On engine startup we can check the current GPU driver and warn the user about issues and suggest a specific version\nThe test is fast so this should not cost any performance.\n 0: off\n 1: a message on startup might appear (default)\n 2: Simulating the system has a blacklisted NVIDIA driver (UI should appear)\n 3: Simulating the system has a blacklisted AMD driver (UI should appear)\n 4: Simulating the system has a not blacklisted AMD driver (no UI should appear)\n 5: Simulating the system has a Intel driver (no UI should appear)", type:"Var"}, {name: "r.WarningOnRedundantTransformUpdate", help:"Produce a warning when UpdatePrimitiveTransform is called redundantly.", type:"Var"}, {name: "r.WarnOfBadDrivers", help:"Check the current GPU driver on engine startup, warn the user about issues and suggest a specific version.\nThe driver denylist is used to check for bad drivers according to their release date and/or driver versions.\n 0: off\n 1: check the driver and display a pop-up message if the driver is denylisted (default)", type:"Var"}, {name: "r.WarpCulling", help:"Enable Warp Culling optimization for platforms that support it.\n 0: Disable (default)\n 1: Enable", type:"Var"}, {name: "r.Water.SingleLayer", help:"Enable the single water rendering system.", type:"Var"}, {name: "r.Water.SingleLayer.DepthPrepass", help:"Enable a depth prepass for single layer water. Necessary for proper Virtual Shadow Maps support.", type:"Var"}, {name: "r.Water.SingleLayer.DistanceFieldShadow", help:"When using deferred, distance field shadow tracing is supported on single layer water. This cvar can be used to toggle it on/off at runtime.", type:"Var"}, {name: "r.Water.SingleLayer.OptimizedClear", help:"Toggles optimized depth clear", type:"Var"}, {name: "r.Water.SingleLayer.Reflection", help:"Reflection technique to use on single layer water. 0: Disabled, 1: Enabled (same as rest of scene), 2: Force Reflection Captures and Sky, 3: Force SSR", type:"Var"}, {name: "r.Water.SingleLayer.RefractionDownsampleFactor", help:"Resolution divider for the water refraction buffer.", type:"Var"}, {name: "r.Water.SingleLayer.ShadersSupportDistanceFieldShadow", help:"Whether or not the single layer water material shaders are compiled with support for distance field shadow, i.e. output main directional light luminance in a separate render target. This is preconditioned on using deferred shading and having distance field support enabled in the project.", type:"Var"}, {name: "r.Water.SingleLayer.ShadersSupportVSMFiltering", help:"Whether or not the single layer water material shaders are compiled with support for virtual shadow map filter, i.e. output main directional light luminance in a separate render target. This is preconditioned on using deferred shading and having VSM support enabled in the project.", type:"Var"}, {name: "r.Water.SingleLayer.SSRTAA", help:"Enable SSR denoising using TAA for the single layer water rendering system.", type:"Var"}, {name: "r.Water.SingleLayer.TiledComposite", help:"Enable tiled optimization of the single layer water reflection rendering system.", type:"Var"}, {name: "r.Water.SingleLayer.UnderwaterFogWhenCameraIsAboveWater", help:"Renders height fog behind the water surface even when the camera is above water. This avoids artifacts when entering and exiting the water with strong height fog in the scene but causes artifacts when looking at the water surface from a distance.", type:"Var"}, {name: "r.Water.SingleLayer.VSMFiltering", help:"When using deferred, virtual shadow map filtering is supported on single layer water. This cvar can be used to toggle it on/off at runtime.", type:"Var"}, {name: "r.Water.SingleLayerWater.SupportCloudShadow", help:"Enables cloud shadows on SingleLayerWater materials.", type:"Var"}, {name: "r.Water.WaterInfo.DilationOverwriteMinimumDistance", help:"The minimum distance below the ground when we allow dilation to write on top of water", type:"Var"}, {name: "r.Water.WaterInfo.RenderCaptureNextWaterInfoDraws", help:"Enable capturing of the water info texture for the next N draws", type:"Var"}, {name: "r.Water.WaterInfo.UndergroundDilationDepthOffset", help:"The minimum distance below the ground when we allow dilation to write on top of water", type:"Var"}, {name: "r.XGEController.AvoidUsingLocalMachine", help:"Whether XGE tasks should avoid running on the local machine (to reduce the oversubscription with local async and out-of-process work).\n0: Do not avoid. Distributed tasks will be spawned on all available XGE agents. Can cause oversubscription on the initiator machine. \n1: Avoid spawning tasks on the local (initiator) machine except when running a commandlet or -buildmachine is passed (default).\n2: Avoid spawning tasks on the local (initiator) machine.", type:"Var"}, {name: "r.XGEShaderCompile", help:"Enables or disables the use of XGE to build shaders.\n0: Local builds only. \n1: Distribute builds using XGE (default).", type:"Var"}, {name: "r.XGEShaderCompile.Mode", help:"Selects which dispatch mode to use.\n0: Use legacy xml dispatch mode. (default)\n1: Prefer interception mode if available (requires XGE controller support). Falls back to legacy mode otherwise.\n2: Force interception mode. Disables XGE shader compiling if XGE controller is not available.\n", type:"Var"}, {name: "r.XGEShaderCompile.Xml.BatchGroupSize", help:"Specifies the number of batches to fill with shaders.\nShaders are spread across this number of batches until all the batches are full.\nThis allows the XGE compile to go wider when compiling a small number of shaders.\nDefault = 128\n", type:"Var"}, {name: "r.XGEShaderCompile.Xml.BatchSize", help:"Specifies the number of shaders to batch together into a single XGE task.\nDefault = 16\n", type:"Var"}, {name: "r.XGEShaderCompile.Xml.JobTimeout", help:"The number of seconds to wait for additional shader jobs to be submitted before starting a build.\nDefault = 0.5\n", type:"Var"}, {name: "Radio_ChebyshevCubedMultiplier", help:"A parameter to tweak the radio filter.", type:"Var"}, {name: "Radio_ChebyshevMultiplier", help:"A parameter to tweak the radio filter.", type:"Var"}, {name: "Radio_ChebyshevPower", help:"A parameter to tweak the radio filter.", type:"Var"}, {name: "Radio_ChebyshevPowerMultiplier", help:"A parameter to tweak the radio filter.", type:"Var"}, {name: "r.XGEShaderCompile.MinBatchSize", help:"This CVar is deprecated, please use r.ShaderCompiler.DistributedMinBatchSize", type:"Var"}, {name: "rContextMenu.PercentageMatchWeightMultiplier", help:"A multiplier for how much weight to give something based on the percentage match it is", type:"Var"}, {name: "RecordTake", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "redirectcollector.DumpAllAssetRedirects", help:"Prints all tracked redirectors to the log.", type:"Cmd"}, {name: "RedirectCollector.ResolveAllSoftObjectPaths", help:"Attempts to load / resolve all currently referenced Soft Object Paths", type:"Cmd"}, {name: "RedirectToFile", help:"Creates a file inside Project\'s Saved folder and outputs command result into it as well as into the log.\nUsage: RedirectToFile <filepath/filename> <command> [command arguments]\nExample: RedirectToFile Profiling/CSV/objlist.csv obj list -csv -all\nDirectory structure under Project/Saved folder specified by <filepath> will be created for you if it doesn\'t exist.", type:"Cmd"}, {name: "ref.AllowParallelCollection", help:"Used to control parallel reference collection.", type:"Var"}, {name: "Reflect", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "ReloadGlobalShaders", help:"Reloads the global shaders file", type:"Cmd"}, {name: "ReloadPakReaders", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "renderdoc.AutoAttach", help:"RenderDoc will attach on startup.", type:"Var"}, {name: "renderdoc.BinaryPath", help:"Path to the main RenderDoc executable to use.", type:"Var"}, {name: "renderdoc.CaptureAllActivity", help:"0 - RenderDoc will only capture data from the current viewport. 1 - RenderDoc will capture all activity, in all viewports and editor windows for the entire frame.", type:"Var"}, {name: "renderdoc.CaptureCallstacks", help:"0 - Callstacks will not be captured by RenderDoc. 1 - Capture callstacks for each API call.", type:"Var"}, {name: "renderdoc.CaptureDelay", help:"If > 0, RenderDoc will trigger the capture only after this amount of time (or frames, if CaptureDelayInSeconds is false) has passed.", type:"Var"}, {name: "renderdoc.CaptureDelayInSeconds", help:"0 - Capture delay\'s unit is in frames.1 - Capture delay\'s unit is in seconds.", type:"Var"}, {name: "renderdoc.CaptureFrameCount", help:"If > 0, the RenderDoc capture will encompass more than a single frame. Note: this implies that all activity in all viewports and editor windows will be captured (i.e. same as CaptureAllActivity)", type:"Var"}, {name: "renderdoc.EnableCrashHandler", help:"0 - Crash handling is completely delegated to the engine. 1 - The RenderDoc crash handler will be used (Only use this if you know the problem is with RenderDoc and you want to notify the RenderDoc developers!).", type:"Var"}, {name: "renderdoc.ReferenceAllResources", help:"0 - Only include resources that are actually used. 1 - Include all rendering resources in the capture, even those that have not been used during the frame. Please note that doing this will significantly increase capture size.", type:"Var"}, {name: "renderdoc.SaveAllInitials", help:"0 - Disregard initial states of resources. 1 - Always capture the initial state of all rendering resources. Please note that doing this will significantly increase capture size.", type:"Var"}, {name: "renderdoc.ShowHelpOnStartup", help:"0 - Greeting has been shown and will not appear on startup. 1 - Greeting will be shown during next startup.", type:"Var"}, {name: "Replay.UseReplayConnection", help:"", type:"Var"}, {name: "rhi.Bindless.Resources", help:"Set to Enabled to enable for all shader types. Set to RayTracingOnly to restrict to Raytracing shaders.", type:"Var"}, {name: "rhi.Bindless.Samplers", help:"Set to Enabled to enable for all shader types. Set to RayTracingOnly to restrict to Raytracing shaders.", type:"Var"}, {name: "RHI.FeatureSetLimit", help:"If set to 10, limit D3D RHI to D3D10 feature level. Otherwise, it will use default. Changing this at run-time has no effect. (default is -1)", type:"Var"}, {name: "rhi.DumpResourceCounts", help:"Dumps RHI resource counts to the log", type:"Cmd"}, {name: "rhi.DumpResourceMemory", help:"Dumps RHI resource memory stats to the log\nUsage: rhi.DumpResourceMemory [<Number To Show>] [all] [summary] [Name=<Filter Text>] [Type=<RHI Resource Type>] [Transient=<no, yes, or all> [csv]", type:"Cmd"}, {name: "rhi.EnableConsole120Fps", help:"Enable Console 120fps if Monitor supports it and Console is properly setup", type:"Var"}, {name: "RHI.MaximumFrameLatency", help:"Number of frames that can be queued for render.", type:"Var"}, {name: "RHI.MaxSyncCounter", help:"Maximum sync counter to smooth out vsync transitions.", type:"Var"}, {name: "RHI.RefreshPercentageBeforePresent", help:"The percentage of the refresh period to wait before presenting.", type:"Var"}, {name: "rhi.ResourceTableCaching", help:"If 1, the RHI will cache resource table contents within a frame. Otherwise resource tables are rebuilt for every draw call.", type:"Var"}, {name: "rhi.SyncInterval", help:"Determines the frequency of VSyncs in supported RHIs. 0 - Unlocked\n 1 - 60 Hz (16.66 ms)\n 2 - 30 Hz (33.33 ms)\n 3 - 20 Hz (50.00 ms)\n", type:"Var"}, {name: "RHI.SyncIntervalOgl", help:"When synchronizing with OpenGL, specifies the interval at which to refresh.", type:"Var"}, {name: "RHI.SyncRefreshThreshold", help:"Threshold for time above which vsync will be disabled as a percentage of the refresh rate.", type:"Var"}, {name: "rhi.SyncAllowVariable", help:"When 1, allows the RHI to use variable refresh rate, if supported by the output hardware.", type:"Var"}, {name: "rhi.SyncInterval", help:"Determines the frequency of VSyncs in supported RHIs.\nThis is in multiples of 16.66 on a 60hz display, but some platforms support higher refresh rates.\nAssuming 60fps, the values correspond to:\n 0 - Unlocked (present immediately)\n 1 - Present every vblank interval\n 2 - Present every 2 vblank intervals\n 3 - etc...\n", type:"Var"}, {name: "RHI.SyncThreshold", help:"Number of consecutive \'fast\' frames before vsync is enabled.", type:"Var"}, {name: "RHI.SyncWithDWM", help:"If true, synchronize with the desktop window manager for vblank.", type:"Var"}, {name: "RHI.TargetRefreshRate", help:"If non-zero, the display will never update more often than the target refresh rate (in Hz).", type:"Var"}, {name: "RHI.TransientAllocator.BufferCacheSize", help:"The maximum number of RHI buffers to cache on each heap before garbage collecting.", type:"Var"}, {name: "RHI.TransientAllocator.GarbageCollectLatency", help:"Amount of update cycles before memory is reclaimed.", type:"Var"}, {name: "RHI.TransientAllocator.MinimumHeapSize", help:"Minimum size of an RHI transient heap in MB. Heaps will default to this size and grow to the maximum based on the first allocation (Default 128).", type:"Var"}, {name: "RHI.TransientAllocator.ParallelResourceCreation", help:"If enabled, a task is launched for each placed resource that is created.", type:"Var"}, {name: "RHI.TransientAllocator.SeparateAsyncComputeHeap", help:"If enabled, async compute only allocations are put in their own separate heap.", type:"Var"}, {name: "RHI.TransientAllocator.TextureCacheSize", help:"The maximum number of RHI textures to cache on each heap before garbage collecting.", type:"Var"}, {name: "rhi.UseSubmissionThread", help:"Whether to enable the RHI submission thread.\n 0: No\n 1: Yes, but not when running with multi-gpu.\n 2: Yes, always\n", type:"Var"}, {name: "RHIPoolAllocator.DefragMaxPoolsToClear", help:"Maximum amount of pools to try and clear during a single alloctor defrag call (default: 1 - negative then all pools will be tried and no timeslicing)", type:"Var"}, {name: "RHIPoolAllocator.DefragSizeFraction", help:"Skip defrag of pool if usage is more than given fraction (default: 0.9f).", type:"Var"}, {name: "RHIPoolAllocator.ValidateLinkedList", help:"Validate all the internal linked list data of all the RHIPoolAllocators during every operation.", type:"Var"}, {name: "RigVM.DisableExecutionAll", help:"if nonzero we disable all execution of rigvms.", type:"Var"}, {name: "RigVM.DisableNativizedVMs", help:"if nonzero we disable swapping to nativized VMs.", type:"Var"}, {name: "RigVM.EnableDrawInterfaceInShipping", help:"Set to 1 to enable control rig draw interface in shipping", type:"Var"}, {name: "RigVM.EnableNodeLayouts", help:"Set to true to turn on support for node layouts", type:"Var"}, {name: "RigVM.EnablePinDefaultTypes", help:"enables the use of pin default types", type:"Var"}, {name: "RigVM.EnablePostLoadHashing", help:"When true refreshing the RigVMGraphs will be skipped if the hash matches the serialized hash.", type:"Var"}, {name: "RigVM.EnablePreLoadFiltering", help:"When true the RigVMGraphs will be skipped during preload to speed up load times.", type:"Var"}, {name: "RigVM.EnableVariants", help:"enables the UI bits to create a variant of assets / functions", type:"Var"}, {name: "RigVM.Graph.DisableCompactNodes", help:"When true all nodes are going to be drawn as full nodes.", type:"Var"}, {name: "RigVM.NameCacheMaxSize", help:"Change to control how many names are cached per VM instance.", type:"Var"}, {name: "RigVM.ReportAllMessages", help:"Report all log messages, even when no logging procedure has been setup.", type:"Var"}, {name: "RigVM.StackDetailedLabels", help:"Set to true to turn on detailed labels for the execution stack widget", type:"Var"}, {name: "RigVM.UInterfaceSupport", help:"When true the RigVMCompiler will allow UInterfaces.", type:"Var"}, {name: "RigVM.UObjectSupport", help:"When true the RigVMCompiler will allow UObjects.", type:"Var"}, {name: "RunPerfTests", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "RunProductTests", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "RunCommandlet", help:"<Commandlet> <Args...>. NOTE: This is for debugging/iteration purposes only! Running commandlets multiple times in an editor session may result in issues!", type:"Cmd"}, {name: "RunTask", help:"", type:"Cmd"}, {name: "RunUAT", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "s.AdaptiveAddToWorld.AddToWorldTimeSliceMax", help:"Maximum adaptive AddToWorld timeslice", type:"Var"}, {name: "s.AdaptiveAddToWorld.AddToWorldTimeSliceMin", help:"Minimum adaptive AddToWorld timeslice", type:"Var"}, {name: "s.AdaptiveAddToWorld.Enabled", help:"Enables the adaptive AddToWorld timeslice (replaces s.LevelStreamingActorsUpdateTimeLimit) (default: off)", type:"Var"}, {name: "s.AdaptiveAddToWorld.Method", help:"Heuristic to use for the adaptive timeslice\n0 - compute the target timeslice based on remaining work time\n1 - compute the target timeslice based on total work time for levels in flight (this avoids slowing before a level completes)\n", type:"Var"}, {name: "s.AdaptiveAddToWorld.TargetMaxTimeRemaining", help:"Target max time remaining in seconds. If our estimated completion time is longer than this, the timeslice will increase. Lower values are more aggressive", type:"Var"}, {name: "s.AdaptiveAddToWorld.TimeSliceMaxIncreasePerSecond", help:"Max rate at which the adptive AddToWorld timeslice will increase. Set to 0 to increase instantly", type:"Var"}, {name: "s.AdaptiveAddToWorld.TimeSliceMaxReducePerSecond", help:"Max rate at which the adptive AddToWorld timeslice will reduce. Set to 0 to reduce instantly", type:"Var"}, {name: "s.AllowParseObjectLoading", help:"If true, allows ParseObject to load fully qualified objects if needed and requested.", type:"Var"}, {name: "s.AllowUnversionedContentInEditor", help:"If true, allows unversioned content to be loaded by the editor.", type:"Var"}, {name: "s.AsyncLoadingAlwaysProcessPackages", help:"When flushing, will process all packages instead of only what\'s needed. (Used to avoid a hard to repro potential deadlock)", type:"Var"}, {name: "s.CheckRootComponentReplicationOnAttachedChildren", help:"Scene Component OnRep_AttachedChildren:\nfalse: fix up any children that are missing the parent, true: fixes up all children except non-replicated root components (default)", type:"Var"}, {name: "s.DebugPackageNames", help:"Add debug breaks for all listed package names, also automatically added to s.VerbosePackageNames.", type:"Var"}, {name: "s.EnforcePackageCompatibleVersionCheck", help:"If true, package loading will fail if the version stored in the package header is newer than the current engine version", type:"Var"}, {name: "s.FlushStreamingOnExit", help:"Placeholder console variable, currently not used in runtime.", type:"Var"}, {name: "s.ForceRouteActorInitializeNextFrame", help:"Whether to force routing actor initialize phase in its own frame.", type:"Var"}, {name: "s.ForceVerifyLevelsGotRemovedByGC", help:"Whether to force a verification of objects residing in a GC\'ed level package (ignored in shipping builds).", type:"Var"}, {name: "s.IoDispatcherBufferAlignment", help:"IoDispatcher read buffer alignment.", type:"Var"}, {name: "s.IoDispatcherBufferMemoryMB", help:"IoDispatcher buffer memory size (in megabytes).", type:"Var"}, {name: "s.IoDispatcherBufferSizeKB", help:"IoDispatcher read buffer size (in kilobytes).", type:"Var"}, {name: "s.IoDispatcherCacheSizeMB", help:"IoDispatcher cache memory size (in megabytes).", type:"Var"}, {name: "s.IoDispatcherCanDecompressOnStarvation", help:"IoDispatcher thread will help with decompression tasks when all worker threads are IO starved to avoid deadlocks on low core count", type:"Var"}, {name: "s.IoDispatcherCullCancelledReadRequests", help:"Process cancelled file read requests before starting I/O.This can prevent the I/O dispatcher thread to stall due to the request queue getting too big.", type:"Var"}, {name: "s.IoDispatcherDecompressionWorkerCount", help:"IoDispatcher decompression worker count.", type:"Var"}, {name: "s.IoDispatcherForceSynchronousScatter", help:"Force scatter jobs to be synchronous on the IODispatcher thread.\nThis can avoid deadlocks in cases where background tasks end up waiting on I/O and we don\'t have enough background task threads to fulfill decompression requests.", type:"Var"}, {name: "s.IoDispatcherMaintainSortingOnPriorityChange", help:"If s.IoDispatcherSortRequestsByOffset > 0 and this > 0, io dispatcher remembers the last file handle/offset read from even when switching priority levels.", type:"Var"}, {name: "s.IoDispatcherMaxForwardSeekKB", help:"If s.IoDispatcherSortRequestsByOffset is enabled and this is > 0, if the next sequential read is further than this offset from the last one, read the oldest request instead", type:"Var"}, {name: "s.IoDispatcherRequestLatencyCircuitBreakerMS", help:"If s.IoDispatcherSortRequestsByOffset is enabled and this is >0, if the oldest request has been in the queue for this long, read it instead of the most optimal read", type:"Var"}, {name: "s.IoDispatcherSortRequestsByOffset", help:"If > 0, io dispatcher sorts the outstanding request queue by offset rather than sequence.", type:"Var"}, {name: "s.IoDispatcherTocsEnablePerfectHashing", help:"Enable perfect hashmap lookups for iostore tocs", type:"Var"}, {name: "s.LargeMemoryDataMaxPoolLength", help:"Limit LargeMemoryData pool size to the given number of elements.", type:"Var"}, {name: "s.LevelStreamingAddPrimitiveGranularity", help:"Batching granularity used to add primitives to scene in parallel when registering actor components during level streaming.", type:"Var"}, {name: "s.LevelStreamingLowMemoryPendingPurgeCount", help:"When system is in low memory state, if the number of streaming levels to purge meets or exceeds this value, perform a \'soft\' GC.", type:"Var"}, {name: "s.LevelStreamingRouteActorInitializationGranularity", help:"Batching granularity used to initialize actors during level streaming. If this is zero, we process all actors and stages in one pass.", type:"Var"}, {name: "s.MaxPrecacheRequestsInFlight", help:"Controls the maximum amount of precache requests to have in flight.", type:"Var"}, {name: "s.OnlyProcessRequiredPackagesWhenSyncLoading", help:"When sync loading a package process only that package and its imports", type:"Var"}, {name: "s.OptimizeActorRegistration", help:"Enables optimizations to actor component registration functions like PostRegisterAllComponents\n 0: Disable optimizations for legacy code that depends on redundant calls to registration functions\n 1: Enables optimizations and assumes the code is working properly\n 2: Enables optimization logic, but ensures it is working properly in non shipping builds", type:"Var"}, {name: "s.ReloadPackagesWithGCedExports", help:"When active, packages with exports that have been garbage collected will go throught loading again even if they are currently in memory", type:"Var"}, {name: "s.RemoveUnreachableObjectsOnGT", help:"Remove unreachable objects from GlobalImportStore on the GT from the GC callback NotifyUnreachableObjects (slow).", type:"Var"}, {name: "s.RouteActorInitializationWorkUnitWeighting", help:"Weighting to apply to RouteActorInitialization when computing work units (relative to component init)", type:"Var"}, {name: "s.SkipChangelistCompatibilityVersionCheck", help:"If true, engine version compatibility checks will not use changelist numbers to determine compatibility. NOTE: Changelist compatibility checks are automatically skipped in licensee builds.", type:"Var"}, {name: "s.StallDetectorIdleLoops", help:"The minimum amount of idle loops before considering the loader stalled if no progress is being made", type:"Var"}, {name: "s.StallDetectorTimeout", help:"Time in seconds after which we consider the loader stalled if no progress is being made", type:"Var"}, {name: "s.StorageServerIoDispatcherBatchSize", help:"StorageServer IoDispatcher batch size.", type:"Var"}, {name: "s.StorageServerIoDispatcherMaxActiveBatchCount", help:"StorageServer IoDispatcher max submitted batches count.", type:"Var"}, {name: "s.StreamableFlushAllAsyncLoadRequestsOnWait", help:"Flush async loading without a specific request ID when waiting on streamable handles.", type:"Var"}, {name: "s.StreamableStripDebugNameInShipping", help:"Whether to strip the bundle names DebugName when changing bundle. Saves memory when disabled, provides more debug information when enabled.", type:"Var"}, {name: "s.UseObjectVisibilityFilterForAsyncLoading", help:"When active and supported by the current loader, will prevent objects still in the early loading phase from being discovered during postload\nto avoid race conditions and manipulation of objects that still haven\'t been deserialized.", type:"Var"}, {name: "s.UseOldLoaderAsFallback", help:"When active, the old loader will be used as the fallback instead of zenloader", type:"Var"}, {name: "s.VerbosePackageNames", help:"Restrict verbose logging to listed package names.", type:"Var"}, {name: "s.VerifyObjectLoadFlags", help:"Run AsyncFlags verifications for all objects when finished loading from the GC callback NotifyUnreachableObjects (slow).", type:"Var"}, {name: "s.VerifyUnreachableObjects", help:"Run GlobalImportStore verifications for unreachable objects from the GC callback NotifyUnreachableObjects (slow).", type:"Var"}, {name: "s.World.CreateStaticLevelCollection", help:"When set, create a separate level collection for static streaming levels that will not be duplicated by DuplicateRequestedLevels.\nIf this is 0, static streaming levels will be part of the main DynamicSourceLevels collection.", type:"Var"}, {name: "s.World.ForceFlushAllAsyncLoadsDuringLevelStreaming", help:"When set, level streaming will wait for all outstanding async loads globally.", type:"Var"}, {name: "s.World.SkipPerfTrackerForUninitializedWorlds", help:"When set, disables allocation of InGamePerformanceTrackers for Worlds that aren\'t initialized.", type:"Var"}, {name: "SafeZone.EnableScale", help:"IS the safe zone scale enabled?", type:"Var"}, {name: "save.FixupStandaloneFlags", help:"If non-zero, when the UAsset of a package is missing RF_Standalone, the flag is added. If zero, the flags are not changed and the save fails.", type:"Var"}, {name: "SceneGraph.EnablePropertyBagPlaceholderObjectSupport", help:"If true, allows placeholder types to be created in place of missing types in order to redirect serialization into a property bag.", type:"Var"}, {name: "SceneOutliner.AutoRepresentingWorldNetMode", help:"The preferred NetMode of the world shown in the scene outliner when the \'Auto\' option is chosen: 0=Standalone, 1=DedicatedServer, 2=ListenServer, 3=Client", type:"Var"}, {name: "SceneOutliner.AutoRepresentingWorldNetModeForObjectMixer", help:"The preferred NetMode of the world shown in the scene outliner when the \'Auto\' option is chosen: 0=Standalone, 1=DedicatedServer, 2=ListenServer, 3=Client", type:"Var"}, {name: "SceneOutliner.ProcessingBudgetPerFrame", help:"Maximum time in mZilliseconds to spend processing operations per frame", type:"Var"}, {name: "Sequencer", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "Sequencer.AddKeepStateDeterminismFences", help:"Whether the Sequencer compiler should auto-add determinism fences for the last frame of KeepState sections. This ensures that the last possible value of the section is consistently evaluated regardless of framerate, at the cost of an extra evaluation on frames that cross over KeepState sections\' end time.\n", type:"Var"}, {name: "Sequencer.AlwaysRecordLiveLinkTimecode", help:"This CVAR is no longer used please set the Always Use Timmecode value individually on the Live Link Source.", type:"Var"}, {name: "Sequencer.AlwaysSendInterpolatedLiveLink", help:"If nonzero we always interpolate when sending out live link data, if 0 we may send out frames at a higher rate than engine tick, if the data is dense.", type:"Var"}, {name: "Sequencer.Animation.UIFlickerFix", help:"(Default: true. Fixes pre-animated state ordering that was causing excessive UI flicker. Known to cause issues when animating Anim Class so should be disabled if a crash is encountered.", type:"Var"}, {name: "Sequencer.ApplyDisplayRateToDynamicResolutionFrameTimeBudget", help:"(Whether to override r.DynamicRes.FrameTimeBudget based on sequence display rate when using \'Lock to Display Rate at Runtime\'.", type:"Var"}, {name: "Sequencer.Audio.IgnoreAudioSyncDuringWorldTimeDilation", help:"Ignore correcting audio if there is world time dilation.\n", type:"Var"}, {name: "Sequencer.Audio.MaxDesyncTolerance", help:"Controls how many seconds an audio track can be out of sync in a Sequence before we attempt a time correction.\n", type:"Var"}, {name: "Sequencer.Audio.PlayAudioWhenPlaybackJumps", help:"Play audio when playback jumps.\n", type:"Var"}, {name: "Sequencer.Audio.UseAudioClockForAudioDesync", help:"When set to 1, we will use the audio render thread directly to query whether audio has went out of sync with the sequence.\n", type:"Var"}, {name: "Sequencer.AutoScrub", help:"Enable/disable auto-scrubbing", type:"Var"}, {name: "Sequencer.AutoTangentNew", help:"If 1 Auto Tangent will use new algorithm to gradually flatten maximum/minimum keys, if 0 Auto Tangent will average all keys (pre 4.23 behavior).", type:"Var"}, {name: "Sequencer.AutoTangentNew", help:"If 2 Sequencer will flatten tangents with no overshoot, if 1 Auto Tangent will use new algorithm to gradually flatten maximum/minimum keys, if 0 Auto Tangent will average all keys (pre 4.23 behavior).", type:"Var"}, {name: "Sequencer.CompilerVersion", help:"Defines a global identifer for moviescene compiler logic.\n", type:"Var"}, {name: "Sequencer.CustomTaskScheduling", help:"(Default: true. Enables more efficient custom task scheduling of asynchronous Sequencer evaluation.", type:"Var"}, {name: "Sequencer.DeferMovementUpdates", help:"(Default: false) Enables deferring all Scene Component movement updates to the end of a sequencer evaluation to avoid excessive calls to UpdateOverlaps or cascading transform updates for attached components.\n", type:"Var"}, {name: "Sequencer.DrawMeshTrails", help:"Toggle to show or hide Level Sequence VR Editor trails", type:"Var"}, {name: "Sequencer.DuplicateLinkedAnimSequence", help:"When true when we duplicate a level sequence that has a linked anim sequence it will duplicate and link the anim sequencel, if false we leave any link alone.", type:"Var"}, {name: "Sequencer.EnableRelevantThumbnails", help:"If enabled, upon saving a sequence, tries to find a suitable frame, scrubs to it, renders a thumbnail, and saves it as thumbnail.", type:"Var"}, {name: "Sequencer.IgnoreDependenciesWhenNotThreading", help:"(Default: true) Whether to ignore task dependencies when there is no threading.", type:"Var"}, {name: "Sequencer.MaterialParameterBlending", help:"(Default: true) Defines whether material parameter blending should be enabled or not.\n", type:"Var"}, {name: "Sequencer.MaterialParameterEntityLifetimeTracking", help:"(Default: false) Ensure on destruction that all entities have been cleaned up. This can report false positives (when the linker and material system are both cleaned up together) so is not enabled by default.\n", type:"Var"}, {name: "Sequencer.MaxLatentActionLoops", help:"Defines the maximum number of latent action loops that can be run in one frame.\n", type:"Var"}, {name: "Sequencer.NetSyncThreshold", help:"(Default: 200ms. Defines the threshold at which clients and servers must be forcibly re-synced during playback.", type:"Var"}, {name: "Sequencer.Outliner.CompactHeight", help:"(Default: 22.f. Defines the height of outliner items when in compact mode.", type:"Var"}, {name: "Sequencer.Outliner.RelaxedHeight", help:"(Default: 28.f. Defines the height of outliner items when in relaxed mode.", type:"Var"}, {name: "Sequencer.OutputDeferredMovementMode", help:"Integer value specifying how to output Scene Components with deferred movement updates from Sequencer: (0 - Default) No output, (1 - Dump Once) Request a single output on the next evaluation, (2 - Dump every frame) Dump all movement updates every frame", type:"Var"}, {name: "Sequencer.RelativeTimecodeSmoothing", help:"If nonzero, accumulate with platform time since when the timecodes were equal.", type:"Var"}, {name: "Sequencer.RichComponentDebugging", help:"(Default: false. Whether to enable rich component debugging within Sequencer.", type:"Var"}, {name: "Sequencer.SecondsPerFrame", help:"Seconds per frame to wait when in play every frame mode.", type:"Var"}, {name: "Sequencer.ShowTimeWarpScrubberLink", help:"(Default: false) When enabled, shows a dashed link to link warped and unwarped time scrubbers.", type:"Var"}, {name: "Sequencer.SmartAutoBlendLocationPercentage", help:"Percentage near the next value that the tangent will blend to the adjacent tangent, if over 1.0 we won\'t blend. Default to 0.8", type:"Var"}, {name: "Sequencer.SmoothedMaxNetSyncSampleAge", help:"(Default: 5000. Defines the range of samples (in milliseconds) required to perform smoothed net sync. Use 0 to disable smoothing.", type:"Var"}, {name: "Sequencer.SmoothedMaxNetSyncSampleCount", help:"(Default: 50. The maximum number of samples to keep in memory.", type:"Var"}, {name: "Sequencer.SmoothedNetSyncDeviationThreshold", help:"(Default: 200ms. Defines the acceptable deviation for smoothed net sync samples. Samples outside this deviation will be discarded.", type:"Var"}, {name: "Sequencer.StartTransformOffsetInBoneSpace", help:"When true we offset the start offsets for skeletal animation matching in bone space, if false we do it in root space, by default true", type:"Var"}, {name: "Sequencer.TagSaturation", help:"Specifies how saturated object binding tags should appear in the Sequencer UI.\n", type:"Var"}, {name: "Sequencer.ThreadedEvaluation.AllocationThreshold", help:"(Default: 32) Defines the entity allocation fragmentation threshold above which threaded evaluation will be used.\n", type:"Var"}, {name: "Sequencer.ThreadedEvaluation.EntityThreshold", help:"(Default: 256) Defines the number of entities that need to exist to justify threaded evaluation.\n", type:"Var"}, {name: "Sequencer.TickIntervalGroupingResolutionMs", help:"Defines the maximum resolution for actor tick interval groupings. Bigger numbers will group more actors together when they have custom tick intervals, but will lead to less accurate intervals.\n", type:"Var"}, {name: "Sequencer.TimeUndo", help:"Enable/disable ability to undo time when making changes", type:"Var"}, {name: "Sequencer.UseOldSequencerTrails", help:"If true show old motion trails, if false use new editable motion trails.", type:"Var"}, {name: "Sequencer.UseSoftObjectPtrsForPreAnimatedMaterial", help:"Defines whether to use soft-object-ptrs for referencing pre-animated state (default), or strong TObjectPtrs.\n", type:"Var"}, {name: "Sequencer.VolatileSequencesInEditor", help:"(Default: 1) When non-zero, all assets will be treated as volatile in editor. Can be disabled to bypass volatility checks in-editor for more representative runtime performance metrics.\n", type:"Var"}, {name: "SequenceRecorder", help:"Enables the Sequence Recorder tab", type:"Cmd"}, {name: "Serialization.AllowSidecarSyncing", help:"When true FEditorBulkData will attempt to sync it\'s .upayload file via sourcecontrol if the first attempt to load from it fails", type:"Var"}, {name: "Serialization.ApplyBulkDataOffsetFix", help:"When true, we will try to fix potentially bad bulkdata offsets", type:"Var"}, {name: "Serialization.LoadFromSidecar", help:"When true FEditorBulkData will load from the sidecar file", type:"Var"}, {name: "Serialization.LoadFromTrailer", help:"When true FEditorBulkData will load payloads via the package trailer rather than the package itself", type:"Var"}, {name: "Serialization.RehydrateOnSave", help:"When true FVirtualizedUntypedBulkData virtualized payloads will by hydrated and stored locally when saved to a package", type:"Var"}, {name: "setcvar", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "SetGlobalShaderCacheOverrideDirectory", help:"Set the directory to read the override global shader map file from.", type:"Cmd"}, {name: "SETREPLACEMENT", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "SetThreadAffinity", help:"Sets the thread affinity. A single arg of default resets the thread affinity, otherwise pairs of args [GT|RT|RHI|Task] [Hex affinity] sets the affinity.", type:"Cmd"}, {name: "sfc.MaxNumLiveRequests", help:"Number of read request that can be in flight. default 32\n", type:"Var"}, {name: "SetThreadConfig", help:"Sets a thread Priority and/or Affinity. A single arg of default resets all the thread Priorities and Affinities, otherwise [GT|RT|RHI|Task|TaskBP] both/either [TPri_type] [0x] sets the Priority and/or Affinity.", type:"Cmd"}, {name: "SettingsEditor.HideSetAsDefaultButton", help:"Hide the Settings Editor button to save to default config.", type:"Var"}, {name: "sg.GlobalIlluminationQuality", help:"Scalability quality state (internally used by scalability system, ini load/save or using SCALABILITY console command)\n 0:low, 1:med, 2:high, 3:epic, 4:cinematic, default: 3", type:"Var"}, {name: "sg.GlobalIlluminationQuality.NumLevels", help:"Number of settings quality levels in sg.GlobalIlluminationQuality\n default: 5 (0..4)", type:"Var"}, {name: "sg.LandscapeQuality", help:"Scalability quality state (internally used by scalability system, ini load/save or using SCALABILITY console command)\n 0:low, 1:med, 2:high, 3:epic, 4:cinematic, default: 3", type:"Var"}, {name: "sg.LandscapeQuality.NumLevels", help:"Number of settings quality levels in sg.LandscapeQuality\n default: 5 (0..4)", type:"Var"}, {name: "sg.ReflectionQuality", help:"Scalability quality state (internally used by scalability system, ini load/save or using SCALABILITY console command)\n 0:low, 1:med, 2:high, 3:epic, 4:cinematic, default: 3", type:"Var"}, {name: "sg.ReflectionQuality.NumLevels", help:"Number of settings quality levels in sg.ReflectionQuality\n default: 5 (0..4)", type:"Var"}, {name: "sg.ShadingQuality", help:"Scalability quality state (internally used by scalability system, ini load/save or using SCALABILITY console command)\n 0:low, 1:med, 2:high, 3:epic, 4:cinematic, default: 3", type:"Var"}, {name: "sg.ShadingQuality.NumLevels", help:"Number of settings quality levels in sg.ShadingQuality\n default: 5 (0..4)", type:"Var"}, {name: "sg.Test.CPUPerfIndexOverride", help:"Custom override for the CPU perf index returned by the GPU benchmark.", type:"Var"}, {name: "sg.Test.GPUPerfIndexOverride", help:"Custom override for the GPU perf index returned by the GPU benchmark.", type:"Var"}, {name: "shaderpipeline.MinPrecompileTasksInFlight", help:"Note: Only used when threadpool PSO precompiling is active.\nThe number of active PSO precompile jobs in flight before we will submit another batch of jobs. \ni.e. when the number of inflight precompile tasks drops below this threshold we can add the next batch of precompile tasks. \nThis is to prevent bubbles between precompile batches but also to avoid saturating dispatch.", type:"Var"}, {name: "ShowFlag.ActorColoration", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.AtmosphericFog", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.Atmosphere", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.Cameras", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.Cloud", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.DebugDrawDistantVirtualSMLights", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.DisableOcclusionQueries", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.DistanceFieldGI", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.EditingLevelInstance", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.Hair", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.HeterogeneousVolumes", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.InputDebugVisualizer", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.LensDistortion", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.LevelColoration", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.LightingOnlyOverride", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.LocalExposure", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.LumenDetailTraces", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.LumenFarFieldTraces", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.LumenGlobalIllumination", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.LumenGlobalTraces", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.LumenReflections", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.LumenScreenTraces", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.LumenSecondaryBounces", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.LumenShortRangeAmbientOcclusion", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.MegaLights", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.NaniteMeshes", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.NaniteStreamingGeometry", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.Niagara", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.OpaqueCompositeEditorPrimitives", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.PhysicalMaterialMasks", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.PhysicsField", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.PropertyColoration", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.SceneCaptureCopySceneDepth", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.ServerDrawDebug", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.ShaderPrint", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.Tessellation", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.ToneCurve", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.VirtualShadowMapPersistentData", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.VirtualTexturePendingMips", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.VirtualTexturePrimitives", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.VirtualTextureResidency", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.VisualizeAdaptiveDOF", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.VisualizeBloom", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.VisualizeCalibrationColor", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.VisualizeCalibrationCustom", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.VisualizeCalibrationGrayscale", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.VisualizeDistanceFieldGI", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.VisualizeGPUSkinCache", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.VisualizeGroom", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.VisualizeInstanceOcclusionQueries", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.VisualizeInstanceUpdates", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.VisualizeLevelInstanceEditing", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.VisualizeLPV", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.VisualizeLightFunctionAtlas", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.VisualizeLightingOnProbes", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.VisualizeLocalExposure", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.VisualizeLumen", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.VisualizeLWCComplexity", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.VisualizeMotionVectors", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.VisualizeNanite", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.VisualizePostProcessStack", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.VisualizeReprojection", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.VisualizeSkyAtmosphere", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.VisualizeSkyLightIlluminance", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.VisualizeSubstrate", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.VisualizeTemporalUpscaler", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.VisualizeTSR", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.VisualizeVirtualShadowMap", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.VisualizeVolumetricCloudConservativeDensity", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowFlag.VisualizeVolumetricCloudEmptySpaceSkipping", help:"Allows to override a specific showflag (works in editor and game, \"show\" only works in game and UI only in editor)\nUseful to run a build many time with the same showflags (when put in consolevariables.ini like \"showflag.abc=0\")\n 0: force the showflag to be OFF\n 1: force the showflag to be ON\n 2: do not override this showflag (default)", type:"Var"}, {name: "ShowMipLevels", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "Slate.AbsoluteIndices", help:"0: Each element first vertex index starts at 0 (default), 1: Use absolute indices, simplifies draw call setup on RHIs that do not support BaseVertex", type:"Var"}, {name: "SkeletalMesh.UseExperimentalChunking", help:"Whether skeletal mesh will use a experimental chunking algorithm when building LODModel.", type:"Var"}, {name: "SkeletalMeshReport", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "SkinWeightProfileManager.AllowCPU", help:"Whether or not to allow cpu buffer generation", type:"Var"}, {name: "Slate.AllowNumericLabelCrush", help:"Should we crush the vector input box?.", type:"Var"}, {name: "Slate.AllowPerUserHitTesting", help:"Toggles between widgets mapping to a user id and requring a matching user id from an input event or allowing all users to interact with widget", type:"Var"}, {name: "Slate.AllowToolTips", help:"Whether to allow tool-tips to spawn at all.", type:"Var"}, {name: "Slate.AllowTooltipsWithHiddenCursor", help:"", type:"Var"}, {name: "Slate.ApplyDisabledEffectOnWidgets", help:"If true, disabled game-layer widgets will have alpha multiplied by 0.45.", type:"Var"}, {name: "Slate.bAllowNotifications", help:"If false, then notifications will not be displayed to the user.", type:"Var"}, {name: "Slate.CacheRenderData", help:"Invalidation panels will cache render data, otherwise cache only widget draw elements.", type:"Var"}, {name: "Slate.Contrast", help:"The amount of contrast to apply to the UI.", type:"Var"}, {name: "Slate.CheckUObjectRenderResources", help:"", type:"Var"}, {name: "Slate.CheckUObjectShapedGlyphSequence", help:"", type:"Var"}, {name: "Slate.Commands.ListAll", help:"", type:"Cmd"}, {name: "Slate.Commands.ListBound", help:"", type:"Cmd"}, {name: "Slate.Contrast", help:"The amount of contrast to apply to the UI (default 1).", type:"Var"}, {name: "Slate.CopyBackbufferToSlatePostRenderTargets", help:"Experimental. Set true to copy final backbuffer into slate RTs for slate post processing / material usage", type:"Var"}, {name: "Slate.CursorSignificantMoveDetectionThreshold", help:"The distance from previous cursor position above which the move will be considered significant (used to trigger the display of the tooltips).", type:"Var"}, {name: "Slate.Debug.TraceNavigationConfig", help:"True enables tracing of navigation config & callstack to log.", type:"Var"}, {name: "Slate.DefaultEnablePostRenderTarget_0", help:"Experimental. Set true to enable slate post render target 0", type:"Var"}, {name: "Slate.DrawBatchNum", help:".", type:"Var"}, {name: "Slate.DrawToVRRenderTarget", help:"If enabled while in VR. Slate UI will be drawn into the render target texture where the VR imagery for either eye was rendered, allow the viewer of the HMD to see the UI (for better or worse.) This render target will then be cropped/scaled into the back buffer, if mirroring is enabled. When disabled, Slate UI will be drawn on top of the backbuffer (not to the HMD) after the mirror texture has been cropped/scaled into the backbuffer.", type:"Var"}, {name: "Slate.DemoMode.KeyEvent", help:"Visualize any pressed keys for demo-recording purposes.", type:"Var"}, {name: "Slate.DemoMode.MouseEvent", help:"Visualize the cursor events for demo-recording purposes.", type:"Var"}, {name: "Slate.DumpFontCacheStats", help:"Dump statistics about font cache usage.", type:"Var"}, {name: "Slate.DumpUpdateList", help:"(Deprecated) use Slate.InvalidationRoot.DumpUpdateListOnce", type:"Cmd"}, {name: "Slate.EnableCrashHandler", help:"Slate will add states into the crash reporter.", type:"Var"}, {name: "Slate.EnableDesignerRetainedRendering", help:"Controls if retainer renders in designer; 0 - Never; 1 - Per Widget Properties", type:"Var"}, {name: "Slate.EnableFocusOnPick", help:"If true, Widget Reflector window will be automatically focused when a pick is made.", type:"Var"}, {name: "Slate.EnableLayoutCaching", help:"Whether or not dynamic prepass and layout caching is enabled", type:"Var"}, {name: "Slate.EnableGamepadEditorNavigation", help:"True implies we allow gamepad navigation outside of the game viewport.", type:"Var"}, {name: "Slate.EnableGlobalInvalidation", help:"", type:"Var"}, {name: "Slate.EnableInvalidationPanels", help:"Whether to attempt to cache any widgets through invalidation panels.", type:"Var"}, {name: "Slate.EnableLegacyLocalizedFallbackFont", help:"Enable the legacy localized fallback fonts? (0/1).", type:"Var"}, {name: "Slate.EnableLegacyFontHinting", help:"Enable the legacy font hinting? (0/1).", type:"Var"}, {name: "Slate.EnableRawInputSimulationOverRDP", help:"", type:"Var"}, {name: "Slate.EnableSyntheticMouseMoves", help:"", type:"Var"}, {name: "Slate.EnableWidgetCaching", help:"Whether to attempt to cache any widgets through invalidation panels.", type:"Var"}, {name: "Slate.ExcessiveInvalidationFrameStreak", help:".", type:"Var"}, {name: "Slate.Feathering", help:"Provides a means of doing Anti-Aliasing around the edges by feathering boxes.", type:"Var"}, {name: "Slate.EnableRetainedRenderingWithLocalTransform", help:"This console variable is no longer useful, as the SRetainerWidget render bugs workedaround by it have been fixed. It will be removed.", type:"Var"}, {name: "Slate.EnableSlateWidgetTracker", help:"Whether or not we enable the tracking of widgets via the Slate Widget Tracker.", type:"Var"}, {name: "Slate.EnableSyntheticCursorMoves", help:"", type:"Var"}, {name: "Slate.EnableTooltips", help:"Whether to allow tooltips to spawn at all.", type:"Var"}, {name: "Slate.EnsureAllVisibleWidgetsPaint", help:"Ensures that if a child widget is visible before OnPaint, that it was painted this frame after OnPaint, if still marked as visible. Only works if we\'re on the FastPaintPath.", type:"Var"}, {name: "Slate.EnsureOutgoingLayerId", help:"Ensures that child widget returns the correct layer id with OnPaint.", type:"Var"}, {name: "Slate.FlushFontCache", help:"Flush the font cache.", type:"Var"}, {name: "Slate.Font.AsyncLazyLoad", help:"Causes unloaded font faces that are lazily loaded, to be loaded asynchronusly, until then the font won\'t measure correctly. Once complete the UI will invalidate.", type:"Var"}, {name: "Slate.ForceRawInputSimulation", help:"", type:"Var"}, {name: "Slate.GameLayer.AllCanvasesVisible", help:"Show/Hide the viewport slot, player canvas, and debug canvas.", type:"Var"}, {name: "Slate.GameLayer.DebugCanvasVisible", help:"Show/Hide the debug canvas.", type:"Var"}, {name: "Slate.GameLayer.PlayerCanvasVisible", help:"Show/Hide the player canvas.", type:"Var"}, {name: "Slate.GameLayer.ViewportSlotVisible", help:"Show/Hide the slot on viewport", type:"Var"}, {name: "Slate.InvalidationDebugging", help:"Whether to show invalidation debugging visualization", type:"Var"}, {name: "Slate.InvalidationLayerPadding", help:"The invalidation panel adds this much padding to the layer id to avoid re-invalidating if it fluctuates in a volatile child widget.", type:"Var"}, {name: "Slate.LogExcessiveInvalidation", help:".", type:"Var"}, {name: "Slate.GrowSVGAtlasFrameWindow", help:"The number of frames within the atlas will resize rather than flush.", type:"Var"}, {name: "Slate.GrowSVGNonAtlasFrameWindow", help:"The number of frames within the large pool will resize rather than flush.", type:"Var"}, {name: "Slate.HitTestGridDebugging", help:"Whether to show a visualization of everything in the hit teest grid", type:"Var"}, {name: "Slate.Input.MotionFiresUserInteractionEvents", help:"If this is false, LastUserInteractionTimeUpdateEvent events won\'t be fired based on motion input, and LastInteractionTime won\'t be updated\nSome motion devices report small tiny changes constantly without filtering, so motion input is unhelpful for determining user activity", type:"Var"}, {name: "Slate.Input.PointerUpFiresPointerMoveForDragDrop", help:"When true, a synthetic pointer move event is fired from pointer up to ensure drag events are called if necessary on any widgets before OnDrop.", type:"Var"}, {name: "Slate.InvalidationDebugging", help:"Deprecated - Use SlateDebugger.Invalidate.Enable", type:"Var"}, {name: "Slate.InvalidationList.EnableReindexLayerId", help:"With invalidation system, when a painted widget returns a bigger LayerId that it used to, re-index the other widgets.", type:"Var"}, {name: "Slate.InvalidationList.MaxArrayElements", help:"With the invalidation system, the preferred size of the elements array.", type:"Var"}, {name: "Slate.InvalidationList.NumberElementLeftBeforeSplitting", help:"With the invalidation system, when splitting, only split the array when the number of element left is under X.", type:"Var"}, {name: "Slate.InvalidationRoot.DumpPostInvalidationList", help:"Each frame, log the widgets that are processed in the post update phase.", type:"Var"}, {name: "Slate.InvalidationRoot.DumpPreInvalidationList", help:"Each frame, log the widgets that are processed in the pre update phase.", type:"Var"}, {name: "Slate.InvalidationRoot.DumpPrepassInvalidationList", help:"Each frame, log the widgets that are processed in the prepass update phase.", type:"Var"}, {name: "Slate.InvalidationRoot.DumpUpdateList", help:"Each frame, log the widgets that will be updated.", type:"Var"}, {name: "Slate.InvalidationRoot.DumpUpdateListOnce", help:"Log the widgets that will be updated this frame.", type:"Var"}, {name: "Slate.InvalidationRoot.VerifyCachedElementDataList", help:"Verify that the widgets cached are valid.", type:"Var"}, {name: "Slate.InvalidationRoot.VerifyHittestGrid", help:"Every tick, verify the hittest grid.", type:"Var"}, {name: "Slate.InvalidationRoot.VerifySlateAttribute", help:"Every tick, verify that the widgets that have registered attribute are correctly updated once and the list contains all the widgets.", type:"Var"}, {name: "Slate.InvalidationRoot.VerifyValidWidgets", help:"Every tick, verify that every WidgetProxy has a valid SWidget.", type:"Var"}, {name: "Slate.InvalidationRoot.VerifyWidgetHeapContains", help:"Verify that the widget is not already in the list before adding it.", type:"Var"}, {name: "Slate.InvalidationRoot.VerifyWidgetList", help:"Every tick, verify that the updated list does match a newly created list.", type:"Var"}, {name: "Slate.InvalidationRoot.VerifyWidgetsAreUpdatedOnce", help:"Verify that the widgets are painted only once per tick.", type:"Var"}, {name: "Slate.InvalidationRoot.VerifyWidgetsIndex", help:"Every tick, verify that every widgets has the correct corresponding index.", type:"Var"}, {name: "Slate.InvalidationRoot.VerifyWidgetUpdateList", help:"Every tick, verify that pre and post update list contains the correct information and they are sorted.", type:"Var"}, {name: "Slate.InvalidationRoot.VerifyWidgetVisibility", help:"Every tick, verify that the cached visibility of the widgets is properly set.", type:"Var"}, {name: "Slate.InvalidationRoot.VerifyWidgetVolatile", help:"Every tick, verify that volatile widgets are mark properly and are in the correct list.", type:"Var"}, {name: "Slate.LogPaintedText", help:"If true, all text that is visible to the user will be logged when it is painted. This will log the full text to be painted, not the truncated or clipped version based on UI constraints.", type:"Var"}, {name: "Slate.NumericLabelWidthCrushStart", help:"Start crushing when the width is below.", type:"Var"}, {name: "Slate.NumericLabelWidthCrushStop", help:"Stop crushing when the width is above.", type:"Var"}, {name: "Slate.MaxSVGAtlasPagesBeforeFlush", help:"The number of atlas textures created and used before we flush the cache if a texture atlas is full", type:"Var"}, {name: "Slate.MaxSVGNonAtlasTexturesBeforeFlush", help:"The number of large textures initially.", type:"Var"}, {name: "Slate.Navigation.Simulate", help:"Log the result of what the widget may do when it received a navigation event.Use: \"Slate.Navigation.Simulate Widget=0x00AABBCCDD Navigation=UINavigationIndex [UserIndex=Number] [Genesis=NavigationGenesisIndex]\"UINavigationIndex use: 0 for Left, 1 for Right, 2 for Up, 3 for Down, 4 for Next, 5 for PreviousNavigationGenesisIndex use: 0 for Keyboard|, 1 for Controller, 2 for User", type:"Cmd"}, {name: "Slate.RequireFocusForGamepadInput", help:"", type:"Var"}, {name: "Slate.RequireFocusForGamepadInput", help:"Whether gamepad input should be ignored by the engine if the application is not currently active", type:"Var"}, {name: "Slate.ResourceManager.LockResourceDuringGC", help:"Lock the Slate RHI Resource Manager when GCing and when the loading screen has ownership to prevent multithreaded access to the resources.", type:"Var"}, {name: "Slate.SkipWidgetDrawingInHeadlessMode", help:"Skip drawing the widgets when running without rendering (e.g. -nullrhi). On by default, disable if there\'s non-visual logic in widget\'s Tick function (as this also skips ticking them).", type:"Var"}, {name: "Slate.SoftwareCursorScale", help:"Scale factor applied to the software cursor. Requires the cursor widget to be scale-aware.", type:"Var"}, {name: "Slate.Spinbox.MouseMoveOptimization", help:"", type:"Var"}, {name: "Slate.TestMessageDialog", help:"", type:"Cmd"}, {name: "Slate.TestMessageLog", help:"", type:"Cmd"}, {name: "Slate.TestNotifications", help:"", type:"Cmd"}, {name: "Slate.TestProgressNotification", help:"", type:"Cmd"}, {name: "Slate.ToolTipDelay", help:"Delay in seconds before a tool-tip is displayed near the mouse cursor when hovering over widgets that supply tool-tip data.", type:"Var"}, {name: "Slate.ToolTipFadeInDuration", help:"How long it takes for a tool-tip to fade in, in seconds.", type:"Var"}, {name: "Slate.TooltipIntroDuration", help:"How long it takes for a tooltip to animate into view, in seconds.", type:"Var"}, {name: "Slate.TooltipSummonDelay", help:"Delay in seconds before a tooltip is displayed near the mouse cursor when hovering over widgets that supply tooltip data.", type:"Var"}, {name: "Slate.Transform.FullscreenMouseInput", help:"Set true to transform mouse input to account for viewport stretching at fullscreen resolutions not natively supported by the monitor.", type:"Var"}, {name: "Slate.TriggerInvalidate", help:"Triggers a global invalidate of all widgets", type:"Cmd"}, {name: "Slate.VerifyHitTestVisibility", help:"Should we double check the visibility of widgets during hit testing, in case previously resolved hit tests that same frame may have changed state?", type:"Var"}, {name: "SlateDebugger.CaptureStack", help:"Should we capture the stack when there are events?", type:"Var"}, {name: "SlateDebugger.SetInputFilter", help:"Enable or Disable specific filters", type:"Cmd"}, {name: "SlateDebugger.Start", help:"Starts the debugger.", type:"Cmd"}, {name: "SlateDebugger.Stop", help:"Stops the debugger.", type:"Cmd"}, {name: "Slate.UseFixedDeltaTime", help:"True means we use a constant delta time on every widget tick.", type:"Var"}, {name: "Slate.VerifyParentChildrenRelationship", help:"Every tick, verify that a widget has only one parent.", type:"Var"}, {name: "Slate.VerifyWidgetLayerId", help:"Every tick, verify that widgets have a LayerId range that fits with their siblings and their parent.", type:"Var"}, {name: "Slate.WorldWidgetIgnoreNotVisibleWidgets", help:"Whether to not update the position of world widgets if they are not visible - to prevent invalidating the whole layer unnecessarily", type:"Var"}, {name: "Slate.WorldWidgetZOrder", help:"Whether to re-order world widgets projected to screen by their view point distance\n 0: Disable re-ordering\n 1: Re-order by distance (default, less batching, less artifacts when widgets overlap)", type:"Var"}, {name: "SlateDebugger.bCaptureRootInvalidationCallstacks", help:"Whenever a widget is the root cause of an invalidation, capture the callstack for slate insights.", type:"Var"}, {name: "SlateDebugger.Break.OnWidgetBeginPaint", help:"Break before the widget get painted (must be attached to a debugger).\nUsage: [WidgetPtr=0x1234567]|[WidgetId=12345]", type:"Cmd"}, {name: "SlateDebugger.Break.OnWidgetEndPaint", help:"Break after the widget got painted (must be attached to a debugger).\nUsage: [WidgetPtr=0x1234567]|[WidgetId=12345]", type:"Cmd"}, {name: "SlateDebugger.Break.OnWidgetInvalidation", help:"Break when the widget get invalidated (must be attached to a debugger).\nUsage: [WidgetPtr=0x1234567]|[WidgetId=12345] [Reason=Paint|Volatility|ChildOrder|RenderTransform|Visibility|AttributeRegistration|Prepass|All|]", type:"Cmd"}, {name: "SlateDebugger.Break.RemoveAll", help:"Remove all request to break.\n", type:"Cmd"}, {name: "SlateDebugger.Event.CaptureStack", help:"Should we capture the stack when there are events?", type:"Var"}, {name: "SlateDebugger.Event.DisableAllFocusFilters", help:"Disable all focus filters", type:"Cmd"}, {name: "SlateDebugger.Event.DisableAllInputFilters", help:"Disable all input filters", type:"Cmd"}, {name: "SlateDebugger.Event.EnableAllFocusFilters", help:"Enable all focus filters", type:"Cmd"}, {name: "SlateDebugger.Event.EnableAllInputFilters", help:"Enable all input filters", type:"Cmd"}, {name: "SlateDebugger.Event.InputRoutingModeEnabled", help:"Should we output the route that an input event took?", type:"Var"}, {name: "SlateDebugger.Event.LogAttemptNavigationEvent", help:"Log attempt navigation events", type:"Var"}, {name: "SlateDebugger.Event.LogCaptureStateChangeEvent", help:"Log cursor state change events", type:"Var"}, {name: "SlateDebugger.Event.LogCursorChangeEvent", help:"Log cursor change events", type:"Var"}, {name: "SlateDebugger.Event.LogExecuteNavigationEvent", help:"Log execute navigation events", type:"Var"}, {name: "SlateDebugger.Event.LogFocusEvent", help:"Log focus events", type:"Var"}, {name: "SlateDebugger.Event.LogInputEvent", help:"Log input events", type:"Var"}, {name: "SlateDebugger.Event.LogWarning", help:"Log warning events", type:"Var"}, {name: "SlateDebugger.Event.SetFocusFilter", help:"Enable or Disable specific focus filters", type:"Cmd"}, {name: "SlateDebugger.Event.SetInputFilter", help:"Enable or Disable specific input filters", type:"Cmd"}, {name: "SlateDebugger.Event.Start", help:"Starts the debugger.", type:"Cmd"}, {name: "SlateDebugger.Event.Stop", help:"Stops the debugger.", type:"Cmd"}, {name: "SlateDebugger.Invalidate.bLogInvalidatedWidget", help:"Option to log the invalidated widget to the console.", type:"Var"}, {name: "SlateDebugger.Invalidate.bShowLegend", help:"Option to display the color legend.", type:"Var"}, {name: "SlateDebugger.Invalidate.bShowWidgetList", help:"Option to display the names of invalidated widgets.", type:"Var"}, {name: "SlateDebugger.Invalidate.bUsePerformanceThreshold", help:"Only display the invalidated widgets and/or log them if the performance are worst than the threshold (in millisecond).", type:"Var"}, {name: "SlateDebugger.Invalidate.Enabled", help:"Start/Stop the Invalidation widget debug tool. It shows widgets that are invalidated.", type:"Var"}, {name: "SlateDebugger.Invalidate.SetInvalidateRootReasonFilter", help:"Enable Invalidate Root Reason filters. Usage: SetInvalidateRootReasonFilter None|ChildOrder|Root|ScreenPosition|Any", type:"Cmd"}, {name: "SlateDebugger.Invalidate.SetInvalidateWidgetReasonFilter", help:"Enable Invalidate Widget Reason filters. Usage: SetInvalidateWidgetReasonFilter None|Layout|Paint|Volatility|ChildOrder|RenderTransform|Visibility|Any", type:"Cmd"}, {name: "SlateDebugger.Invalidate.Start", help:"Start the Invalidation widget debug tool. It shows widgets that are invalidated.", type:"Cmd"}, {name: "SlateDebugger.Invalidate.Stop", help:"Stop the Invalidation widget debug tool.", type:"Cmd"}, {name: "SlateDebugger.Invalidate.ThresholdPerformanceMS", help:"For bUsePerformanceThreshold, threshold in milliseconds to reach before logging and/or displaying the invalidated widgets.", type:"Var"}, {name: "SlateDebugger.InvalidationRoot.Enable", help:"Start/Stop the Invalidation Root widget debug tool. It shows when Invalidation Roots are using the slow or the fast path.", type:"Var"}, {name: "SlateDebugger.InvalidationRoot.Start", help:"Start the Invalidation Root widget debug tool. It shows when Invalidation Roots are using the slow or the fast path.", type:"Cmd"}, {name: "SlateDebugger.InvalidationRoot.Stop", help:"Stop the Invalidation Root widget debug tool.", type:"Cmd"}, {name: "SlateDebugger.InvalidationRoot.ToggleLegend", help:"Option to display the color legend.", type:"Cmd"}, {name: "SlateDebugger.InvalidationRoot.ToggleWidgetNameList", help:"Option to display the name of the Invalidation Root.", type:"Cmd"}, {name: "SlateDebugger.Paint.Enable", help:"Start/Stop the painted widget debug tool. It shows when widgets are painted.", type:"Var"}, {name: "SlateDebugger.Paint.LogOnce", help:"Log the names of all widgets that were painted during the last update.", type:"Cmd"}, {name: "SlateDebugger.Paint.LogWarningIfWidgetIsPaintedMoreThanOnce", help:"Option to log a warning if a widget is painted more than once in a single frame.", type:"Var"}, {name: "SlateDebugger.Paint.MaxNumberOfWidgetDisplayedInList", help:"The max number of widgets that will be displayed when DisplayWidgetNameList is active.", type:"Var"}, {name: "SlateDebugger.Paint.OnlyGameWindow", help:"Option to only the debug the game window", type:"Var"}, {name: "SlateDebugger.Paint.Start", help:"Start the painted widget debug tool. Use to show widget that have been painted this frame.", type:"Cmd"}, {name: "SlateDebugger.Paint.Stop", help:"Stop the painted widget debug tool.", type:"Cmd"}, {name: "SlateDebugger.Paint.ToggleWidgetNameList", help:"Option to display the name of the widgets that have been painted.", type:"Cmd"}, {name: "SlateDebugger.Start", help:"Alias to \'SlateDebugger.Event.Start\'.", type:"Cmd"}, {name: "SlateDebugger.Stop", help:"Alias to \'SlateDebugger.Event.Stop\'.", type:"Cmd"}, {name: "SlateDebugger.Update.Enable", help:"Start/Stop the painted widget debug tool. It shows when widgets are updated.", type:"Var"}, {name: "SlateDebugger.Update.OnlyGameWindow", help:"Option to only the debug the game window", type:"Var"}, {name: "SlateDebugger.Update.SetInvalidationRootIdFilter", help:"Option to show only the widgets that are part of an invalidation root.", type:"Var"}, {name: "SlateDebugger.Update.SetWidgetUpdateFlagsFilter", help:"Enable or Disable specific Widget Update Flags filters. Usage: SetWidgetUpdateFlagsFilter [None] [Tick] [ActiveTimer] [Repaint] [VolatilePaint] [Any]", type:"Cmd"}, {name: "SlateDebugger.Update.Start", help:"Start the update widget debug tool. It shows when widgets are updated.", type:"Cmd"}, {name: "SlateDebugger.Update.Stop", help:"Stop the update widget debug tool.", type:"Cmd"}, {name: "SlateDebugger.Update.ToggleLegend", help:"Option to display the color legend.", type:"Cmd"}, {name: "SlateDebugger.Update.ToggleUpdateFromPaint", help:"Option to also display the widgets that do not have an update flag but are updated as a side effect of an other widget.", type:"Cmd"}, {name: "SlateDebugger.Update.ToggleWidgetNameList", help:"Option to display the name of the widgets that have been updated.", type:"Cmd"}, {name: "SlateSdfText.Enable", help:"Enables MSDF-based text rendering in Slate", type:"Var"}, {name: "SlateSdfText.GeneratorPoolSize", help:"Sets the maximum number of concurrent tasks when generating multi-channel distance fields for Slate text glyphs", type:"Var"}, {name: "snapshotblueprintclasses", help:"Write out a snapshot to the Saved directory of currently loaded blueprint classes - the principle outputs of blueprint compilation.\nUsage: snapshotblueprintclasses label - label is a name for the folder where snapshots are saved", type:"Cmd"}, {name: "snapshotblueprints", help:"Write out a snapshot to the Saved directory of currently loaded blueprints.\nUsage: snapshotblueprints label - label is a name for the folder where snapshots are saved", type:"Cmd"}, {name: "SOCKETSUB", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "SourceControl.LoginDialog.ForceModal", help:"Forces the SourceControl \'Login Dialog\' to always be a modal dialog.", type:"Var"}, {name: "SourceControl.P4.AllowNonTicketLogins", help:"Whether or not to allow logging in with a password directly from the perforce dialog. This is off by default because it is not a secure option. Perforce often your password as plain text in their enviroment variables", type:"Var"}, {name: "SourceControl.Perforce.IdleConnectionDisconnectSeconds", help:"The number of seconds a perforce connection will be kept open without activity before being automatically disconnected", type:"Var"}, {name: "SourceControl.Revert.EnableFromSceneOutliner", help:"Allows a SourceControl \'Revert\' operation to be triggered from the SceneOutliner.", type:"Var"}, {name: "SourceControl.Revert.EnableFromSubmitWidget", help:"Allows a SourceControl \'Revert\' operation to be triggered from the SubmitWidget.", type:"Var"}, {name: "SourceControl.RevertUnsaved.Enable", help:"Allows a SourceControl \'Revert\' operation to be triggered on an unsaved asset.", type:"Var"}, {name: "SourceControlAssetDataCache.MaxAsyncTask", help:"Maximum number of task running in parallel to fetch AssetData information.", type:"Var"}, {name: "SSL", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "StackTrace", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "StallDetector.ForceLogOnStall", help:"Forces StallDetector to make a log to LogStall at verbosity=Log even if reporting mode is disabled", type:"Var"}, {name: "StartWorkTest", help:"", type:"Cmd"}, {name: "StateTree.Compiler.LogResultOnCompilationCompleted", help:"After a StateTree compiles, log the internal content of the StateTree.", type:"Var"}, {name: "statetree.displayitemids", help:"Appends Id to task and state names in the treeview and expose Ids in the details view.", type:"Var"}, {name: "statetree.startdebuggertraces", help:"Turns on StateTree debugger traces if not already active.", type:"Cmd"}, {name: "statetree.stopdebuggertraces", help:"Turns off StateTree debugger traces if active.", type:"Cmd"}, {name: "stats.AutoEnableNamedEventsWhenProfiling", help:"If 1, toggles named events on when a profiler is detected and capturing. Toggles named events off if 0 or when profiling stops.", type:"Var"}, {name: "stats.NamedEvents", help:"<on/off> Enables or disables the Named Events.", type:"Cmd"}, {name: "STEREO", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "stats.VerboseNamedEvents", help:"<on/off> Enables or disables the Verbose Named Events.", type:"Cmd"}, {name: "StopRecordingTake", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "StopWorkTest", help:"", type:"Cmd"}, {name: "stylusinput.EnableLegacySubsystem", help:"Enable the legacy stylus input subsystem, which will automatically create a tablet input context for any window on mouse over. This subsystem is deprecated for UE 5.5, and will be removed entirely in UE 5.7.", type:"Var"}, {name: "TakeRecorder.AllowMenuExtensions", help:"", type:"Var"}, {name: "TakeRecorder.SaveRecordedAssetsOverride", help:"0: Save recorded assets is based on user settings\n1: Override save recorded assets to always start on", type:"Var"}, {name: "TaskGraph.AlwaysWaitWithNamedThreadSupport", help:"Default to pumping the named thread tasks when waiting on named threads to avoid potential deadlocks.", type:"Var"}, {name: "TaskGraph.EnablePowerSavingThreadPriorityReduction", help:"If 1, then high pri thread tasks which are marked EPowerSavingEligibility::Eligible can be dropped to normal priority.", type:"Var"}, {name: "TaskGraph.IgnoreThreadToDoGatherOn", help:"If 1, then we ignore the hint provided with SetGatherThreadForDontCompleteUntil and just run it on AnyHiPriThreadHiPriTask.", type:"Var"}, {name: "TaskGraph.EnableForkedMultithreading", help:"When false will prevent the task graph from running multithreaded on forked processes.", type:"Var"}, {name: "TaskGraph.ForkedProcessMaxWorkerThreads", help:"Configures the number of worker threads a forked process should spawn if it allows multithreading.", type:"Var"}, {name: "TaskGraph.IgnoreThreadToDoGatherOn", help:"DEPRECATED! If 1, then we ignore the hint provided with SetGatherThreadForDontCompleteUntil and just run it on AnyHiPriThreadHiPriTask.", type:"Var"}, {name: "TaskGraph.NumForegroundWorkers", help:"Configures the number of foreground worker threads. Requires the scheduler to be restarted to have an affect", type:"Var"}, {name: "TaskGraph.OversubscriptionRatio", help:"Ratio used to compute the maximum numbers of workers allowed during oversubscription.\nYou might need to increase that value depending on how many recursive waits the scheduled tasks may contain.\nThe optimal scenario to strive for is using prerequisites to setup dependencies instead of waiting.\nOnce none of the scheduled tasks contains waiting logic anymore, this can be set to 1.0f, which effectively deactivate the feature.", type:"Var"}, {name: "TaskGraph.TaskPriorities.AsyncEndOfFrameGameTasks", help:"Task and thread priority for the experiemntal async end of frame tasks.", type:"Cmd"}, {name: "TaskGraph.TaskPriorities.AsyncTraceTask", help:"Task and thread priority for async traces.", type:"Cmd"}, {name: "TaskGraph.TaskPriorities.CompilePipelineStateTask", help:"Task and thread priority for FCompilePipelineStateTask.", type:"Cmd"}, {name: "TaskGraph.TaskPriorities.FetchVisibilityForPrimitivesTask", help:"Task and thread priority for FetchVisibilityForPrimitivesTask.", type:"Cmd"}, {name: "TaskGraph.TaskPriorities.FMeshDrawCommandPassSetupTask", help:"Task and thread priority for FMeshDrawCommandPassSetupTask.", type:"Cmd"}, {name: "TaskGraph.TaskPriorities.HiPriAsyncTickTaskPriority", help:"Task and thread priority for async ticks that are high priority.", type:"Cmd"}, {name: "TaskGraph.TaskPriorities.NavTriggerAsyncQueries", help:"Task and thread priority for UNavigationSystemV1::PerformAsyncQueries.", type:"Cmd"}, {name: "TaskGraph.TaskPriorities.NormalAsyncTickTaskPriority", help:"Task and thread priority for async ticks that are not high priority.", type:"Cmd"}, {name: "TaskGraph.TaskPriorities.ParallelAnimationEvaluationTask", help:"Task and thread priority for FParallelAnimationEvaluationTask", type:"Cmd"}, {name: "TaskGraph.TaskPriorities.ParallelBlendPhysicsTask", help:"Task and thread priority for FParallelBlendPhysicsTask.", type:"Cmd"}, {name: "TaskGraph.TaskPriorities.ParallelClothTask", help:"Task and thread priority for parallel cloth.", type:"Cmd"}, {name: "TaskGraph.TaskPriorities.ParallelTranslateCommandList", help:"Task and thread priority for FParallelTranslateCommandList.", type:"Cmd"}, {name: "TaskGraph.TaskPriorities.ParallelTranslateCommandListPrepass", help:"Task and thread priority for FParallelTranslateCommandList for the prepass, which we would like to get to the GPU asap.", type:"Cmd"}, {name: "TaskGraph.TaskPriorities.ParallelTranslateSetupCommandList", help:"Task and thread priority for FParallelTranslateSetupCommandList.", type:"Cmd"}, {name: "TaskGraph.TaskPriorities.ParticleAsyncTask", help:"Task and thread priority for FParticleAsyncTask.", type:"Cmd"}, {name: "TaskGraph.TaskPriorities.ParticleManagerAsyncTask", help:"Task and thread priority for FParticleManagerAsyncTask.", type:"Cmd"}, {name: "TaskGraph.TaskPriorities.PhysXStepSimulation", help:"Task and thread priority for FPhysSubstepTask::StepSimulation.", type:"Cmd"}, {name: "TaskGraph.TaskPriorities.PhysXTask", help:"Task and thread priority for FPhysXTask.", type:"Cmd"}, {name: "TaskGraph.TaskPriorities.PhyXSceneCompletion", help:"Task and thread priority for PhysicsSceneCompletion.", type:"Cmd"}, {name: "TaskGraph.TaskPriorities.RHIThreadOnTaskThreads", help:"Task and thread priority for when we are running \'RHI thread\' tasks on any thread.", type:"Cmd"}, {name: "TaskGraph.TaskPriorities.SceneRenderingTask", help:"Task and thread priority for various scene rendering tasks.", type:"Cmd"}, {name: "TaskGraph.TaskPriorities.TickCleanupTaskPriority", help:"Task and thread priority for tick cleanup.", type:"Cmd"}, {name: "TaskGraph.TaskPriorities.TickDispatchTaskPriority", help:"Task and thread priority for tick tasks dispatch.", type:"Cmd"}, {name: "TaskGraph.TaskPriorities.UpdateCachePrimitivesTask", help:"Task and thread priority for FUpdateCachePrimitivesTask.", type:"Cmd"}, {name: "TaskGraph.RenderThreadPollPeriodMs", help:"Render thread polling period in milliseconds. If value < 0, task graph tasks explicitly wake up RT, otherwise RT polls for tasks.", type:"Var"}, {name: "TaskGraph.TaskPriorities.AsyncEndOfFrameGameTasks", help:"Task and thread priority for the experiemntal async end of frame tasks.\nArguments are three characters: [ThreadPriority][TaskPriority][TaskPriorityIfForcedToNormalThreadPriority] where ThreadPriority is \'h\' or \'n\' or \'b\' (high/normal/background) and TaskPriority is \'h\' or \'n\' (high/normal). Example: TaskGraph.TaskPriorities.AsyncEndOfFrameGameTasks bnh", type:"Var"}, {name: "TaskGraph.TaskPriorities.AsyncTraceTask", help:"Task and thread priority for async traces.\nArguments are three characters: [ThreadPriority][TaskPriority][TaskPriorityIfForcedToNormalThreadPriority] where ThreadPriority is \'h\' or \'n\' or \'b\' (high/normal/background) and TaskPriority is \'h\' or \'n\' (high/normal). Example: TaskGraph.TaskPriorities.AsyncTraceTask bnh", type:"Var"}, {name: "TaskGraph.TaskPriorities.ClearAudioChunkCacheReadRequest", help:"Task and thread priority for an async task that clears FCacheElement::ReadRequest\nArguments are three characters: [ThreadPriority][TaskPriority][TaskPriorityIfForcedToNormalThreadPriority] where ThreadPriority is \'h\' or \'n\' or \'b\' (high/normal/background) and TaskPriority is \'h\' or \'n\' (high/normal). Example: TaskGraph.TaskPriorities.ClearAudioChunkCacheReadRequest bnh", type:"Var"}, {name: "TaskGraph.TaskPriorities.CompilePipelineStateTask", help:"Task and thread priority for FCompilePipelineStateTask.\nArguments are three characters: [ThreadPriority][TaskPriority][TaskPriorityIfForcedToNormalThreadPriority] where ThreadPriority is \'h\' or \'n\' or \'b\' (high/normal/background) and TaskPriority is \'h\' or \'n\' (high/normal). Example: TaskGraph.TaskPriorities.CompilePipelineStateTask bnh", type:"Var"}, {name: "TaskGraph.TaskPriorities.DataflowSimulationTask", help:"Task and thread priority for the dataflow simulation.\nArguments are three characters: [ThreadPriority][TaskPriority][TaskPriorityIfForcedToNormalThreadPriority] where ThreadPriority is \'h\' or \'n\' or \'b\' (high/normal/background) and TaskPriority is \'h\' or \'n\' (high/normal). Example: TaskGraph.TaskPriorities.DataflowSimulationTask bnh", type:"Var"}, {name: "TaskGraph.TaskPriorities.FMeshDrawCommandPassSetupTask", help:"Task and thread priority for FMeshDrawCommandPassSetupTask.\nArguments are three characters: [ThreadPriority][TaskPriority][TaskPriorityIfForcedToNormalThreadPriority] where ThreadPriority is \'h\' or \'n\' or \'b\' (high/normal/background) and TaskPriority is \'h\' or \'n\' (high/normal). Example: TaskGraph.TaskPriorities.FMeshDrawCommandPassSetupTask bnh", type:"Var"}, {name: "TaskGraph.TaskPriorities.GatherShadowPrimitives", help:"Task and thread priority for GatherShadowPrimitives tasks.\nArguments are three characters: [ThreadPriority][TaskPriority][TaskPriorityIfForcedToNormalThreadPriority] where ThreadPriority is \'h\' or \'n\' or \'b\' (high/normal/background) and TaskPriority is \'h\' or \'n\' (high/normal). Example: TaskGraph.TaskPriorities.GatherShadowPrimitives bnh", type:"Var"}, {name: "TaskGraph.TaskPriorities.HiPriAsyncTickTaskPriority", help:"Task and thread priority for async ticks that are high priority.\nArguments are three characters: [ThreadPriority][TaskPriority][TaskPriorityIfForcedToNormalThreadPriority] where ThreadPriority is \'h\' or \'n\' or \'b\' (high/normal/background) and TaskPriority is \'h\' or \'n\' (high/normal). Example: TaskGraph.TaskPriorities.HiPriAsyncTickTaskPriority bnh", type:"Var"}, {name: "TaskGraph.TaskPriorities.IoDispatcherAsyncTasks", help:"Task and thread priority for IoDispatcher decompression.\nArguments are three characters: [ThreadPriority][TaskPriority][TaskPriorityIfForcedToNormalThreadPriority] where ThreadPriority is \'h\' or \'n\' or \'b\' (high/normal/background) and TaskPriority is \'h\' or \'n\' (high/normal). Example: TaskGraph.TaskPriorities.IoDispatcherAsyncTasks bnh", type:"Var"}, {name: "TaskGraph.TaskPriorities.NavTriggerAsyncQueries", help:"Task and thread priority for UNavigationSystemV1::PerformAsyncQueries.\nArguments are three characters: [ThreadPriority][TaskPriority][TaskPriorityIfForcedToNormalThreadPriority] where ThreadPriority is \'h\' or \'n\' or \'b\' (high/normal/background) and TaskPriority is \'h\' or \'n\' (high/normal). Example: TaskGraph.TaskPriorities.NavTriggerAsyncQueries bnh", type:"Var"}, {name: "TaskGraph.TaskPriorities.NormalAsyncTickTaskPriority", help:"Task and thread priority for async ticks that are not high priority.\nArguments are three characters: [ThreadPriority][TaskPriority][TaskPriorityIfForcedToNormalThreadPriority] where ThreadPriority is \'h\' or \'n\' or \'b\' (high/normal/background) and TaskPriority is \'h\' or \'n\' (high/normal). Example: TaskGraph.TaskPriorities.NormalAsyncTickTaskPriority bnh", type:"Var"}, {name: "TaskGraph.TaskPriorities.ParallelAnimationEvaluationTask", help:"Task and thread priority for FParallelAnimationEvaluationTask\nArguments are three characters: [ThreadPriority][TaskPriority][TaskPriorityIfForcedToNormalThreadPriority] where ThreadPriority is \'h\' or \'n\' or \'b\' (high/normal/background) and TaskPriority is \'h\' or \'n\' (high/normal). Example: TaskGraph.TaskPriorities.ParallelAnimationEvaluationTask bnh", type:"Var"}, {name: "TaskGraph.TaskPriorities.ParallelAnimCompletionTaskHighPriority", help:"Allows parallel anim completion tasks to take priority on the GT so further work (if needed) can be kicked off earlier.", type:"Var"}, {name: "TaskGraph.TaskPriorities.ParallelBlendPhysicsTask", help:"Task and thread priority for FParallelBlendPhysicsTask.\nArguments are three characters: [ThreadPriority][TaskPriority][TaskPriorityIfForcedToNormalThreadPriority] where ThreadPriority is \'h\' or \'n\' or \'b\' (high/normal/background) and TaskPriority is \'h\' or \'n\' (high/normal). Example: TaskGraph.TaskPriorities.ParallelBlendPhysicsTask bnh", type:"Var"}, {name: "TaskGraph.TaskPriorities.ParallelClothTask", help:"Task and thread priority for parallel cloth.\nArguments are three characters: [ThreadPriority][TaskPriority][TaskPriorityIfForcedToNormalThreadPriority] where ThreadPriority is \'h\' or \'n\' or \'b\' (high/normal/background) and TaskPriority is \'h\' or \'n\' (high/normal). Example: TaskGraph.TaskPriorities.ParallelClothTask bnh", type:"Var"}, {name: "TaskGraph.TaskPriorities.ParticleAsyncTask", help:"Task and thread priority for FParticleAsyncTask.\nArguments are three characters: [ThreadPriority][TaskPriority][TaskPriorityIfForcedToNormalThreadPriority] where ThreadPriority is \'h\' or \'n\' or \'b\' (high/normal/background) and TaskPriority is \'h\' or \'n\' (high/normal). Example: TaskGraph.TaskPriorities.ParticleAsyncTask bnh", type:"Var"}, {name: "TaskGraph.TaskPriorities.ParticleManagerAsyncTask", help:"Task and thread priority for FParticleManagerAsyncTask.\nArguments are three characters: [ThreadPriority][TaskPriority][TaskPriorityIfForcedToNormalThreadPriority] where ThreadPriority is \'h\' or \'n\' or \'b\' (high/normal/background) and TaskPriority is \'h\' or \'n\' (high/normal). Example: TaskGraph.TaskPriorities.ParticleManagerAsyncTask bnh", type:"Var"}, {name: "TaskGraph.TaskPriorities.PhysicsTickTask", help:"Task and thread priotiry for Chaos physics tick\nArguments are three characters: [ThreadPriority][TaskPriority][TaskPriorityIfForcedToNormalThreadPriority] where ThreadPriority is \'h\' or \'n\' or \'b\' (high/normal/background) and TaskPriority is \'h\' or \'n\' (high/normal). Example: TaskGraph.TaskPriorities.PhysicsTickTask bnh", type:"Var"}, {name: "TaskGraph.TaskPriorities.SceneRenderingTask", help:"Task and thread priority for various scene rendering tasks.\nArguments are three characters: [ThreadPriority][TaskPriority][TaskPriorityIfForcedToNormalThreadPriority] where ThreadPriority is \'h\' or \'n\' or \'b\' (high/normal/background) and TaskPriority is \'h\' or \'n\' (high/normal). Example: TaskGraph.TaskPriorities.SceneRenderingTask bnh", type:"Var"}, {name: "TaskGraph.TaskPriorities.TickCleanupTaskPriority", help:"Task and thread priority for tick cleanup.\nArguments are three characters: [ThreadPriority][TaskPriority][TaskPriorityIfForcedToNormalThreadPriority] where ThreadPriority is \'h\' or \'n\' or \'b\' (high/normal/background) and TaskPriority is \'h\' or \'n\' (high/normal). Example: TaskGraph.TaskPriorities.TickCleanupTaskPriority bnh", type:"Var"}, {name: "TaskGraph.TaskPriorities.TickDispatchTaskPriority", help:"Task and thread priority for tick tasks dispatch.\nArguments are three characters: [ThreadPriority][TaskPriority][TaskPriorityIfForcedToNormalThreadPriority] where ThreadPriority is \'h\' or \'n\' or \'b\' (high/normal/background) and TaskPriority is \'h\' or \'n\' (high/normal). Example: TaskGraph.TaskPriorities.TickDispatchTaskPriority bnh", type:"Var"}, {name: "TaskGraph.TaskPriorities.UpdateCachePrimitivesTask", help:"Task and thread priority for FUpdateCachePrimitivesTask.\nArguments are three characters: [ThreadPriority][TaskPriority][TaskPriorityIfForcedToNormalThreadPriority] where ThreadPriority is \'h\' or \'n\' or \'b\' (high/normal/background) and TaskPriority is \'h\' or \'n\' (high/normal). Example: TaskGraph.TaskPriorities.UpdateCachePrimitivesTask bnh", type:"Var"}, {name: "TaskGraph.UseDynamicPrioritization", help:"Adjust thread priority per-task so that higher priority tasks running on background threads can\'t be preempted as easily. Helps a lot under high load.", type:"Var"}, {name: "TaskGraph.UseDynamicThreadCreation", help:"Allow threads to be created only when needed instead of at engine initialization.", type:"Var"}, {name: "TEDS.AddParentColumnToActors", help:"Mirror parent information for actors to TEDS (only works when set on startup)", type:"Var"}, {name: "TEDS.Debug.AddRandomAlertToSelectedRows", help:"Add random alert to all selected rows that don\'t have one yet.", type:"Cmd"}, {name: "TEDS.Debug.ClearAllAlertInfo", help:"Removes all alerts and child alerts.", type:"Cmd"}, {name: "TEDS.Debug.ClearSelectedAlerts", help:"Removes all selected alerts.", type:"Cmd"}, {name: "TEDS.Debug.CreateRow", help:"Argument: \n", type:"Cmd"}, {name: "TEDS.Debug.DynamicColumn.ActivateListDynamicColumnQuery", help:"Argument: ActivationGroup\n", type:"Cmd"}, {name: "TEDS.Debug.DynamicColumn.AddColumn", help:"Argument: Row, Identifier\n", type:"Cmd"}, {name: "TEDS.Debug.DynamicColumn.AddTag", help:"Argument: Row, Identifier\n", type:"Cmd"}, {name: "TEDS.Debug.DynamicColumn.AddToColumn", help:"Argument: Row, TagId, Value, [optional] MethodId\n", type:"Cmd"}, {name: "TEDS.Debug.DynamicColumn.CountDynamicTagWithQuery", help:"Argument: Identifier\n", type:"Cmd"}, {name: "TEDS.Debug.DynamicColumn.PrintColumn", help:"Argument: Row, TagId\n", type:"Cmd"}, {name: "TEDS.Debug.DynamicColumn.PrintColumnWithQuery", help:"Argument: Identifier\n", type:"Cmd"}, {name: "TEDS.Debug.DynamicColumn.RegisterListDynamicColumnQuery", help:"Argument: Identifier ActivationGroup\n", type:"Cmd"}, {name: "TEDS.Debug.DynamicColumn.RemoveColumn", help:"Argument: Row, Identifier\n", type:"Cmd"}, {name: "TEDS.Debug.ListExtensions", help:"Prints a list for all available extension names.", type:"Cmd"}, {name: "TEDS.Debug.OptimizeCommandBufferInCompat", help:"If true, the command buffer used in TEDS Compat is optimized, otherwise the optimization phase is skipped.", type:"Var"}, {name: "Teds.Debug.PerformanceTest.AddRows", help:"Teds.Debug.PerformanceTest.AddRows <NumRows>; NumRows = number of rows to add", type:"Cmd"}, {name: "Teds.Debug.PerformanceTest.RemoveAllRows", help:"Removes all added rows for the performance test", type:"Cmd"}, {name: "TEDS.Debug.PrintActorLabels", help:"Prints out the labels for all actors found in the Typed Elements Data Storage.", type:"Cmd"}, {name: "TEDS.Debug.PrintAllUObjectsLabels", help:"Prints out the labels for all UObjects found in the Typed Elements Data Storage.", type:"Cmd"}, {name: "TEDS.Debug.PrintCompatCommandBuffer", help:"If enabled and TEDS Compat uses the command buffer, then the list of pending commands is printed before being execute.\n0 - disable\n1 - summarize number of nops\n2 - include nops", type:"Var"}, {name: "TEDS.Debug.PrintObjectTypeInfo", help:"Prints the type information of any rows that has a type information column.", type:"Cmd"}, {name: "TEDS.Debug.RemoveOverlayColor", help:"Removes an overlay color to selected objects.", type:"Cmd"}, {name: "TEDS.Debug.SetOutlineColor", help:"Adds an outline color to selected objects.", type:"Cmd"}, {name: "TEDS.Debug.SetOverlayColor", help:"Adds an overlay color to selected objects.", type:"Cmd"}, {name: "TEDS.Debug.ValueTag.AddColumn", help:"Argument: Row, Tag, Value\n", type:"Cmd"}, {name: "TEDS.Debug.ValueTag.AddWithEnum", help:"Argument: Row, EnumValue\n", type:"Cmd"}, {name: "TEDS.Debug.ValueTag.RemoveColumn", help:"Argument: Row, Group\n", type:"Cmd"}, {name: "TEDS.Debug.ValueTag.RemoveWithEnum", help:"Argument: Row\n", type:"Cmd"}, {name: "TEDS.Debug.ValueTag.RunQuery", help:"Argument: Tag, [optional] Value\n", type:"Cmd"}, {name: "TEDS.Debug.ValueTag.RunQueryEnum", help:"Argument: [optional] EnumValue\n", type:"Cmd"}, {name: "TEDS.Feature.IntegrateWithGC", help:"Enables actors being removed through the garbage collection instead of requiring explicit removal.", type:"Var"}, {name: "TEDS.Feature.UseCommandBufferInCompat", help:"Use the command buffer to defer TEDS Compatibility commands.", type:"Var"}, {name: "TEDS.Feature.UseDeferredRemovesInCompat", help:"If the command buffer in TEDS Compatibility is enabled, setting this to true will cause removes to be queued instead of immediately executed.", type:"Var"}, {name: "TEDS.PrintQueryCallbacks", help:"Prints out a list of all processors.", type:"Cmd"}, {name: "TEDS.PrintSupportedColumns", help:"Prints out a list of available Data Storage columns.", type:"Cmd"}, {name: "TEDS.Tests.ProcessorTestsEnabled", help:"If true, registers processors and additional commands with TEDS to test processors.", type:"Var"}, {name: "TEDS.TypedElementBridge.Enable", help:"Automatically populated TEDS with TypedElementHandles", type:"Var"}, {name: "TEDS.UI.EnableCounterWidgets", help:"Adds registered counter widgets to the bottom right status bar of the main editor window.", type:"Cmd"}, {name: "TEDS.UI.PrintWidgetPurposes", help:"Prints a list of all the known widget purposes.", type:"Cmd"}, {name: "TEDS.UI.UseNewWidgets", help:"If true, TEDS UI will use new attribute binding driven widgets (needs to be set at startup)", type:"Var"}, {name: "TestStereoBleed", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "TestVorbisDecompressionSpeed", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "TextAssetTool", help:"--", type:"Cmd"}, {name: "tick.AllowAsyncComponentTicks", help:"Used to control async component ticks.", type:"Var"}, {name: "tick.AllowAsyncComponentTicks", help:"If true, components (and other tick functions) with bRunOnAnyThread set will run in parallel with other ticks.", type:"Var"}, {name: "tick.AllowConcurrentTickQueue", help:"If true, queue ticks concurrently.", type:"Var"}, {name: "tick.AllowBatchedTicks", help:"If true, tick functions with bAllowTickBatching will be automatically combined into a single tick task.", type:"Var"}, {name: "tick.AllowConcurrentTickQueue", help:"If true, queue ticks concurrently using multiple threads at once. This may be faster on platforms with many cores but can change the order of ticking.", type:"Var"}, {name: "tick.AllowOptimizedPrerequisites", help:"If true, the code will ignore prerequisites that are not relevant due to guaranteed order of tick groups", type:"Var"}, {name: "tick.MinimizedSyncDrawToGPU", help:"True means we will wait for GPU idle when minimized. Prevents mem leaks due to CPU issuing draws faster than GPU processes when minimized.", type:"Var"}, {name: "timecode.UseDropFormatTimecodeByDefaultWhenSupported", help:"By default, should we generate a timecode in drop frame format when the frame rate does support it.", type:"Var"}, {name: "TimecodeProvider.reset", help:"Resets the current timecode provider.", type:"Cmd"}, {name: "TimerManager.DumpAllTimerLogsThreshold", help:"Threshold (in count of active timers) at which to dump info about all active timers to logs. -1 means this is disabled. NOTE: This will only be dumped once per process launch.", type:"Var"}, {name: "TimerManager.GuaranteeEngineTickDelay", help:"If true, timers delayed until next tick will guarantee the engine tick has advanced. If false, these could run during the same engine tick (default behavior prior to 5.5).", type:"Var"}, {name: "ToggleAsyncCompute", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "ToolMenus.Edit", help:"Experimental: Enable edit menus mode toggle in level editor\'s windows menu", type:"Cmd"}, {name: "ToolMenus.RefreshAllWidgets", help:"Refresh All Tool Menu Widgets", type:"Cmd"}, {name: "ToolMenusViewportToolbars", help:"Control whether the new ToolMenus-based viewport toolbars are enabled across the editor. Set to 0 (default) to show only the old viewport toolbars. Set to 1 for side-by-side mode where both the old and new viewport toolbars are shown. Set to 2 to show only the new viewport toolbars.", type:"Var"}, {name: "Trace.Bookmark", help:"[Name] - Emits a TRACE_BOOKMARK() event with the given string name.", type:"Cmd"}, {name: "Trace.Disable", help:"[ChannelSet] - Disables a set of channels. ChannelSet is comma-separated list of trace channels/presets to be disabled. If no channel is specified, it disables all channels.", type:"Cmd"}, {name: "Trace.Enable", help:"[ChannelSet] - Enables a set of channels. ChannelSet is comma-separated list of trace channels/presets to be enabled.", type:"Cmd"}, {name: "Trace.File", help:"[Path] [ChannelSet] - Starts tracing to a file. ChannelSet is comma-separated list of trace channels/presets to be enabled. Either Path or ChannelSet can be excluded.", type:"Cmd"}, {name: "Trace.Pause", help:"Pauses all trace channels currently sending events.", type:"Cmd"}, {name: "Trace.RegionBegin", help:"[Name] - Emits a TRACE_BEGIN_REGION() event with the given string name.", type:"Cmd"}, {name: "Trace.RegionEnd", help:"[Name] - Emits a TRACE_END_REGION() event with the given string name.", type:"Cmd"}, {name: "Trace.Resume", help:"Resumes tracing that was previously paused (re-enables the paused channels).", type:"Cmd"}, {name: "Trace.Screenshot", help:"[Name] [ShowUI] Takes a screenshot and saves it in the trace. Ex: Trace.Screenshot ScreenshotName true", type:"Cmd"}, {name: "Trace.Send", help:"<Host> [ChannelSet] - Starts tracing to a trace store. <Host> is the IP address or hostname of the trace store. ChannelSet is comma-separated list of trace channels/presets to be enabled.", type:"Cmd"}, {name: "Trace.SlowTaskMaxRegionDepth", help:"Maximum depth of nested slow tasks to create as trace regions in Insights", type:"Var"}, {name: "Trace.SnapshotFile", help:"[Path] - Writes a snapshot of the current in-memory trace buffer to a file.", type:"Cmd"}, {name: "Trace.SnapshotSend", help:"<Host> <Port> - Sends a snapshot of the current in-memory trace buffer to a server. If no host is specified \'localhost\' is used.", type:"Cmd"}, {name: "Trace.Start", help:"[ChannelSet] - (Deprecated: Use Trace.File instead.) Starts tracing to a file. ChannelSet is comma-separated list of trace channels/presets to be enabled.", type:"Cmd"}, {name: "Trace.Status", help:"Prints Trace status to console.", type:"Cmd"}, {name: "Trace.Stop", help:"Stops tracing profiling events.", type:"Cmd"}, {name: "TraceFilter.FlushState", help:"Flushes the current trace filtering state to the output log.", type:"Cmd"}, {name: "TracingProfile", help:"Starts or stops tracing profiler", type:"Cmd"}, {name: "TracingProfiler.BufferSize", help:"Defines the maximum umber of events stored in the internal ring buffer of the tracing profiler. Only read at process startup and can\'t be changed at runtime.", type:"Var"}, {name: "TrackAsyncLoadRequests.Dedupe", help:"If > 0 then deduplicate requests to async load the same package in the report.", type:"Var"}, {name: "TrackAsyncLoadRequests.Dump", help:"Dump tracked async load requests and reset tracking", type:"Cmd"}, {name: "TrackAsyncLoadRequests.DumpAfterCsvProfiling", help:"If > 0, dumps tracked async load requests to a file when csv profiling ends.", type:"Var"}, {name: "TrackAsyncLoadRequests.DumpToFile", help:"Dump tracked async load requests and reset tracking", type:"Cmd"}, {name: "TrackAsyncLoadRequests.Enable", help:"If > 0 then remove aliases from the counting process. This essentialy merges addresses that have the same human readable string. It is slower.", type:"Var"}, {name: "TrackAsyncLoadRequests.RemoveAliases", help:"If > 0 then remove aliases from the counting process. This essentialy merges addresses that have the same human readable string. It is slower.", type:"Var"}, {name: "TrackAsyncLoadRequests.Reset", help:"Reset tracked async load requests", type:"Cmd"}, {name: "TrackAsyncLoadRequests.StackIgnore", help:"Number of items to discard from the top of a stack frame.", type:"Var"}, {name: "TrackAsyncLoadRequests.StackLen", help:"Maximum number of stack frame items to keep. This improves aggregation because calls that originate from multiple places but end up in the same place will be accounted together.", type:"Var"}, {name: "TrackAsyncLoadRequests.Threshhold", help:"Minimum number of hits to include in the report.", type:"Var"}, {name: "TransBuffer.DumpObjectMap", help:"Whether to dump the object map each time a transaction is written for debugging purposes.", type:"Var"}, {name: "TranslationPicker", help:"Displays the translation picker", type:"Cmd"}, {name: "TriggerFailedWindowsRead", help:"Tests low level IO errors on XB and Windows", type:"Cmd"}, {name: "TriggerFailedWindowsRead", help:"Tests low level IO errors on Windows", type:"Cmd"}, {name: "Turnkey", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "TypedElements.EnableElementsCopyAndPaste", help:"Is support for elements copy and paste enabled?", type:"Var"}, {name: "TypedElements.EnableFoliageInstanceElements", help:"Is support for static mesh instance elements enabled for foliage owned instances?", type:"Var"}, {name: "TypedElements.EnableReferenceTracking", help:"Is support for element reference tracking enabled?", type:"Var"}, {name: "TypedElements.EnableSMInstanceElements", help:"Is support for static mesh instance elements enabled?", type:"Var"}, {name: "TypedElements.EnableTemporaryActorCopy", help:"Enable cut/copy/duplicate for temporary actors created during PIE. Experimental and can cause issues.", type:"Var"}, {name: "TypedElements.EnableViewportSMInstanceSelection", help:"Enable direct selection of Instanced Static Mesh Component (ISMC) Instances in the Level Editor Viewport", type:"Var"}, {name: "TypedElements.OutputRegistredTypeElementsToClipboard", help:"Output a debug string to the clipboard and to the log./n\t\t\tIt contains the names of the Typed Elements registred and their Interfaces./n\t\t\tFor each Interface it also provide the path of the class that implements it.", type:"Cmd"}, {name: "UnitTest", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "UI.SlateSDFText.RasterizationMode", help:"Sets the rasterization mode of font faces with distance field rasterization enabled. Possible values are: Bitmap, Msdf, Sdf, SdfApproximation.", type:"Var"}, {name: "UI.SlateSDFText.ResolutionLevel", help:"Sets the resolution level (1 = low, 2 = medium, 3 = high) of font faces with distance field rasterization enabled.", type:"Var"}, {name: "UMG.AnimationBudgetMs", help:"(Default: 0.0) EXPERIMENTAL: A per-frame animation budget to use for evaluation of all UMG animations this frame.", type:"Var"}, {name: "UMG.AnimationMarkers", help:"(Default: false) Whether to emit profiling frame markers for starting and stopping UMG animations.", type:"Var"}, {name: "UMG.AsyncAnimationControlFlow", help:"(Default: true) Whether to perform animation control flow functions (Play, Pause, Stop etc) asynchronously.", type:"Var"}, {name: "UMG.Editor.EnableWidgetDesignerTools", help:"Toggles processing of widget designer tools. Must be set before opening widget designer.", type:"Var"}, {name: "UMG.EnablePreviewMode", help:"Whether or not to enable the UMG Preview mode.", type:"Var"}, {name: "UMG.FlushAnimationsAtEndOfFrame", help:"Whether to automatically flush any outstanding animations at the end of the frame, or just wait until next frame.", type:"Var"}, {name: "umg.MaxPostBufferBlurStrength", help:"Limits post buffer blur strength. -1 = unlimited\r\n", type:"Var"}, {name: "UMG.ThumbnailRenderer.Enable", help:"Option to enable/disable thumbnail rendering.", type:"Var"}, {name: "UnrealEd.T3DUseActorExporters", help:" \n", type:"Var"}, {name: "unsetcvar", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "unsetcvartag", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "UObject.UseSerializeToFindWeakReferencers", help:"If true use Serialize routines to find objects that are referencing only via weak references - set to false to only use GC schema for reference finding", type:"Var"}, {name: "USD.AddCurveMetadataToSkeleton", help:"When true will cause blend shape / morph target float curve data to be added to generated USkeleton assets. When false, this curve data will be added to the generated USkeletalMesh assets instead.", type:"Var"}, {name: "USD.Bounds.BoundsLineThickness", help:"Line thickness to use when drawing \'bounds\' or \'origin\' alternate prim draw modes from UsdGeomModelAPI", type:"Var"}, {name: "USD.Bounds.ConsiderAllPrimsHaveAnimatedBounds", help:"When active prevents USD from caching computed bounds between timeSamples for any prim, which allows us to force it to recompute accurate bounds for cases it does not naturally consider animated (e.g. for animated Mesh points, skeletal animation, etc.). Warning: This can be extremely expensive!", type:"Var"}, {name: "USD.Bounds.UseWholeExtentsToDetectSelection", help:"When true it means we can select the UUsdDrawModeComponents in \'bounds\', \'cards\' or \'origin\' mode by clicking anywhere on the extent\'s \'volume\' itself, and not only by clicking directly on the drawn lines", type:"Var"}, {name: "USD.CheapUniquePrimPathGeneration", help:"When exporting Levels and LevelSequences, we\'ll by default use a mechanism of ensuring unique prim paths that guarantees a unique path for each UObject. It can be somewhat expensive depending on the use-case, so if you have other ways of ensuring actor labels are unique, you can set this to true to use another method of producing unique prim paths that is much faster, but can\'t handle some kinds of actor label collisions.", type:"Var"}, {name: "USD.ExportNaniteSourceMeshData", help:"Try using Nanite hi-res MeshDescription data when exporting static meshes with the bExportStaticMeshSourceData option enabled. If false, it means we will always just use the StaticMesh\'s LOD source MeshDescription data instead.", type:"Var"}, {name: "USD.LevelSequenceExport.SkipConstantValues", help:"Whether to prevent the exporter from writing out a timeSample when it has the same value as the previous timeSample. Enable this (default) if you want your generated files to have less timeSamples when possible. Disable this if you want each animated attribute to have an authored value for each timeSample of the animation", type:"Var"}, {name: "USD.MaxInstancesPerPointInstancer", help:"We will only parse up to this many instances from any point instancer when reading from USD to UE. Set this to -1 to disable this limit.", type:"Var"}, {name: "USD.MeshNormalRepairThreshold", help:"We will try repairing up to this fraction of a Mesh\'s normals when invalid. If a Mesh has more invalid normals than this, we will recompute all of them. Defaults to 0.05 (5% of all normals).", type:"Var"}, {name: "USD.OnDemandCachedAssetLoading", help:"When true will cause the USD Asset Cache to only load cached UObjects from disk once they are needed, regardless of when the actual Asset Cache asset itself is loaded.", type:"Var"}, {name: "USD.ParseUVSetsFromFloat2Primvars", help:"Primvars with the \'texCoord2f\' role will always be parsed when handling potential UV sets. If this cvar is enabled, we\'ll also handle primvars declared as just \'float2\' however. You could disable this cvar if your pipeline emits many \'float2\' primvars that you do not wish to be parsed as UV sets.", type:"Var"}, {name: "USD.SkipMeshTangentComputation", help:"Skip computing tangents for meshes. With meshes with a huge numer of vertices, it can take a very long time to compute them.", type:"Var"}, {name: "USD.Subdiv.IgnoreNormalsWhenSubdividing", help:"This being true means that whenever we subdivide a mesh we fully ignore the authored normals (if any) and recompute new normals. If this is false we will try interpolating the normals during subdivision like a regular primvar", type:"Var"}, {name: "USD.Subdiv.MaxSubdivLevel", help:"Maximum allowed level of subdivision (1 means a single iteration of subdivision)", type:"Var"}, {name: "VA.AllowPkgVirtualization", help:"When true submitting packages in the editor will no longer trigger the virtualization process", type:"Var"}, {name: "VA.DisableSystem", help:"When true the VA system will be disabled as though \'SystemName\' was \'None\'", type:"Var"}, {name: "VA.LazyInitConnections", help:"When true the VA backends will defer creating their connections until first use", type:"Var"}, {name: "VA.LazyInitSystem", help:"When true the VA system will be lazy initialized on first use", type:"Var"}, {name: "ValidatePackagePayloads", help:"Checks all payloads that a package references and makes sure that they are valid", type:"Cmd"}, {name: "VerifyPersistentStorageCategory", help:"VerifyPersistentStorageCategory <Category>", type:"Cmd"}, {name: "VisualGraphUtils.ControlRig.TraverseHierarchy", help:"Traverses the hierarchy for a given control rig", type:"Cmd"}, {name: "VisualGraphUtils.Object.CollectReferences", help:"Traces all references of an object", type:"Cmd"}, {name: "VisualGraphUtils.Object.CollectTickables", help:"Traces all tickables of an object", type:"Cmd"}, {name: "VisualGraphUtils.Object.LogClassNames", help:"Logs all class path names given a partial name", type:"Cmd"}, {name: "VisualGraphUtils.Object.LogInstancesOfClass", help:"Logs all instances of a given class", type:"Cmd"}, {name: "vm.BatchPackedVMOutput", help:"If > 0 output elements will be packed and batched branch free.\n", type:"Var"}, {name: "vm.BatchVMInput", help:"If > 0 input elements will be batched.\n", type:"Var"}, {name: "vm.BatchVMOutput", help:"If > 0 output elements will be batched.\n", type:"Var"}, {name: "vm.ChunkSizeInBytes", help:"Number of bytes per VM chunk Ideally <= L1 size. (default=32768) \n", type:"Var"}, {name: "vm.DetailedVMScriptStats", help:"If > 0 the vector VM will emit stats for it\'s internal module calls. \n", type:"Var"}, {name: "vm.FreeUnoptimizedByteCode", help:"When we have optimized the VM byte code should we free the original unoptimized byte code?", type:"Var"}, {name: "vm.InstancesPerChunk", help:"Number of instances per VM chunk. (default=128) \n", type:"Var"}, {name: "vm.MaxThreadsPerScript", help:"Maximum number of threads per script. Set 0 to mean \'as many as necessary\'\n", type:"Var"}, {name: "vm.OptimizeVMByteCode", help:"If > 0 vector VM code optimization will be enabled at runtime.\n", type:"Var"}, {name: "vm.PageSizeInKB", help:"Minimum allocation per VM instance. There are 64 of these, so multiply GVVMPageSizeInKB * 64 * 1024 to get total number of bytes used by the VVM\n", type:"Var"}, {name: "Voice", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "vm.SafeOptimizedKernels", help:"If > 0 optimized vector VM byte code will use safe versions of the kernels.\n", type:"Var"}, {name: "vm.UseOptimizedVMByteCode", help:"If > 0 optimized vector VM code will be excuted at runtime.\n", type:"Var"}, {name: "voice.debug.PrintAmplitude", help:"when set to 1, the current incoming amplitude of the VOIP engine will be displayed on screen.\n0: disabled, 1: enabled.", type:"Var"}, {name: "voice.DefaultPatchBufferSize", help:"Changes the amount of audio we buffer for VOIP patching, in samples.\n", type:"Var"}, {name: "voice.DefaultPatchGain", help:"Changes the default gain of audio patches, in linear gain.\n", type:"Var"}, {name: "voice.JitterBufferDelay", help:"The default amount of audio we buffer, in seconds, before we play back audio. Decreasing this value will decrease latency but increase the potential for underruns.\nValue: Number of seconds of audio we buffer.", type:"Var"}, {name: "voice.MicInputGain", help:"The default gain amount in linear amplitude.\nValue: Gain multiplier.", type:"Var"}, {name: "voice.MicNoiseAttackTime", help:"Sets the fade-in time for our noise gate.\nValue: Number of seconds we fade in over.", type:"Var"}, {name: "voice.MicNoiseGateThreshold", help:"Our threshold, in linear amplitude, for our noise gate on input. Similar to voice.SilenceDetectionThreshold, except that audio quieter than our noise gate threshold will still output silence.\nValue: Number of seconds of audio we buffer.", type:"Var"}, {name: "voice.MicNoiseReleaseTime", help:"Sets the fade out time for our noise gate.\nValue: Number of seconds we fade out over.", type:"Var"}, {name: "voice.MicStereoBias", help:"This will attenuate the left or right channel.\n0.0: Centered. 1.0: right channel only. -1.0: Left channel only.", type:"Var"}, {name: "voice.MuteAudioEngineOutput", help:"When set to a nonzero value, the output for the audio engine will be muted..\n", type:"Var"}, {name: "voice.NumChannels", help:"Default number of channels to capture from mic input, encode to Opus, and output. Can be set to 1 or 2.\nValue: Number of channels to use for VOIP input and output.", type:"Var"}, {name: "voice.playback.ResyncThreshold", help:"If the amount of audio we have buffered is greater than this value, we drop the oldest audio we have and sync to have voice.JitterDelay worth of buffered audio.\n", type:"Var"}, {name: "voice.playback.ShouldResync", help:"If set to 1, we will resync VOIP audio once it\'s latency goes beyond voice.playback.ResyncThreshold.\n", type:"Var"}, {name: "voice.sendLocalTalkersToEndpoint", help:"This will send audio output for all outgoing voip audio to the named endpoint. if given no arguments, this will disconnect all external endpoints.", type:"Cmd"}, {name: "voice.sendRemoteTalkersToEndpoint", help:"This will send audio output for all incoming voip audio to the named endpoint. if given no arguments, this will route voice output through the game engine.", type:"Cmd"}, {name: "vr.bEnableHMD", help:"Enables or disables the HMD device. Use 1, True, or Yes to enable, 0, False or No to disable.", type:"Cmd"}, {name: "vr.bEnableStereo", help:"Enables or disables the stereo rendering. Use 1, True, or Yes to enable, 0, False or No to disable.", type:"Cmd"}, {name: "vr.Debug.bEnableDevOverrides", help:"Enables or disables console commands that modify various developer-only settings.", type:"Var"}, {name: "vr.Debug.VisualizeTrackingSensors", help:"Show or hide the location and coverage area of the tracking sensors\nUse 1, True, or Yes to enable, 0, False or No to disable.", type:"Cmd"}, {name: "vr.HeadTracking.bEnforced", help:"If set, head tracking is enabled even when stereo rendering is disabled.\nMay not be supported by all XR implementations.", type:"Cmd"}, {name: "vr.HeadTracking.Reset", help:"Reset the rotation and position of the head mounted display.\nPass in an optional yaw for the new rotation in degrees.", type:"Cmd"}, {name: "vr.HeadTracking.ResetOrientation", help:"Reset the rotation of the head mounted display.\nPass in an optional yaw for the new rotation in degrees .", type:"Cmd"}, {name: "vr.HeadTracking.ResetPosition", help:"Reset the position of the head mounted display.", type:"Cmd"}, {name: "vr.HeadTracking.Status", help:"Reports the current status of the head tracking.", type:"Cmd"}, {name: "vr.HiddenAreaMask", help:"Enable or disable hidden area mask\n0: disabled\n1: enabled", type:"Var"}, {name: "vr.HMDVersion", help:"Prints version information for the current HMD device.", type:"Cmd"}, {name: "vr.MirrorMode", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "vr.MobileMultiView.Direct", help:"0 to disable mobile multi-view direct, 1 to enable.\nWhen enabled the scene color render target array is provided by the hmd plugin so we can skip the blit.\n", type:"Var"}, {name: "vr.MultiView", help:"0 to disable multi-view instanced stereo, 1 to enable.\nCurrently only supported by the PS4 & Metal RHIs.", type:"Var"}, {name: "vr.oculus.Stress.CPU", help:"Initiates a CPU stress test.\n Usage: vr.oculus.Stress.CPU [PerFrameTime [TotalTimeLimit]]", type:"Cmd"}, {name: "vr.oculus.Stress.GPU", help:"Initiates a GPU stress test.\n Usage: vr.oculus.Stress.GPU [LoadMultiplier [TimeLimit]]", type:"Cmd"}, {name: "vr.oculus.Stress.PD", help:"Initiates a pixel density stress test wher pixel density is changed every frame for TotalTimeLimit seconds.\n Usage: vr.oculus.Stress.PD [TotalTimeLimit]", type:"Cmd"}, {name: "vr.oculus.Stress.Reset", help:"Resets the stress tester and stops all currently running stress tests.\n Usage: vr.oculus.Stress.Reset", type:"Cmd"}, {name: "vr.ODSCapture", help:"Experimental0 to disable Omni-directional stereo capture (default), 1 to enable.", type:"Var"}, {name: "vr.PixelDensity", help:"Pixel density sets the VR render target texture size as a factor of recommended texture size.\nThe recommended texture size is the size that will result in no under sampling in most distorted area of the view when computing the final image to be displayed on the device by the runtime compositor.\nNote that the recommended texture size will likely be larger than the display panel resolution of the device as the texture is used as input data for the final composition/lens distortion pass provided by the device\'s runtime.\nA pixel density of 1.0 (default) will use the device\'s recommended texture size.\n", type:"Var"}, {name: "vr.SetTrackingOrigin", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "vr.SpectatorScreenMode", help:"Changes the look of the spectator if supported by the HMD plugin.\n 0: disable mirroring\n 1: single eye\n 2: stereo pair\nNumbers larger than 2 may be possible and specify HMD plugin-specific variations.\nNegative values are treated the same as 0.", type:"Cmd"}, {name: "vr.SteamVR.EnableVRInput", help:"Enable the new Steam VR Input interface for mapping actions to events.\n 0: use the legacy input mapping (default)\n 1: use the new Input API. You will have to define input bindings for the controllers you want to support.", type:"Var"}, {name: "vr.SteamVR.UsePostPresentHandoff", help:"Whether or not to use PostPresentHandoff. If true, more GPU time will be available, but this relies on no SceneCaptureComponent2D or WidgetComponents being active in the scene. Otherwise, it will break async reprojection.", type:"Var"}, {name: "vr.SteamVR.UseVisibleAreaMesh", help:"If non-zero, SteamVR will use the visible area mesh in addition to the hidden area mesh optimization. This may be problematic on beta versions of platforms.", type:"Var"}, {name: "vr.StereoLayers.bMixLayerPriorities", help:"By default, Face-Locked Stereo Layers are always rendered on top of any other layer position types.\nSet this to a non-zero value to disable this behavior (not supported on all platforms.)", type:"Var"}, {name: "vr.SwapMotionControllerInput", help:"This command allows you to swap the button / axis input handedness for the input controller, for debugging purposes.\n 0: don\'t swap (default)\n 1: swap left and right buttons", type:"Var"}, {name: "vr.TrackingOrigin", help:"Floor or 0 - tracking origin is at the floor, Eye or 1 - tracking origin is at the eye level.", type:"Cmd"}, {name: "vr.WorldToMetersScale", help:"Get or set the current world to meters scale.", type:"Cmd"}, {name: "VREd.ColorPickerDockSpawnOffset", help:"Offset of where the color picker spawns", type:"Var"}, {name: "VREd.ContentBrowserUIResolutionX", help:"Horizontal resolution to use for content browser UI render targets", type:"Var"}, {name: "VREd.ContentBrowserUIResolutionY", help:"Vertical resolution to use for content browser UI render targets", type:"Var"}, {name: "VREd.ContentBrowserUIScale", help:"How much to scale up (or down) the content browser for VR", type:"Var"}, {name: "VREd.ContentBrowserUISize", help:"How big content browser UIs should be", type:"Var"}, {name: "VREd.HideContentBrowserWhileDragging", help:"", type:"Var"}, {name: "VREd.PlacementInterpolationEnabled", help:"If we interpolate to desired size and the end of the laser when dragging out of content browser.", type:"Var"}, {name: "VREd.PlacementToEndOfLaser", help:"If we interpolate to the end of the laser when dragging out of content browser.", type:"Var"}, {name: "VREd.SizeOfActorsOverContentBrowserThumbnail", help:"How large objects should be when rendered \'thumbnail size\' over the Content Browser", type:"Var"}, {name: "VULKAN_SIMULATE_LOST_SURFACE", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "VULKAN_SIMULATE_SUBOPTIMAL_SURFACE", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "wg.ShaderBundle.SkipDispatch", help:"Whether to dispatch the built shader bundle pipeline (for debugging)", type:"Var"}, {name: "Widget.ExposeUIComponents", help:"Allow adding ui components to widgets in UMG.", type:"Var"}, {name: "Widget.MaxAnimationLatentActions", help:"Defines the maximum number of latent actions that can be run in one frame.", type:"Var"}, {name: "Widget.UseParallelAnimation", help:"Use multi-threaded evaluation for widget animations.", type:"Var"}, {name: "WidgetComponent.MaximumRenderTargetHeight", help:"Sets the maximum height of the render target used by a Widget Component.", type:"Var"}, {name: "WidgetComponent.MaximumRenderTargetWidth", help:"Sets the maximum width of the render target used by a Widget Component.", type:"Var"}, {name: "WidgetComponent.UseAutomaticTickModeByDefault", help:"Sets to true to Disable Tick by default on Widget Components when set to false, the tick will enabled by default.", type:"Var"}, {name: "XMPP", help:"Sorry: Exec commands have no help", type:"Exec"}, \ No newline at end of file {name: "WidgetReflector.TakeSnapshot", help:"Take a snapshot and save the result on the local drive. ie. WidgetReflector.TakeSnapshot [Delay=1.0] [Navigation=false]", type:"Cmd"}, {name: "WindowsApplication.ApplyLowLevelMouseFilter", help:"Applies Low Level mouse filter that filters out mouse inputs that act like touch inputs", type:"Cmd"}, {name: "WindowsApplication.EnableFirstTouchEvent", help:"Enable FirstTouch Event which prevents small pop on some touch input devices", type:"Var"}, {name: "WindowsApplication.EnableWindowMessageProfilerScopes", help:"Enable profiler scopes for window message handling on a per-message basis and for custom message handlers.", type:"Var"}, {name: "WindowsApplication.RemoveLowLevelMouseFilter", help:"Removes Low Level mouse filter that filters out mouse inputs that act like touch inputs", type:"Cmd"}, {name: "WindowsCursor.UseInvisibleCursorForNoneCursorType", help:"If enabled, sets the platform HCursor to a transparent cursor instead of null when the mouse cursor type to None.", type:"Var"}, {name: "WindowsPlatformCrashContext.ForceCrashReportDialogOff", help:"If true, force the crash report dialog to not be displayed in the event of a crash.", type:"Var"}, {name: "WindowTitleBar.ForceWindowButtonsHidden", help:"If true, force the window title bar buttons to be hidden.", type:"Var"}, {name: "WorldMetrics.SelfTest", help:"Toggles the World Metrics Subsystem self-test.", type:"Cmd"}, {name: "wp.Editor.DisableLevelInstanceEditorPartialLoading", help:"Allow disabling partial loading of level instances in the editor.", type:"Var"}, {name: "wp.Editor.DumpActorDesc", help:"Dump a specific actor descriptor on the console.", type:"Cmd"}, {name: "wp.Editor.DumpActorDescs", help:"Dump the list of actor descriptors in a CSV file.", type:"Cmd"}, {name: "wp.Editor.DumpClassDescs", help:"Dump the list of class descriptors in a CSV file.", type:"Cmd"}, {name: "wp.Editor.DumpStreamingGenerationLog", help:"Dump the streaming generation log.", type:"Cmd"}, {name: "wp.Editor.EnableSpatialHashValidation", help:"Whether to enable World Partition editor spatial hash validation", type:"Var"}, {name: "wp.editor.GenerateStreamingDescriptor", help:"Generate the streaming descriptor for the current world in the speficied file.", type:"Cmd"}, {name: "wp.Editor.HLOD.AllowShowingHLODsInEditor", help:"Allow showing World Partition HLODs in the editor.", type:"Var"}, {name: "wp.Editor.HLOD.DumpInputStats", help:"Export stats regarding the input to HLOD generation to a CSV formatted file.", type:"Cmd"}, {name: "wp.Editor.HLOD.DumpStats", help:"Export various HLOD stats to a CSV formatted file.", type:"Cmd"}, {name: "wp.Editor.LoadingRangeBugItGo", help:"Loading range for BugItGo command.", type:"Var"}, {name: "wp.Editor.ToggleShowEditorProfiling", help:"Toggles showing editor profiling stats.", type:"Cmd"}, {name: "wp.Editor.WorldExtentToEnableStreaming", help:"World extend to justify enabling streaming.", type:"Var"}, {name: "wp.Runtime.BlockOnSlowStreaming", help:"Set if streaming needs to block when to slow to catchup.", type:"Var"}, {name: "wp.Runtime.BlockOnSlowStreamingRatio", help:"Ratio of DistanceToCell / LoadingRange to use to determine if World Partition streaming needs to block", type:"Var"}, {name: "wp.Runtime.BlockOnSlowStreamingWarningFactor", help:"Factor of wp.Runtime.BlockOnSlowStreamingRatio we want to start notifying the user", type:"Var"}, {name: "wp.Runtime.DebugDedicatedServerStreaming", help:"Turn on/off to debug of server streaming.", type:"Var"}, {name: "wp.Runtime.DebugFilterByCellName", help:"Filter debug diplay of world partition streaming by full or partial cell name. Args [cell name]", type:"Cmd"}, {name: "wp.Runtime.DebugFilterByDataLayer", help:"Filter debug diplay of world partition streaming by data layer. Args [datalayer labels]", type:"Cmd"}, {name: "wp.Runtime.DebugFilterByRuntimeHashGridName", help:"Filter debug diplay of world partition streaming by grid name. Args [grid names]", type:"Cmd"}, {name: "wp.Runtime.DebugFilterByStreamingStatus", help:"Filter debug diplay of world partition streaming by streaming status. Args [streaming status]", type:"Cmd"}, {name: "wp.Runtime.DrawContentBundles", help:"Enable to draw debug display of content bundle.", type:"Var"}, {name: "wp.Runtime.DrawWorldPartitionIndex", help:"Sets the index of the wanted partitioned world to display debug draw.\nSets < 0 to display debug draw all registered partitioned worlds.\n", type:"Cmd"}, {name: "wp.Runtime.DumpDataLayers", help:"Dumps data layers to the log", type:"Cmd"}, {name: "wp.Runtime.DumpStreamingSources", help:"Dumps active streaming sources to the log", type:"Cmd"}, {name: "wp.Runtime.DumpWorldPartitions", help:"Dumps active world partitions to the log", type:"Cmd"}, {name: "wp.Runtime.EnableServerStreaming", help:"Set to 1 to enable server streaming, set to 2 to only enable it in PIE.\nChanging the value while the game is running won\'t be considered.", type:"Var"}, {name: "wp.Runtime.EnableServerStreamingOut", help:"Turn on/off to allow or not the server to stream out levels (only relevant when server streaming is enabled)\nChanging the value while the game is running won\'t be considered.", type:"Var"}, {name: "wp.Runtime.EnableSimulationStreamingSource", help:"Set to 0 to if you want to disable the simulation/ejected camera streaming source.", type:"Var"}, {name: "wp.Runtime.FilterRuntimeSpatialHashGridLevel", help:"Used to choose filter a single world partition runtime hash grid level.", type:"Var"}, {name: "wp.Runtime.ForceRuntimeSpatialHashZCulling", help:"Used to force the behavior of the runtime hash cells Z culling. Set to 0 to force off, to 1 to force on and any other value to respect the runtime hash setting.", type:"Var"}, {name: "wp.Runtime.HashSet.ShowDebugDisplayLevel", help:"Used to choose which level to display when showing runtime partitions.", type:"Var"}, {name: "wp.Runtime.HashSet.ShowDebugDisplayLevelCount", help:"Used to choose how many levels to display when showing runtime partitions.", type:"Var"}, {name: "wp.Runtime.HashSet.ShowDebugDisplayMode", help:"Used to choose what mode to display when showing runtime partitions (0=Level Streaming State, 1=Data Layers, 2=Content Bundles).", type:"Var"}, {name: "wp.Runtime.HLOD", help:"Turn on/off loading & rendering of world partition HLODs.", type:"Cmd"}, {name: "wp.Runtime.HLOD.ForceDisableShadows", help:"Force disable CastShadow flag on World Partition HLOD actors", type:"Var"}, {name: "wp.Runtime.HLOD.WarmupDebugDraw", help:"Draw debug display for the warmup requests", type:"Var"}, {name: "wp.Runtime.HLOD.WarmupEnabled", help:"Enable HLOD assets warmup. Will delay unloading of cells & transition to HLODs for wp.Runtime.HLOD.WarmupNumFrames frames.", type:"Var"}, {name: "wp.Runtime.HLOD.WarmupNanite", help:"Enable Nanite warmup for HLOD assets. Requires wp.Runtime.HLOD.WarmupEnabled to be 1.", type:"Var"}, {name: "wp.Runtime.HLOD.WarmupNumFrames", help:"Delay unloading of a cell for this amount of frames to ensure HLOD assets are ready to be shown at the proper resolution. Set to 0 to force disable warmup.", type:"Var"}, {name: "wp.Runtime.HLOD.WarmupVT", help:"Enable virtual texture warmup for HLOD assets. Requires wp.Runtime.HLOD.WarmupEnabled to be 1.", type:"Var"}, {name: "wp.Runtime.HLOD.WarmupVTScaleFactor", help:"Scale the VT size we ask to prefetch by this factor.", type:"Var"}, {name: "wp.Runtime.HLOD.WarmupVTSizeClamp", help:"Clamp VT warmup requests for safety.", type:"Var"}, {name: "wp.Runtime.LevelStreamingContinuouslyIncrementalGCWhileLevelsPendingPurgeForWP", help:"Force a GC update when there\'s more than the number of specified pending purge levels.", type:"Var"}, {name: "wp.Runtime.MaxLoadingStreamingCells", help:"Used to limit the number of concurrent loading world partition streaming cells.", type:"Var"}, {name: "wp.Runtime.OverrideRuntimeLoadingRange", help:"Sets runtime loading range. Args -grid=[Name] -range=[Range]", type:"Cmd"}, {name: "wp.Runtime.OverrideRuntimeSpatialHashLoadingRange", help:"Sets runtime loading range. Args -grid=[index] -range=[override_loading_range]", type:"Cmd"}, {name: "wp.Runtime.PlayerController.ForceUsingCameraAsStreamingSource", help:"Whether to force the use of the camera as the streaming source for World Partition. By default the player pawn is used.\n0: Use pawn as streaming source, 1: Use camera as streaming source", type:"Var"}, {name: "wp.Runtime.RecordReplayStreamingSources", help:"Set to 1 to record streaming sources when recording replay.", type:"Var"}, {name: "wp.Runtime.RuntimeSpatialHashCellToSourceAngleContributionToCellImportance", help:"Value between 0 and 1 that modulates the contribution of the angle between streaming source-to-cell vector and source-forward vector to the cell importance. The closest to 0, the less the angle will contribute to the cell importance.", type:"Var"}, {name: "wp.Runtime.RuntimeSpatialHashPlacePartitionActorsUsingLocation", help:"Set RuntimeSpatialHashPlacePartitionActorsUsingLocation to true to place partitioned actors into their corresponding cell using their location instead of their bounding box.", type:"Var"}, {name: "wp.Runtime.RuntimeSpatialHashPlaceSmallActorsUsingLocation", help:"Set RuntimeSpatialHashPlaceSmallActorsUsingLocation to true to place actors smaller than a cell size into their corresponding cell using their location instead of their bounding box.", type:"Var"}, {name: "wp.Runtime.RuntimeSpatialHashSnapNonAlignedGridLevelsToLowerLevels", help:"Set RuntimeSpatialHashSnapNonAlignedGridLevelsToLowerLevels to false to avoid snapping higher levels cells to child cells. Only used when GRuntimeSpatialHashUseAlignedGridLevels is false.", type:"Var"}, {name: "wp.Runtime.RuntimeSpatialHashSortUsingCellExtent", help:"Set to 1 to use cell extent instead of cell grid level when sorting cells by importance.", type:"Var"}, {name: "wp.Runtime.RuntimeSpatialHashSortUsingCellPriority", help:"Set to 1 to use cell priority before distance to/angle from source as part of the sorting criterias when sorting cells by importance.", type:"Var"}, {name: "wp.Runtime.RuntimeSpatialHashUseAlignedGridLevels", help:"Set RuntimeSpatialHashUseAlignedGridLevels to false to help break the pattern caused by world partition promotion of actors to upper grid levels that are always aligned on child levels.", type:"Var"}, {name: "wp.Runtime.ServerDisallowStreamingOutDataLayers", help:"Comma separated list of data layer names that aren\'t allowed to be unloaded or deactivated on the server", type:"Var"}, {name: "wp.Runtime.ServerStreamingSourceMinimumExtraAngle", help:"Minimum value added to the angle of the streaming source shape sector used by the server (in degree).", type:"Var"}, {name: "wp.Runtime.ServerStreamingSourceMinimumExtraRadius", help:"Minimum value added to the radius of the streaming sources used by the server (in Unreal unit).", type:"Var"}, {name: "wp.Runtime.SetDataLayerRuntimeState", help:"Sets Runtime DataLayers state. Args [State = Unloaded, Loaded, Activated] [DataLayerNames]", type:"Cmd"}, {name: "wp.Runtime.SetLogWorldPartitionVerbosity", help:"Change the WorldPartition log verbosity.", type:"Cmd"}, {name: "wp.Runtime.ShowRuntimeSpatialHashCellStreamingPriority", help:"Enable to show a heatmap of the runtime spatial hash grid cells based on their priority (0=disabled, 1=heatmap, 2=grayscale.", type:"Var"}, {name: "wp.Runtime.ShowRuntimeSpatialHashGridLevel", help:"Used to choose which grid level to display when showing world partition runtime hash.", type:"Var"}, {name: "wp.Runtime.ShowRuntimeSpatialHashGridLevelCount", help:"Used to choose how many grid levels to display when showing world partition runtime hash.", type:"Var"}, {name: "wp.Runtime.TaskPriorities.AsyncUpdateStreamingStateTask", help:"Task and thread priority for world partition asynchronous UpdateStreamingState task.\nArguments are three characters: [ThreadPriority][TaskPriority][TaskPriorityIfForcedToNormalThreadPriority] where ThreadPriority is \'h\' or \'n\' or \'b\' (high/normal/background) and TaskPriority is \'h\' or \'n\' (high/normal). Example: wp.Runtime.TaskPriorities.AsyncUpdateStreamingStateTask bnh", type:"Var"}, {name: "wp.Runtime.ToggleDataLayerActivation", help:"Toggles DataLayers active state. Args [DataLayerNames]", type:"Cmd"}, {name: "wp.Runtime.ToggleDrawDataLayers", help:"Toggles debug display of active data layers.", type:"Cmd"}, {name: "wp.Runtime.ToggleDrawDataLayersLoadTime", help:"Toggles debug display of active data layers load time.", type:"Cmd"}, {name: "wp.Runtime.ToggleDrawLegends", help:"Toggles debug display of world partition legends.", type:"Cmd"}, {name: "wp.Runtime.ToggleDrawRuntimeCellsDetails", help:"Toggles debug display of world partition runtime streaming cells.", type:"Cmd"}, {name: "wp.Runtime.ToggleDrawRuntimeHash2D", help:"Toggles 2D debug display of world partition runtime hash.", type:"Cmd"}, {name: "wp.Runtime.ToggleDrawRuntimeHash3D", help:"Toggles 3D debug display of world partition runtime hash.", type:"Cmd"}, {name: "wp.Runtime.ToggleDrawStreamingPerfs", help:"Toggles debug display of world partition streaming perfs.", type:"Cmd"}, {name: "wp.Runtime.ToggleDrawStreamingSources", help:"Toggles debug display of world partition streaming sources.", type:"Cmd"}, {name: "wp.Runtime.UpdateStreaming.EnableAsyncUpdate", help:"Set to enable asynchronous World Partition UpdateStreamingState.", type:"Var"}, {name: "wp.Runtime.UpdateStreaming.EnableOptimization", help:"Set to 1 to enable an optimization that skips world partition streaming update\nif nothing relevant changed since last update.", type:"Var"}, {name: "wp.Runtime.UpdateStreaming.ForceUpdateFrameCount", help:"Frequency (in frames) at which world partition streaming update will be executed regardless if no changes are detected.", type:"Var"}, {name: "wp.Runtime.UpdateStreaming.LocationQuantization", help:"Distance (in Unreal units) used to quantize the streaming sources location to determine if a world partition streaming update is necessary.", type:"Var"}, {name: "wp.Runtime.UpdateStreaming.RotationQuantization", help:"Angle (in degrees) used to quantize the streaming sources rotation to determine if a world partition streaming update is necessary.", type:"Var"}, {name: "wp.Runtime.UpdateStreamingSources", help:"Set to 0 to stop updating (freeze) world partition streaming sources.", type:"Var"}, {name: "wp.Runtime.UpdateStreamingStateTimeLimit", help:"Maximum amount of time to spend doing World Partition UpdateStreamingState (ms per frame).", type:"Var"}, {name: "wp.Runtime.UseMakingInvisibleTransactionRequests", help:"Whether the client should wait for the server to acknowledge visibility update before making partitioned world streaming levels invisible.\nChanging the value while the game is running won\'t be considered.", type:"Var"}, {name: "wp.Runtime.UseMakingVisibleTransactionRequests", help:"Whether the client should wait for the server to acknowledge visibility update before making partitioned world streaming levels visible.\nChanging the value while the game is running won\'t be considered.", type:"Var"}, {name: "wp.Runtime.UseReplayStreamingSources", help:"Set to 1 to use the recorded streaming sources when playing replay.", type:"Var"}, {name: "wp.StaticLighting.MarkPackageDirtyNewMapBuildDataId", help:"Mark dirty all Actors with newly created MapBuildDataIDs", type:"Cmd"}, {name: "XInput.ForceControllerStateUpdate", help:"Force XInput refresh of controller state on each frame.\n0: Not Enabled, 1: Enabled", type:"Var"}, {name: "XMPP", help:"Sorry: Exec commands have no help", type:"Exec"}, {name: "xr.LateUpdateManager.Disable", help:"Disable the LateUpdateManager preventing child components from receiving late updates.\n", type:"Var"}, {name: "xr.VRS.DynamicFoveation", help:"Whether foveation level should adjust based on GPU utilization\n 0: Disabled (default);\n 1: Enabled\n", type:"Var"}, {name: "xr.VRS.FoveationLevel", help:"Level of foveated VRS to apply (when Variable Rate Shading is available)\n 0: Disabled (default);\n 1: Low;\n 2: Medium;\n 3: High;\n 4: High Top;\n", type:"Var"}, {name: "xr.VRS.FoveationPreview", help:"Include foveated VRS in the VRS debug overlay. 0: Disabled;\n 1: Enabled (default)\n", type:"Var"}, {name: "xr.VRS.GazeTrackedFoveation", help:"Enable gaze-tracking for foveated VRS\n 0: Disabled (default);\n 1: Enabled\n", type:"Var"},