Is there any way to enable/disable the “Use Fixed Frame Rate”-Option from the Project-Settings via Blueprint or in a similar/other way at runtime?
There’s this node in Game User Settings called Set Frame Rate Limit. That might be what you’re looking for?
Unfortunately not. The behaviour of Set Frame Rate Limit and Use Fixed Frame Rate is different. For Use Fixed Frame Rate i am expecting a certain behaviour of my game at runtime as for setting the Set Frame Rate Lmit.
It should be a boolean value to be set/unset. Here is a screenshot from the area of the Project-Setting:
I just need this one value to be set/unset at runtime but couldn’t find any clues yet on how to do so.
Edit: Even though I assume it is not possible to be set at runtime, I hope to get an explanation on why it does not.
This seems to be the only way to get Unreal Engine games to stop hitting max GPU making GPU fans go crazy in empty scenes yet there isn’t a way to manually toggle this during runtime. This makes zero sense.
it can be done at runtime with c++
Plugins.zip (13.3 MB)
code inside of plugin
header
// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Kismet/BlueprintFunctionLibrary.h"
#include "frameRateTogglerBPLibrary.generated.h"
/*
* Function library class.
* Each function in it is expected to be static and represents blueprint node that can be called in any blueprint.
*
* When declaring function you can define metadata for the node. Key function specifiers will be BlueprintPure and BlueprintCallable.
* BlueprintPure - means the function does not affect the owning object in any way and thus creates a node without Exec pins.
* BlueprintCallable - makes a function which can be executed in Blueprints - Thus it has Exec pins.
* DisplayName - full name of the node, shown when you mouse over the node and in the blueprint drop down menu.
* Its lets you name the node using characters not allowed in C++ function names.
* CompactNodeTitle - the word(s) that appear on the node.
* Keywords - the list of keywords that helps you to find node when you search for it using Blueprint drop-down menu.
* Good example is "Print String" node which you can find also by using keyword "log".
* Category - the category your node will be under in the Blueprint drop-down menu.
*
* For more info on custom blueprint nodes visit documentation:
* https://wiki.unrealengine.com/Custom_Blueprint_Node_Creation
*/
UCLASS()
class UframeRateTogglerBPLibrary : public UBlueprintFunctionLibrary
{
GENERATED_UCLASS_BODY()
UFUNCTION(BlueprintCallable, meta = (DisplayName = "Set Fixed frame rate", Keywords = "fixed frame rate toggle"), Category = "Toggler")
static void SetFixedFrameRate(bool fixed, int32 maxFPS, bool debug = false);
};
cpp
// Copyright Epic Games, Inc. All Rights Reserved.
#include "frameRateTogglerBPLibrary.h"
#include "frameRateToggler.h"
//#include "Runtime/Engine/Public/EngineGlobals.h"
#include "EngineGlobals.h"
UframeRateTogglerBPLibrary::UframeRateTogglerBPLibrary(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
{
}
#include "Kismet/KismetStringLibrary.h"
void UframeRateTogglerBPLibrary::SetFixedFrameRate(bool fixed, int32 maxFPS, bool debug)
{
if (GEngine) {
GEngine->bUseFixedFrameRate = fixed;
if (debug == true) {
GEngine->AddOnScreenDebugMessage(1, 1, FColor(0, 0, 0), UKismetStringLibrary::Conv_BoolToString(fixed));
}
if (fixed == true) {
GEngine->SetMaxFPS(maxFPS);
GEngine->FixedFrameRate = maxFPS;
}
else {
GEngine->SetMaxFPS(99999999999);
GEngine->FixedFrameRate = 99999999999;
}
}
}
Unfortunately packing of the plugin itself causes problems because of GEngine, but packing it inside of a project seems to work

