
Key Required

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)
aint this just mine but with less feature?
@tuantuplayer real
gang is this script useable?
It trust me, also I'm pretty much first on this gen to upload lmao. I have other script like deal remote damage or some * but well, glad someone made a better one