Making a matchmaking service that works in the playergui. However it returns to me 2 errors. I cant seem to figure out what the errors are... 1st error: Unable to cast value to Object - Server - MatchMakingHandler:20 2nd error: attempt to index number with 'Name' - Server - MatchMakingHandler:74
the script is located inside a button in the startergui. the updatestatus text is located inside the exact same gui, its also a localscript while the main script is a server script. Is there an issue with using normal scripts inside the startergui?
local GameId = 11470859073 --Place Id local back = script.Parent.Parent.Parent.BackButton local TPS = game:GetService("TeleportService") local PlayersInQueue = {} local MinPlayers = 1 local MaxPlayers = 10 local isMatchmaking = false function Matchmake() if isMatchmaking == false then isMatchmaking = true repeat wait() for i,v in pairs(PlayersInQueue) do game.ReplicatedStorage.UpdateStatus:FireClient(v,"Waiting for at least "..tostring(MinPlayers).." players to join the Queue.") end until #PlayersInQueue == MinPlayers --enough players to start for i=0,120,1 do if #PlayersInQueue == 0 then isMatchmaking = false --players have left the game return end if #PlayersInQueue == MaxPlayers then break end for _,value in pairs(PlayersInQueue) do game.ReplicatedStorage.UpdateStatus:FireClient(value,"Teleporting in: ("..tostring(120-i)..") seconds. Players in queue: ("..tostring(#PlayersInQueue)..")") end wait(1) end --finished waiting, teleporting players now local Server = TPS:ReserveServer(GameId) TPS:TeleportToPrivateServer(GameId,Server,PlayersInQueue) wait(3) PlayersInQueue = {} isMatchmaking = false end end script.Parent.MouseButton1Down:Connect(function(player) if #PlayersInQueue == MaxPlayers then return end if not table.find(PlayersInQueue,player) then table.insert(PlayersInQueue,player) end Matchmake() end) game.Players.PlayerRemoving:Connect(function(player) for i,v in pairs(PlayersInQueue) do if v.Name == player.Name then table.remove(PlayersInQueue,i) end end end) back.MouseButton1Down:Connect(function(player) for i,v in pairs(PlayersInQueue) do if v.Name == player.Name then table.remove(PlayersInQueue,i) end end end)
Any help is appreciated!