So basically I want to clone the player's character upon joining the game and have it appear on the ViewportFrame. Currently I'm getting no errors and I simply think it's because I made a mistake while trying to clone the player's character. Any help would be appreciated as always, thanks!
--Local Script
local player = game.Players.LocalPlayer
local character = game.Players.LocalPlayer.Character
local viewportFrame = script.Parent
if player.CharacterAdded and player:FindFirstChild("Humanoid")
then character.Archivable = true
local clone = player.Character:Clone()
clone.Position = Vector3.new(0,0,0)
clone.Parent = viewportFrame
local viewportCamera = Instance.new("Camera")
viewportFrame.CurrentCamera = viewportCamera
viewportCamera.Parent = viewportFrame
viewportCamera.CFrame = CFrame.new(Vector3.new(0,2,12),clone.position)
end

2 comments
Instead I removed the if statement all together and used my variables, making character = player.Character or player.CharacterAdded:Wait(). I also added another variable, local humanoid = character:WaitForChild("Humanoid"). Although, I couldn't figure out how to reference the position of the model. Really appreciate your help, thanks!
^ There's some properties and functions in the model that might help you reference its position, like BasePart or :GetPrimaryPartCFrame(). You can see them here : https://developer.roblox.com/api-reference/class/Model