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

Why is the tool not being distributed?

Asked by 10 years ago

Hi! - The game I am currently working on has the tool inside of a script, and that script chooses the gamemodes, and gives the tool out to the players. This script is essential, considering it gives out all of the player's GUI(s), and such. However, this script has suddenly stopped distributed the tool for no reason whatsoever. I've tried all the fixes I could - and ended up asking here. Tell me what you guys think the error is - please!

I warn you - it's very long!

gtool = script.GameTool:clone()
script:remove()

roundTime = {
    ["Free for All"] = 600
    }
gd = workspace.GlobalDistribution
function consoleMessage(text,color)
    local Msg = Instance.new("StringValue",game.Lighting.ServerConsole)
    Msg.Value = "Global Distribution: "..text
    if color then
        Msg.Name = color
    end
    game.Debris:AddItem(errorMsg,3)
end

function alert(text,color3)
    local Msg = Instance.new("StringValue",game.Lighting.ServerAlerts)
    Msg.Value = text
    if color then
        Instance.new("Color3Value",Msg).Value = color3
    end
end


game.Lighting.ServerDamage.ChildAdded:connect(function(child)
    if child:IsA("NumberValue") then
        if pcall(function() 
            workspace:findFirstChild(child.Name):findFirstChild("Humanoid"):TakeDamage(child.Value) 
            end) then
            if workspace:findFirstChild(child.Name).Humanoid.Health <= 0 and workspace:findFirstChild(child.Name).Humanoid.MaxHealth > 5 then
                workspace[child.Name].Humanoid.MaxHealth = 1
                consoleMessage("Attempting to add killmessage","Bright yellow")
                if #game.Lighting.ServerKillMessages:GetChildren() > 5 then
                    game.Lighting.ServerKillMessages:GetChildren()[1]:Destroy()
                end
                Spawn(function()
                    wait(0.1)
                    if child:findFirstChild("KillMessage") then
                        consoleMessage("damageData contains killmessage","Bright yellow")
                        local ksmg = child.KillMessage:clone()
                        ksmg.Parent = game.Lighting.ServerKillMessages
                    else
                        consoleMessage("damageData did not contain killmessage","Bright yellow")
                    end
                end)
            end
        else
            consoleMessage("ERROR: Failed to distribute damage to "..child.Name,"Bright red")
        end
        child:Destroy()
    end
end)

game.Players.PlayerAdded:connect(function(player)
    consoleMessage(player.Name.." has connected.","Toothpaste")
    player.CharacterAdded:connect(function()
        gtool:clone().Parent = player.Backpack
        player.Backpack["GameTool"].Archivable = false
        player.Backpack["GameTool"]["woop"].Archivable = false
    end)
    local warning = game.Lighting.Resources.GUI.Warning:clone()
    Spawn(function()
        repeat wait(0) until player:findFirstChild("PlayerGui") and player.PlayerGui:findFirstChild("Menu")
        warning.Parent = player.PlayerGui
        local leedstat = Instance.new("BoolValue",player)
        leedstat.Name = "leaderstats"
        Instance.new("StringValue",leedstat).Name = "Users"
        wait(4)
        warning.Agree:TweenPosition(UDim2.new(0.35,0,.7,0),"Out","Quad",1,true)
        warning.Agree.MouseButton1Click:connect(function()
            warning.Agree:TweenPosition(UDim2.new(0.5,-100,2,0),"Out","Quad",1,true)
            warning.Frame:TweenPosition(UDim2.new(0,0,2,0),"Out","Quad",0.7,true)
            game.Debris:AddItem(warning,2)
            player.PlayerGui.Menu.Frame.Active = true
        end)
    end)
end)

game.Players.ChildRemoved:connect(function(player)
    if player:IsA("Player") then
        consoleMessage(player.Name.." has disconnected.","Toothpaste")
        local bin = workspace.Ignore:findFirstChild(player.Name.."HandleBin")
        if bin then bin:Destroy() end
        local objectsInIgnore = workspace.Ignore:GetChildren()
        consoleMessage("workspace.Ignore contains:","Brick yellow")
        for x = 1, #objectsInIgnore do
            if objectsInIgnore[x]:IsA("Part") and objectsInIgnore[x].CanCollide then
                objectsInIgnore[x]:Destroy()
            else
                consoleMessage(objectsInIgnore[x].Name,"Brick yellow")
            end
        end
    end
end)

game.Lighting.ServerPing.ChildAdded:connect(function(packet)
    if packet:IsA("NumberValue") then
        if pcall(function() packet.Parent = game.Players:findFirstChild(packet.Name) end) then
        else
            consoleMessage("GlobalDistribution ERROR: Failed to send pafcket to "..packet.Name,"Bright red")
        end
    end

end)

function RidStuff()
    if not workspace:findFirstChild("Drops") then
        Instance.new("Model",workspace).Name = "Drops"
    end
    if allTheThings then
        for x = 1, #allTheThings do
            allTheThings[x]:disconnect()
        end
    end
    allTheThings = {
    workspace.ChildAdded:connect(function(child)
        if child:IsA("Hat") then
            game.Debris:AddItem(child,10)
        end
    end),
    workspace.Drops.ChildAdded:connect(function(child)
        game.Debris:AddItem(child,15)
    end),
    workspace.Ignore.Effects.ChildAdded:connect(function(child)
        game.Debris:AddItem(child,10)
    end),
    game.Lighting.ServerDamage.ChildAdded:connect(function(child)
        game.Debris:AddItem(child,10)
    end),
    game.Lighting.ServerSound.ChildAdded:connect(function(child)
        game.Debris:AddItem(child,10)
    end),
    game.Lighting.ServerConsole.ChildAdded:connect(function(child)
        game.Debris:AddItem(child,10)
    end),
    game.Lighting.ServerAlerts.ChildAdded:connect(function(child)
        game.Debris:AddItem(child,10)
    end)
    }
end
RidStuff()
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
---------- GAME ROUNDS ---- GAME ROUNDS ---- GAME ROUNDS ---- GAME ROUNDS ---- GAME ROUNDS ----------
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------

lastmap = nil
function spawnMap(gMode)
    local mapName
    mapLibrary = game.Lighting.Resources.Maps
    if workspace:findFirstChild("Map") then
        workspace:findFirstChild("Map"):Destroy()
    end
    if workspace.Ignore:findFirstChild("Flags") then
        workspace.Ignore.Flags:Destroy()
        Instance.new("Model",workspace.Ignore).Name = "Flags"
    end
    if gMode == "Free for All" then
        repeat
        map = mapLibrary.FFA:GetChildren()[math.random(1,#mapLibrary.FFA:GetChildren())]
        until map ~= lastmap
        lastmap = map
        map = map:clone()
        mapName = map.Name
        gd.gameMap.Value = mapName
        map.Name = "Map"
    end
    alert(gMode.." at "..mapName,Color3.new(0.3,0.8,0))
    map.Parent = workspace
    if map:findFirstChild("BlueFlag") then
        map.BlueFlag.Parent = workspace.Ignore.Flags
    end
    if map:findFirstChild("RedFlag") then
        map.RedFlag.Parent = workspace.Ignore.Flags
    end
end
gameMode = gd.gameMode
gameTime = gd.gameTime
gModes = {"Free for All"}
while true do
    pcall(RidStuff)
    gameMode.Value = gModes[math.random(1,#gModes)]
    gameTime.Value = roundTime[gameMode.Value]
    spawnMap(gameMode.Value)
    repeat
        wait(1)
        gameTime.Value = gameTime.Value - 1
        if gameTime.Value == 10 then
            alert("TEN SECONDS REMAIN!",Color3.new(0,0.8,1))
        end
    until gameTime.Value <= 0
    gameMode.Value = ""
    local players = game.Players:GetChildren()
    alert("ROUND END!",Color3.new(0,0.8,1))
    for x = 1, #players do
        pcall(function()
            players[x].LeftWeapon.Value = "Pistol"
            players[x].RightWeapon.Value = "Knife"
            if players[x].Character:findFirstChild("Humanoid") then
                players[x].Character.Humanoid.Health = 0
            end
        end)
    end
    wait(15)
    for x = 1, #players do
        if players[x]:findFirstChild("LeaderInfo") then
            pcall(function()
                players[x].LeaderInfo.Kills.Value = 0
                players[x].LeaderInfo.Scores.Value = 0
                players[x].LeaderInfo.Deaths.Value = 0
                players[x].LeaderInfo.Team.Value = 0
            end)
        end
    end
end

  • Dragon

EDIT: If needed, I can provide the GameTool as well - but the problem appears to be originating here.

It should be said that the first player to connect is getting the tool, while all other players after him or her are not.

0
The only think I can think of is that you're setting archivable to false for the tool, but I don't know too much about that property. Is this in a normal script or a localscript? And is the tool the only thing not being distributed? ipiano 120 — 10y
0
This is a normal script that is distributing the GameTool (hopperbin) - full of local scripts. And yes - the Hopperbin handles the rest of the copying. HypocriticalDragon 40 — 10y
0
This is of course subtracting the map being copied from the Lighting - however - that still works. HypocriticalDragon 40 — 10y

Answer this question