Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

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

Asked by 4 years ago
Edited 4 years ago

(This is not my script this is from AlvinBlox)

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

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

Log in to vote
0
Answered by 4 years ago
Edited 4 years ago

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

Ad

Answer this question