Reference API Roblox

Engine API

Website

Related

Reference API Roblox

StudioCaptureService

A Studio-only service that lets plugins capture screenshots of the active place's 3D viewport.

This class is not replicated. Its interface does not cross the network boundary.
This class is not creatable. Instances of this class cannot be created with Instance.new.
This class is a service. It is a singleton that may be acquired with GetService.
Tags: [NotCreatable, Service, NotReplicated]

Member index 4

HistoryMember
714CanCaptureScreenshot(): bool
732CapturePluginGui(pluginGui: PluginGui): StudioScreenshotCapture
714CaptureScreenshot(screenshotOptions: Dictionary): StudioScreenshotCapture
714RequestScreenshotPermissionAsync(): bool
inherited from Instance
553Archivable: bool
670Capabilities: SecurityCapabilities
723IsInSandbox: bool
553Name: string
553Parent: Instance
702PredictionMode: PredictionMode
670Sandboxed: bool
680UniqueId: UniqueId
576AddTag(tag: string): null
573ClearAllChildren(): null
462Clone(): Instance
573Destroy(): null
486FindFirstAncestor(name: string): Instance
486FindFirstAncestorOfClass(className: string): Instance
486FindFirstAncestorWhichIsA(className: string): Instance
486FindFirstChild(name: string, recursive: bool = false): Instance
486FindFirstChildOfClass(className: string): Instance
486FindFirstChildWhichIsA(className: string, recursive: bool = false): Instance
486FindFirstDescendant(name: string): Instance
563GetActor(): Actor
486GetAttribute(attribute: string): Variant
462GetAttributeChangedSignal(attribute: string): RBXScriptSignal
631GetAttributes(): Dictionary
648GetChildren(): Instances
462GetDebugId(scopeLength: int = 4): string
707GetDescendants(): Instances
486GetFullName(): string
706GetStyled(name: string, selector: string?): Variant
657GetStyledPropertyChangedSignal(property: string): RBXScriptSignal
576GetTags(): Array
576HasTag(tag: string): bool
486IsAncestorOf(descendant: Instance): bool
486IsDescendantOf(ancestor: Instance): bool
664IsPropertyModified(property: string): bool
698QueryDescendants(selector: string): Instances
573Remove(): null
576RemoveTag(tag: string): null
664ResetPropertyToDefault(property: string): null
573SetAttribute(attribute: string, value: Variant): null
462WaitForChild(childName: string, timeOut: double): Instance
648children(): Instances
553clone(): Instance
573destroy(): null
553findFirstChild(name: string, recursive: bool = false): Instance
648getChildren(): Instances
553isDescendantOf(ancestor: Instance): bool
573remove(): null
462AncestryChanged(child: Instance, parent: Instance)
462AttributeChanged(attribute: string)
462ChildAdded(child: Instance)
462ChildRemoved(child: Instance)
462DescendantAdded(descendant: Instance)
462DescendantRemoving(descendant: Instance)
500Destroying()
657StyledPropertiesChanged()
553childAdded(child: Instance)
inherited from Object
647ClassName: string
647className: string
647GetPropertyChangedSignal(property: string): RBXScriptSignal
647IsA(className: string): bool
650isA(className: string): bool
647Changed(property: string)

Description

StudioCaptureService is a Studio-only service that lets plugins capture screenshots of the active place's 3D viewport. Use RequestScreenshotPermissionAsync() to obtain the user's permission, CanCaptureScreenshot() to check whether a capture is currently possible, and CaptureScreenshot() to request an image of the current view. All members require plugin security and are only available within Studio.

History 5

Members 4

CanCaptureScreenshot

Parameters (0)
No parameters.
Returns (1)
bool

Returns false when there is a known reason a screenshot cannot be captured — for example, when this is not the active DataModel or the plugin does not have permission — and true otherwise. A return value of true does not guarantee that CaptureScreenshot() will succeed, because conditions can change between the two calls.

History 1

CapturePluginGui

Parameters (1)
pluginGuiPluginGui
Returns (1)
StudioScreenshotCapture

History 1

CaptureScreenshot

Parameters (1)
screenshotOptionsDictionary
Returns (1)
StudioScreenshotCapture

Captures a screenshot of the active DataModel according to screenshotOptions and returns a StudioScreenshotCapture in the requested format. If an image of the requested size cannot be captured at the requested position, the capture fails rather than clipping the image.

The screenshotOptions dictionary accepts the following keys:

  • Position — a Vector2 top-left offset of the captured region. Must be non-negative and defaults to (0, 0).
  • CaptureSize — a Vector2 size of the region to capture. Both components must be positive.
  • OutputSize — a Vector2 size of the returned image. Both components must be positive; when it differs from CaptureSize, ResampleMode must also be provided.
  • ResampleMode — the resampling filter used when OutputSize differs from CaptureSize.
  • Format — an StudioCaptureScreenshotFormat for the returned buffer. Defaults to StudioCaptureScreenshotFormat.RGBA8.
  • UICaptureMode — an UICaptureMode controlling whether UI is included in the capture. Defaults to UICaptureMode.All.

The returned StudioScreenshotCapture is populated asynchronously: its image buffer becomes available only after the capture and encoding complete, and any errors are reported on the capture object.

History 1

RequestScreenshotPermissionAsync

Parameters (0)
No parameters.
Returns (1)
bool

This yielding function asks the user to grant the plugin permission to capture screenshots from their Studio 3D view, returning true if permission is granted and false otherwise. It can return immediately without prompting when the plugin's permission is already known from an earlier session, and it returns false without prompting when the global screenshot setting is disabled.

This function yields. It will block the calling thread until completion.

History 1

Tags: [Yields]

Settings