Phantom Forces Script | SKIN EDITING

Created by Throit#0699

Features:

  • SKIN EDITING
  •  
  • DEV NOTES:
  • I made something to add images to a part (the skin editor shows the index of parts so you use that to find which one) and make them move a little when you shoot. Everything is open source so edit as you want.
  • You can load/save/delete configs, and I almost added rainbow mode (that’s why there’s a bit of whitespace on the colouring section) but I didn’t wanna. 
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)
  • EGG MAG v
local client = game.Players.LocalPlayer
local camera = workspace.CurrentCamera

local actGun = nil
local partIndex = 9
local imageLink = "http://www.roblox.com/asset/?id=936112184"
local imageSize = UDim2.new(0,150,0,150)
local imagePosition = UDim2.new(0,500,0,50)
local onTop = false

local currentImages = {}
camera.ChildAdded:connect(function(x)
   if x:FindFirstChild("Trigger") then
       actGun=x
       local partToImg = actGun:GetChildren()[partIndex]
       local surface = Instance.new("SurfaceGui")
       surface.Parent = partToImg
       surface.Adornee = partToImg
       surface.Face = Enum.NormalId.Front
       surface.AlwaysOnTop = onTop
       for i=1,4 do
           local label = Instance.new("ImageLabel")
           label.Image = imageLink
           label.Size = imageSize
           label.Parent = surface
           label.Position = imagePosition + UDim2.new(0,-50*i,0,50*i)
           label.BackgroundTransparency = 1
           table.insert(currentImages,label)
       end
   end
end)

local function flash()
   for i,v in ipairs(currentImages) do
       v.Position = v.Position + UDim2.new(0,25,0,-25)
       if v.AbsolutePosition.Y < -25 then
           v.Position = imagePosition + UDim2.new(0,-50*4,0,50*4)
       end
   end
end
local gmt = getrawmetatable(game)
setreadonly(gmt, false)
local oldNamecall = gmt.__namecall
gmt.__namecall = newcclosure(function(self, ...)
   local Args = {...}
   local method = getnamecallmethod()
   if tostring(method) == "FireServer" and Args[1] == "newbullets" then
       flash()
       return self.FireServer(self, unpack(Args))
   end
   return oldNamecall(self, ...)
end)

ENJOY!

Warning: DO NOT DOWNLOAD anything from this page, you’re only here to copy the script!

More Scripts!

TOP 10 TRENDING SCRIPTS