Como obtengo un hijo especifico de una carpeta segun un string value

asi que e intentado obtener los hijos de una carpeta me refiero a un sistema de mascotas:
mi juego tiene un sistema de tienda de mascotas y cuando un jugador se equipa una mascota entonces un string value cambia su valor por el nombre de la mascota. eso es para saber cual mascota tiene equipada el jugador. el string value se guarda y se modifica correctamente pero lo que quiero saber es como obtener los hijos de tal carpeta ( hay una carpeta la cual tiene las mascotas que el jugador compro) esa se guarda y funciona correctamente pero lo que quiero:
es que obtenga un hijo de esa carpeta segun el valor del string value
este es el script:

local servicio = game:GetService("DataStoreService")
local ranura = servicio:GetDataStore("miranura")
game.Players.PlayerAdded:Connect(function(plr)
	local valor = Instance.new("StringValue")
	valor.Parent = plr
	valor.Name = "mascotaequipada"
	local cargarranura = ranura:GetAsync(plr.UserId.."mascotaequipada")
	
	valor.Value = cargarranura
	local valora = valor.Value
	local mascotascarpeta = plr.mascotas:GetChildren(valora)

	
	print("ojj")
	
	
	if mascotascarpeta then
		wait(5)
		print("hayy hay")
		local clonada = mascotascarpeta
		clonada.Parent = plr.Character
		local character = plr.Character
		print("clonadapapuuu")
		


		local bodyGyro = clonada.BodyGyro
		local bodyPosition = clonada.BodyPosition

		bodyGyro.MaxTorque = Vector3.new(math.huge , math.huge , math.huge)
		bodyPosition.MaxForce = Vector3.new(math.huge , math.huge , math.huge)
		while wait() do
			bodyGyro.CFrame = character.HumanoidRootPart.CFrame
			bodyPosition.Position = character.HumanoidRootPart.Position + Vector3.new(3,3,0)			
		print("end")	
		
		
		
		end
		end
	
end)
game.Players.PlayerRemoving:Connect(function(plr)
	pcall(function()
	local valor = plr:FindFirstChild("mascotaequipada")
	ranura:SetAsync(plr.UserId.. "mascotaequipada", valor.Value)
	end)
	end)

You can simply do plr.mascotas:FindFirstChild(valora) in your case.