Why does my HumanoidDescription not apply here?

Hello!

So I was recently playing around with Viewport Frames and I made a system where when a prompt is triggered on the client-side, the frame will load your character and any objects around you. This works, however, but my avatar clothes don’t load in. They are classic, not 3D and my avatar is in R15. I don’t know if these details impact my problem at all, but better safe than sorry.

(Ignore the print statements in the following scripts; they were just for testing purposes. Everything printed correctly and I couldn’t locate the problem.)

Client script:

local Gui = script.Parent
local ViewportCamera = Instance.new("Camera")
ViewportCamera.CFrame = Gui.Adornee.CFrame
ViewportCamera.FieldOfView = 80
Gui.ViewportFrame.CurrentCamera = ViewportCamera

print("yas")

local RemoteEvent = game.ReplicatedStorage:WaitForChild("RemoteEvent", 5)

local DetectZone = Gui.Adornee.Parent.DetectionZone
local Prompt = Gui.Adornee.Attachment.ProximityPrompt

local debounce = false

print("cat")

Prompt.Triggered:Connect(function()
	print("triggered")
	if debounce == true then return end
	debounce = true
	Prompt.Enabled = false
	Gui.ViewportFrame:ClearAllChildren()
	
	print("boblox")
	
	task.wait(1)
	local Parts = workspace:GetPartBoundsInBox(DetectZone.CFrame, DetectZone.Size)
	for _, part in Parts do
		local PartClone = part:Clone()
		PartClone.Parent = Gui.ViewportFrame
		print("part cloned")
		RemoteEvent:FireServer()
		print("server fired")
	end
	Prompt.Enabled = true
	debounce = false
	print("yea yea")
end)

Server script:

game.ReplicatedStorage.RemoteEvent.OnServerEvent:Connect(function(Player)
	local Character = Player.Character or Player.CharacterAdded:Wait()
	print("character")
	local HumanoidDesc = game.Players:GetHumanoidDescriptionFromUserId(Player.UserId)
	print("yes")
	local Humanoid = Character:FindFirstChild("Humanoid")
	print("hi")
	Humanoid:ApplyDescription(HumanoidDesc)	
	print("desc applied!")
end)

Should I maybe try using the Humanoid:GetAppliedDescription() method somewhere? I think it maybe is server-sided, so that wouldn’t work.

If you think you know what went wrong, please let me know! Thank you and have a wonderful day! :slight_smile:

do you mean you want add any character and should player copy the character
dude you are using same id (: same character

this is what does i mean (: same humanoiddescription

i think if want fix it you need like import real player skin and make this code
Client script:

 33| RemoteEvent:FireServer() -- you need to add character here

Server script:

game.ReplicatedStorage.RemoteEvent.OnServerEvent:Connect(function(Player,Character:Model)
	print("character")
	local HumanoidDesc = Character:FindFirstChild("Humanoid"):FindFirstChildOfClass("HumanoidDescription")
	print("yes")
	local Humanoid = Character:FindFirstChild("Humanoid")
	print("hi")
	Humanoid:ApplyDescription(HumanoidDesc)	
	print("desc applied!")
end)

this should works (:

1 Like

Sorry but it didn’t. :frowning:

My output does flood with the print statements and I figured it might be because I fire my RemoteEvent every time a part is cloned into my ViewportFrame. I moved the line where I fired it, but nothing changed.

i dont really know what the files but you need first select the character and add inside fire function (line 33)
because your script just like u said where the same skin (: so … that why i said that u need to select the character and give it to the player else if you are using starterCharacter
(i mean u did your own character and should player wear his skin so its should back him skin with your scripts)
i dont have anything to say just if you cant make value for your character you need to rebuild system :skull: or ask ai if it can help

do you mean something like this:
map

Just gonna bump this topic as I still have not solved it.

I changed my scripts up a bit:

Client:

local Gui = script.Parent
local ViewportCamera = Instance.new("Camera")
ViewportCamera.CFrame = Gui.Adornee.CFrame
ViewportCamera.FieldOfView = 80
Gui.ViewportFrame.CurrentCamera = ViewportCamera

print("yas")

local RemoteEvent = game.ReplicatedStorage:WaitForChild("RemoteEvent", 5)

local DetectZone = Gui.Adornee.Parent.DetectionZone
local Prompt = Gui.Adornee.Attachment.ProximityPrompt

local Player = game.Players.LocalPlayer
local Character = Player.Character or Player.CharacterAdded:Wait()

local debounce = false

print("cat")

Prompt.Triggered:Connect(function()
	print("triggered")
	if debounce == true then return end
	debounce = true
	Prompt.Enabled = false
	Gui.ViewportFrame:ClearAllChildren()
	
	print("boblox")
	
	task.wait(1)
	local Parts = workspace:GetPartBoundsInBox(DetectZone.CFrame, DetectZone.Size)
	for _, part in Parts do
		local PartClone = part:Clone()
		PartClone.Parent = Gui.ViewportFrame
		print("part cloned")
		RemoteEvent:FireServer(Character)
		print("server fired")
	end
	Prompt.Enabled = true
	debounce = false
	print("yea yea")
end)

Server:

game.ReplicatedStorage.RemoteEvent.OnServerEvent:Connect(function(Player, Character : Model)
	print("character")
	local Humanoid : Humanoid = Character:FindFirstChildWhichIsA("Humanoid")
	print("yes")
	local HumanoidDesc = game.Players:GetHumanoidDescriptionFromUserId(Player.UserId)
	print("hi")
	Humanoid:ApplyDescriptionReset(HumanoidDesc)	
	print("desc applied!")
end)