VideoService v2.02 [CLOSED] | Easy to use custom video player


Hi, So I saw a lot of free models that play videos. But need to mass-produce decals which now has a restriction.

Plus this also supports 1080p soon I will get it up to 4k!

My friend and I made a plugin where you can import frames and get a folder with attributes holding hex values to play the video



How to use:

  • Create a new script and add the module as a child.

  • Start downloading the plugin - You will need it later

  • Use this to convert your video to a png sequence

  • You should get a zip, Open that and leave the folder you just got.

  • Open Roblox Studio and select the script

  • Look for the plugin Video Importer

  • Now look for the folder and select all the files (Top to bottom)

  • Click done

  • Now you should have a folder. Don’t touch that anymore.

  • In the script write the following code
local VideoService = require(script.VideoService) -- The module
local Video = GUI) -- Replace SURFACE GUI with the parent
local Object = script.Parent.NewVideo -- The video object you just made

Video:Play(Object) -- Play the video (OPTIONAL: Add another argument, FPS)

  • Now if you run this your video should play

Docs: Instance)
Creates a new Video object under the parent

VideoService:Record(seconds: int)
Records a playable video

Video:Play(videoObject: Video)
Plays the videoObject created via plugin

Stops the video

System function.

How it works in-depth:

The plugin reads and orders the PNG’s given and creates a folder with hexadecimal attributes storing the PNG data. The model makes the hexadecimal into a normal string and uses @CloneTrooper1019’s PNG Library to process it and @boatbomber’s GradientCanvas to show pixels without lag


  • Huge thanks to coolpro200021 for help with the plugin and encryption and decryption with Hexadecimal

  • @CloneTrooper1019 for his PNG Library

  • @boatbomber for his GradientCanvas

This goes by the license ODbL, read all about it below.

This is not perfect, If you find any bugs please report it below.

I hope you like this resource! :smiley:


I am working on a v2 with sound processing and without the linear bugs while switching frames.

Expect it to be out by 2 weeks.

1 Like

this works fine was planning to make something similar, only thing is that the video runs too slow

What do you mean it runs to slow. Could you show me an example.

What I mean is that for example a 16 second video is slowed down to 50 seconds, as if they’re in slow motion

meme in question

The script has a second argument in the code called frame rate, it is default a second. Set it to nil in order for it to work every frame.

Also I would recommend running it in roblox player rather than studio.

Oh yeah, You don’t need to use low quality frames. Using 1080p will only make in take longer to process before playing the video.

Very interesting! While it definetly isn’t usable it’s interesting how you made it!

What do you mean by

definetly isn’t usable

I am guessing you mean that it’s difficult to make the video to a folder with attributes.

1 Like
What do you think about this? 1 out of 10.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

0 voters

What should I add?
  • Audio Support
  • Less flicker
  • Easier to import

0 voters

Which one?
  • Recording
  • Livestreams

0 voters

I would really like a rating, if you have any questions feel free to ask.

If your rating is below a 7 please tell me why, I hope I can make this as best as possible.

As in within games (Due to framerate), sorry was vague.

I get why you claim this, but this has been designed for maximum quality. It uses UIGradients (Maybe about 20 per frame) rather then pixels (16,000 per frame). Frame rate has not been affected in my experimental theatre game which has thousands of parts.

1 Like

To fix the 1080p issue, I recommend to switch to ViewportCanvas.

yeah, imma do that. my computer was broken so i had to wait. sorry for the delay

If you are doing animations, however, it is still recommended to use GradientCanvas since Roblox takes too long to render ViewportCanvas and can’t do animated images.


Introducing v2.00!


  • Faster rendering
  • Module with .new, :Play(videoObject), and :Stop()


  • Nothing!


  • Model has now started to use a module script and tutorial has been changed

Why should you use v2.00 rather than v1.00

v2.00 includes more compatibility and easier rendering that can reduce frame lag.

From my personal experience with it, it tends to lag if you are constantly rendering it.

Yeah I forgot about that.


I could try pre-rendering it. but that would take very long before playing the video. (maybe should wrap it with a corutinue?)

That would probably work with ZIndexes. But as you said it would take VERY long.

hi the module seems to be not sale