Run it
Copy the script and paste it into your executor.
Players = :()
RunService = :()
TweenService = :()
UserInputService = :()
Workspace = :()
player = Players.LocalPlayer
player
SETTINGS = {
Enabled = ,
MaxYawDegrees = ,
MaxPitchDegrees = ,
SmoothSpeed = ,
HardMaxYawDegrees = ,
HardMaxPitchDegrees = ,
}
COLORS = {
Background = .(, , ),
HeaderTop = .(, , ),
HeaderBottom = .(, , ),
Card = .(, , ),
CardStroke = .(, , ),
Track = .(, , ),
Accent = .(, , ),
AccentLight = .(, , ),
Green = .(, , ),
GreenDark = .(, , ),
Red = .(, , ),
Yellow = .(, , ),
Text = .(, , ),
Secondary = .(, , ),
Muted = .(, , ),
}
globalConnections = {}
activeTweens = ({}, { __mode = })
(connection)
.(globalConnections, connection)
connection
(className, parent, properties)
object = .(className)
property, value (properties {})
object[property] = value
object.Parent = parent
object
(parent, radius)
(, parent, {
CornerRadius = .(, radius),
})
(parent, color, thickness, transparency)
(, parent, {
Color = color,
Thickness = thickness ,
Transparency = transparency ,
})
(object, duration, goals, style, direction)
object object.Parent
previous = activeTweens[object]
previous
previous:()
info = TweenInfo.(
duration,
style .EasingStyle.Quint,
direction .EasingDirection.Out
)
animation = TweenService:(
object,
info,
goals
)
activeTweens[object] = animation
animation.Completed:(()
activeTweens[object] == animation
activeTweens[object] =
)
animation:()
animation
(
parent,
name,
text,
position,
size,
textSize,
textColor,
font,
alignment
)
(, parent, {
Name = name,
Position = position,
Size = size,
BackgroundTransparency = ,
BorderSizePixel = ,
Text = text,
TextSize = textSize ,
TextColor3 = textColor COLORS.Text,
Font = font .Font.GothamMedium,
TextXAlignment = alignment .TextXAlignment.Left,
TextYAlignment = .TextYAlignment.Center,
TextWrapped = ,
ZIndex = ,
})
(
parent,
name,
text,
position,
size,
background,
hoverBackground,
textSize
)
button = (, parent, {
Name = name,
Position = position,
Size = size,
BackgroundColor3 = background,
BorderSizePixel = ,
AutoButtonColor = ,
Text = text,
TextColor3 = COLORS.Text,
TextSize = textSize ,
Font = .Font.GothamBold,
ZIndex = ,
Active = ,
})
(button, )
buttonScale = (, button, {
Scale = ,
})
hoverBackground
button.MouseEnter:(()
(button, , {
BackgroundColor3 = hoverBackground,
})
)
button.MouseLeave:(()
(button, , {
BackgroundColor3 = background,
})
)
button.Activated:(()
pressTween = (
buttonScale,
,
{ Scale = },
.EasingStyle.Quad
)
pressTween
pressTween.Completed:((playbackState)
playbackState == .PlaybackState.Completed
buttonScale.Parent
(
buttonScale,
,
{ Scale = },
.EasingStyle.Back
)
)
)
button
playerGui = player:()
oldGui = playerGui:()
oldGui
oldGui:()
screenGui = (, playerGui, {
Name = ,
ResetOnSpawn = ,
IgnoreGuiInset = ,
DisplayOrder = ,
ZIndexBehavior = .ZIndexBehavior.Sibling,
})
PANEL_WIDTH =
PANEL_HEIGHT =
panel = (, screenGui, {
Name = ,
AnchorPoint = .(, ),
Position = .(, , , ),
Size = .(PANEL_WIDTH, PANEL_HEIGHT),
BackgroundColor3 = COLORS.Background,
BackgroundTransparency = ,
GroupTransparency = ,
ClipsDescendants = ,
BorderSizePixel = ,
ZIndex = ,
})
(panel, )
(panel, COLORS.CardStroke, , )
panelScale = (, panel, {
Scale = ,
})
header = (, panel, {
Name = ,
Size = .(, , , ),
BackgroundColor3 = COLORS.HeaderTop,
BorderSizePixel = ,
Active = ,
ZIndex = ,
})
(header, )
(, header, {
Color = ColorSequence.(
COLORS.HeaderTop,
COLORS.HeaderBottom
),
Rotation = ,
})
(
header,
,
,
.(, ),
.(, ),
,
COLORS.Text,
.Font.GothamBold
)
(
header,
,
,
.(, ),
.(, ),
,
COLORS.Secondary,
.Font.GothamBold
)
statusPill = (, header, {
Name = ,
Position = .(, ),
Size = .(, ),
BackgroundColor3 = COLORS.GreenDark,
BorderSizePixel = ,
ZIndex = ,
})
(statusPill, )
statusDot = (, statusPill, {
Position = .(, ),
Size = .(, ),
BackgroundColor3 = COLORS.Green,
BorderSizePixel = ,
ZIndex = ,
})
(statusDot, )
statusText = (
statusPill,
,
,
.(, ),
.(, -, , ),
,
COLORS.Text,
.Font.GothamBold
)
minimizeButton = (
header,
,
,
.(, ),
.(, ),
COLORS.Card,
COLORS.CardStroke,
)
trackingCard = (, panel, {
Name = ,
Position = .(, ),
Size = .(, ),
BackgroundColor3 = COLORS.Card,
BorderSizePixel = ,
ZIndex = ,
})
(trackingCard, )
(trackingCard, COLORS.CardStroke, , )
iconCircle = (, trackingCard, {
Position = .(, ),
Size = .(, ),
BackgroundColor3 = COLORS.HeaderTop,
BorderSizePixel = ,
ZIndex = ,
})
(iconCircle, )
(iconCircle, COLORS.CardStroke, , )
(
iconCircle,
,
,
.(, ),
.(, ),
,
COLORS.AccentLight,
.Font.GothamBold,
.TextXAlignment.Center
)
(
trackingCard,
,
,
.(, ),
.(, ),
,
COLORS.Text,
.Font.GothamBold
)
(
trackingCard,
,
,
.(, ),
.(, ),
,
COLORS.Secondary,
.Font.GothamMedium
)
toggleButton = (
trackingCard,
,
,
.(, ),
.(, ),
COLORS.GreenDark,
,
)
sliderCard = (, panel, {
Name = ,
Position = .(, ),
Size = .(, ),
BackgroundColor3 = COLORS.Card,
BorderSizePixel = ,
ClipsDescendants = ,
ZIndex = ,
})
(sliderCard, )
(sliderCard, COLORS.CardStroke, , )
(
sliderCard,
,
,
.(, ),
.(, ),
,
COLORS.Secondary,
.Font.GothamBold
)
settings = {
MaxYawDegrees = SETTINGS.MaxYawDegrees,
MaxPitchDegrees = SETTINGS.MaxPitchDegrees,
SmoothSpeed = SETTINGS.SmoothSpeed,
}
sliderList = {}
sliderControls = {}
(key, value)
key ==
(value) ..
(value) ..
(control, animated)
alpha = (settings[control.key] - control.min)
/ (control.max - control.min)
alpha = .(alpha, , )
control.valueLabel.Text = (
control.key,
settings[control.key]
)
fillGoals = {
Size = .(alpha, , , ),
}
knobGoals = {
Position = .(alpha, , , ),
}
animated
(control.fill, , fillGoals)
(control.knob, , knobGoals)
control.fill.Size = fillGoals.Size
control.knob.Position = knobGoals.Position
(key, title, minimum, maximum, yPosition)
titleLabel = (
sliderCard,
key .. ,
title,
.(, yPosition),
.(, ),
,
COLORS.Text,
.Font.GothamSemibold
)
valueLabel = (
sliderCard,
key .. ,
,
.(, -, , yPosition),
.(, ),
,
COLORS.AccentLight,
.Font.GothamBold,
.TextXAlignment.Right
)
track = (, sliderCard, {
Name = key .. ,
Position = .(, , , yPosition + ),
Size = .(, -, , ),
BackgroundColor3 = COLORS.Track,
BorderSizePixel = ,
Active = ,
ZIndex = ,
})
(track, )
fill = (, track, {
Name = ,
Size = .(, , , ),
BackgroundColor3 = COLORS.Accent,
BorderSizePixel = ,
ZIndex = ,
})
(fill, )
knob = (, track, {
Name = ,
AnchorPoint = .(, ),
Position = .(, , , ),
Size = .(, ),
BackgroundColor3 = COLORS.Text,
BorderSizePixel = ,
Active = ,
ZIndex = ,
})
(knob, )
(knob, COLORS.Accent, , )
control = {
key = key,
titleLabel = titleLabel,
valueLabel = valueLabel,
track = track,
fill = fill,
knob = knob,
min = minimum,
max = maximum,
}
sliderControls[key] = control
.(sliderList, control)
(control, )
control
(
,
,
,
SETTINGS.HardMaxYawDegrees,
)
(
,
,
,
SETTINGS.HardMaxPitchDegrees,
)
(
,
,
,
,
)
(
panel,
,
,
.(, ),
.(, ),
,
COLORS.Secondary,
.Font.GothamBold
)
presetButtons = {}
(name, text, x, background)
button = (
panel,
name,
text,
.(x, ),
.(, ),
background,
COLORS.HeaderTop,
)
presetButtons[name] = button
button
(, , , COLORS.Track)
(, , , COLORS.HeaderTop)
(, , , COLORS.GreenDark)
(, , , COLORS.Track)
rigInfoLabel = (
panel,
,
,
.(, ),
.(, ),
,
COLORS.Secondary,
.Font.GothamSemibold
)
(
panel,
,
,
.(, -, , ),
.(, ),
,
COLORS.Muted,
.Font.GothamBold,
.TextXAlignment.Right
)
miniButton = (, screenGui, {
Name = ,
AnchorPoint = .(, ),
Position = .(, , , ),
Size = .(, ),
BackgroundColor3 = COLORS.HeaderTop,
BackgroundTransparency = ,
Text = ,
TextColor3 = COLORS.Text,
TextTransparency = ,
TextSize = ,
Font = .Font.GothamBold,
AutoButtonColor = ,
Visible = ,
ZIndex = ,
})
(miniButton, )
(miniButton, COLORS.Accent, , )
miniScale = (, miniButton, {
Scale = ,
})
baseScale =
expandedPosition = panel.Position
isMinimized =
isPanelDragging =
panelDragOrigin
panelDragStartPosition
viewportConnection
()
camera = Workspace.CurrentCamera
viewport = camera camera.ViewportSize
.(, )
scaledWidth = PANEL_WIDTH * baseScale
scaledHeight = PANEL_HEIGHT * baseScale
maxX = .(
,
viewport.X - scaledWidth -
)
yBound = .(
,
(viewport.Y - scaledHeight) / -
)
x = .(
expandedPosition.X.Offset,
,
maxX
)
y = .(
expandedPosition.Y.Offset,
-yBound,
yBound
)
expandedPosition = .(, x, , y)
()
camera = Workspace.CurrentCamera
viewport = camera camera.ViewportSize
.(, )
baseScale = .(
.(
,
.(, viewport.X - ) / PANEL_WIDTH,
.(, viewport.Y - ) / PANEL_HEIGHT
),
,
)
panelScale.Scale = baseScale
miniScale.Scale = .(baseScale, , )
()
isMinimized isPanelDragging
panel.Position = expandedPosition
miniButton.Position = .(, , , )
()
viewportConnection
viewportConnection:()
viewportConnection =
camera = Workspace.CurrentCamera
camera
viewportConnection =
camera:():(
updateResponsiveScale
)
()
(
Workspace:():(
watchCurrentCamera
)
)
()
()
isMinimized
isMinimized =
expandedPosition = panel.Position
currentX = expandedPosition.X.Offset
currentY = expandedPosition.Y.OffsetDynamic head rotation towards the camera (works on r6 and r15).

Universal