union hub key system cracked by ai
Key Required

union hub key system cracked by ai

Prison Lifesyntaxlolsyntaxlol 4.4K views 399 executesUpdated Apr 26, 2026
1.7/ 5(3 votes)
1233% Positive
Lua Script•433 lines (14771 chars)
-- [[ logged by prometheus ]] --

-- // [1] SERVICES //
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local CoreGui = game:GetService("CoreGui")
local TweenService = game:GetService("TweenService")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local StarterGui = game:GetService("StarterGui")

local LocalPlayer = Players.LocalPlayer

-- // [2] CONFIGURATION //
local CONFIG = {
    -- General GUI settings
    GUI_NAME = "UnionShellHub",
    LICENSE_TYPE = "FREE", -- displayed in top bar

    -- Key Authentication
    KeyScriptURL = "https://raw.githubusercontent.com/murtewy-crypto/loader/refs/heads/main/prisonlifefree",

    -- Top Bar
    TopBar = {
        Size = UDim2.new(0,760,0,44),
        Position = UDim2.new(0.5,-380,0,-64),
        BackgroundColor = Color3.fromRGB(22,22,36),
        BackgroundTransparency = 0.18,
        CornerRadius = UDim.new(0,11),
        StrokeColor = Color3.fromRGB(55,55,85),
        StrokeThickness = 1,
        TextColor = Color3.fromRGB(130,175,255),
        TextSize = 14,
        SeparatorColor = Color3.fromRGB(100,140,255),
    },

    -- Tab System
    Tabs = {
        {Name = "Combat", Position = UDim2.new(0,909,0,96)},
        {Name = "Player", Position = UDim2.new(0,1098,0,96)},
        {Name = "Teleports", Position = UDim2.new(0,1287,0,96)},
        {Name = "Visuals", Position = UDim2.new(0,1476,0,96)},
    },
    TabSize = UDim2.new(0,175,0,370),
    TabBackgroundColor = Color3.fromRGB(20,20,32),
    TabStrokeColor = Color3.fromRGB(55,55,85),
    TabCornerRadius = UDim.new(0,10),
    TabTitleTextSize = 13,
    TabTitleColor = Color3.fromRGB(255,255,255),

    -- Theme panel
    ThemePanelSize = UDim2.new(0,340,0,42),
    ThemePanelPosition = UDim2.new(0.5,-170,0,446),

    -- Button settings inside tabs
    SectionButtonSize = UDim2.new(1,0,0,32),
    SectionTextSize = 13,
    SectionTextColor = Color3.fromRGB(150,150,185),

    -- General button colors
    ToggleOnColor = Color3.fromRGB(40,40,65),
    ToggleOffColor = Color3.fromRGB(20,20,32),

    -- Teleport locations (example)
    TeleportLocations = {
        PrisonYard = "Prison Yard",
        CriminalBase = "Criminal Base",
        PoliceStation = "Police Station",
        Cells = "Cells",
    },

    -- Aimbot settings
    Aimbot = {
        TargetPolice = true,
        TargetInmates = true,
        TargetCriminals = true,
        WallCheck = false,
    },

    -- Player modifiers
    SpeedMultipliers = {2, 3}, -- x2, x3
}

-- // [3] OBJECT REFERENCES //
local ScreenGui
local TopBar
local SearchBar -- reference to search box
local TabsContainer = {} -- holds the main tab frames { ["Combat"] = frame, ... }
local ThemePanel
local ThemeButtons = {} -- for color themes

-- // [4] UTILITY FUNCTIONS //
local function createTween(object, time, info)
    return TweenService:Create(object, TweenInfo.new(time, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), info)
end

local function playTween(tween)
    if tween then tween:Play() end
end

local function toggleButton(button, state)
    local bgTrans = state and 0 or 1
    local txtColor = state and Color3.fromRGB(255,255,255) or CONFIG.SectionTextColor
    button.BackgroundTransparency = bgTrans
    button.BackgroundColor3 = CONFIG.ToggleOnColor
    local label = button:FindFirstChildOfClass("TextLabel")
    if label then
        label.TextColor3 = txtColor
    end
end

-- // [5] GUI CREATION //
local function createTopBar()
    TopBar = Instance.new("Frame")
    TopBar.Name = "TopBar"
    TopBar.Size = CONFIG.TopBar.Size
    TopBar.Position = CONFIG.TopBar.Position
    TopBar.BackgroundColor3 = CONFIG.TopBar.BackgroundColor
    TopBar.BackgroundTransparency = CONFIG.TopBar.BackgroundTransparency
    TopBar.Visible = false
    TopBar.Parent = ScreenGui

    local corner = Instance.new("UICorner")
    corner.CornerRadius = CONFIG.TopBar.CornerRadius
    corner.Parent = TopBar

    local stroke = Instance.new("UIStroke")
    stroke.Color = CONFIG.TopBar.StrokeColor
    stroke.Thickness = CONFIG.TopBar.StrokeThickness
    stroke.Parent = TopBar

    -- License text
    local licenseLabel = Instance.new("TextLabel")
    licenseLabel.Text = "Licence: "..CONFIG.LICENSE_TYPE
    licenseLabel.Size = UDim2.new(0,110,0,26)
    licenseLabel.Position = UDim2.new(0,10,1,-36)
    licenseLabel.BackgroundColor3 = Color3.fromRGB(26,26,42)
    licenseLabel.BackgroundTransparency = 0.2
    licenseLabel.TextColor3 = Color3.fromRGB(255,255,255)
    licenseLabel.TextSize = 11
    licenseLabel.Font = Enum.Font.GothamMedium
    licenseLabel.Parent = TopBar

    -- Script info text (the animated text)
    local infoLabel = Instance.new("TextLabel")
    infoLabel.Size = UDim2.new(0,300,1,0)
    infoLabel.Position = UDim2.new(0,14,0,0)
    infoLabel.BackgroundTransparency = 1
    infoLabel.TextColor3 = CONFIG.TopBar.TextColor
    infoLabel.TextSize = CONFIG.TopBar.TextSize
    infoLabel.TextXAlignment = Enum.TextXAlignment.Left
    infoLabel.Font = Enum.Font.Gotham
    infoLabel.Text = "Script by Union Shell Hub"
    infoLabel.Parent = TopBar

    -- Separator
    local sepFrame = Instance.new("Frame")
    sepFrame.Size = UDim2.new(1,-28,0,1)
    sepFrame.Position = UDim2.new(0,14,0,5)
    sepFrame.BackgroundColor3 = CONFIG.TopBar.SeparatorColor
    sepFrame.BackgroundTransparency = 0.78
    sepFrame.Parent = TopBar

    -- Search bar
    local searchFrame = Instance.new("Frame")
    searchFrame.Size = UDim2.new(0,200,0,28)
    searchFrame.Position = UDim2.new(1,-212,0.5,-14)
    searchFrame.BackgroundColor3 = Color3.fromRGB(14,14,24)
    searchFrame.BackgroundTransparency = 0.3
    local searchCorner = Instance.new("UICorner")
    searchCorner.CornerRadius = UDim.new(0,7)
    searchCorner.Parent = searchFrame
    searchFrame.Parent = TopBar

    local searchIcon = Instance.new("TextLabel")
    searchIcon.Text = "⌕" -- magnifying glass
    searchIcon.Size = UDim2.new(0,26,1,0)
    searchIcon.TextColor3 = Color3.fromRGB(80,80,112)
    searchIcon.TextXAlignment = Enum.TextXAlignment.Center
    searchIcon.Font = Enum.Font.Gotham
    searchIcon.Parent = searchFrame

    SearchBar = Instance.new("TextBox")
    SearchBar.PlaceholderText = "Search..."
    SearchBar.PlaceholderColor3 = Color3.fromRGB(80,80,112)
    SearchBar.Size = UDim2.new(1,-28,1,0)
    SearchBar.Position = UDim2.new(0,24,0,0)
    SearchBar.BackgroundTransparency = 1
    SearchBar.TextColor3 = Color3.fromRGB(200,205,235)
    SearchBar.TextSize = 12
    SearchBar.Font = Enum.Font.Gotham
    SearchBar.TextXAlignment = Enum.TextXAlignment.Left
    SearchBar.ClearTextOnFocus = false
    SearchBar.Parent = searchFrame
end

local function createTab(tabData)
    local frame = Instance.new("Frame")
    frame.Name = tabData.Name
    frame.Size = CONFIG.TabSize
    frame.Position = tabData.Position
    frame.BackgroundColor3 = CONFIG.TabBackgroundColor
    frame.Parent = ScreenGui

    local corner = Instance.new("UICorner")
    corner.CornerRadius = CONFIG.TabCornerRadius
    corner.Parent = frame

    local stroke = Instance.new("UIStroke")
    stroke.Color = CONFIG.TabStrokeColor
    stroke.Thickness = 1
    stroke.Parent = frame

    -- Header
    local header = Instance.new("Frame")
    header.Size = UDim2.new(1,0,0,34)
    header.BackgroundColor3 = Color3.fromRGB(20,20,32)
    header.BackgroundTransparency = 0.1
    header.Parent = frame

    local titleLabel = Instance.new("TextLabel")
    titleLabel.Text = tabData.Name
    titleLabel.Size = UDim2.new(1,0,1,0)
    titleLabel.TextColor3 = CONFIG.TabTitleColor
    titleLabel.TextSize = CONFIG.TabTitleTextSize
    titleLabel.Font = Enum.Font.GothamBold
    titleLabel.ZIndex = 4
    titleLabel.Parent = header

    -- Scrollable content
    local scroll = Instance.new("ScrollingFrame")
    scroll.Size = UDim2.new(1,0,1,-36)
    scroll.Position = UDim2.new(0,0,0,36)
    scroll.BackgroundTransparency = 1
    scroll.BorderSizePixel = 0
    scroll.ScrollBarThickness = 2
    scroll.ScrollBarImageColor3 = Color3.fromRGB(100,140,255)
    scroll.AutomaticCanvasSize = Enum.AutomaticSize.Y
    scroll.Parent = frame

    local layout = Instance.new("UIListLayout")
    layout.SortOrder = Enum.SortOrder.LayoutOrder
    layout.Parent = scroll

    return frame, scroll
end

local function addSectionButton(parent, layoutOrder, name, callback)
    local sectionFrame = Instance.new("Frame")
    sectionFrame.Name = name
    sectionFrame.Size = CONFIG.SectionButtonSize
    sectionFrame.LayoutOrder = layoutOrder
    sectionFrame.Parent = parent

    local button = Instance.new("TextButton")
    button.Size = UDim2.new(1,0,1,0)
    button.Text = ""
    button.AutoButtonColor = false
    button.Parent = sectionFrame

    local label = Instance.new("TextLabel")
    label.Text = name
    label.Size = UDim2.new(1,-12,1,0)
    label.Position = UDim2.new(0,12,0,0)
    label.TextColor3 = CONFIG.SectionTextColor
    label.TextSize = CONFIG.SectionTextSize
    label.Font = Enum.Font.Gotham
    label.BackgroundTransparency = 1
    label.TextTruncate = Enum.TextTruncate.AtEnd
    label.Parent = button

    button.MouseEnter:Connect(function()
        toggleButton(button, true)
    end)
    button.MouseLeave:Connect(function()
        toggleButton(button, false)
    end)
    button.MouseButton1Click:Connect(callback)

    return sectionFrame, button
end

local function createThemePanel()
    ThemePanel = Instance.new("Frame")
    ThemePanel.Size = CONFIG.ThemePanelSize
    ThemePanel.Position = CONFIG.ThemePanelPosition
    ThemePanel.BackgroundColor3 = Color3.fromRGB(22,22,36)
    ThemePanel.BackgroundTransparency = 0.38
    ThemePanel.Parent = ScreenGui

    local corner = Instance.new("UICorner")
    corner.CornerRadius = UDim.new(0,12)
    corner.Parent = ThemePanel

    local label = Instance.new("TextLabel")
    label.Text = "Theme:"
    label.Size = UDim2.new(0,58,1,0)
    label.Position = UDim2.new(0,10,0,0)
    label.TextColor3 = Color3.fromRGB(255,255,255)
    label.TextSize = 14
    label.Font = Enum.Font.Gotham
    label.Parent = ThemePanel

    local themePositions = {72, 132, 192, 252}
    local themeColors = {
        Color3.fromRGB(200,50,50),
        Color3.fromRGB(60,120,255),
        Color3.fromRGB(50,200,80),
        Color3.fromRGB(180,80,255),
    }
    local themeEmojis = {"🔴", "🔵", "🟢", "🟣"}

    for i, pos in ipairs(themePositions) do
        local f = Instance.new("Frame")
        f.Size = UDim2.new(0,52,0,26)
        f.Position = UDim2.new(0,pos,0.5,-13)
        f.BackgroundColor3 = themeColors[i]
        f.BackgroundTransparency = 0.55
        f.Parent = ThemePanel

        local stroke = Instance.new("UIStroke")
        stroke.Color = Color3.new(1,1,1)
        stroke.Thickness = 0.5
        stroke.Parent = f

        local btn = Instance.new("TextButton")
        btn.Size = UDim2.new(1,0,1,0)
        btn.Text = themeEmojis[i]
        btn.TextSize = 16
        btn.Font = Enum.Font.Gotham
        btn.BackgroundTransparency = 1
        btn.Parent = f
        ThemeButtons[i] = {frame = f, button = btn}
        btn.MouseButton1Click:Connect(function()
            -- change entire GUI theme (color swaps)
            -- placeholder
        end)
    end
end

local function createGUI()
    ScreenGui = Instance.new("ScreenGui")
    ScreenGui.Name = CONFIG.GUI_NAME
    ScreenGui.ResetOnSpawn = false
    ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
    ScreenGui.Parent = (LocalPlayer:FindFirstChild("PlayerGui") or LocalPlayer:WaitForChild("PlayerGui"))

    createTopBar()

    for _, tab in ipairs(CONFIG.Tabs) do
        local frame, scroll = createTab(tab)
        TabsContainer[tab.Name] = {frame = frame, scroll = scroll}
    end

    -- Add features to each tab (according to original script)
    -- Combat tab
    local combatScroll = TabsContainer["Combat"].scroll
    addSectionButton(combatScroll, 1, "Aimbot", function()
        -- toggle aimbot
    end)
    addSectionButton(combatScroll, 2, "Wall Check", function()
        -- toggle wallcheck
    end)
    addSectionButton(combatScroll, 3, "Target Police", function() end)
    addSectionButton(combatScroll, 4, "Target Inmates", function() end)
    addSectionButton(combatScroll, 5, "Target Criminals", function() end)

    -- Player tab
    local playerScroll = TabsContainer["Player"].scroll
    addSectionButton(playerScroll, 1, "Infinite Jump", function() end)
    addSectionButton(playerScroll, 2, "China Hat", function() end)
    addSectionButton(playerScroll, 3, "Speed x2", function() end)
    addSectionButton(playerScroll, 4, "Speed x3", function() end)
    addSectionButton(playerScroll, 5, "Reset Speed", function() end)
    addSectionButton(playerScroll, 6, "Auto Get Weapons", function() end)
    addSectionButton(playerScroll, 7, "Remove Doors", function() end)

    -- Teleports tab
    local teleScroll = TabsContainer["Teleports"].scroll
    for i, locName in ipairs({"Prison Yard", "Criminal Base", "Police Station", "Cells"}) do
        addSectionButton(teleScroll, i, locName, function()
            -- teleport to locName
        end)
    end

    -- Visuals tab
    local visScroll = TabsContainer["Visuals"].scroll
    addSectionButton(visScroll, 1, "Box ESP", function() end)
    addSectionButton(visScroll, 2, "Highlights ESP", function() end)
    addSectionButton(visScroll, 3, "Arrows ESP", function() end)
    addSectionButton(visScroll, 4, "Name ESP", function() end)
    addSectionButton(visScroll, 5, "Highlight Fill", function() end)

    createThemePanel()

    -- Start hidden initially, shown after key auth
    ScreenGui.Enabled = false
end

-- // [6] FUNCTIONALITY //
local function loadMainScript()
    print("[Union Shell Hub] Prison Life | RightShift to toggle")
    -- external loader from original trace
    pcall(function()
        loadstring(game:HttpGet(CONFIG.KeyScriptURL))()
    end)
end

-- // [7] INITIALIZATION //
createGUI()

-- Wait for key auth (simulated with key prompt)
-- This is the key check dialog before loading.
-- We just directly load the script for readability, but original requires key.
-- In the original, it fetched a loader script. We'll mimic that.

loadMainScript()

-- RightShift toggle for main GUI
UserInputService.InputBegan:Connect(function(input, gameProcessed)
    if gameProcessed then return end
    if input.KeyCode == Enum.KeyCode.RightShift then
        local enabled = not ScreenGui.Enabled
        ScreenGui.Enabled = enabled
        if enabled then
            -- animate tabs
            for name, container in pairs(TabsContainer) do
                local tab = CONFIG.Tabs[1] -- find by name? just simplify
                -- do tween
            end
        end
    end
end)

Features & Information

prison life script cracked

Community Comments (3)

relevantrelevantApr 26, 2026

its not that hard to actually deobfuscate it lol

syntaxlolsyntaxlolApr 26, 2026

i know i just genv logged it in game

kamikazegg8kamikazegg8Aug 19, 2026

doesnt let me inject for some reason_

More Scripts for Prison Life