# StudioCaptureService

Roblox Engine API class from Roblox Studio 0.744.0.7441077 (version-7aaa6838d36c4448).

- Inherits from, nearest first: [Instance](https://rapi.sleaze.dev/classes/Instance.md), [Object](https://rapi.sleaze.dev/classes/Object.md)
- Tags: Not creatable, Not replicated, Service
- Memory category: Instances
- HTML page: https://rapi.sleaze.dev/classes/StudioCaptureService/
- Roblox documentation: https://create.roblox.com/docs/reference/engine/classes/StudioCaptureService

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

## Methods

### CanCaptureScreenshot

```luau
StudioCaptureService:CanCaptureScreenshot(): boolean
```

- Tags: Plugin security

Returns whether a screenshot can currently be captured.

Returns: A boolean that is `false` when a screenshot is known to be uncapturable, or `true` otherwise.

### CapturePluginGui

```luau
StudioCaptureService:CapturePluginGui(pluginGui: PluginGui): StudioScreenshotCapture
```

- Tags: Roblox script security

### CapturePluginGuiByPluginGuiIdAsync

```luau
StudioCaptureService:CapturePluginGuiByPluginGuiIdAsync(pluginGuiId: string): StudioScreenshotCapture
```

- Tags: Yields, Roblox script security

### CaptureScreenshot

```luau
StudioCaptureService:CaptureScreenshot(screenshotOptions: { [string]: any }): StudioScreenshotCapture
```

- Tags: Plugin security

Captures a screenshot of the active place according to the provided options.

Parameters:

- `screenshotOptions`: A dictionary of options controlling the capture, such as `Position`, `CaptureSize`, `OutputSize`, `ResampleMode`, `Format`, and `UICaptureMode`.

Returns: A [`StudioScreenshotCapture`](https://rapi.sleaze.dev/classes/StudioScreenshotCapture.md) that holds the requested image in the requested format.

### RequestScreenshotPermissionAsync

```luau
StudioCaptureService:RequestScreenshotPermissionAsync(): boolean
```

- Tags: Yields, Plugin security

Requests the user's permission for the plugin to capture screenshots from the Studio 3D view.

Returns: A boolean that is `true` if the user granted permission and `false` otherwise.

## Inherited members

- From [Instance](https://rapi.sleaze.dev/classes/Instance.md): `Archivable`, `archivable`, `Attributes`, `AttributesReplicate`, `AttributesSerialize`, `HistoryId`, `Name`, `Parent`, `PredictionMode`, `PropertyStatusStudio`, `RobloxLocked`, `SerializedOverrides`, `SourceAssetId`, `Tags`, `UniqueId`, `numExpectedDirectChildren`, `DataCost`, `Capabilities`, `DefinesCapabilities`, `IsInSandbox`, `Sandboxed`, `AddTag`, `ClearAllChildren`, `Clone`, `Destroy`, `FindFirstAncestor`, `FindFirstAncestorOfClass`, `FindFirstAncestorWhichIsA`, `FindFirstChild`, `FindFirstChildOfClass`, `FindFirstChildWhichIsA`, `FindFirstDescendant`, `GetActor`, `GetAttribute`, `GetAttributeChangedSignal`, `GetAttributes`, `GetChildren`, `GetDebugId`, `GetDescendants`, `GetFullName`, `GetStyled`, `GetStyledPropertyChangedSignal`, `GetTags`, `HasTag`, `IsAncestorOf`, `IsDescendantOf`, `IsPropertyModified`, `QueryDescendants`, `RemoveTag`, `ResetPropertyToDefault`, `SetAttribute`, `WaitForChild`, `Remove`, `children`, `clone`, `destroy`, `findFirstChild`, `getChildren`, `isDescendantOf`, `remove`, `AncestryChanged`, `AttributeChanged`, `ChildAdded`, `ChildRemoved`, `DescendantAdded`, `DescendantRemoving`, `Destroying`, `StyledPropertiesChanged`, `childAdded`
- From [Object](https://rapi.sleaze.dev/classes/Object.md): `ClassName`, `className`, `GetPropertyChangedSignal`, `IsA`, `isA`, `Changed`
