Removing player from table seemingly not actually removing?

I’m trying to basically remove a player when they leave and do checks if they were an owner of the family. If so, give the next player in the table ownership. However, from the prints, can see it’s seemingly still getting Player1 as the first player in the table, even tho they are removed before the function is fired.

print(#familyData.Members)

Should print 1, NOT 2. The prints indicate that Player1 is being removed, yet when I go into the NewOwner function they are for some reason still there?

-- New owner needs to be set
local function NewOwner(familyData)
	print("Getting new owner")
	print(familyData.Name) -- Player1 family
	local FamilyFolder = Families:FindFirstChild(familyData.Name)
	if not FamilyFolder then return end
	print(1, familyData.Owner) -- 1 Player1
	-- Set next owner from table
	print(#familyData.Members) -- 2
	local NextMember = familyData.Members[1]
	familyData.Owner = NextMember
	print(2, familyData.Owner) -- 2 Player1
	-- Set owner value for member folder
	print(NextMember.Name) -- Player1
	local MemberFolder = FamilyFolder:FindFirstChild(NextMember.Name)
	if not MemberFolder then return end
	print(3) -- Does not print
	MemberFolder.Value = 'Owner'
end

-- Remove family member
function Family:RemoveMember(member)
	RemoveMemberFolder(self.Name, member)
	
	-- Remove member from family
	local MemberIndex = table.find(self.Members, member)
	if MemberIndex then
		print("Removing", member, MemberIndex) -- Removing Player1 1
		table.remove(self.Members, MemberIndex)
	end
	print(member, self.Owner) -- Player1 Player1
	if member == self.Owner then
		print("Was owner")
		-- Owner has left, set next person in line as Owner
		NewOwner(self)
	end
	
	if #self.Members == 0 then
		-- No members of family
		self = nil
	end
end

Output
Removing Player1 1

Player1 Player1

Was owner

Getting new owner

Player1 family

1 Player1

2

2 Player1

Player1

Have you checked to see if both members in familyData.Members are Player1? table.foreach(self.Members, print)

Also, can you check the length of the table before removing Player1? There might be 3 members in there somehow.

Hmm ok ye it does seem to add 3 :confused:

1 Like