As I’m sure your aware, Roblox recently released the long anticipated video frame feature. But it still has issues.
The main issue here being Video not automatically updating. So, I wrote a small little passive plugin to fix this issue.
This plugin works on its own and requires no button inputs or pressing anything. Just place a VideoFrame into Workspace, ReplicatedFirst or StarterGui, and the plugin will do it’s magic.
How to use
Import a video frame into the three services mentioned above, and it’ll automatically bind a changed signal for you, now when you input an id (such as 123
, it now autoformats it to rbxassetid://123
).
This only applies for strings that can be tonumber’d, otherwise it’ll do nothing.
Why limit the plugin to three services
This is more of a bruh moment on Roblox’s side. If I make the plugin just listen to game, it’ll fire the event for stuff that cant be identity checked, so I’ve opted to reserve the plugin only in these three services. If you feel any more should be added, please let me know
Issues
Issues can be reported below in the replies.
Source Code
local events = {}
local searchDescendants = {
workspace,
game:GetService("StarterGui"),
game:GetService("ReplicatedFirst")
}
for _, v in pairs(searchDescendants) do
v.DescendantAdded:Connect(function(obj)
if events[obj] then return end --we dont want to rebind the event
if obj:IsA("VideoFrame") then
events[obj] = obj:GetPropertyChangedSignal("Video"):Connect(function()
local videoID = obj.Video
local id = tonumber(videoID)
if id then
obj.Video = "rbxassetid://" .. id
end
end)
end
end)
v.DescendantRemoving:Connect(function(obj)
events[obj] = nil
end)
end