How would I make a custom plugin widget ui?

I am trying to replicate something similar to the custom widget ui of moon animator 2 that is scalable and moveable. What can I do to make this?

example:


Did you figure it out, I have the same issue

Did not figure out the scaling issue but to move: (not my original script but here)

local function makeDraggable(object) -- object must be a UI object!

	local function mousePos()
		local mouse = plugin:GetMouse()
		return Vector2.new(mouse.X, mouse.Y)
	end

	local draggingConnection

	local previousMousePosition

	object.InputBegan:Connect(function(input)
		if input.UserInputType == Enum.UserInputType.MouseButton1 then

			previousMousePosition = mousePos()

			draggingConnection = game:GetService("RunService").RenderStepped:Connect(function()

				local movement = mousePos() - previousMousePosition
				object.Position += UDim2.fromOffset(movement.X, movement.Y)

				previousMousePosition = mousePos()
			end)

		end
	end)

	object.InputEnded:Connect(function(input)
		if input.UserInputType == Enum.UserInputType.MouseButton1 then

			if draggingConnection then
				draggingConnection:Disconnect()
			end

		end
	end)
end

the object needs to be the parent of therything

I need help making the gui visible on the user interface in the first place

"
presuming you mean anything here?

when you press the plugin button on the plugin bar clone ethe ui into core gui
when you press the button again, destroy that clone.