Learn
Engine Class
VideoFrame

Code Samples
Creating and Playing a Video
local screenPart = Instance.new("Part")
screenPart.Parent = workspace
local surfaceGui = Instance.new("SurfaceGui")
surfaceGui.Parent = screenPart
local videoFrame = Instance.new("VideoFrame")
videoFrame.Parent = surfaceGui
videoFrame.Looped = true
videoFrame.Video = "rbxassetid://" -- add an asset ID to this
while not videoFrame.IsLoaded do
task.wait()
end
videoFrame:Play()

API Reference
Properties
IsLoaded
Read Only
Not Replicated
Read Parallel
Capabilities: Audio, UI
VideoFrame.IsLoaded:boolean

Looped
Read Parallel
Capabilities: Audio, UI
VideoFrame.Looped:boolean

MaximumResolution
Hidden
Read Parallel
Capabilities: Audio, UI, InternalTest
VideoFrame.MaximumResolution:Enum.VideoSampleSize

Playing
Not Replicated
Read Parallel
Capabilities: Audio, UI
VideoFrame.Playing:boolean

Resolution
Read Only
Not Replicated
Read Parallel
Capabilities: Audio, UI
VideoFrame.Resolution:Vector2

RollOffMaxDistance
Read Parallel
Capabilities: Audio, UI
VideoFrame.RollOffMaxDistance:number

RollOffMinDistance
Read Parallel
Capabilities: Audio, UI
VideoFrame.RollOffMinDistance:number

RollOffMode
Read Parallel
Capabilities: Audio, UI
VideoFrame.RollOffMode:Enum.RollOffMode

TimeLength
Read Only
Not Replicated
Read Parallel
Capabilities: Audio, UI
VideoFrame.TimeLength:number

TimePosition
Not Replicated
Read Parallel
Capabilities: Audio, UI
VideoFrame.TimePosition:number

Video
Read Parallel
Capabilities: Audio, UI
VideoFrame.Video:ContentId
Code Samples
Creating and Playing a Video
local screenPart = Instance.new("Part")
screenPart.Parent = workspace
local surfaceGui = Instance.new("SurfaceGui")
surfaceGui.Parent = screenPart
local videoFrame = Instance.new("VideoFrame")
videoFrame.Parent = surfaceGui
videoFrame.Looped = true
videoFrame.Video = "rbxassetid://" -- add an asset ID to this
while not videoFrame.IsLoaded do
task.wait()
end
videoFrame:Play()

VideoContent
Read Parallel
Capabilities: Audio, UI
VideoFrame.VideoContent:Content

Volume
Read Parallel
Capabilities: Audio, UI
VideoFrame.Volume:number

Methods
Pause
Capabilities: Audio, UI
VideoFrame:Pause():()
Returns
()

Play
Capabilities: Audio, UI
VideoFrame:Play():()
Returns
()
Code Samples
Creating and Playing a Video
local screenPart = Instance.new("Part")
screenPart.Parent = workspace
local surfaceGui = Instance.new("SurfaceGui")
surfaceGui.Parent = screenPart
local videoFrame = Instance.new("VideoFrame")
videoFrame.Parent = surfaceGui
videoFrame.Looped = true
videoFrame.Video = "rbxassetid://" -- add an asset ID to this
while not videoFrame.IsLoaded do
task.wait()
end
videoFrame:Play()

Events
DidLoop
Capabilities: Audio, UI
VideoFrame.DidLoop(video:string):RBXScriptSignal
Parameters
video:string

Ended
Capabilities: Audio, UI
VideoFrame.Ended(video:string):RBXScriptSignal
Parameters
video:string

Loaded
Capabilities: Audio, UI
VideoFrame.Loaded(video:string):RBXScriptSignal
Parameters
video:string

Paused
Capabilities: Audio, UI
VideoFrame.Paused(video:string):RBXScriptSignal
Parameters
video:string

Played
Capabilities: Audio, UI
VideoFrame.Played(video:string):RBXScriptSignal
Parameters
video:string

©2026 Roblox Corporation. Roblox, the Roblox logo and Powering Imagination are among our registered and unregistered trademarks in the U.S. and other countries.