local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local Workspace = game:GetService("Workspace") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") -- 1. Create the ScreenGui Container local screenGui = Instance.new("ScreenGui") screenGui.Name = "FaceChangerGui" screenGui.ResetOnSpawn = false screenGui.Parent = playerGui -- 2. Create the Main Frame local mainFrame = Instance.new("Frame") mainFrame.Name = "MainFrame" mainFrame.Size = UDim2.new(0, 300, 0, 200) mainFrame.Position = UDim2.new(0.5, -150, 0.4, -100) -- Centered on screen mainFrame.BackgroundColor3 = Color3.fromRGB(0, 0, 0) -- Black mainFrame.BorderSizePixel = 3 mainFrame.BorderColor3 = Color3.fromRGB(255, 0, 0) -- White border for contrast mainFrame.Parent = screenGui -- 3. Create the Title TextLabel local titleLabel = Instance.new("TextLabel") titleLabel.Name = "TitleLabel" titleLabel.Size = UDim2.new(1, 0, 0, 40) titleLabel.Position = UDim2.new(0, 0, 0, 0) titleLabel.BackgroundColor3 = Color3.fromRGB(0, 0, 0) titleLabel.BorderSizePixel = 3 titleLabel.BorderColor3 = Color3.fromRGB(255, 0, 0) titleLabel.Text = "Work at a Pizza Place FE Face Changer" titleLabel.TextColor3 = Color3.fromRGB(255, 255, 255) titleLabel.TextSize = 12 titleLabel.Font = Enum.Font.Legacy titleLabel.Parent = mainFrame -- 4. Create the ID TextBox local idTextBox = Instance.new("TextBox") idTextBox.Name = "IDTextBox" idTextBox.Size = UDim2.new(0.8, 0, 0, 40) idTextBox.Position = UDim2.new(0.1, 0, 0.3, 10) idTextBox.BackgroundColor3 = Color3.fromRGB(0, 0, 0) idTextBox.BorderSizePixel = 3 idTextBox.BorderColor3 = Color3.fromRGB(255, 0, 0) idTextBox.PlaceholderText = "Enter Decal ID Here..." idTextBox.Text = "" idTextBox.TextColor3 = Color3.fromRGB(255, 255, 255) idTextBox.PlaceholderColor3 = Color3.fromRGB(150, 150, 150) idTextBox.TextSize = 14 idTextBox.Font = Enum.Font.Legacy idTextBox.ClearTextOnFocus = false idTextBox.Parent = mainFrame -- 5. Create the Submit TextButton local submitButton = Instance.new("TextButton") submitButton.Name = "SubmitButton" submitButton.Size = UDim2.new(0.8, 0, 0, 40) submitButton.Position = UDim2.new(0.1, 0, 0.6, 20) submitButton.BackgroundColor3 = Color3.fromRGB(0, 0, 0) submitButton.BorderSizePixel = 3 submitButton.BorderColor3 = Color3.fromRGB(255, 0, 0) submitButton.Text = "Submit" submitButton.TextColor3 = Color3.fromRGB(255, 255, 255) submitButton.TextSize = 14 submitButton.Font = Enum.Font.Legacy submitButton.Parent = mainFrame -- ========================================== -- SCRIPT LOGIC: DRAGGABLE FRAME SYSTEM -- ========================================== local dragging, dragInput, dragStart, startPos local function update(input) local delta = input.Position - dragStart mainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end mainFrame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = mainFrame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) mainFrame.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then dragInput = input end end) UserInputService.InputChanged:Connect(function(input) if input == dragInput and dragging then update(input) end end) -- ========================================== -- SCRIPT LOGIC: SUBMIT & FIRE REMOTE EVENT -- ========================================== submitButton.MouseButton1Click:Connect(function() local inputId = idTextBox.Text -- Basic validation to ensure the user typed something if inputId == "" or not tonumber(inputId) then submitButton.Text = "Invalid ID!" task.wait(1) submitButton.Text = "Submit Face" return end -- Safely fetch character components local character = player.Character or player.CharacterAdded:Wait() local head = character:WaitForChild("Head", 5) if head then local face = head:WaitForChild("face", 5) if face then -- Format the arguments using the input text box ID local args = { face, "rbxasset://textures/face.png" -- Fallback or custom structure if needed, but dynamically using asset format: } -- Standard format for custom Decal IDs: "rbxassetid://" .. inputId args[2] = "rbxassetid://" .. inputId -- Target RemoteEvent tracking local mainFolder = Workspace:WaitForChild("Main", 5) if mainFolder then local changeFaceEvent = mainFolder:WaitForChild("ChangeFace", 5) if changeFaceEvent and changeFaceEvent:IsA("RemoteEvent") then -- Fire the server with arguments changeFaceEvent:FireServer(unpack(args)) -- Visual success feedback submitButton.Text = "Fired Successfully!" task.wait(1) submitButton.Text = "Submit Face" else warn("ChangeFace RemoteEvent not found in workspace.Main") end else warn("Main folder not found in Workspace") end else warn("Face object not found inside Head") end else warn("Character Head not found") end end)