Run it
Copy the script and paste it into your executor.
UserInputService = :()
CoreGui = :()
HttpService = :()
RunService = :()
CONFIG_FILE =
DRAG_SPEED =
savedPositions = {}
connections = {}
(CONFIG_FILE)
success, result = (()
HttpService:((CONFIG_FILE))
)
success (result) ==
savedPositions = result
()
(CONFIG_FILE, HttpService:(savedPositions))
(frame, uniqueId)
frame
connections[uniqueId]
_, conn (connections[uniqueId])
conn:()
connections[uniqueId] = {}
connections[uniqueId] = {}
savedPositions[uniqueId]
posData = savedPositions[uniqueId]
frame.Position = .(posData.Xs, posData.Xo, posData.Ys, posData.Yo)
dragging =
dragInput
dragStart
startPos
inputBegan = frame.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
dragging =
dragStart = input.Position
startPos = frame.Position
input.Changed:(()
input.UserInputState == .UserInputState.End
dragging =
savedPositions[uniqueId] = {
Xs = frame.Position.X.Scale,
Xo = frame.Position.X.Offset,
Ys = frame.Position.Y.Scale,
Yo = frame.Position.Y.Offset
}
()
)
)
inputChanged = frame.InputChanged:((input)
input.UserInputType == .UserInputType.MouseMovement input.UserInputType == .UserInputType.Touch
dragInput = input
)
globalInputChanged = UserInputService.InputChanged:((input)
input == dragInput dragging
delta = input.Position - dragStart
targetPos = .(
startPos.X.Scale,
startPos.X.Offset + delta.X,
startPos.Y.Scale,
startPos.Y.Offset + delta.Y
)
frame.Position = targetPos
)
.(connections[uniqueId], inputBegan)
.(connections[uniqueId], inputChanged)
.(connections[uniqueId], globalInputChanged)
()
path = CoreGui:()
path
(child)
child.Name == child:()
.()
(child, )
path:()
(path.Children)
path.ChildAdded:(setup)
()
path = CoreGui:()
path
(child)
child.Name == child:()
.()
(child, )
path:()
(path.appLayout)
path.ChildAdded:(setup)
.(hookPlayerList)
.(hookExperienceChat)
CoreGui.ChildAdded:((child)
child.Name ==
()
child.Name ==
()
)
Universal