Ok so to render a character you can just clone the character when they spawn in (or you know - actually use the methods that are meant to grab the player’s character and import it but that’s actually effort and we don’t want that).
Next you want to place it in workspace. Workspace has special properties where it will mash together all of the accessories and stuff and will fix the orientation of different parts. This isn’t required but I just like it because I’m lazy and would rather the game do the work for me.
Next you want to do some maintenance on the model. Remove scripts, remove the Humanoid’s name and health probably, etc Add your armor, tools, etc to the clone.
Next you want to position it in front of your ViewportFrame.CurrentCamera.
Next you want to put the model into the ViewportFrame.
And hazzah! Your character should appear on the ViewportFrame! (Btw do all this on the client so the server isn’t crowded with clones)
Now I did see you mention Ripull’s character GUI in Rovive.
This is correct. Physics do not work in ViewportFrames. However, the motion wasn’t really just hacked together. The way this was done was via scripts. LocalScripts can edit the model in the ViewportFrame and can do all of their normal things.
(This is a simple concept where the part is moving backwards in the ViewportFrame)