Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 11

repeat wait() until workspace:FindFirstChild("MenuLobby")

if not isfolder("PFSkins") then makefolder("PFSkins") end


local statText = Drawing.new("Text")
statText.Visible = false
statText.Font = 1
statText.Color = Color3.fromRGB(255,255,255)
statText.Center = true
statText.Size = 20
function say(x,y)
local y = y or 1
statText.Visible = true
statText.Text = x
delay(y,function()statText.Visible = false end)
end
local function zigzag(X) return math.acos(math.cos(X*math.pi))/math.pi end
if game.CoreGui:FindFirstChild("PFSkinEditor") then
game.CoreGui.PFSkinEditor:Destroy() end
local PFSkinEditor = Instance.new("ScreenGui")
local MainFrame = Instance.new("Frame")
local MainCorner = Instance.new("UICorner")
local MainTitle = Instance.new("TextLabel")
local PartContainer = Instance.new("ScrollingFrame")
local PartListLayout = Instance.new("UIListLayout")
local ExamplePart = Instance.new("TextButton")
local PartCorner = Instance.new("UICorner")
local CPButton = Instance.new("TextButton")
local CPBtnCorner = Instance.new("UICorner")
local ColorPicker = Instance.new("Frame")
local ColorSelection = Instance.new("ImageButton")
local ColorPoint = Instance.new("TextButton")
local ColorCorner = Instance.new("UICorner")
local BrightnessSelection = Instance.new("TextButton")
local BrightGradient = Instance.new("UIGradient")
local BrightPoint = Instance.new("TextButton")
local HexBox = Instance.new("TextBox")
local CopyHexButton = Instance.new("ImageButton")
local MaterialPicker = Instance.new("Frame")
local MaterialSearch = Instance.new("ImageButton")
local MaterialBox = Instance.new("TextBox")
local MaterialContainer = Instance.new("ScrollingFrame")
local MaterialListLayout = Instance.new("UIListLayout")
local ExampleMaterial = Instance.new("TextButton")
local ExampleMatCorner = Instance.new("UICorner")
local MaterialPickerCorner = Instance.new("UICorner")
local CurrentMaterialLabel = Instance.new("TextLabel")
local PartViewer = Instance.new("Frame")
local ViewerCorner = Instance.new("UICorner")
local MainViewer = Instance.new("ViewportFrame")
local ConfigBox = Instance.new("TextBox")
local SaveButton = Instance.new("TextButton")
local ConfigDownload = Instance.new("ImageButton")
local LoadButton = Instance.new("TextButton")
local ConfigLoad = Instance.new("ImageButton")
local DeleteButton = Instance.new("TextButton")
local ConfigDelete = Instance.new("ImageButton")
local VersionLabel = Instance.new("TextLabel")
PFSkinEditor.Name = "PFSkinEditor"
PFSkinEditor.Parent = game.CoreGui
PFSkinEditor.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
MainFrame.Name = "MainFrame"
MainFrame.Parent = PFSkinEditor
MainFrame.BackgroundColor3 = Color3.fromRGB(207, 140, 255)
MainFrame.Active = true
MainFrame.Draggable = true
MainFrame.Position = UDim2.new(0.6, 0, 0.3, 0)
MainFrame.Size = UDim2.new(0, 271, 0, 501)
MainCorner.Name = "MainCorner"
MainCorner.Parent = MainFrame
MainTitle.Name = "MainTitle"
MainTitle.Parent = MainFrame
MainTitle.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
MainTitle.BackgroundTransparency = 1.000
MainTitle.Size = UDim2.new(0, 271, 0, 30)
MainTitle.Font = Enum.Font.Gotham
currentGun = workspace.MenuLobby.GunStage.GunModel:GetChildren()[1]
MainTitle.Text = "Skin Editor : "..currentGun.Name
MainTitle.TextColor3 = Color3.fromRGB(0, 0, 0)
MainTitle.TextSize = 16.000
PartContainer.Name = "PartContainer"
PartContainer.Parent = MainFrame
PartContainer.Active = true
PartContainer.BackgroundColor3 = Color3.fromRGB(255, 149, 151)
PartContainer.BackgroundTransparency = 1.000
PartContainer.BorderSizePixel = 0
PartContainer.Position = UDim2.new(0.0332103334, 0, 0.059880238, 0)
PartContainer.Size = UDim2.new(0, 253, 0, 420)
PartListLayout.Name = "PartListLayout"
PartListLayout.Parent = PartContainer
PartListLayout.SortOrder = Enum.SortOrder.LayoutOrder
PartListLayout.Padding = UDim.new(0, 5)
ExamplePart.Name = "ExamplePart"
ExamplePart.Parent = PartContainer
ExamplePart.BackgroundColor3 = Color3.fromRGB(158, 61, 207)
ExamplePart.BorderSizePixel = 0
ExamplePart.Size = UDim2.new(0, 233, 0, 27)
ExamplePart.AutoButtonColor = false
ExamplePart.Font = Enum.Font.Gotham
ExamplePart.Text = " Part Name"
ExamplePart.TextColor3 = Color3.fromRGB(0, 0, 0)
ExamplePart.TextSize = 18.000
ExamplePart.TextXAlignment = Enum.TextXAlignment.Left
ExamplePart.Visible = false
PartCorner.Name = "PartCorner"
PartCorner.Parent = ExamplePart
CPButton.Name = "CPButton"
CPButton.Parent = ExamplePart
CPButton.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
CPButton.BorderSizePixel = 0
CPButton.Position = UDim2.new(0.858369112, 0, 0.111111104, 0)
CPButton.Size = UDim2.new(0, 20, 0, 20)
CPButton.AutoButtonColor = false
CPButton.Font = Enum.Font.SourceSans
CPButton.Text = ""
CPButton.TextColor3 = Color3.fromRGB(0, 0, 0)
CPButton.TextSize = 14.000
CPBtnCorner.Name = "CPBtnCorner"
CPBtnCorner.Parent = CPButton
ColorPicker.Name = "ColorPicker"
ColorPicker.Parent = MainFrame
ColorPicker.BackgroundColor3 = Color3.fromRGB(207, 140, 255)
ColorPicker.BorderSizePixel = 0
ColorPicker.Position = UDim2.new(1.04911077, 0, 0.101796411, 0)
ColorPicker.Size = UDim2.new(0, 170, 0, 195)
ColorPicker.Visible = false
ColorSelection.Name = "ColorSelection"
ColorSelection.Parent = ColorPicker
ColorSelection.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
ColorSelection.BorderColor3 = Color3.fromRGB(0, 0, 0)
ColorSelection.BorderSizePixel = 2
ColorSelection.Position = UDim2.new(0.0520231202, 0, 0.0416666679, 0)
ColorSelection.Size = UDim2.new(0, 119, 0, 119)
ColorSelection.Image = "http://www.roblox.com/asset/?id=328298876"
ColorPoint.Name = "ColorPoint"
ColorPoint.Parent = ColorSelection
ColorPoint.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
ColorPoint.BorderColor3 = Color3.fromRGB(0, 0, 0)
ColorPoint.Position = UDim2.new(0, 0, 1, -5)
ColorPoint.Size = UDim2.new(0, 5, 0, 5)
ColorPoint.AutoButtonColor = false
ColorPoint.Font = Enum.Font.SourceSans
ColorPoint.Text = ""
ColorPoint.TextColor3 = Color3.fromRGB(0, 0, 0)
ColorPoint.TextSize = 14.000
ColorCorner.Name = "ColorCorner"
ColorCorner.Parent = ColorPicker
BrightnessSelection.Name = "BrightnessSelection"
BrightnessSelection.Parent = ColorPicker
BrightnessSelection.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
BrightnessSelection.BorderColor3 = Color3.fromRGB(0, 0, 0)
BrightnessSelection.BorderSizePixel = 2
BrightnessSelection.Position = UDim2.new(0.830133796, 0, 0.0416666679, 0)
BrightnessSelection.Size = UDim2.new(0, 17, 0, 118)
BrightnessSelection.AutoButtonColor = false
BrightnessSelection.Font = Enum.Font.SourceSans
BrightnessSelection.Text = ""
BrightnessSelection.TextColor3 = Color3.fromRGB(0, 0, 0)
BrightnessSelection.TextSize = 14.000
BrightGradient.Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00,
Color3.fromRGB(255, 255, 255)), ColorSequenceKeypoint.new(1.00, Color3.fromRGB(0,
0, 0))}
BrightGradient.Rotation = 90
BrightGradient.Name = "BrightGradient"
BrightGradient.Parent = BrightnessSelection
BrightPoint.Name = "BrightPoint"
BrightPoint.Parent = BrightnessSelection
BrightPoint.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
BrightPoint.BorderColor3 = Color3.fromRGB(0, 0, 0)
BrightPoint.Position = UDim2.new(0.5, -3, 0, 0)
BrightPoint.Size = UDim2.new(0, 5, 0, 5)
BrightPoint.AutoButtonColor = false
BrightPoint.Font = Enum.Font.SourceSans
BrightPoint.Text = ""
BrightPoint.TextColor3 = Color3.fromRGB(0, 0, 0)
BrightPoint.TextSize = 14.000
HexBox.Name = "HexBox"
HexBox.Parent = ColorPicker
HexBox.BackgroundColor3 = Color3.fromRGB(158, 61, 207)
HexBox.BorderColor3 = Color3.fromRGB(0, 0, 0)
HexBox.Position = UDim2.new(0.0470588282, 0, 0.697435915, 0)
HexBox.Size = UDim2.new(0, 102, 0, 19)
HexBox.ClearTextOnFocus = false
HexBox.Font = Enum.Font.Gotham
HexBox.Text = "#ffffff"
HexBox.TextColor3 = Color3.fromRGB(0, 0, 0)
HexBox.TextSize = 14.000
HexBox.TextWrapped = true
HexBox.TextXAlignment = Enum.TextXAlignment.Left
CopyHexButton.Name = "CopyHexButton"
CopyHexButton.Parent = HexBox
CopyHexButton.BackgroundTransparency = 1.000
CopyHexButton.LayoutOrder = 4
CopyHexButton.Position = UDim2.new(1.16666663, 0, -0.157894731, 0)
CopyHexButton.Size = UDim2.new(0, 25, 0, 25)
CopyHexButton.ZIndex = 2
CopyHexButton.Image = "rbxassetid://3926307971"
CopyHexButton.ImageColor3 = Color3.fromRGB(76, 10, 103)
CopyHexButton.ImageRectOffset = Vector2.new(684, 404)
CopyHexButton.ImageRectSize = Vector2.new(36, 36)

MaterialPicker.Name = "MaterialPicker"
MaterialPicker.Parent = MainFrame
MaterialPicker.BackgroundColor3 = Color3.fromRGB(207, 140, 255)
MaterialPicker.BorderSizePixel = 0
MaterialPicker.Position = UDim2.new(1.04911077, 0, 0.506986022, 0)
MaterialPicker.Size = UDim2.new(0, 170, 0, 195)
MaterialPicker.Visible = false
MaterialSearch.Name = "MaterialSearch"
MaterialSearch.Parent = MaterialPicker
MaterialSearch.BackgroundTransparency = 1.000
MaterialSearch.LayoutOrder = 1
MaterialSearch.Position = UDim2.new(0, 5, 0, 5)
MaterialSearch.Size = UDim2.new(0, 25, 0, 25)
MaterialSearch.ZIndex = 2
MaterialSearch.Image = "rbxassetid://3926305904"
MaterialSearch.ImageColor3 = Color3.fromRGB(158, 61, 207)
MaterialSearch.ImageRectOffset = Vector2.new(964, 324)
MaterialSearch.ImageRectSize = Vector2.new(36, 36)
MaterialBox.Name = "MaterialBox"
MaterialBox.Parent = MaterialSearch
MaterialBox.BackgroundColor3 = Color3.fromRGB(158, 61, 207)
MaterialBox.BorderColor3 = Color3.fromRGB(0, 0, 0)
MaterialBox.Position = UDim2.new(1.23218131, 0, 0.170428157, 0)
MaterialBox.Size = UDim2.new(0, 122, 0, 15)
MaterialBox.ClearTextOnFocus = false
MaterialBox.Font = Enum.Font.Gotham
MaterialBox.Text = ""
MaterialBox.TextColor3 = Color3.fromRGB(0, 0, 0)
MaterialBox.TextSize = 14.000
MaterialBox.TextWrapped = true
MaterialBox.TextXAlignment = Enum.TextXAlignment.Left
MaterialContainer.Name = "MaterialContainer"
MaterialContainer.Parent = MaterialPicker
MaterialContainer.Active = true
MaterialContainer.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
MaterialContainer.BackgroundTransparency = 1.000
MaterialContainer.BorderSizePixel = 0
MaterialContainer.Position = UDim2.new(0.0764705911, 0, 0.205128208, 0)
MaterialContainer.Size = UDim2.new(0, 144, 0, 114)
MaterialListLayout.Name = "MaterialListLayout"
MaterialListLayout.Parent = MaterialContainer
MaterialListLayout.SortOrder = Enum.SortOrder.LayoutOrder
MaterialListLayout.Padding = UDim.new(0, 5)
ExampleMaterial.Name = "ExampleMaterial"
ExampleMaterial.Parent = MaterialContainer
ExampleMaterial.BackgroundColor3 = Color3.fromRGB(158, 61, 207)
ExampleMaterial.BorderSizePixel = 0
ExampleMaterial.Size = UDim2.new(0, 128, 0, 20)
ExampleMaterial.AutoButtonColor = false
ExampleMaterial.Font = Enum.Font.Gotham
ExampleMaterial.Text = ""
ExampleMaterial.TextColor3 = Color3.fromRGB(0, 0, 0)
ExampleMaterial.TextSize = 14.000
ExampleMaterial.Visible = false
ExampleMatCorner.Name = "ExampleMatCorner"
ExampleMatCorner.Parent = ExampleMaterial
MaterialPickerCorner.Name = "MaterialPickerCorner"
MaterialPickerCorner.Parent = MaterialPicker
CurrentMaterialLabel.Name = "CurrentMaterialLabel"
CurrentMaterialLabel.Parent = MaterialPicker
CurrentMaterialLabel.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
CurrentMaterialLabel.BackgroundTransparency = 1.000
CurrentMaterialLabel.Position = UDim2.new(0, 0, 0.835897446, 0)
CurrentMaterialLabel.Size = UDim2.new(0, 170, 0, 23)
CurrentMaterialLabel.Font = Enum.Font.Gotham
CurrentMaterialLabel.Text = "Current : "
CurrentMaterialLabel.TextColor3 = Color3.fromRGB(0, 0, 0)
CurrentMaterialLabel.TextSize = 14.000
PartViewer.Name = "PartViewer"
PartViewer.Parent = MainFrame
PartViewer.BackgroundColor3 = Color3.fromRGB(207, 140, 255)
PartViewer.BorderSizePixel = 0
PartViewer.Position = UDim2.new(1.7502178, 0, 0.305389225, 0)
PartViewer.Size = UDim2.new(0, 170, 0, 195)
PartViewer.Visible = false
ViewerCorner.Name = "ViewerCorner"
ViewerCorner.Parent = PartViewer
MainViewer.BackgroundTransparency = 1.000
MainViewer.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
MainViewer.Name = "MainViewer"
MainViewer.Parent = PartViewer
MainViewer.Position = UDim2.new(0.052941177, 0, 0.102564104, 0)
MainViewer.Size = UDim2.new(0,151,0,151)
ConfigBox.Name = "ConfigBox"
ConfigBox.Parent = MainFrame
ConfigBox.BackgroundColor3 = Color3.fromRGB(158, 61, 207)
ConfigBox.BorderColor3 = Color3.fromRGB(0, 0, 0)
ConfigBox.Position = UDim2.new(0.032181263, 0, 0.916456103, 0)
ConfigBox.Size = UDim2.new(0, 122, 0, 15)
ConfigBox.ClearTextOnFocus = false
ConfigBox.Font = Enum.Font.Gotham
ConfigBox.Text = ""
ConfigBox.TextColor3 = Color3.fromRGB(0, 0, 0)
ConfigBox.TextSize = 14.000
ConfigBox.TextWrapped = true
ConfigBox.TextXAlignment = Enum.TextXAlignment.Left
SaveButton.Name = "SaveButton"
SaveButton.Parent = ConfigBox
SaveButton.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
SaveButton.BackgroundTransparency = 1.000
SaveButton.Position = UDim2.new(0.991803765, 0, 7.30156898e-07, 0)
SaveButton.Size = UDim2.new(0, 66, 0, 17)
SaveButton.AutoButtonColor = false
SaveButton.Font = Enum.Font.Gotham
SaveButton.Text = "Save"
SaveButton.TextColor3 = Color3.fromRGB(0, 0, 0)
SaveButton.TextSize = 20.000
ConfigDownload.Name = "ConfigDownload"
ConfigDownload.Parent = SaveButton
ConfigDownload.BackgroundTransparency = 1.000
ConfigDownload.LayoutOrder = 5
ConfigDownload.Position = UDim2.new(0.807501316, 0, -0.235294119, 0)
ConfigDownload.Size = UDim2.new(0, 25, 0, 25)
ConfigDownload.ZIndex = 2
ConfigDownload.Image = "rbxassetid://3926305904"
ConfigDownload.ImageColor3 = Color3.fromRGB(76, 10, 103)
ConfigDownload.ImageRectOffset = Vector2.new(844, 444)
ConfigDownload.ImageRectSize = Vector2.new(36, 36)
LoadButton.Name = "SaveButton"
LoadButton.Parent = ConfigBox
LoadButton.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
LoadButton.BackgroundTransparency = 1.000
LoadButton.Position = UDim2.new(0.991803765, 0, 1.40000057, 0)
LoadButton.Size = UDim2.new(0, 66, 0, 17)
LoadButton.AutoButtonColor = false
LoadButton.Font = Enum.Font.Gotham
LoadButton.Text = "Load"
LoadButton.TextColor3 = Color3.fromRGB(0, 0, 0)
LoadButton.TextSize = 20.000
ConfigLoad.Name = "ConfigLoad"
ConfigLoad.Parent = LoadButton
ConfigLoad.BackgroundTransparency = 1.000
ConfigLoad.LayoutOrder = 5
ConfigLoad.Position = UDim2.new(0.808000028, 0, -0.234999999, 0)
ConfigLoad.Size = UDim2.new(0, 25, 0, 25)
ConfigLoad.ZIndex = 2
ConfigLoad.Image = "rbxassetid://3926305904"
ConfigLoad.ImageColor3 = Color3.fromRGB(76, 10, 103)
ConfigLoad.ImageRectOffset = Vector2.new(404, 444)
ConfigLoad.ImageRectSize = Vector2.new(36, 36)
DeleteButton.Name = "DeleteButton"
DeleteButton.Parent = ConfigBox
DeleteButton.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
DeleteButton.BackgroundTransparency = 1.000
DeleteButton.Position = UDim2.new(1.60655785, 0, -0.13333261, 0)
DeleteButton.Size = UDim2.new(0, 66, 0, 17)
DeleteButton.AutoButtonColor = false
DeleteButton.Font = Enum.Font.Gotham
DeleteButton.Text = "Delete"
DeleteButton.TextColor3 = Color3.fromRGB(0, 0, 0)
DeleteButton.TextSize = 20.000
ConfigDelete.Name = "ConfigDelete"
ConfigDelete.Parent = DeleteButton
ConfigDelete.BackgroundTransparency = 1.000
ConfigDelete.LayoutOrder = 4
ConfigDelete.Position = UDim2.new(0.303030312, 0, 1.11764705, 0)
ConfigDelete.Size = UDim2.new(0, 25, 0, 25)
ConfigDelete.ZIndex = 2
ConfigDelete.Image = "rbxassetid://3926305904"
ConfigDelete.ImageColor3 = Color3.fromRGB(255, 0, 0)
ConfigDelete.ImageRectOffset = Vector2.new(924, 724)
ConfigDelete.ImageRectSize = Vector2.new(36, 36)
VersionLabel.Name = "VersionLabel"
VersionLabel.Parent = MainFrame
VersionLabel.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
VersionLabel.BackgroundTransparency = 1.000
VersionLabel.Position = UDim2.new(0, 0, 0.958083808, 0)
VersionLabel.Size = UDim2.new(0, 69, 0, 17)
VersionLabel.Font = Enum.Font.Kalam
VersionLabel.Text = "v~1.0"
VersionLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
VersionLabel.TextSize = 30.000
--
local client = game.Players.LocalPlayer
local mouse = client:GetMouse()
local camera = workspace.CurrentCamera
local rs = game:GetService("RunService")
local uis = game:GetService("UserInputService")
local ts = game:GetService("TweenService")

local currentPart = nil


local draggingColors = false
local draggingValue = false
local currentColor = nil
local currentUi = nil
local fakePart = nil
local lastHex = ""
local gunList = {}
local colorCounter = 0
local rH,rS,rV

local viewportCamera = Instance.new("Camera")


MainViewer.CurrentCamera = viewportCamera
viewportCamera.Parent = MainViewer

for i,v in pairs(Enum.Material:GetEnumItems()) do


local newMat = ExampleMaterial:Clone()
newMat.Parent = MaterialContainer
newMat.Text = v.Name
newMat.Visible = true
newMat.MouseButton1Click:connect(function()
currentPart.Material = v
CurrentMaterialLabel.Text = "Current : "..currentPart.Material.Name
end)
end
MaterialContainer.CanvasSize =
UDim2.new(0,0,0,MaterialListLayout.AbsoluteContentSize.Y)
local function to_hex(color)
return string.format("#%02X%02X%02X", color.R * 0xFF,color.G * 0xFF, color.B *
0xFF)
end
local function popParts()
currentGun = workspace.MenuLobby.GunStage.GunModel:GetChildren()[1]
local newGun = true
if gunList[currentGun.Name] then newGun = false else gunList[currentGun.Name] =
{} end
for i,v in ipairs(PartContainer:GetChildren()) do
if v ~= PartListLayout and v ~= ExamplePart then
v:Destroy()
end
end
local e = currentGun:GetChildren()
table.remove(e,1)
for i,part in ipairs(e) do
if part.ClassName == "MeshPart" or part.ClassName == "Part" or
part.ClassName == "UnionOperation" then
if fakePart then fakePart:Destroy() end
if newGun then
local listPart = {Color=nil,Material=nil}
listPart.Color = part.Color
listPart.Material = part.Material
gunList[currentGun.Name][i] = listPart
end
part.Color = gunList[currentGun.Name][i].Color
part.Material = gunList[currentGun.Name][i].Material
local old
old = hookmetamethod(game, "__newindex", function(self, index,value)
if checkcaller() and self == part and index == "Color" then
gunList[currentGun.Name][i].Color = value
return old(self, index,value)
elseif checkcaller() and self == part and index == "Material" then
gunList[currentGun.Name][i].Material = value
return old(self, index,value)
end
return old(self, index,value)
end)

fakePart = part:Clone()
fakePart.Parent = MainViewer
fakePart.Position = Vector3.new(0, 0, 0)
viewportCamera.CFrame = CFrame.new(Vector3.new(3, 0, 0),
fakePart.Position)
local h,s,v = part.Color:ToHSV()
local newPart = ExamplePart:Clone()
wait()
newPart.Parent = ExamplePart.Parent
newPart.Text = " "..part.Name.." | "..tostring(i)
newPart.Visible = true
repeat wait() until newPart:FindFirstChild("CPButton")
newPart.CPButton.BackgroundColor3 = Color3.fromHSV(h,s,v)
newPart.MouseButton1Click:connect(function()
if fakePart then fakePart:Destroy() end
fakePart = part:Clone()
fakePart.Parent = MainViewer
fakePart.Position = Vector3.new(0, 0, 0)
currentColor = part.Color
currentPart = part
local h,s,v = part.Color:ToHSV()
ColorPicker.Visible = true
PartViewer.Visible = true
MaterialPicker.Visible = true
ColorPoint.Position = UDim2.new(1-h,-5,1-s,0)
BrightPoint.Position = UDim2.new(0.5,-3,1-v,0)
ColorPoint.BackgroundColor3 = Color3.fromHSV(h,s,v)
BrightPoint.BackgroundColor3 = Color3.fromHSV(0,0,v)
local color = Color3.fromHSV(h,s,v)
HexBox.Text = to_hex(Color3.fromRGB(r,g,b))
currentUi = newPart
CurrentMaterialLabel.Text = "Current : "..part.Material.Name
end)
end
end
PartContainer.CanvasSize = UDim2.new(0,0,0,PartListLayout.AbsoluteContentSize.Y)
end
ColorSelection.MouseButton1Down:connect(function()draggingColors=true end)
ColorPoint.MouseButton1Down:connect(function()draggingColors=true end)
BrightnessSelection.MouseButton1Down:connect(function()draggingValue=true end)
BrightPoint.MouseButton1Down:connect(function()draggingValue=true end)
uis.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
draggingColors = false
draggingValue = false
end
end)

rs.RenderStepped:connect(function()
rH,rS,rV = (Color3.fromHSV(zigzag(colorCounter),1,1)):ToHSV()
colorCounter = colorCounter + 0.01
if statText.Visible then
local mousePos = camera:WorldToViewportPoint(mouse.Hit.p)
statText.Position = Vector2.new(mousePos.X,mousePos.Y+20)
end
if draggingColors and PFSkinEditor:IsDescendantOf(game.CoreGui) then
local relX = math.clamp(mouse.X -
ColorSelection.AbsolutePosition.X,0,ColorSelection.AbsoluteSize.X)
local relY = math.clamp(mouse.Y -
ColorSelection.AbsolutePosition.Y,0,ColorSelection.AbsoluteSize.Y)
local newH = relX/ColorSelection.AbsoluteSize.X
local newS = relY/ColorSelection.AbsoluteSize.Y
local _,_,newV = currentColor:ToHSV()
ColorPoint.Position = UDim2.new(newH,-2.5,newS,-2.5)
local color = Color3.fromHSV(1-newH,1-newS,newV)
ColorPoint.BackgroundColor3 = color
currentPart.Color = color
repeat wait() until currentUi:FindFirstChild("CPButton")
currentUi.CPButton.BackgroundColor3 = color
if fakePart then fakePart.Color = color end
local r,g,b =
math.floor((color.R*255)+0.5),math.floor((color.G*255)+0.5),math.floor((color.B*255
)+0.5)
HexBox.Text = to_hex(Color3.fromRGB(r,g,b))
currentColor = color
lastHex = HexBox.Text
end
if draggingValue and PFSkinEditor:IsDescendantOf(game.CoreGui) then
local relY = math.clamp(mouse.Y -
BrightnessSelection.AbsolutePosition.Y,0,BrightnessSelection.AbsoluteSize.Y)
BrightPoint.Position = UDim2.new(0.5,-3,0,relY-2.5)
local newH,newS,_ = currentColor:ToHSV()
local newV = 1-(relY/BrightnessSelection.AbsoluteSize.Y)
local color = Color3.fromHSV(newH,newS,newV)
ColorPoint.BackgroundColor3 = color
BrightPoint.BackgroundColor3 = Color3.fromHSV(0,0,newV)
currentColor = color
currentPart.Color = color
repeat wait() until currentUi:FindFirstChild("CPButton")
currentUi.CPButton.BackgroundColor3 = color
if fakePart then fakePart.Color = color end
local r,g,b =
math.floor((color.R*255)+0.5),math.floor((color.G*255)+0.5),math.floor((color.B*255
)+0.5)
HexBox.Text = to_hex(Color3.fromRGB(r,g,b))
lastHex = HexBox.Text
end
end)
HexBox.Focused:Connect(function()lastHex = HexBox.Text end)
HexBox.FocusLost:connect(function()
if not pcall(function()
local hex = HexBox.Text
local r, g, b = string.match(hex, "^#?(%w%w)(%w%w)(%w%w)$")
local h,s,v = Color3.fromRGB(tonumber(r, 16),tonumber(g, 16), tonumber(b,
16)):ToHSV()
local color = Color3.fromHSV(h,s,v)
currentColor = color
currentPart.Color = color
ColorPoint.BackgroundColor3 = color
BrightPoint.BackgroundColor3 = Color3.fromHSV(0,0,v)
currentUi.CPButton.BackgroundColor3 = color
ColorPoint.Position = UDim2.new(1-h,0,1-s,0)
BrightPoint.Position = UDim2.new(0.5,-3,1-v,0)
if fakePart then fakePart.Color = color end
end)
then
HexBox.Text = lastHex
end
end)
popParts()
workspace.ChildRemoved:connect(function(x)if x.Name == "MenuLobby" then
MainFrame.Visible = false end end)
workspace.ChildAdded:connect(function(x)if x.Name == "MenuLobby" then
MainFrame.Visible = true end end)
workspace.MenuLobby.GunStage.GunModel.ChildAdded:connect(function(x)
MainTitle.Text = "Skin Editor : "..x.Name
currentGun = x
wait(.1)
popParts()
end)
MaterialBox:GetPropertyChangedSignal("Text"):connect(function()
local search = MaterialBox.Text
for i,v in ipairs(MaterialContainer:GetChildren()) do
if v ~= MaterialListLayout and v ~= ExampleMaterial then
if v.Text:sub(1,#search):lower() == search:lower() then
v.Visible = true
else
v.Visible = false
end
end
end
MaterialContainer.CanvasSize =
UDim2.new(0,0,0,MaterialListLayout.AbsoluteContentSize.Y)
end)
SaveButton.MouseButton1Click:connect(function()
local stringList = ""
for i,v in pairs(gunList) do
stringList = stringList..',["'..i..'"] = {'
for _,part in pairs(v) do
local h,s,v = part.Color:ToHSV()
stringList =
stringList.."{Color=Color3.fromHSV("..tostring(h)..','..tostring(s)..','..tostring(
v).."),Material=Enum.Material."..part.Material.Name.."},"
end
stringList = stringList:sub(1,#stringList-1)..'},'
end
stringList = "return {"..stringList:sub(2,#stringList-1)..'}'
setclipboard(stringList)
writefile("PFSkins/"..ConfigBox.Text..".lua",stringList)
say("Saved to PFSkins/"..ConfigBox.Text..".lua")
end)
DeleteButton.MouseButton1Click:connect(function()
if isfile("PFSkins/"..ConfigBox.Text..".lua") then
delfile("PFSkins/"..ConfigBox.Text..".lua")
say("Deleted PFSkins/"..ConfigBox.Text..".lua")
else
say("File Error : PFSkins/"..ConfigBox.Text..".lua")
end
end)
CopyHexButton.MouseButton1Click:connect(function()
setclipboard(HexBox.Text)
say("Copied hex to clipboard")
end)
LoadButton.MouseButton1Click:connect(function()
if isfile("PFSkins/"..ConfigBox.Text..".lua") then
gunList = loadstring(readfile("PFSkins/"..ConfigBox.Text..".lua"))()
popParts()
say("Loaded from PFSkins/"..ConfigBox.Text..".lua")
else
say("File Error : PFSkins/"..ConfigBox.Text..".lua")
end
end)

camera.ChildAdded:connect(function(x)
wait()
if not x:FindFirstChild("Trigger") then return end
if gunList[x.Name] then
actGun = x
for i,part in ipairs(x:GetChildren()) do
if part.ClassName == "MeshPart" or part.ClassName == "Part" or
part.ClassName == "UnionOperation" then
if gunList[x.Name][i].Color then
part.Color = gunList[x.Name][i].Color
end
if gunList[x.Name][i].Material then
part.Material = gunList[x.Name][i].Material
end
end
end
end
end)

You might also like