Advertisement
Tweak16

ROBLOX Scripting | Draggable Guis

Aug 26th, 2020 (edited)
1,461
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.22 KB | None | 0 0
  1. -- Made by Tweakified, Neonblox Games
  2. -- Video: https://www.youtube.com/watch?v=MZ5Tyjf9Hi8
  3.  
  4. local UserInputService = game:GetService("UserInputService")
  5.  
  6. local MainFrame = script.Parent
  7. local RepositioningFrame = MainFrame:WaitForChild("TopBar")
  8.  
  9. local Camera = workspace:WaitForChild("Camera")
  10.  
  11. local DragMousePosition
  12. local FramePosition
  13.  
  14. local Draggable = false
  15.  
  16. RepositioningFrame.InputBegan:Connect(function(input)
  17.     if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
  18.         Draggable = true
  19.         DragMousePosition = Vector2.new(input.Position.X, input.Position.Y)
  20.         FramePosition = Vector2.new(MainFrame.Position.X.Scale, MainFrame.Position.Y.Scale)
  21.     end
  22. end)
  23.  
  24. RepositioningFrame.InputEnded:Connect(function(input)
  25.     if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
  26.         Draggable = false
  27.     end
  28. end)
  29.  
  30. UserInputService.InputChanged:Connect(function(input)
  31.     if Draggable == true then
  32.         local NewPosition = FramePosition + ((Vector2.new(input.Position.X, input.Position.Y) - DragMousePosition) / Camera.ViewportSize)
  33.         MainFrame.Position = UDim2.new(NewPosition.X, 0, NewPosition.Y, 0)
  34.     end
  35. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement