Gakuran opensource script decompiled
Key Required

Gakuran opensource script decompiled

(学乱) Gakuranp1bubp1bub 131 views 674 executesUpdated Jul 12, 2026
Unrated
00
Lua Script•170 lines (6185 chars)
-- Decompilado de https://pastebin.com/raw/9KQF4m2v
-- Ofuscador: InstitutionIO (https://institutionio.vercel.app)
-- Método: Base85 + XOR (key 207) + VM custom Lua
-- Resultado: 5971 bytes de código Lua original

-- GLOBAL HANDLER
_G.ActiveNotifications = _G.ActiveNotifications or {}

local TweenService = game:GetService("TweenService")
local SoundService = game:GetService("SoundService")

local START_Y = 0.8 
local NOTIFY_HEIGHT = 85 -- Slightly increased to accommodate button padding

-- Shake Animation Function
local function ShakeIcon(icon)
    local originalPos = icon.Position
    local shakeInfo = TweenInfo.new(0.05, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut, 0, true)
    
    for i = 1, 6 do 
        local xOffset = math.random(-3, 3)
        local yOffset = math.random(-3, 3)
        local shakeTween = TweenService:Create(icon, shakeInfo, {
            Position = UDim2.new(originalPos.X.Scale, originalPos.X.Offset + xOffset, originalPos.Y.Scale, originalPos.Y.Offset + yOffset)
        })
        shakeTween:Play()
        shakeTween.Completed:Wait()
    end
    icon.Position = originalPos
end

local function Notify(titleText, descText, copyUrl)
    local ScreenGui = Instance.new("ScreenGui")
    ScreenGui.Name = "StackingNotify"
    ScreenGui.Parent = game:GetService("CoreGui")
    ScreenGui.IgnoreGuiInset = true

    local MainFrame = Instance.new("Frame")
    MainFrame.Parent = ScreenGui
    MainFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 15)
    MainFrame.Size = UDim2.new(0, 300, 0, 75) -- Widened slightly
    MainFrame.Position = UDim2.new(1, 10, START_Y, 0)
    
    Instance.new("UICorner", MainFrame).CornerRadius = UDim.new(0, 8)
    local Stroke = Instance.new("UIStroke", MainFrame)
    Stroke.Color = Color3.fromRGB(50, 50, 50)
    Stroke.Thickness = 1.5

    local TimerBarBG = Instance.new("Frame", MainFrame)
    TimerBarBG.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
    TimerBarBG.BorderSizePixel = 0
    TimerBarBG.Position = UDim2.new(0, 0, 1, -3)
    TimerBarBG.Size = UDim2.new(1, 0, 0, 3)

    local TimerBar = Instance.new("Frame", TimerBarBG)
    TimerBar.BackgroundColor3 = Color3.fromRGB(0, 160, 255)
    TimerBar.BorderSizePixel = 0
    TimerBar.Size = UDim2.new(1, 0, 1, 0)

    local Icon = Instance.new("ImageLabel", MainFrame)
    Icon.BackgroundTransparency = 1
    Icon.Position = UDim2.new(0, 10, 0, 10)
    Icon.Size = UDim2.new(0, 40, 0, 40)
    Icon.Image = "rbxassetid://5013032505"

    local Title = Instance.new("TextLabel", MainFrame)
    Title.BackgroundTransparency = 1
    Title.Position = UDim2.new(0, 60, 0, 10)
    Title.Size = UDim2.new(0, 230, 0, 20)
    Title.Font = Enum.Font.GothamBold
    Title.Text = titleText
    Title.TextColor3 = Color3.fromRGB(255, 255, 255)
    Title.TextSize = 14
    Title.TextXAlignment = Enum.TextXAlignment.Left

    local Description = Instance.new("TextLabel", MainFrame)
    Description.BackgroundTransparency = 1
    Description.Position = UDim2.new(0, 60, 0, 28)
    Description.Size = UDim2.new(0, 230, 0, 20)
    Description.Font = Enum.Font.Gotham
    Description.Text = descText
    Description.TextColor3 = Color3.fromRGB(180, 180, 180)
    Description.TextSize = 11
    Description.TextXAlignment = Enum.TextXAlignment.Left

    -- Copy Button Logic
    if copyUrl then
        local CopyBtn = Instance.new("TextButton", MainFrame)
        CopyBtn.Name = "CopyButton"
        CopyBtn.Size = UDim2.new(0, 70, 0, 18)
        CopyBtn.Position = UDim2.new(0, 60, 0, 48)
        CopyBtn.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
        CopyBtn.Font = Enum.Font.GothamBold
        CopyBtn.Text = "COPY LINK"
        CopyBtn.TextColor3 = Color3.fromRGB(0, 160, 255)
        CopyBtn.TextSize = 10
        CopyBtn.AutoButtonColor = true
        
        Instance.new("UICorner", CopyBtn).CornerRadius = UDim.new(0, 4)
        Instance.new("UIStroke", CopyBtn).Color = Color3.fromRGB(50, 50, 50)

        CopyBtn.MouseButton1Click:Connect(function()
            if setclipboard then
                setclipboard(copyUrl)
                CopyBtn.Text = "COPIED!"
                CopyBtn.TextColor3 = Color3.fromRGB(0, 255, 100)
                task.wait(1)
                CopyBtn.Text = "COPY LINK"
                CopyBtn.TextColor3 = Color3.fromRGB(0, 160, 255)
            end
        end)
    end

    -- Stacking Logic
    for i, active in ipairs(_G.ActiveNotifications) do
        local offset = (#_G.ActiveNotifications - i + 1) * NOTIFY_HEIGHT
        TweenService:Create(active.Frame, TweenInfo.new(0.4, Enum.EasingStyle.Quart), {
            Position = UDim2.new(1, -320, START_Y, -offset)
        }):Play()
    end

    table.insert(_G.ActiveNotifications, {Gui = ScreenGui, Frame = MainFrame})

    -- Sound (Parented to CoreGui to ensure it plays even if SoundService is restricted)
    local s = Instance.new("Sound")
    s.SoundId = "rbxassetid://79971563006950"
    s.Volume = 0.5
    s.Parent = ScreenGui
    s:Play()

    -- Appearance Animation
    local appear = TweenService:Create(MainFrame, TweenInfo.new(0.5, Enum.EasingStyle.Quart), {
        Position = UDim2.new(1, -320, START_Y, 0)
    })
    appear:Play()
    
    appear.Completed:Connect(function()
        ShakeIcon(Icon)
    end)

    -- Timer Bar Animation (6 seconds)
    local timerTween = TweenService:Create(TimerBar, TweenInfo.new(6, Enum.EasingStyle.Linear), {
        Size = UDim2.new(0, 0, 1, 0)
    })
    timerTween:Play()

    -- Removal Logic
    timerTween.Completed:Connect(function()
        local slideOut = TweenService:Create(MainFrame, TweenInfo.new(0.5, Enum.EasingStyle.Quart), {
            Position = UDim2.new(1, 10, MainFrame.Position.Y.Scale, MainFrame.Position.Y.Offset)
        })
        slideOut:Play()
        slideOut.Completed:Wait()

        for i, data in ipairs(_G.ActiveNotifications) do
            if data.Gui == ScreenGui then
                table.remove(_G.ActiveNotifications, i)
                break
            end
        end
        ScreenGui:Destroy()
    end)
end

-- IM LAZY I USE AI LEL
Notify(
    "RBXL.LUA NOTIFY!", 
    "GET THE SCRIPT AT OUR DISCORD | gg/MG9BRRdTzb", 
    "https://discord.gg/MG9BRRdTzb"
)

Features & Information

ayo chill, this InstitutionIO is a shit, https://pastebin.com/TiW7RybE

Community Comments (0)

No comments yet for this script.

More Scripts for (学乱) Gakuran