Draggable GUI Elements Module

What did you do to fix the issue? I have just implemented the module and everything is working fine except for the release event which is triggered every time to GUI is moved rather then when released.

To add to the above, I have done more testing and it seems that any event I bind to is triggered by every event for every draggable object. That is to say, when the ‘Started’ event fires by one draggable object, every event connection receives a signal from the ‘Started’, "Moved’ and ‘Released’ event… for every draggable object that exists.

I had 16 draggable objects created during this test. Each object was binded to the 3 events that should only exist for that specific object:
image

image

image

Is there something I’m missing here? Is this a problem with the Remote module? On that topic I am curious why the Remote module is even needed… what’s wrong with just using Bindable events?

Switching out usage of the Remote module with BindableEvents has fixed the problem so I’m fairly confident there is some issue with the Remote module.

Hey, sorry for the slight bump, but every time I call :Destroy() on the draggable class, i get this error

here’s my code:

local CurrentDraggable

local function OpenUI()
	Gui.Enabled = true
	AppearTween:Play()

	CurrentDraggable = DraggableUI.new(MainFrame)
	CurrentDraggable:Ignore(IgnoreObjects) -- Allow the frame to be draggable
end

-- Main

-- Set ignored objects for UI
for i, Object in pairs(MainFrame:GetDescendants()) do
	if Object:IsA("TextBox") or Object:IsA("GuiButton") or Object:IsA("ScrollingFrame") then
		table.insert(IgnoreObjects, Object)
	end
end

CloseButton.MouseButton1Click:Connect(function()
	MainFrame.GroupTransparency = 1
	Gui.Enabled = false
	
	CurrentDraggable:Destroy()
end)

MainFrame.GroupTransparency = 1

OpenUI()

OpenUIEvent.OnClientEvent:Connect(function(GuiName)
	if Gui.Name == GuiName then
		OpenUI()
	end
end)

Thank you so much for this, actual life saver.