Update: we have now released the captures feature to desktop.
Is it possible to capture a screenshot and then edit that screenshot with scripts? (something that goes along the line of making screen distortion effects such as glitching)
Is there some sort of way to hide the UI when capturing? This could work really well with an in-game camera system.
I’m aware of HideCoreGuiForCaptures
and HidePlayerGuiForCaptures
, but they don’t seem to work as intended for captures created by scripts. CaptureBegan
and CaptureEnded
doesn’t fire properly for me as well.
I’m upset that capture replaced the old screenshot button because the new one is even more limited.
- Can’t press the capture button when in first person experience.
- Can’t get a screenshot of the in game UI because it is automatically hidden without option.
- Images are watermarked with no option to disable.
At this point I prefer using windows snipping tool rather than the inbuilt capture.
Is there a way to delete the unwanted temporary captureID?, i was doing some tests until it just stopped working, i assume its because there is a limit of temp captureIDs you can have, i had to use another place to make it work again.
Hi, great question. We’re aware of the inability to remove captures requested by the experience from memory and we’re looking into the best way to solve this issue long-term. We’re balancing this with a few different priorities, but we should at least have an update for you in a few weeks. Thank you for your patience while we get this figured out.
When using the captures API, hiding the UI is left up to the experience. There’s no way to hide core components like the escape menu button through the CaptureService. We’re interested ways to get around this limitation so that we can offer something like a UI-free capture, but we’re a bit constrained by the technology on this front. We’ll keep devs posted if this changes.
Good question. These are all for when the user uses the in-experience captures feature, not when the developer takes a capture. User support docs found here: https://en.help.roblox.com/hc/en-us/articles/20564017568276-How-Do-I-Take-a-Screenshot-in-an-Experience
Is there any reason this wasn’t present in the engine release notes? The only reason I saw this is because I randomly remembered this feature got released today and was curious if desktop got it yet. Things like this are really hard to track.
Hey great callout, let me check with my teammates if that makes sense for future updates to captures. The desktop feature update didn’t get added to the engine release notes because a feature release like that doesn’t map 1:1 with an engine release, but I’ll see if it makes sense to include updates there to keep devs better informed.
Yeah, some work needs to be done to better inform developers about updates like this. Often, features are released with an announcement on the DevForum (fine) but if they are in beta, or incomplete, Roblox staff will follow up with a comment, or they’ll edit the announcement. This is near-impossible to track.
CaptureService:CaptureScreenshot(...)
used to work in studio when the game wasn’t running but now just yields forever. Was this an intentional change? If not, can we have that old functionality back? I was hoping to use it for a plugin.
Will it ever be possible for us to capture screenshots from other CameraInstances? @TheGamer101 @merlin_codes
Not intentional, we will fix this.
Bumpy bump, I’m still waiting on an answer please. Thanks!
Hi there! I’m interested to know!
Hey folks, some quick updates on the feature:
- In order to declutter user captured images, watermarks no longer appear in user-initiated captures or in Selfie Mode dev module images. The following properties have been deprecated:
- ScreenshotHud OverlayFont
- ScreenshotHud UsernameOverlayEnabled
- ScreenshotHud ExperienceNameOverlayEnabled
- The CaptureService CaptureSaved signal has been deprecated in favor of the UserCaptureSaved signal
- Users on most desktop clients can now initiate a capture by pressing Alt + 1 (Windows non-UWP) or Option + 1 (Mac)
- Developers can disable this hotkey by disabling the captures feature via
SetCoreGuiEnabled
- Developers can disable this hotkey by disabling the captures feature via
Im probably messing something up here but in this little demo the image is visible in the capture despite being disabled before the capture resulting in a white background
local captureService = game:GetService("CaptureService")
local AssetService = game:GetService("AssetService")
local Runservice = game:GetService("RunService")
local Canvas = Instance.new("EditableImage")
Canvas.Parent = script.Parent.ImageLabel
Canvas.Size = script.Parent.ImageLabel.AbsoluteSize
--stored because vec2 is costly to build for reasons
local v2z = Vector2.zero
--Before capture disable canvas
captureService.CaptureBegan:Connect(function()
script.Parent.ImageLabel.Visible = false
end)
--After capture enable canvas for viewing
captureService.CaptureEnded:Connect(function()
script.Parent.ImageLabel.Visible = true
end)
--every second take a screenshot and render it to the canvas
while task.wait(1) do
captureService:CaptureScreenshot(function(capture)
Canvas:DrawImage(v2z, AssetService:CreateEditableImageAsync(capture), Enum.ImageCombineType.Overwrite)
end)
end
(ignore the stretching I know how to fix it, im just trying to solve this first)
Hey, coming across this issue too. I think the CaptureBegin
and CaptureEnded
signals are only fired for the user’s capture method, rather than developer-triggered captures unfortunately.
I hope that this will change because not having the ability to capture the user’s UI severely limits the application of developer-created capture systems.
is there any way to take a photo with this API that is with another camera that is not the main camera? for example to have multiple photos of ur character but from diferent angles
Great question, we have some hard technical limitations that prevent us from enabling this kind of functionality, so there won’t be a way to do this in the near future.