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

collection service based gui button script doesnt recognize button click. How to fix?

Asked by 4 years ago

I had one button that was recognized by the script in InstanceAdded() and it printed its name but the event didnt fire when the button was clicked. everything else works except the clicked event.

local collectionservice = game:GetService("CollectionService")
local currentports = collectionservice:GetTagged("SellingButton")
local player = game.Players.LocalPlayer
local gui = player:WaitForChild("PlayerGui")
local buildgui = gui:WaitForChild("BuildGui")
local buildselect = buildgui:FindFirstChild("SelectBuild")
local addobj = game.ReplicatedStorage:WaitForChild("AddObject")
local mouse = player:GetMouse()
local ThreeDobjects = {}
function Input(object)
        print("input1")
            print("input2")
                local clicked = false
                local function MouseClick()
                    clicked = true
                end
                local connection = mouse.MouseButton1Down:Connect(MouseClick)
                buildselect.Visible = false
                local objectghost = object:Clone()
                local ghostchil = objectghost:GetChildren()
                for i = 1,#ghostchil do
                    ghostchil[i].Transparency = .5
                    ghostchil[i].CanCollide = false
                end
                objectghost.Parent = workspace
                repeat
                    wait()
                    objectghost:SetPrimaryPartCFrame(mouse.Hit)
                until clicked == true
                objectghost:Destroy()
                addobj:InvokeServer(mouse.Hit,object.Name)
    end
function InstanceAdded(instance2)
    print(instance2.Name)
    local instance = instance2.Parent
    local object = instance:FindFirstChildOfClass("Model")
    local viewport = {viewinstance = instance,object}
    instance2.MouseButton1Click:Connect(function() Input(object) end)
    table.insert(ThreeDobjects,#ThreeDobjects,viewport)
end
function InstanceRemoved(instance)
    for i = 1,#ThreeDobjects do
        if(ThreeDobjects[i].viewinstance == instance)then
            table.remove(ThreeDobjects,i)
        end
    end
end
for i = 1,#currentports do
    InstanceAdded(currentports[i])
end
collectionservice:GetInstanceAddedSignal("SellingButton"):Connect(InstanceAdded)
collectionservice:GetInstanceRemovedSignal("SellingButton"):Connect(InstanceRemoved)

Answer this question