Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

Player is not a valid member of ObjectValue?

I understand that it is not a valid member but it's an if then statement Line 37

Part=workspace.DanceClub.Interactions.Queue
Queue=game.ServerScriptService.DanceClub.Values.Queue

Players=Queue:GetChildren()
b=nil
current=0

function Update(new)
	b=new.Name
Players=Queue:GetChildren()
	
	
if #Players > current then
       current=#Players
	for i,v in next ,Players do
		local Gui=game.Players[v].PlayerGui.DDR.Queue
		Gui:GetChildren()
---WIP----		
	end end
if #Players < current then
	current=#Players
	for i,v in pairs(Players) do
		local Gui=game.Players[v].PlayerGui.DDR.Queue
		local re=Gui:findFirstChild(""..b)
		re.Parent:remove()
		
			for i,v in next(Gui) do
			if v:IsA("Frame") then
				if v.Position.Y.Scale>0 then
					v.Position=UDim2.new(0,0,v.Position.Y.Scale-0.13,0)
				
	end end end end end 

Part.ClickDetector.MouseClick:connect(function(plr)
Players=Queue:GetChildren()
if Queue[plr.Name]==nil then
----- Error Starts Above ^^^^^^^^^^^^^^^^^6


local Gui=game.Players[plr.Name].PlayerGui
local DDR=game.ServerScriptService.DanceClub.Guis.DDR:Clone()
local z=Instance.new("NumberValue",Queue)
z.Name=""..plr.Name
DDR.Parent=Gui
DDR.Queue.Visible=true 

local number=0
for i,v in next(Players) do
	print(v)
	local Frame=game.ServerScriptService.DanceClub.Guis.Player:clone()
	Frame.Name=""..v
	Frame.Parent=DDR.Queue
	Frame.PlayerName.Text=""..v
	Frame.Position=UDim2.new(0,0,0.13*number,0)
	Frame.Visible=true
	
    number=number+1 end

end
 Update(plr)
end)

Queue.ChildAdded:connect(function(plr)
	Update(plr)
	
end)
Queue.ChildRemoved:connect(function(plr)
	Update(plr)
	
end)

1 comment

0

Can you post a picture of the ancestry of Queue?

1 answer

✓ Accepted answer

The statement if Queue[plr.Name]==nil then is asking for an error. If it isn't nil, it will be false. If it is nil, it will error because you are trying to directly index a game object that does not exist. You need to use FindFirstChild to solve that:

if not Queue:FindFirstChild(plr.Name)then

This discussion is preserved as it was. New answers, comments, and votes are closed.