Video Frames

Video assets used in VideoFrame instances allow for video playback in experiences. You can upload videos that you're certain you have permission to use, such as videos you make yourself, and the asset privacy system automatically ensures that the IDs of your uploaded videos can't be accessed by users without the proper permissions.

Importing Videos

Requirements

To upload video assets, you must be a 13+ ID verified user. You can upload a video as long as it meets the following requirements:

  • You have the legal rights to use the video asset.
  • It's 30 seconds or less in either .mp4 or .mov format.
  • Its resolution is less than or equal to 4096×2160.
  • It's less than 375 MB.
  • It includes only English and/or Spanish audio and text (additional languages will be supported at a later date).

Videos that don't meet these requirements are rejected. Alpha channels are not supported and will be ignored. When uploading videos, consider the following:

  • Each video upload costs 2,000 Robux.
  • You can upload a maximum of three videos within any 30-day period, starting from the date of your first video upload.

Uploading

You can upload videos through the Asset Manager, the Creator Dashboard, or the Open Cloud API. To upload through the Asset Manager:

  1. In the View tab, click Asset Manager.

    Asset Manager toggle button in Studio
  2. Click the Bulk Import button.

  3. Select and then confirm the video files you want to import from your local system.

  4. Once you confirm the uploads and the files upload successfully, they display with a green checkmark and a completed status.

The video assets are now within the moderation queue and are only visible to you within the Video folder of the Asset Manager and, after passing moderation, the Toolbox. Although you are initially the only one who can view and use private video assets, the asset privacy system lets you grant usage permissions to specific friends and experiences.

Playing Videos

A VideoFrame must be parented to a ScreenGui, SurfaceGui, or BillboardGui in order to be playable.

To play a video in your experience without code:

  1. Create a ScreenGui as outlined in On-Screen UI Containers, or a SurfaceGui or BillboardGui as outlined in In-Experience UI Containers.

  2. Select the new UI container in the Explorer window. Then, in the Asset Manager, double-click the desired video asset to automatically parent it to the container.

  3. With the new VideoFrame selected, enable its Looped and Playing properties in the Properties window.

If you want to play a video in your experience with code, paste the following code into a Script within ServerScriptService to create a Part and play the video on its front surface.


local screenPart = Instance.new("Part")
screenPart.Size = Vector3.new(16, 9, 1)
screenPart.Position = Vector3.new(0, 8, -20)
screenPart.Orientation = Vector3.new(0, 180, 0)
screenPart.Anchored = true
screenPart.Parent = workspace
local surfaceGui = Instance.new("SurfaceGui")
surfaceGui.Parent = screenPart
local videoFrame = Instance.new("VideoFrame")
videoFrame.Size = UDim2.new(1, 0, 1, 0)
videoFrame.Parent = surfaceGui
videoFrame.Looped = true
videoFrame.Video = "rbxassetid://5608384572" -- Replace with your video's asset ID
while not videoFrame.IsLoaded do
videoFrame.Loaded:Wait()
end
videoFrame:Play()