Abno worker by GPT
Key Required

Abno worker by GPT

Tuantu's lobotomization branchesCakeDontTellTuantuCakeDontTellTuantu 4.3K views 198 executesUpdated Nov 9, 2025
Unrated
00
Lua Script•182 lines (6097 chars)
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)

Features & Information

You can select any available abno within the facility to work with regardless of where you are (you can also work with multiple abonos at once) --also sorry if this was made by ChatGPT, I'm just that lazy to do one but I got an idea though
#Tuantu Lobotomization Branch

Community Comments (4)

aint this just mine but with less feature?

Replying to @projectmoonsuperfan
santaisantaiNov 10, 2025

@tuantuplayer real

TetoTetoDec 14, 2025

gang is this script useable?

CakeDontTellTuantuCakeDontTellTuantuFeb 22, 2026

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

More Scripts for Tuantu's lobotomization branches