CCCPaste

Among Us 10 - Meeting Script

local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ServerScriptService = game:GetService("ServerScriptService")

local Functions = require(ServerScriptService.MainServer.Functions)

local Button = script.Parent.Button
local Remotes = ReplicatedStorage.Remotes
local WinnerVal = ReplicatedStorage.Winner

Button.ClickDetector.MouseClick:Connect(function(Player: Player)
	local PlayersInGame = {}
	
	for i, Player: Player in pairs(Players:GetPlayers()) do
		if Player then
			table.insert(PlayersInGame, Player)
		end
	end
	
	for i, Player: Player in pairs(PlayersInGame) do
		if Player then
			if Player.Backpack:FindFirstChild("Sword") then
				Player.Backpack.Sword:Destroy()
			end
		end
	end
	
	for i, Player: Player in pairs(PlayersInGame) do
		if Player then
			local Character = Player.Character or Player.CharacterAdded:Wait()

			if Character then
				local InGame = Instance.new("IntValue", Character)
				InGame.Name = "InGame"

				Character:PivotTo(Workspace.VotingRoom.TPPart.CFrame)
			else
				table.remove(PlayersInGame, Player)
			end
		else
			table.remove(PlayersInGame, Player)
		end
		
		task.wait(ReplicatedStorage.EmergencyTime.Value)
		
		Functions.StartVoting()
		
		task.wait(ReplicatedStorage.VotingTime.Value)
		
		Functions.GetWinner()
		
		for i, Player: Player in pairs(Players:GetPlayers()) do
			if Player then
				local Character = Player.Character or Player.CharacterAdded:Wait()
				
				if Character then
					if Player.Name == ReplicatedStorage.Winner.Value then
						Character:PivotTo(Workspace.Teleport.CFrame)
						
						Workspace.Gravity = 20
					end
				end
			end
		end
		
		Remotes.Camera:FireAllClients(Player)
		
		task.wait(3)
		
		Workspace.Gravity = 196.2
		
		for i, Player: Player in pairs(PlayersInGame) do
			if Player then
				if Player.Name == ReplicatedStorage.Winner.Value then
					local Character = Player.Character or Player.CharacterAdded:Wait()
										
					table.remove(PlayersInGame, i)
				end
			end
		end
	end
	
	task.wait(0.5)
	
	ReplicatedStorage.Winner.Value = "nil"
	
	for i, Player: Player in pairs(PlayersInGame) do
		if Player then
			local Character = Player.Character or Player.CharacterAdded:Wait()
			
			if Character then
				if Player.Name ~= ReplicatedStorage.Winner.Value then
					Character:PivotTo(Workspace.Map.TPPart.CFrame)
				end
			end
		end
	end
end)