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

I got this problem about something got <eof>? when I run this script in the output.

(This is not my script this is from AlvinBlox)

ServerScriptService.MainScript:182: Expected 'end' (to close 'function'' at line 74), got

I am trying to add gamepasses into my game so at line 74 thats what it is.

-- Define Variables

local ReplicatedStorage = game:GetService("ReplicatedStorage")

local ServerStorage = game:GetService("ServerStorage")


 
local MapsFolder = ServerStorage:WaitForChild("Maps")

local Status = ReplicatedStorage:WaitForChild("Status")

local GameLength = 50

local reward = 1

-- Game Loop

while true do
	Status.Value = "Waiting for enough players"

repeat wait(1) until game.Players.NumPlayers >= 2

Status.Value = "Intermission"

wait(10)

local plrs = {}

for i, player in pairs(game.Players:GetPlayers()) do
    if player then
        table.insert(plrs,player) -- Add each player into players table
    end
end

wait(2)

local AvailableMaps = MapsFolder:GetChildren()

local ChosenMap = AvailableMaps[math.random(1,#AvailableMaps)]

Status.Value = ChosenMap.Name.." Chosen"

local ClonedMap = ChosenMap:Clone()
ClonedMap.Parent = workspace

--Teleport players to the map

local SpawnPoints = ClonedMap:FindFirstChild("SpawnPoints")

if not SpawnPoints then
    print("Spawn points not found!")        
end

local AvailableSpawnPoints = SpawnPoints:GetChildren()

for i, player in pairs(plrs) do
    if player then
        character = player.Character

        if character then
            -- Teleport them

            character:FindFirstChild("HumanoidRootPart").CFrame = AvailableSpawnPoints[1].CFrame
            table.remove(AvailableSpawnPoints,1)


            -- Give them a sword
			local id1 = 8539828
			local id2 = 8584203
			local id3 = 8571239
			local mps = game:GetService("MarketplaceService")
			
			game.Players:Connect(function(plr)
			if mps:UserOwnsGamePassAsync(plr.UserId, id1) then
			local TrailSword = ServerStorage.TrailSword:Clone()
			TrailSword.Parent = player.Backpack
		
			if mps:UserOwnsGamePassAsync(plr.UserId, id2) then
			local Boombox = ServerStorage.Boombox:Clone()
			Boombox.Parent = player.Backpack
		
			if mps:UserOwnsGamePassAsync(plr.UserId, id3) then
			local Sword = ServerStorage.BurningSword:Clone()
			BurningSword.Parent = player.Backpack

			local Sword = ServerStorage.Sword:Clone()
            Sword.Parent = player.Backpack

            local GameTag = Instance.new("BoolValue")
            GameTag.Name = "GameTag"
            GameTag.Parent = player.Character
        else
            -- There is no character
            if not player then
                table.remove(plrs,i)
            end
        end
    end
end


Status.Value = "Get ready to play!"

wait(2)

for i = GameLength,0,-1 do

    for x, player in pairs(plrs) do
        if player then

            character = player.Character

            if not character then
                -- Left the game
            else
                if character:FindFirstChild("GameTag") then
                    -- They are still alive
                    print(player.Name.." is still in the game!")
                else
                    -- They are dead
                    table.remove(plrs,x)
                    print(player.Name.." has been removed!")
                end
            end
        else
            table.remove(plrs,x)
            print(player.Name.." has been removed!")
        end
    end

    Status.Value = "There are "..i.." seconds remaining, and "..#plrs.." players left"

    if #plrs == 1 then
        -- Last person standing
        Status.Value = "The winner is "..plrs[1].Name
        plrs[1].leaderstats.Points.Value = plrs[1].leaderstats.Points.Value + reward
        break
    elseif #plrs == 0 then
        Status.Value = "Nobody won!"
        break
    elseif i == 0 then
        Status.Value = "Times up!"
        break
    end

    wait(1)
end

print("End of game")

for i, player in pairs(game.Players:GetPlayers()) do
    character = player.Character

    if not character then
        -- Ignore them
    else 
        if character:FindFirstChild("GameTag") then
            character.GameTag:Destroy()

        end

        if player.Backpack:FindFirstChild("Sword") then
            player.Backpack.Sword:Destroy()
        end

        if character:FindFirstChild("Sword") then
            character.Sword:Destroy()
        end

    end

    player:LoadCharacter()
end

ClonedMap:Destroy()

Status.Value = "Game Ended"

wait(2)

	end
end

1 answer

✓ Accepted answer

Depending on the output error (i think), you are missing an end If there is still more errors let me know

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