local Players = game:GetService("Players") local ReplicatedStorage = game:GetService("ReplicatedStorage") local player = Players.LocalPlayer -- Remote local workRemote = ReplicatedStorage:WaitForChild("Assets"):WaitForChild("RemoteEvents"):WaitForChild("WorkEvent") -- GUI Setup local screenGui = Instance.new("ScreenGui") screenGui.Name = "WorkGui" screenGui.ResetOnSpawn = false screenGui.Parent = player:WaitForChild("PlayerGui") -- Toggle Button (black text) local toggleBtn = Instance.new("TextButton") toggleBtn.Size = UDim2.new(0, 60, 0, 30) toggleBtn.Position = UDim2.new(0, 10, 0, 10) toggleBtn.Text = "Toggle" toggleBtn.BackgroundColor3 = Color3.fromRGB(200, 200, 200) toggleBtn.TextColor3 = Color3.fromRGB(0, 0, 0) toggleBtn.Parent = screenGui toggleBtn.Active = true toggleBtn.Draggable = true -- Main Frame (draggable) local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0, 300, 0, 180) mainFrame.Position = UDim2.new(0.5, -150, 0.5, -90) mainFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 40) mainFrame.BackgroundTransparency = 0.3 mainFrame.Active = true mainFrame.Draggable = true mainFrame.Parent = screenGui -- Label for Abnormality Name local abnoLabel = Instance.new("TextLabel") abnoLabel.Size = UDim2.new(0, 280, 0, 20) abnoLabel.Position = UDim2.new(0, 10, 0, 10) abnoLabel.Text = "Abnormality Name" abnoLabel.TextColor3 = Color3.new(1,1,1) abnoLabel.BackgroundTransparency = 1 abnoLabel.Parent = mainFrame -- TextBox for Abnormality Name local abnoBox = Instance.new("TextBox") abnoBox.Size = UDim2.new(0, 280, 0, 25) abnoBox.Position = UDim2.new(0, 10, 0, 35) abnoBox.PlaceholderText = "Type abnormality name..." abnoBox.Parent = mainFrame -- Dropdown Frame for Abnormality autocomplete local abnoDropdown = Instance.new("ScrollingFrame") abnoDropdown.Size = UDim2.new(0, 280, 0, 100) abnoDropdown.Position = UDim2.new(0, 10, 0, 60) abnoDropdown.BackgroundColor3 = Color3.fromRGB(60, 60, 60) abnoDropdown.CanvasSize = UDim2.new(0, 0, 0, 0) abnoDropdown.ScrollBarThickness = 6 abnoDropdown.Visible = false abnoDropdown.Parent = mainFrame -- Label for Work Type local workLabel = Instance.new("TextLabel") workLabel.Size = UDim2.new(0, 280, 0, 20) workLabel.Position = UDim2.new(0, 10, 0, 165) workLabel.Text = "Work Type" workLabel.TextColor3 = Color3.new(1,1,1) workLabel.BackgroundTransparency = 1 workLabel.Parent = mainFrame -- TextBox for Work Type local workBox = Instance.new("TextBox") workBox.Size = UDim2.new(0, 280, 0, 25) workBox.Position = UDim2.new(0, 10, 0, 190) workBox.PlaceholderText = "Instinct, Insight, Attachment, Repression" workBox.Parent = mainFrame -- Dropdown Frame for Work Type autocomplete local workDropdown = Instance.new("ScrollingFrame") workDropdown.Size = UDim2.new(0, 280, 0, 100) workDropdown.Position = UDim2.new(0, 10, 0, 215) workDropdown.BackgroundColor3 = Color3.fromRGB(60, 60, 60) workDropdown.CanvasSize = UDim2.new(0, 0, 0, 0) workDropdown.ScrollBarThickness = 6 workDropdown.Visible = false workDropdown.Parent = mainFrame -- Work Button local workBtn = Instance.new("TextButton") workBtn.Size = UDim2.new(0, 280, 0, 35) workBtn.Position = UDim2.new(0, 10, 0, 325) workBtn.Text = "Work" workBtn.BackgroundColor3 = Color3.fromRGB(70, 130, 180) workBtn.TextColor3 = Color3.new(1,1,1) workBtn.Parent = mainFrame -- Color map for work types text color in textbox local workColors = { Instinct = Color3.fromRGB(255, 0, 0), -- Red Insight = Color3.fromRGB(240, 240, 180), -- Near white-yellow Attachment = Color3.fromRGB(180, 150, 255), -- Light Purple Repression = Color3.fromRGB(0, 255, 255) -- Cyan } -- Helper function: Make dropdown items local function makeDropdown(dropdown, list, box) dropdown:ClearAllChildren() local y = 0 for _, item in ipairs(list) do if item:lower():find(box.Text:lower()) then local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, 0, 0, 20) btn.Position = UDim2.new(0, 0, 0, y) btn.BackgroundColor3 = Color3.fromRGB(80, 80, 80) btn.TextColor3 = Color3.new(1, 1, 1) btn.Text = item btn.Parent = dropdown btn.MouseButton1Click:Connect(function() box.Text = item dropdown.Visible = false if dropdown == workDropdown then box.TextColor3 = workColors[item] or Color3.new(1,1,1) end end) y = y + 20 end end dropdown.CanvasSize = UDim2.new(0, 0, 0, y) dropdown.Visible = (y > 0) end -- Update Abnormality dropdown on text change abnoBox:GetPropertyChangedSignal("Text"):Connect(function() local abnos = {} for _, abno in ipairs(workspace:WaitForChild("Abnormalities"):GetChildren()) do table.insert(abnos, abno.Name) end makeDropdown(abnoDropdown, abnos, abnoBox) end) -- Update Work Type dropdown on text change workBox:GetPropertyChangedSignal("Text"):Connect(function() local workTypes = {"Instinct", "Insight", "Attachment", "Repression"} makeDropdown(workDropdown, workTypes, workBox) workBox.TextColor3 = workColors[workBox.Text] or Color3.new(1,1,1) end) -- Work button click workBtn.MouseButton1Click:Connect(function() local abnoName = abnoBox.Text local workType = workBox.Text -- Validate inputs if workspace.Abnormalities:FindFirstChild(abnoName) == nil then warn("Abnormality not found: "..abnoName) return end if not workColors[workType] then warn("Invalid work type: "..workType) return end local args = { workspace.Abnormalities:WaitForChild(abnoName):WaitForChild("WorkTablet"), workType } workRemote:FireServer(unpack(args)) end) -- Toggle button logic local function setVisibility(visible) mainFrame.Visible = visible abnoDropdown.Visible = false workDropdown.Visible = false end toggleBtn.MouseButton1Click:Connect(function() setVisibility(not mainFrame.Visible) end) -- Initialise with mainFrame visible setVisibility(true)