This is turning parts into text and back again
The script to turn it into text is 3.5k lines of code
The script to turn it back is also 3.5k lines of code
Here are some important considerations for creating viewport frames:
Each viewport frame will create a texture for rendering. The texture has a max size limit, so if the frame is too big, the contents may look blurry.
The viewport will only update when its children (camera or objects within) are changed.
Moving a viewport’s physical children is less performant than keeping them static. If you need to update the view, it’s better to move the camera than move the parts/models.
A viewport frame is not designed for rendering a large number of complex objects — it may be slow if you put too many objects inside.
Objects inside viewports will be rendered using a fixed lighting setting, although more options may become available in the future. No shadows or post effects are currently available.
as you said before to only load up parts that can be seen by the camera to reduce lag while loading up a pic how would i know when taking a pic if the part is in the camera?
How u would do it is, u would create a viewport frame, detect when the player clicks the screenshot button, use for _, part in pairs(workspace:GetDescendants()) do to loop thru all workspace parts then clone each of them and put them inside the camera, u would also have to save each part position, and set them back on the cloned dummy.