UE4SS Configuration and Debugging Guide
UE4SS Configuration and Debugging Guide
Using 'UseCache' in UE4SS can significantly improve performance by storing frequent computations, thus reducing the need to compute each time. However, 'InvalidateCacheIfDLLDiffers' ensures that the cache is up-to-date with the current version of ue4ss.dll, which is crucial for correctness. The trade-off is between performance and accuracy; using both together provides a balanced approach by leveraging caching for performance while ensuring the cached data is valid under the current DLL conditions .
Enabling 'GuiConsoleEnabled' allows the external UE4SS debug console to function, which is essential for debugging processes. 'GuiConsoleVisible' determines whether this console is initially visible, affecting user experience by either immediately providing debug information or allowing a cleaner interface when not needed. Visible consoles can offer immediate feedback during testing, but may clutter the screen if not required constantly .
The 'MaxMemoryUsageDuringAssetLoading' setting in UE4SS places a cap on total memory usage during asset loading operations. If the percentage of memory used reaches the specified limit (80% by default), the asset loader will halt, ensuring resource allocation remains safe and preventing system overloads during large asset operations. This protects against potential crashes due to insufficient memory .
Setting 'LoadAllAssetsBeforeDumpingObjects' to 1 in UE4SS configuration means that all assets will be forced to load before dumping objects. This can require multiple gigabytes of extra memory and is not stable, potentially causing the game to crash if you load past the main menu after dumping .
The 'SigScannerNumThreads' setting determines the number of threads used by the signature scanner. In a non-modular game, increasing this value could potentially enhance performance by allowing simultaneous multi-threaded operations, reducing the time taken to complete the scan. However, creating too many threads could overwhelm the system's resources if not properly managed .
The 'MakeEnumClassesBlueprintType' setting in UE4SS forces UENUM macros on enums to have 'BlueprintType', making enums fully accessible to Unreal Engine’s Blueprint system. This conversion to 'BlueprintType' ensures consistent data types that can be directly used in Blueprints, facilitating integration and manipulation by designers. It is enforced to promote a seamless workflow between code and visual scripting .
The 'HookProcessInternal' setting in the UE4SS configuration is used to enable hooks within the internal processing of the game. This can affect gameplay by allowing developers to intercept and potentially modify the game's processing, leading to custom behaviors or debugging but can also introduce instability if not properly managed .
Setting 'HookInitGameState' to 1 in UE4SS hooks into the game's initialization state process, allowing custom code to be executed during game state initialization. The potential benefits include enhanced debugging and customization opportunities. However, the risks involve accidental disruption of game flow, leading to instability or unanticipated behavior if not properly managed .
Enabling 'MakeAllFunctionsBlueprintCallable' forces all UFUNCTION macros to have 'BlueprintCallable', which allows all functions to be called from Blueprints. This simplifies the exposure of functions to Unreal Engine’s Blueprint, increasing accessibility for non-programmers. However, it may introduce errors in generated headers, requiring manual corrections, which could complicate development workflows .
The default setting of 'IgnoreEngineAndCoreUObject' being 1 is likely intended to streamline the header generation process by excluding core engine packages that are typically stable and unchanged. This reduces the workload during header generation and focuses resources on game-specific code, which requires more frequent updates and customizations .