Is it Possible to Make a Cross-Server Social Media Platform In-Game?

Disclaimer: Please note that I have no experience in scripting at all. This question is solely based on curiosity of if I could actually make it a thing going forward with a experienced scripter at hand.

The title is pretty self explanatory, but I’ll go more in-depth here.

I’m planning on making a place where you can record videos and share them.
Firstly, is it even possible to record videos and upload them to a Roblox game? Maybe using the Roblox default recording option and tweaking some things from there… Idk. Seems highly unlikely, but I’ll ask anyways.

If the question above answer is a no. Then I wouldn’t bother looking at the content below this line.

As you all may have been aware, cross-sever messaging was made possible a couple months back by Roblox. I want to know now, if it is possible to share videos across servers. Sort of like a social media platform.

No, not with videos. BUT!!! you can always just make it text-based without videos! Images might be possible too, from the library.

When you say images, you mean the player in the game getting a decal ID and putting it onto the sharing application?

And since text also should presumably work, comments on the photos can also be created right?

Correct. Though it may not be convenient.

Yes they can

There’s no way a player can take a picture in-game?

They would have to upload it to roblox to get an ID so you can show it. The image then needs to be moderated, which takes a while, thus defeating the purpose of an image post.

The concept of an in-game social media platform is interesting nonetheless.

1 Like

Right, forgot about moderation. Thank you for the knowledge, I’ll hopefully put it to good use.

For “recording videos” you can track positions and use viewport frames similar to what @boatbomber did (and similar to what a few people have done in that past as well):


(i know this is titled as a replay system but i felt that it is still relevant to “recording in-game”)


if you are planning to save stuff and not just share things between servers that’s where the real dilemma comes in, saving is where things are going to get “limited” as far as the amount of data/frames you are planning to save and how efficiently you are wanting to save it. meaning things to think about is how many fps to you plan to record, how long do you plan for videos to be (enable them to be) . And What stuff should be saved and what isn’t important to or doesn’t need to be save.


So to answer you question, i think it is possible to “record” stuff in-game and save or share them, but you’re likely going to have to cut corners, Would be cool to see if you can pull this off though!, i think it would be a unique and an interesting aspect to include in a game!

Also as mentioned, moderation is something to think about (in-game and out of game)

1 Like

You’re right about cross-server messaging and you can achieve this with MessagingService (MessagingService | Documentation - Roblox Creator Hub)

You are unable to record and upload videos to your game on the platform and Roblox will not be adding this functionality anytime soon due to the amount of possible abuse the system would be put through with users hiding rude or sensitive content.

1 Like

I was actually thinking about something like this a while back. And the way I think you could do it, is simply by allowing the player to press a button, then saving the position of their camera to a table every frame. Then when a player watches that video, it will set the position of their camera (Idk how to explain the rest of it, but here is a block of code that should give you an idea of what I am talking about)

-- Must be a LocalScript
-- This script sets the position of the players camera
local cameraCFramesTable = {--[[ Put some cframes in here ]]}
local camera = workspace.CurrentCamera -- I would just use current camera, so that way if you have multiple different "cameras" it will pick the right one (Hopefully)

for i, v in ipairs(cameraCFramesTable) do
    game:GetService("RunService").RenderStepped:Wait() -- You can use "RenderStepped" or just "Stepped"
    camera.CFrame = v
end

Someone please correct me if something is incorrect in the block of code that I have above.

When putting CFrames inside the table called cameraCFramesTable you would have to do a little something like this:

-- Must be a LocalScript
local cameraCFrames = {}
local camera = workspace.CurrentCamera
local go = true -- If you set "go" to false then it won't run the while true do loop. And if you set "go" to false while the loop below is running then the loop will stop running, or how the pros like to call it... "break"
while go do
    game:GetService("RunService").RenderStepped:Wait() -- Use the same type of wait in the code block above. So if the code block above uses "Stepped" instead of "RenderStepped" then this should use use "Stepped".
    table.insert(cameraCFrames, camera.CFrame)
end

Please correct me if anything in the script above is wrong!!!

The only thing that won’t work with the system that I was trying to talk about above, is if you have a moving car, and when someone watches the video, the car won’t be there (Because it only records the cameras movements)


It would be possible to share the cameras positions / cframes across servers, but not across all games (Like you won’t be able to share the cframes of the camera from your game, to jailbreak… that just won’t work without httpsService, and permission from the creators of jailbreak).

If you would like to share the camera cframes across all of your games, you would have to use httpsService.

So to tldr… yes… you can make a script that records a video by saving the camera’s cframe to a table, but in my opinion… it wouldn’t be worth it.