Anyone knows why might this happen?


So basically i tried everything and only waiting like 10 seconds seemed to work (made the character parent to that folder) but i find this really weird because when i tried to loop till the character has loaded it kept looping even when it seemed loaded as seen in the video

2 Likes

Could you clarify what the problem is? I am not sure what I am looking at.

1 Like

I think it’s kinda clear, first of all the character doesnt get parented to that folder i mentioned and the main problem im showing here is that the loop for waiting to see if the character loaded doesnt work

I get it now.

HasAppearanceLoaded is a function, not a property.
This is how you should use it in your case:

repeat
	print("TEST")
	wait()
until player:HasAppearanceLoaded()
2 Likes

There is an if check for a child within the character called “CharacterLoaded”
Can you confirm that it passes the check?

1 Like

Hold on I’ll do it, without waiting for the character’s appearance to load because that’s still weird why it aint parenting tho

image

That is strange,

Can you add these prints and send the output:

print(Player.Character)
Player.Character.Parent = workspace.Characters
print(Player.Character:GetFullName())
2 Likes

image

That means that it does parent the player character into the Characters folder but that the player character gets reparented back into workspace after that.

1 Like

Why do you think it’d do that? because I have no line that does that

Because as you can see in the output, after

Player.Character.Parent = workspace.Characters

It says: Workspace.Characters.royee345
Which means it did parent your character to the folder.
But you show a screenshot that “royee345” ends up in workspace, which means it got reparented.

2 Likes

Yes but that’s not my doing, which means it’s a Roblox issue?

I don’t think it’s a Roblox issue.

This is the code I run:

local player = game.Players.LocalPlayer
repeat
	print("TEST")
	wait()
until player:HasAppearanceLoaded()
player.Character.Parent = workspace.Characters

And as you can see:
image
My character did get parented to a folder called Characters in workspace.

Might there be any other scripts interfering?

1 Like

So the difference is that I didn’t do the appearence loaded thingy however I dont think that should pose a problem, try to do it without it on character added

This does NOT work:


local function CharacterLoaded(character)
	character.Parent = workspace.Characters
end

game.Players.PlayerAdded:Connect(function(player)
	player.CharacterAdded:Connect(function(character)

		CharacterLoaded(character)
	end)
end)

The parent is workspace.

This DOES work:

local function CharacterLoaded(character)
	character.Parent = workspace.Characters
end

game.Players.PlayerAdded:Connect(function(player)
	player.CharacterAdded:Connect(function(character)
		repeat
			print("TEST")
			wait()
		until player:HasAppearanceLoaded()
		CharacterLoaded(character)
	end)
end)

The reason is likely because the CharacterAdded event gets fired when the character object is being added to the player but hasn’t fully instanced yet. So you parent the character object before Roblox is done instancing the character object which results in Roblox parenting the character object to Workspace after you have parented the character object to the Characters folder.

2 Likes

Wouldnt it throw an error tho?

Yea I dont think that’s the case man, that doesnt work as well: image

No.
Since no invalid LUA syntax, arguments, reference or etc. has been made it shouldn’t throw an error.

1 Like

That doesn’t work because you aren’t checking if the character has fully loaded yet.

1 Like