Free Open source script loader
Key RequiredUniversal

Free Open source script loader

Universal Scriptvvs_vvs_ 774 views 73 executesUpdated Jan 18, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•220 lines (7122 chars)
--                           +---------------+
--                           | CONFIGURATION |
--                           +---------------+

local CONFIG = {
    -- Container Settings
    ContainerWidth = 380,      -- Width of the loader box
    ContainerHeight = 100,     -- Height of the loader box
    
    -- Progress Bar Settings
    BarHeight = 8,             -- Height of the progress bar
    BarPaddingX = 32,          -- Horizontal padding from container edges
    
    -- Animation Settings
    BarLerpSpeed = 0.4,        -- Speed of progress bar animation (seconds)
    FadeInSpeed = 0.4,         -- Speed of fade in animation (seconds)
    FadeOutSpeed = 0.3,        -- Speed of fade out animation (seconds)
}


local loader = {}

local screenGui = Instance.new("ScreenGui")
screenGui.Name = "GraphiteLoader"
screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
screenGui.ResetOnSpawn = false

local success = pcall(function()
    screenGui.Parent = game:GetService("CoreGui")
end)
if not success then
    screenGui.Parent = game:GetService("Players").LocalPlayer:WaitForChild("PlayerGui")
end

local container = Instance.new("Frame")
container.Name = "LoaderContainer"
container.Size = UDim2.new(0, CONFIG.ContainerWidth, 0, CONFIG.ContainerHeight)
container.Position = UDim2.new(0.5, 0, 0.5, 0)
container.AnchorPoint = Vector2.new(0.5, 0.5)
container.BackgroundColor3 = Color3.fromRGB(38, 38, 42)
container.BorderSizePixel = 0
container.BackgroundTransparency = 1
container.Parent = screenGui

local containerCorner = Instance.new("UICorner")
containerCorner.CornerRadius = UDim.new(0, 12)
containerCorner.Parent = container

local containerStroke = Instance.new("UIStroke")
containerStroke.Color = Color3.fromRGB(68, 68, 72)
containerStroke.Thickness = 1
containerStroke.Transparency = 1
containerStroke.Parent = container

local gradient = Instance.new("UIGradient")
gradient.Color = ColorSequence.new{
    ColorSequenceKeypoint.new(0, Color3.fromRGB(46, 46, 50)),
    ColorSequenceKeypoint.new(1, Color3.fromRGB(38, 38, 42))
}
gradient.Rotation = 145
gradient.Parent = container

local statusLabel = Instance.new("TextLabel")
statusLabel.Name = "StatusLabel"
statusLabel.Size = UDim2.new(1, -CONFIG.BarPaddingX * 2, 0, 20)
statusLabel.Position = UDim2.new(0, CONFIG.BarPaddingX, 0, 28)
statusLabel.BackgroundTransparency = 1
statusLabel.Text = "Initializing..."
statusLabel.TextColor3 = Color3.fromRGB(176, 176, 176)
statusLabel.TextSize = 14
statusLabel.Font = Enum.Font.GothamMedium
statusLabel.TextXAlignment = Enum.TextXAlignment.Center
statusLabel.TextTransparency = 1
statusLabel.Parent = container

local barBackground = Instance.new("Frame")
barBackground.Name = "BarBackground"
barBackground.Size = UDim2.new(1, -CONFIG.BarPaddingX * 2, 0, CONFIG.BarHeight)
barBackground.Position = UDim2.new(0, CONFIG.BarPaddingX, 0, 60)
barBackground.BackgroundColor3 = Color3.fromRGB(24, 24, 28)
barBackground.BorderSizePixel = 0
barBackground.BackgroundTransparency = 1
barBackground.Parent = container

local barBgCorner = Instance.new("UICorner")
barBgCorner.CornerRadius = UDim.new(0, 3)
barBgCorner.Parent = barBackground

local barFill = Instance.new("Frame")
barFill.Name = "BarFill"
barFill.Size = UDim2.new(0, 0, 1, 0)
barFill.BackgroundColor3 = Color3.fromRGB(106, 106, 106)
barFill.BorderSizePixel = 0
barFill.BackgroundTransparency = 1
barFill.Parent = barBackground

local barFillCorner = Instance.new("UICorner")
barFillCorner.CornerRadius = UDim.new(0, 3)
barFillCorner.Parent = barFill

local barGradient = Instance.new("UIGradient")
barGradient.Color = ColorSequence.new{
    ColorSequenceKeypoint.new(0, Color3.fromRGB(80, 80, 80)),
    ColorSequenceKeypoint.new(1, Color3.fromRGB(106, 106, 106))
}
barGradient.Rotation = 90
barGradient.Parent = barFill

local TweenService = game:GetService("TweenService")
local fadeInTween = TweenService:Create(
    container,
    TweenInfo.new(CONFIG.FadeInSpeed, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),
    {BackgroundTransparency = 0}
)
local strokeFadeIn = TweenService:Create(
    containerStroke,
    TweenInfo.new(CONFIG.FadeInSpeed, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),
    {Transparency = 0}
)
local textFadeIn = TweenService:Create(
    statusLabel,
    TweenInfo.new(CONFIG.FadeInSpeed, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),
    {TextTransparency = 0}
)
local barBgFadeIn = TweenService:Create(
    barBackground,
    TweenInfo.new(CONFIG.FadeInSpeed, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),
    {BackgroundTransparency = 0}
)
local barFillFadeIn = TweenService:Create(
    barFill,
    TweenInfo.new(CONFIG.FadeInSpeed, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),
    {BackgroundTransparency = 0}
)

fadeInTween:Play()
strokeFadeIn:Play()
textFadeIn:Play()
barBgFadeIn:Play()
barFillFadeIn:Play()

function updateLoader(status, progress)
    progress = math.clamp(progress, 0, 100)
    statusLabel.Text = status
    local targetSize = UDim2.new(progress / 100, 0, 1, 0)
    barFill:TweenSize(
        targetSize,
        Enum.EasingDirection.Out,
        Enum.EasingStyle.Quad,
        CONFIG.BarLerpSpeed,
        true
    )
end

function loader:Remove()
    local initialTransparencies = {
        container = container.BackgroundTransparency,
        stroke = containerStroke.Transparency,
        text = statusLabel.TextTransparency,
        barBg = barBackground.BackgroundTransparency,
        barFill = barFill.BackgroundTransparency
    }
    
    local fadeOutTween = TweenService:Create(
        container,
        TweenInfo.new(CONFIG.FadeOutSpeed, Enum.EasingStyle.Quad, Enum.EasingDirection.In),
        {BackgroundTransparency = 1}
    )
    local strokeFadeOut = TweenService:Create(
        containerStroke,
        TweenInfo.new(CONFIG.FadeOutSpeed, Enum.EasingStyle.Quad, Enum.EasingDirection.In),
        {Transparency = 1}
    )
    local textFadeOut = TweenService:Create(
        statusLabel,
        TweenInfo.new(CONFIG.FadeOutSpeed, Enum.EasingStyle.Quad, Enum.EasingDirection.In),
        {TextTransparency = 1}
    )
    local barBgFadeOut = TweenService:Create(
        barBackground,
        TweenInfo.new(CONFIG.FadeOutSpeed, Enum.EasingStyle.Quad, Enum.EasingDirection.In),
        {BackgroundTransparency = 1}
    )
    local barFillFadeOut = TweenService:Create(
        barFill,
        TweenInfo.new(CONFIG.FadeOutSpeed, Enum.EasingStyle.Quad, Enum.EasingDirection.In),
        {BackgroundTransparency = 1}
    )
    
    fadeOutTween:Play()
    strokeFadeOut:Play()
    textFadeOut:Play()
    barBgFadeOut:Play()
    barFillFadeOut:Play()
    
    fadeOutTween.Completed:Connect(function()
        screenGui:Destroy()
    end)
end

_G.updateLoader = updateLoader
_G.removeLoader = function() loader:Remove() end


-- Usage Example: 

task.spawn(function()
    wait(0.5)
    updateLoader("Bypassing Anti-Cheat", 10)
    wait(1)
    updateLoader("Loading Assets", 35)
    wait(1)
    updateLoader("Initializing Scripts", 60)
    wait(1)
    updateLoader("Finalizing", 85)
    wait(1)
    updateLoader("Complete", 100)
    wait(1)
    loader:Remove()
end)

Features & Information

just a basic loading ui

Community Comments (5)

xyrevexxyrevexJan 18, 2026

and what would this be used for

Replying to @xyrevex
vvs_vvs_Jan 19, 2026

@Astric idk

test123456test123456Jan 18, 2026

Chatgpt

Replying to @test123456
vvs_vvs_Jan 19, 2026

@Noobinr yeah

ajhjsdbaajhjsdbaMar 21, 2026

wait how do i connect it to my script

More Scripts for Universal Scripts