Run it
Copy the script and paste it into your executor.
Players = :()
UserInputService = :()
RunService = :()
Player = Players.LocalPlayer
Player.PlayerGui:()
Player.PlayerGui[]:()
ScreenGui = .()
ScreenGui.Name =
ScreenGui.ResetOnSpawn =
ScreenGui.Parent = Player:()
ScreenGui.ZIndexBehavior = .ZIndexBehavior.Sibling
ActivePopups = {}
Config = {
AutoRotate = ,
RotSpeed = ,
CamHeight = -,
Scales = {
Head = , Torso = , Arms = , Legs = , Accessories =
},
CurrentSelectedPart = ,
Hidden = {Head=, Torso=, Arms=, Legs=, Acc=},
Transparency = ,
IsForceField = ,
EffectColor = .(, , ),
SolidColorEnabled = ,
SolidColor = .(, , )
}
MainFrame = .()
MainFrame.Name =
MainFrame.Size = .(, , , )
MainFrame.Position = .(, , , -)
MainFrame.BackgroundColor3 = .(, , )
MainFrame.BorderSizePixel =
MainFrame.Active =
MainFrame.Parent = ScreenGui
MainCorner = .() MainCorner.CornerRadius = .(, ) MainCorner.Parent = MainFrame
MainStroke = .() MainStroke.Color = .(, , ) MainStroke.Thickness = MainStroke.Parent = MainFrame
Viewport = .()
Viewport.Size = .(, -, , -)
Viewport.Position = .(, , , )
Viewport.BackgroundTransparency =
Viewport.BackgroundColor3 = .(, , )
Viewport.Parent = MainFrame
.(, Viewport).CornerRadius = .(, )
WorldModel = .() WorldModel.Parent = Viewport
Camera = .() Viewport.CurrentCamera = Camera Camera.Parent = Viewport
ToggleBtn = .()
ToggleBtn.Name =
ToggleBtn.Size = .(, , , )
ToggleBtn.Position = .(, -, , )
ToggleBtn.BackgroundTransparency =
ToggleBtn.Text =
ToggleBtn.TextSize =
ToggleBtn.TextColor3 = .(,,)
ToggleBtn.Parent = MainFrame
SettingsFrame = .()
SettingsFrame.Name =
SettingsFrame.Position = .(, , , -)
SettingsFrame.Size = .(, , , )
SettingsFrame.BackgroundColor3 = .(, , )
SettingsFrame.Visible =
SettingsFrame.ScrollBarThickness =
SettingsFrame.ScrollBarImageColor3 = .(, , )
SettingsFrame.BorderSizePixel =
SettingsFrame.AutomaticCanvasSize = .AutomaticSize.Y
SettingsFrame.CanvasSize = .(,,,)
SettingsFrame.Parent = ScreenGui
SetCorner = .() SetCorner.CornerRadius = .(, ) SetCorner.Parent = SettingsFrame
SetStroke = .() SetStroke.Color = .(, , ) SetStroke.Thickness = SetStroke.Parent = SettingsFrame
ListLayout = .()
ListLayout.Parent = SettingsFrame
ListLayout.SortOrder = .SortOrder.LayoutOrder
ListLayout.Padding = .(, )
ListLayout.HorizontalAlignment = .HorizontalAlignment.Center
Padding = .()
Padding.Parent = SettingsFrame
Padding.PaddingTop = .(, )
Padding.PaddingBottom = .(, )
ToggleBtn.MouseButton1Click:(()
SettingsFrame.Visible = SettingsFrame.Visible
ToggleBtn.Text = SettingsFrame.Visible
ToggleBtn.TextColor3 = SettingsFrame.Visible .(, , ) .(, , )
SettingsFrame.Visible
_, data (ActivePopups)
data.Popup.Visible =
)
(name, defaultColor, callback, order)
Container = .()
Container.Size = .(, , , )
Container.BackgroundTransparency =
Container.LayoutOrder = order
Container.Parent = SettingsFrame
Label = .()
Label.Size = .(, , , )
Label.BackgroundTransparency =
Label.Text = name
Label.TextColor3 = .(, , )
Label.TextXAlignment = .TextXAlignment.Left
Label.TextSize =
Label.Parent = Container
ColorPreviewBtn = .()
ColorPreviewBtn.Size = .(, , , )
ColorPreviewBtn.Position = .(, -, , )
ColorPreviewBtn.BackgroundColor3 = defaultColor
ColorPreviewBtn.Text =
ColorPreviewBtn.Parent = Container
.(, ColorPreviewBtn).CornerRadius = .(, )
PreviewStroke = .() PreviewStroke.Color = .(,,) PreviewStroke.Thickness = PreviewStroke.Parent = ColorPreviewBtn
PickerPopup = .()
PickerPopup.Name =
PickerPopup.Size = .(, , , )
PickerPopup.BackgroundColor3 = .(, , )
PickerPopup.Visible =
PickerPopup.ZIndex =
PickerPopup.Parent = ScreenGui
.(, PickerPopup).CornerRadius = .(, )
PopStroke = .() PopStroke.Color = .(,,) PopStroke.Thickness = PopStroke.Parent = PickerPopup
.(ActivePopups, {Popup = PickerPopup, Button = ColorPreviewBtn})
h, s, v = .(defaultColor)
SVBox = .()
SVBox.Size = .(, -, , )
SVBox.Position = .(, , , )
SVBox.BackgroundColor3 = .(h, , )
SVBox.AutoButtonColor =
SVBox.Image =
SVBox.ZIndex =
SVBox.Parent = PickerPopup
SatLayer = .()
SatLayer.Size = .(,,,)
SatLayer.BackgroundColor3 = .(,,)
SatLayer.BorderSizePixel =
SatLayer.ZIndex =
SatLayer.Parent = SVBox
SatGrad = .()
SatGrad.Transparency = NumberSequence.{NumberSequenceKeypoint.(, ), NumberSequenceKeypoint.(, )}
SatGrad.Parent = SatLayer
ValLayer = .()
ValLayer.Size = .(,,,)
ValLayer.BackgroundColor3 = .(,,)
ValLayer.BorderSizePixel =
ValLayer.ZIndex =
ValLayer.Parent = SVBox
ValGrad = .()
ValGrad.Rotation =
ValGrad.Transparency = NumberSequence.{NumberSequenceKeypoint.(, ), NumberSequenceKeypoint.(, )}
ValGrad.Parent = ValLayer
SVCursor = .()
SVCursor.Size = .(, , , )
SVCursor.AnchorPoint = .(, )
SVCursor.BackgroundColor3 = .(,,)
SVCursor.ZIndex =
SVCursor.Parent = SVBox
.(, SVCursor).CornerRadius = .(,)
.(, SVCursor).Thickness =
HueBar = .()
HueBar.Size = .(, -, , )
HueBar.Position = .(, , , )
HueBar.BackgroundColor3 = .(,,)
HueBar.AutoButtonColor =
HueBar.Image =
HueBar.ZIndex =
HueBar.Parent = PickerPopup
.(, HueBar).CornerRadius = .(, )
HueGrad = .()
HueGrad.Color = ColorSequence.{
ColorSequenceKeypoint.(, .(,,)), ColorSequenceKeypoint.(, .(,,)),
ColorSequenceKeypoint.(, .(,,)), ColorSequenceKeypoint.(, .(,,)),
ColorSequenceKeypoint.(, .(,,)), ColorSequenceKeypoint.(, .(,,)),
ColorSequenceKeypoint.(, .(,,))
}
HueGrad.Parent = HueBar
HueCursor = .()
HueCursor.Size = .(, , , )
HueCursor.Position = .(h, , , )
HueCursor.AnchorPoint = .(, )
HueCursor.BackgroundColor3 = .(,,)
HueCursor.BorderSizePixel =
HueCursor.ZIndex =
HueCursor.Parent = HueBar
()
finalColor = .(h, s, v)
ColorPreviewBtn.BackgroundColor3 = finalColor
SVBox.BackgroundColor3 = .(h, , )
SVCursor.BackgroundColor3 = finalColor
HueCursor.Position = .(h, , , )
SVCursor.Position = .(s, , - v, )
(finalColor)
hueDragging =
HueBar.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch hueDragging =
)
svDragging =
SVBox.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch svDragging =
)
UserInputService.InputEnded:((input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
hueDragging =
svDragging =
)
UserInputService.InputChanged:((input)
input.UserInputType == .UserInputType.MouseMovement input.UserInputType == .UserInputType.Touch
hueDragging
relX = .((input.Position.X - HueBar.AbsolutePosition.X) / HueBar.AbsoluteSize.X, , )
h = relX
()
svDragging
relX = .((input.Position.X - SVBox.AbsolutePosition.X) / SVBox.AbsoluteSize.X, , )
relY = .((input.Position.Y - SVBox.AbsolutePosition.Y) / SVBox.AbsoluteSize.Y, , )
s = relX
v = - relY
()
)
ColorPreviewBtn.MouseButton1Click:(()
_, data (ActivePopups)
data.Popup ~= PickerPopup
data.Popup.Visible =
PickerPopup.Visible
btnAbsPos = ColorPreviewBtn.AbsolutePosition
PickerPopup.Position = .(, btnAbsPos.X + , , btnAbsPos.Y - )
PickerPopup.Visible = PickerPopup.Visible
)
()
UserInputService.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
clickPos = input.Position
_, data (ActivePopups)
data.Popup.Visible
(frame)
absPos = frame.AbsolutePosition
absSize = frame.AbsoluteSize
clickPos.X >= absPos.X clickPos.X <= absPos.X + absSize.X
clickPos.Y >= absPos.Y clickPos.Y <= absPos.Y + absSize.Y
(data.Popup) (data.Button)
data.Popup.Visible =
)
(text, order)
L = .()
L.Size = .(, , , )
L.BackgroundTransparency =
L.Text = text
L.TextColor3 = .(, , )
L.Font = .Font.GothamBold
L.TextSize =
L.LayoutOrder = order
L.Parent = SettingsFrame
(name, min, max, default, callback, updateRef, order)
F = .() F.Size = .(, , , ) F.BackgroundTransparency = F.LayoutOrder = order F.Parent = SettingsFrame
L = .() L.Size = .(, , , ) L.BackgroundTransparency = L.Text = name L.TextColor3 = .(,,) L.TextXAlignment = .TextXAlignment.Left L.TextSize = L.Parent = F
Bar = .() Bar.Size = .(, , , ) Bar.Position = .(, , , ) Bar.BackgroundColor3 = .(,,) Bar.BorderSizePixel = Bar.Parent = F
.(, Bar).CornerRadius = .(,)
Fill = .() Fill.Size = .(,,,) Fill.BackgroundColor3 = .(, , ) Fill.BorderSizePixel = Fill.Parent = Bar
.(, Fill).CornerRadius = .(,)
Knob = .() Knob.Size = .(,,,) Knob.AnchorPoint = .(,) Knob.BackgroundColor3 = .(,,) Knob.Text= Knob.Parent=Bar
.(, Knob).CornerRadius = .(,)
(ratio) Knob.Position = .(.(ratio, , ), , , ) Fill.Size = .(ratio, , , )
(val) ratio = (val - min) / (max - min) (ratio)
(default)
updateRef updateRef.Update = UpdateFromVal
dragging =
Knob.InputBegan:((i) i.UserInputType == .UserInputType.MouseButton1 i.UserInputType == .UserInputType.Touch dragging = )
UserInputService.InputEnded:((i) i.UserInputType == .UserInputType.MouseButton1 i.UserInputType == .UserInputType.Touch dragging = )
UserInputService.InputChanged:((i)
dragging (i.UserInputType == .UserInputType.MouseMovement i.UserInputType == .UserInputType.Touch)
mX = i.Position.X
rel = .((mX - Bar.AbsolutePosition.X) / Bar.AbsoluteSize.X, , )
(rel)
(min + (rel * (max - min)))
)
(text, default, callback, order)
B = .() B.Size = .(, , , ) B.BackgroundColor3 = default .(,,) .(,,) B.Text = text B.TextColor3 = .(,,) B.TextSize = B.LayoutOrder = order B.Parent = SettingsFrame
.(, B).CornerRadius = .(,)
B.MouseButton1Click:(() newVal = () B.BackgroundColor3 = newVal .(,,) .(,,) )
(, )
(, .(, , ), (col) Viewport.BackgroundColor3 = col , )
(, )
PartSelectFrame = .()
PartSelectFrame.Size = .(, , , )
PartSelectFrame.BackgroundTransparency =
PartSelectFrame.LayoutOrder =
PartSelectFrame.Parent = SettingsFrame
UIList = .() UIList.Parent = PartSelectFrame UIList.FillDirection = .FillDirection.Horizontal UIList.Padding = .(,)
PartsBtns = {}
PartRef = {}
(pName)
Config.CurrentSelectedPart = pName
name, btn (PartsBtns)
btn.BackgroundColor3 = (name == pName) .(, , ) .(,,)
PartRef.Update PartRef.(Config.Scales[pName])
_, pName ({, , , , })
b = .()
b.Name = pName
b.Size = .(, , , )
b.Text = (pName == ) pName
b.TextSize =
b.TextColor3 = .(,,)
b.BackgroundColor3 = .(,,)
b.Parent = PartSelectFrame
.(, b).Parent = b
b.MouseButton1Click:(() (pName) )
PartsBtns[pName] = b
()
(, , , , (v)
Config.Scales[Config.CurrentSelectedPart] = v
, PartRef, )
(, )
(, , () Config.SolidColorEnabled = Config.SolidColorEnabled Config.SolidColorEnabled , )
(, .(, , ), (col) Config.SolidColor = col , )
(, , () Config.IsForceField = Config.IsForceField Config.IsForceField , )
(, .(, , ), (col) Config.EffectColor = col , )
(, , , , (v) Config.Transparency = v , , )
(, )
HideFrame = .()
HideFrame.Size = .(,,,)
HideFrame.BackgroundTransparency=
HideFrame.LayoutOrder =
HideFrame.Parent=SettingsFrame
HGrid = .() HGrid.Parent=HideFrame HGrid.CellSize=.(,,,) HGrid.CellPadding=.(,,,)
(txt, fn)
b=.() b.Text=txt b.BackgroundColor3=.(,,) b.TextColor3=.(,,) b.TextSize= b.Parent=HideFrame
.(,b).CornerRadius=.(,)
b.MouseButton1Click:(() s=() b.BackgroundColor3=s .(,,) .(,,) )
(, () Config.Hidden.Head = Config.Hidden.Head Config.Hidden.Head )
(, () Config.Hidden.Torso = Config.Hidden.Torso Config.Hidden.Torso )
(, () Config.Hidden.Arms = Config.Hidden.Arms Config.Hidden.Arms )
(, () Config.Hidden.Legs = Config.Hidden.Legs Config.Hidden.Legs )
(, () Config.Hidden.Acc = Config.Hidden.Acc Config.Hidden.Acc )
(, )
(, , () Config.AutoRotate = Config.AutoRotate Config.AutoRotate , )
(, , , , (v) Config.RotSpeed = v , , )
(, -, , -, (v) Config.CamHeight = v , , )
CloneCharacter =
RealCharacter =
CurrentRotX, CurrentRotY = ,
ZoomDistance =
()
WorldModel:()
RealCharacter = Player.Character Player.CharacterAdded:()
RealCharacter:()
.()
RealCharacter:()
RealCharacter.Archivable =
CloneCharacter = RealCharacter:()
_, part (CloneCharacter:())
part:()
part.Anchored =
part.CanCollide =
part:() part:() part:() part:()
CloneCharacter:(.(,,))
Light = .()
Light.Brightness = Light.Range =
CloneCharacter:() Light.Parent = CloneCharacter.HumanoidRootPart
CloneCharacter.Parent = WorldModel
.() ()
Player.CharacterAdded:((newChar)
RealCharacter = newChar
.()
()
)
isInteracting =
RunService.RenderStepped:(()
CloneCharacter CloneCharacter.Parent RealCharacter RealCharacter.Parent
RealRoot = RealCharacter:()
CloneRoot = CloneCharacter:()
RealRoot CloneRoot
CloneRoot.CFrame = .(, , )
activePaint = Config.SolidColorEnabled
activeEffect = Config.IsForceField
_, realPart (RealCharacter:())
realPart:() anYou can view, move, and edit your 3D character. This project is open source. I hope someone will develop this script further. I've laid the foundation; someone needs to improve this project.

Universal