
Keyless

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)No comments yet for this script.



