Im not entirely sure how, but i can sure you that it was “complicated” (quote from the friend). Ill copy and paste her reply to you here
"Hi! Maple here, I’m going to try my best to simplify and leave as much detail as possible without having to make this reply large. I used ViewportFrames to render the objects. Structured the main mirror script to be Object Orientated (OOP) so I can handle/reference objects and mirrors more effectively. For reflecting the objects, they are first parented in a WorldModel in the ViewportFrame. And with a little scripting and optimization, I made it to be able to reflect.
Specifically, to reflect the object, I cloned the original object (one that is in front of the mirror to be reflected), parent it in the WorldModel (of the ViewportFrame), and did some fancy math reflections to CFrame the object that I’ve cloned (and parented to the WorldModel) that is based off the original object (one that isn’t in the WorldModel/Cloned), but reflected (or put behind the mirror, and allow the ViewportFrame to render it).
Sadly, animations can’t possibly be reflected, though, I can reflect each individual body part of the character. But that’s too hacky and possibly resource consuming. Tried it, only to find out another problem with certain body packages being reflected incorrectly (e.g a body part being reflected correctly, but isn’t orientated correctly due to the mesh being orientated but not the BasePart itself, if that makes sense).
Extras: We optimized the mirror by just doing raycast and other checks. For one, if an object is obstructing the view (or is in between the player and mirror itself) of the mirror, it’ll stop rendering/CFraming objects as well as stop and disable the mirror SurfaceGui and rendering itself. I’ve also performed checks for if the player is behind the mirror or far away to an extent. I’ve also made the mirror render objects that have been updated (e.g colors, transparency, material, etc) with the use of Events/Listeners, which isn’t shown in the video Holly posted."
~ Maple
Hope that helped you with her reply!