Run it
Copy the script and paste it into your executor.
Players=:()
RunService=:()
Workspace=:()
Lighting=:()
UserInputService=:()
player=Players.LocalPlayer
guiPlayer=player:()
().GUI_POSITIONS=().GUI_POSITIONS {}
().GUI_LOCKS=().GUI_LOCKS {}
ScreenGui=.()
ScreenGui.Name=
ScreenGui.ResetOnSpawn=
ScreenGui.Parent=guiPlayer
camera=Workspace.CurrentCamera
viewportSize=camera.ViewportSize
baseSize=.(.(.(viewportSize.X,viewportSize.Y)*),,)
offsetFromEdge=.(baseSize*)
MinimapFrame=.()
MinimapFrame.Name=
MinimapFrame.Parent=ScreenGui
MinimapFrame.AnchorPoint=.(,)
MinimapFrame.Position=.(,-offsetFromEdge,,offsetFromEdge*)
MinimapFrame.Size=.(,baseSize,,baseSize)
MinimapFrame.BackgroundColor3=.(,,)
MinimapFrame.BorderSizePixel=
MinimapFrame.ClipsDescendants=
UIStroke=.()
UIStroke.Thickness=
UIStroke.Color=.(,,)
UIStroke.Parent=MinimapFrame
Viewport=.()
Viewport.Parent=MinimapFrame
Viewport.Size=.(,,,)
Viewport.BorderSizePixel=
Viewport.BackgroundColor3=.(,,)
Viewport.Ambient=.(,,)
Viewport.LightColor=.(,,)
Viewport.LightDirection=.(,-,)
WorldModel=.()
WorldModel.Parent=Viewport
Arrow=.()
Arrow.Parent=Viewport
Arrow.AnchorPoint=.(,)
Arrow.Position=.(,,,)
Arrow.Size=.(,.(baseSize*),,.(baseSize*))
Arrow.BackgroundTransparency=
Arrow.Image=
Camera=.()
Camera.FieldOfView=
Camera.CameraType=.CameraType.Scriptable
Camera.Parent=Viewport
Viewport.CurrentCamera=Camera
Character=player.Character player.CharacterAdded:()
HumanoidRootPart=Character:()
player.CharacterAdded:((char)
Character=char
HumanoidRootPart=char:()
)
(button,name)
HOLD_TIME=
locked=().GUI_LOCKS[name]
holding=
holdStart=
holdTriggered=
button.InputBegan:((input)
input.UserInputType~=.UserInputType.MouseButton1 input.UserInputType~=.UserInputType.Touch
holding=
holdStart=()
holdTriggered=
)
button.InputEnded:((input)
input.UserInputType~=.UserInputType.MouseButton1 input.UserInputType~=.UserInputType.Touch
holding=
)
RunService.RenderStepped:(()
holding holdTriggered
()-holdStart>=HOLD_TIME
holdTriggered=
locked= locked
().GUI_LOCKS[name]=locked
)
()
locked
(button,isLocked,name)
dragging=
dragInput
dragStart
startPos
().GUI_POSITIONS[name]
button.Position=().GUI_POSITIONS[name]
button.InputBegan:((input)
isLocked ()
input.UserInputType==.UserInputType.MouseButton1 input.UserInputType==.UserInputType.Touch
dragging=
dragInput=input
dragStart=input.Position
startPos=button.Position
)
button.InputChanged:((input)
input==dragInput dragging
delta=input.Position-dragStart
button.Position=.(
startPos.X.Scale,
startPos.X.Offset+delta.X,
startPos.Y.Scale,
startPos.Y.Offset+delta.Y
)
().GUI_POSITIONS[name]=button.Position
)
UserInputService.InputEnded:((input)
input==dragInput
dragging=
dragInput=
)
minimapLocked=(MinimapFrame,)
(MinimapFrame,minimapLocked,)
clonedParts={}
allowed={Part=,MeshPart=,UnionOperation=}
(obj)
clonedParts[obj]
Character obj:(Character)
allowed[obj.ClassName]
obj.Size.Magnitude<
clone=obj:()
clone.Anchored=
clone.CanCollide=
clone.Parent=WorldModel
clonedParts[obj]=clone
(obj)
clone=clonedParts[obj]
clone
clone:()
clonedParts[obj]=
.(()
count=
_,obj (Workspace:())
(obj)
count+=
count%==
RunService.Heartbeat:()
)
Workspace.DescendantAdded:(addPart)
Workspace.DescendantRemoving:(removePart)
RunService.RenderStepped:(()
HumanoidRootPart
Camera.CFrame=.(
HumanoidRootPart.Position+.(,,),
HumanoidRootPart.Position
)
Arrow.Rotation=-HumanoidRootPart.Orientation.Y-
)
Universal