HighResShot not working in shipping packaging 5.5

Hello !

I’m using in blueprint the execute command node to take ingame screenshot with HighResShot. Since the 5.5 it doesn’t work in shipping. I create a new blank project and the problem still occurs.

I tried to do a custom blueprint calling directly request.screenshot without result.

Is there any alternative working in 5.5 ?

Thanks

Hi, I’m currently dealing with the same issue. Did you manage to get around this?

1 Like

I am also facing the same issue. Can anyone please help me out with this. Thank you

Hey i somehow found a fix. If you do a development build then it will work without any issues. I will keep the post updated if i find a fix while doing a shipping build.

1 Like

same

not with my settings,idk why. in the past no prob

jup same sh

I just get back to 5.4 xD

Hi everyone!

We’ve encountered an issue in shipping builds on engine 5.5 where the screenshot saving functionality is not working. We are using the following code to save the screenshot:

cpp

const FString RootDir = FPaths::ProjectSavedDir();
const FString TempScreenshotPath = RootDir + TEXT("Screenshots/TempScreenshot.png");
FScreenshotRequest::RequestScreenshot(TempScreenshotPath, false, false);

At the point of saving, the image is not being written, and we cannot find the file at the specified path.

This is a critical functionality for our game on Steam, and we would like to know when this issue will be fixed or if there are any workarounds.

Any help or information would be greatly appreciated!

Thank you!

Exactly the same problem. Doesn’t work after updating to version 5.5. Epic games shame on you! Again the update adds a lot of bugs.

This might be a shameless :hear_no_evil: self-promotion but my plugin Runtime Video Recorder (https://www.fab.com/listings/36bd136b-2942-4403-9428-96a430ca71ee), allows you to capture both video (whole or PER FRAME) and screenshot in shipping packaging or editor. It is compatible with 5.3 - 5.5 and being used by Meta, many indie studios and content creators alike (check reviews).
You might use video recording (like record only a few frames) like a workaround for your screenshot functionality

Hey, I encountered the same very annoying issue.
I have filed a bug report to the Unreal Team, hopefully they will resolve this fast enough

Hey,

Here is a simple solution for everyone who is struggling to capture screenshot via c++ code.

First of all:
It seems “FScreenshotRequest::RequestScreenshot” and screenshot processing now part of the EditorViewportClient code and obviously that class is not included in shipping build.
Thats the reason why requesting a screenshot does not write any file…
However screenshot actualy created in the memory!!!

What is the solution?

First, you need to subscribe to OnScreenshotCaptured event to get notified when screenshot is done.

void UDGameInstance::TakeScreenshot()
{
	GetGameViewportClient()->OnScreenshotCaptured().RemoveAll(this);
	GetGameViewportClient()->OnScreenshotCaptured().AddUObject(this, &UDGameInstance::OnScreenshotCaptured);

	FScreenshotRequest::RequestScreenshot(false);
}

Then save your screenshot where and how you want.

void UDGameInstance::OnScreenshotCaptured(int32 InWidth, int32 InHeight, const TArray<FColor>& inColors)
{
	// Create date+time based filename
	FString Path = "Screenshot " + FDateTime::Now().ToString(TEXT("%Y-%m-%d %H-%M-%S"));

	// Format Path to use Saved/Screenshot dir.
	FScreenshotRequest::CreateViewportScreenShotFilename(Path);

	// Append ext.
	Path.Append(".png");

	// Compress and write compressed bitmap to the disk
	TArray64<uint8> CompressedBitmap;
	FImageUtils::PNGCompressImageArray(InWidth, InHeight, TArrayView64<const FColor>(inColors.GetData(), inColors.Num()), CompressedBitmap);
	FFileHelper::SaveArrayToFile(CompressedBitmap, *Path);
}

I hope this helps… tested and works in shipping build too.
Cheers

1 Like

Encountered same issue, which is problematic for a project I’m working on as it was a good feature to base photomode on.

This change was never requested by anybody nor was it ever announced, so i hope it’s a genuine bug rather than some intended “security” feature to specifically disallow this feature to write to a file in shipping build while you can still utilize other ways to write any file you want to users disk.

I’ve submitted a bug report, hopefully Epic will respond one way or another.

//
From what i can tell the major change is just blocking out actual chunk with calls to image saving code with a defile UE_SCREENSHOT_TRACE_ENABLED in ProcessScreenshotData inside GameViewportClient.cpp

So it appears they’ve included some extra functionality to trace screenshots and then erroneously or at least semi-intended wrapped those calls with that define, which will be false in Shipping builds for obvious reasons.

Kinda feels redundant since old code with SHOULD_TRACE_SCREENSHOT() is literally still inside.

2 Likes

(post deleted by author)

Could you share the link to the bug report? I’m unable to find it. Thanks!

Reported issues are not logged on the issue tracker automatically.
They are manually reviewed by Epic and only upon manual acceptation are listed on issue tracker.

I don’t know how long it usually takes but i haven’t received any notification about the issue being approved or denied yet.

Thank you! Please keep us updated on this matter if there are any new developments. This is essential for many users.