How does IRON BEAN capture photos of the environment in-game?

Hey, I just played through IRON BEAN by @RyCitrus (would appreciate if you can explain!) and after a while, I noticed the photo feature takes actual photos of the Roblox environment.


Example of the photo taken

How is this possible? I doubt it’s a ViewportFrame because 1) There’s visible black fog and 2) One of the photos had a particle emitter.

I tested moving the vehicle around to see if the photo view rotated with the angle and… they did. Even taking several photos of an object with particles, the particles changed so I’m assuming it’s taking real photos of the environment somehow.

Is this some hack using the new Screenshots API, are DynamicImages involved in the process, how does this work??

I might be wrong but they might be using a ViewportFrame with a WorldModel and setting the particles speed to 0 so they don’t move.

Fog and particles don’t render in ViewportFrames. Source 1, Source 2

I know. I’m not sure but maybe WorldModel inside ViewportFrame allows that. WorldModel | Documentation - Roblox Creator Hub

Not sure if you are still in need of an answer, but yes, this likely uses the CaptureService:CaptureScreenshot method. This method returns a ContentID to use in ImageLabels.

Here is a demo rbxl:
CaptureDisplayDemo.rbxl (142.7 KB)

To hide UI in the screenshot, I believe you have to manually hide the UI.

1 Like

Stumbled upon this post while looking for something else, but here’s my take

The image looks segmented to me; the background and the character feel out of place.
Perhaps they are both ImageLabels!

Hello! It’s actually pretty simple :smiley:

When a photo is taken, the game copies the environment and loads it into a ViewportFrame. The camera is positioned to where the submarine would be.

The fog effect is just a few transparent black spheres layered together! This fog model centers at the camera’s position. The particles are also physical parts that displace themselves randomly every second to give the illusion per photo that they are moving particles.

And that’s about it! With the added “grain” above the ViewportFrame, it helps make all of these effects look more convincing too.

1 Like

just to add, I completely misunderstood the image you attached in the original post
But this is still the best method for taking true screenshots

No worries! I should’ve clarified…

Thanks for the demo by the way, CaptureService is really fun to work with

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.