local UserInputService=game:GetService('UserInputService');
local gui=script.Parent;
local dragging,dragInput,dragStart,startPos;
local function update(input)
local delta=input.Position-dragStart;
gui.Position=UDim2.new(startPos.X.Scale,startPos.X.Offset+delta.X,startPos.Y.Scale,startPos.Y.Offset+delta.Y);
end
gui.InputBegan:Connect(function(input)
if input.UserInputType==Enum.UserInputType.MouseButton1 or input.UserInputType==Enum.UserInputType.Touch then
dragging,dragStart,startPos=true,input.Position,gui.Position;
input.Changed:Connect(function()
if input.UserInputState==Enum.UserInputState.End then
dragging=false;
end
end)
end
end)
gui.InputChanged:Connect(function(input)
if input.UserInputType==Enum.UserInputType.MouseMovement or input.UserInputType==Enum.UserInputType.Touch then
dragInput=input;
end
end)
UserInputService.InputChanged:Connect(function(input)
if input==dragInput and dragging then
update(input);
end
end)