Module3D V6.1 (ViewportFrame Implementation)

This is incredible, going to use this.

Thank you so much!

It’s actually not very resource-intensive at all surprisingly.

I still wouldn’t do something like that currently as VIewportFrames currently lack all special 3D effects.

1 Like

Can you make a mirror with this new feature?


I’m on it!


Incredible, thank you!!

Since ViewportFrames are now live 2 months later, I have removed the beta warning. I am thinking about implementing it in the next (and probably only) update for Roblox Battle (2018 Edition).


Are you going to take advantage of the new addition to viewports?

There will be a V6.1 at some point with these features, but I am not sure when. I have some other things to prioritize first.


Apologies for such a late reply, I must ask - does this module somehow get around the low image quality attached to using Viewport frames (highlighted in this post)? Recently I have been experimenting with Viewports for the first time and the low image quality (especially at smaller sizes) was quite disappointing considering the expectations I had for them. I was wondering if using one of these older 3D UI modules would be a good alternative to Viewports in my specific use case (making an inventory UI with relatively small icons).

1 Like

This module doesn’t do anything on top of the existing implementation of viewport frames. Any quality problems (no anti-aliasing) from viewport frames will exist with this version.

I have made some updates to Module3D that should be fairly future-proof, including adding a GitHub repository for those who use Rojo (requested by another developer). If you currently use V6 already, there are no compatibility problems if you didn’t add custom properties to the Model3D object.

The main change comes down to Model3D (returned from Module3D:Attach3D(Frame,Model)) now has API passthrough to the ViewportFrame. This means you can directly call methods and read/write properties, like Model3D.BackgroundColor3 and Model3D.LightDirection. If you use Model3D:SetActive(true) or Model3D:SetActive(false), you should move to Model3D.Visible = true and Model3D.Visible = false. The example in the original post has been updated for this.


How do I lock it into 1 position and stop it from automatically pulling the model into frame when I add parts that are large onto the model?

I am confused by what you are trying to do. Mind posting some images and some code with what is going on and what you actually want it to do?

1 Like


When using module3d to clone the character, if parts are added like armor, for example, the model is set farther from the camera in order to fit all the parts in, is there any way to counter this and always have the model and the camera in the same place or base the cframe from a part like humanoidrootpart?

1 Like

This functionality isn’t really supported, but shouldn’t be a problem with the current version unless you are calling Update, SetCFrame, or SetDepthMultiplier on the frame. Can you post some code that includes equipping armor if you aren’t calling these methods?

1 Like

Ah, its alive. I ended up just changing the part where it pans (model center) out to fit the whole model and changed it to only pan for the head. Works better now, prob should’ve looked at the module a bit harder my fault. Thanks for the responsiveness and keep up the great work!

What i was trying to accomplish:

This is a very useful Module the only probably I am having is when I put a Particle on a part and then use that part with 3D Module the particle won’t show on the part in the Frame is there any way to fix this?

Module3D V6 is limited to what ViewportFrames can do. They can’t display particles, so you won’t be able to use them with Module3D.

1 Like

Bummer it’s all good tho still a great plugin!