How do I make a Character Preview when opening a GUI?

(IMPORTANT, I DON’T WANT A CHARACTER CUSTOMIZATION, I JUST WANT THE PLAYER TO PREVIEW THEIR CURRENT CHARACTER)

  1. What do you want to achieve? Keep it simple and clear!
    I want to make a custom preview of my StarterCharacter, sort of like in MMORPGS

  2. What is the issue? Include screenshots / videos if possible!
    I can’t find any tutorials and I’m not really good at Lua.


    (Kind of like this)

  3. What solutions have you tried so far? Did you look for solutions on the Developer Hub?
    I’ve tried using User Thumbnail ASync but that only works with your actual user and not with a custom startercharacter

Also, sorry if this is a request but I’ve found 0 tutorials so far and I’m stuck

Use viewport frames, make a copy of the character model and insert in a viewport frame using a script

https://developer.roblox.com/en-us/api-reference/class/ViewportFrame

You can achieve this by using an ViewportFrame | Roblox Creator Documentation and inserting an WorldModel | Roblox Creator Documentation inside the ViewportFrame.

local Players = game:GetService("Players")
game.Players.LocalPlayer.Character:WaitForChild("Humanoid")
local character = game.Players.LocalPlayer.Character or game.Players.LocalPlayer.CharacterAdded:Wait()

local function CloneCharacter(char)
	char.Archivable = true
	local plrchar = char:Clone()
	char.Archivable = false
	return plrchar
end

local viewportFrame = script.Parent
local PlayerCharacter = CloneCharacter(character)
PlayerCharacter.Parent = viewportFrame.WorldModel

local viewportCamera = Instance.new("Camera")
viewportFrame.CurrentCamera = viewportCamera
viewportCamera.Parent = viewportFrame
viewportCamera.CFrame = CFrame.new(PlayerCharacter.HumanoidRootPart.Position - Vector3.new(0, 0, 5)) * CFrame.Angles(0, math.rad(180), 0)
6 Likes

is there a way of animating the character? (it doesn’t play the idle anim)