How can i make something like this

No, StarterGui means the gui to clone to every new player that enters the game,
And game.Players.LocalPlayer.PlayerGui is the live gui of the player

why it gave me a error btw who is “character1” im your script?

Try the code I showed above in a localscript inside of the viewport frame.
Character1 is the character clone.

i used it on the viewport frame i also tried a dummy on it named character1

eaeawea
btw this is the thingy idk whats wrong

Let me check my test place again to make sure I put everything in here correctly.

Does it will update every single move im the charcter or its just idle character?

Sorry for the misunderstanding, you need to add a model inside of the viewport named Character1. Keep the same code, and it should work.

It will update on every move.

eaeaeaeae
like this?
oh it worked fine does it also support r6 idc if it doenst atleast the character is updated

Yes, but the model should be empty. Like this.
Capture

thanks for the thingy i really liked it i thought only parts will work and no screengui viewport frame will work

does it support r6 tho? let me test
wait nvm i used r6 rig im r15 char it work lol

this helped too much thanks testaccount581582 lol

It’s TestAccount563344…

Why did you get my username wrong… :frowning:

sorry… forgive me please :sad: :crying_cat_face: pls forgive

nvm above here is reuploaded ok?.

I still have one thing, when i make any sound the character1 will play is theres any way to prevent the player repeating what the other do, when i shoot 2 sounds play at the same time the original player and the character1 player
which is making my audio broken please fix this.

New code:

local viewport = script.Parent
local char = game:GetService("Players").LocalPlayer.Character
local cam = Instance.new("Camera",viewport)

game:GetService("RunService").RenderStepped:Connect(function()
	for i,v in pairs(viewport.Character1:GetDescendants()) do
		v:Destroy()
	end
	
	for i,v in pairs(char:GetChildren()) do
		local v2 = v:Clone()
		
		if v2:IsA("Script") or v2:IsA("LocalScript") or v2:IsA("ModuleScript") or v2:IsA("Sound") then
			v2:Destroy()
		else
			v2.Parent = viewport.Character1
			if v2:IsA("Humanoid") then
				v2.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None
			end
		end
	end
	
	viewport.CurrentCamera = cam
	cam.CFrame = game:GetService("Players").LocalPlayer.Character.HumanoidRootPart.CFrame * CFrame.new(0,0,-5) * CFrame.Angles(0,math.rad(180),0)
end)

i already tried this it will still broke wait nvm let me try

it still the same thing idk why does it still broke pls help me