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

FoundItem is nil when I drag an object?

Asked by 6 years ago

Hi,

I have an admin command that is used to spawn items onto the workspace. In studio it works fine but not online. Essentially, what it does is that you type a command inside a textbox, and when you press enter the object spawns in your inventory. When I take it out of the inventory however, the item is nil. The following is a sample of my code:

local textBox= Instance.new("TextBox",adminGui)
    textBox.Name= "TextBox"
    textBox.Text= "Admin Commands"
    textBox.Position= UDim2.new(0,0,0.9,0)
    textBox.Size= UDim2.new(0.2,0,0.1,0)

    function onKeyPress(inputObject, gameProcessedEvent)
        if inputObject.KeyCode == Enum.KeyCode.Return then
            local theText= textBox.Text
            if theText== "adminroom" then
                game.Players.LocalPlayer.Character.Torso.CFrame = CFrame.new(workspace.AdminRoom.AdminRoomBase.BaseBottom.Position+Vector3.new(0,5,0))
            elseif theText== "room" then
                game.Players.LocalPlayer.Character.Torso.CFrame= CFrame.new(workspace["Pool of Oil"].Position+Vector3.new(1100,50,100))     
            elseif theText== "stats50" then
                game.StarterGui.Hunger.HungerValue.Value= 50
                game.StarterGui.Health.HealthValue.Value= 50
                game.StarterGui.Thirst.ThirstValue.Value= 50
            elseif theText== "stats100" then
                game.StarterGui.Hunger.HungerValue.Value= 100
                game.StarterGui.Health.HealthValue.Value= 100
                game.StarterGui.Thirst.ThirstValue.Value= 100   
            elseif theText== "Handle" then
                local cloneObj= game.ReplicatedStorage:FindFirstChild("Handle",true):Clone()
                cloneObj.Parent= game.StarterGui.Inventory.Itembag

            end
        end
    end
    game:GetService("UserInputService").InputBegan:connect(onKeyPress)

The following script takes the item from the backpack to the workspace:

local Player= game.Players.LocalPlayer
local Mouse= Player:GetMouse()


function onLeftButtonDown()
    game.Players.LocalPlayer.PlayerGui.InventoryGui.Enabled= false
    local foundItem= game.StarterGui.Inventory.Itembag:FindFirstChild(tostring(script.Parent.Text))
    if foundItem then
        local function onMouseMove()
            --game.StarterGui.Inventory.CheckMoving.Value= 1
            local mouseHitX= Mouse.Hit.X
            --local mouseHitY= game.Players.LocalPlayer.Character.Torso.Position.Y
            local mouseHitY= game.Players.LocalPlayer.Character:FindFirstChild("Left Leg").Position.Y
            local mouseHitZ= Mouse.Hit.Z

            found.Position= Vector3.new(Mouse.Hit.X,Mouse.Hit.Y,Mouse.Hit.Z)
            local function onLeftButtonDown2()
                found.Position= Vector3.new(found.Position.X,found.Position.Y,found.Position.Z)
                if not Mouse.Target then
                    return
                end
                local mouseTarget= Mouse.Target
                if mouseTarget.CanCollide== false and mouseTarget.Anchored== true and mouseTarget.Transparency== 0.5 then
                    mouseTarget.Transparency= 0
                    mouseTarget.CanCollide= true
                    mouseTarget.Anchored= false
                    game.Players.LocalPlayer.PlayerGui.InventoryGui.Enabled= true
                    script.Parent:Destroy()
                end
            end
            Mouse.Button1Down:connect(onLeftButtonDown2)

        end
        Mouse.Move:connect(onMouseMove)
    end
end
script.Parent.MouseButton1Down:connect(onLeftButtonDown)

My attempt was to use an external function that will loop the command until it goes into the workspace, and call it after ``:

function Loop()
    if cloneObj.Parent~= workspace then
        while cloneObj.Parent~= workspace then
            wait()
            cloneObj.Parent= workspace
        end
    end
end

This pertains specifically to the object called 'Handle'.

Thanks, Houlardy

Answer this question