local Players = game:GetService("Players") local TweenService = game:GetService("TweenService") local RunService = game:GetService("RunService") local Lighting = game:GetService("Lighting") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") local function CreateBlurEffect(parent) local blur = Instance.new("BlurEffect") blur.Name = "LoadingUIBlur" blur.Size = 12 blur.Parent = Lighting local frame = Instance.new("Frame") frame.Size = UDim2.new(1, 0, 1, 0) frame.BackgroundTransparency = 1 frame.Parent = parent local function updateBlur() if not blur or not blur.Parent then return end local viewportSize = workspace.CurrentCamera.ViewportSize local center = frame.AbsolutePosition + frame.AbsoluteSize / 2 local distance = (center - Vector2.new(viewportSize.X/2, viewportSize.Y/2)).Magnitude blur.Size = math.clamp(12 - distance / 50, 3, 12) end local connection connection = RunService.RenderStepped:Connect(function() if not blur or not blur.Parent then connection:Disconnect() return end updateBlur() end) return blur end local function CreateLoadingScreen(config) config = config or {} local title = config.Title or "Premium Loader" local subtitle = config.Subtitle or "Glass Effect v3.0" local theme = config.Theme or { Glass = Color3.fromRGB(255, 255, 255), Accent = Color3.fromRGB(100, 210, 255), Text = Color3.fromRGB(30, 30, 30), Secondary = Color3.fromRGB(200, 200, 200) } local screenGui = Instance.new("ScreenGui") screenGui.Name = "PremiumLoadingUI" screenGui.ResetOnSpawn = false screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling screenGui.Parent = playerGui local blurEffect = CreateBlurEffect(screenGui) local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0, 400, 0, 250) mainFrame.Position = UDim2.new(0.5, -200, 0.5, -125) mainFrame.BackgroundColor3 = theme.Glass mainFrame.BackgroundTransparency = 0.2 mainFrame.BorderSizePixel = 0 mainFrame.ClipsDescendants = true mainFrame.Parent = screenGui local glassEffect = Instance.new("ImageLabel") glassEffect.Name = "GlassEffect" glassEffect.Image = "rbxassetid://1113948036" glassEffect.ImageTransparency = 0.5 glassEffect.ScaleType = Enum.ScaleType.Tile glassEffect.TileSize = UDim2.new(0, 200, 0, 200) glassEffect.Size = UDim2.new(1, 0, 1, 0) glassEffect.BackgroundTransparency = 1 glassEffect.Parent = mainFrame local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 16) corner.Parent = mainFrame local stroke = Instance.new("UIStroke") stroke.Name = "Border" stroke.Color = Color3.fromRGB(255, 255, 255) stroke.Transparency = 0.7 stroke.Thickness = 1 stroke.Parent = mainFrame local titleLabel = Instance.new("TextLabel") titleLabel.Size = UDim2.new(1, -40, 0, 40) titleLabel.Position = UDim2.new(0, 20, 0, 20) titleLabel.BackgroundTransparency = 1 titleLabel.Text = title titleLabel.TextColor3 = theme.Text titleLabel.TextSize = 26 titleLabel.TextXAlignment = Enum.TextXAlignment.Left titleLabel.Font = Enum.Font.GothamSemibold titleLabel.Parent = mainFrame local subtitleLabel = Instance.new("TextLabel") subtitleLabel.Size = UDim2.new(1, -40, 0, 20) subtitleLabel.Position = UDim2.new(0, 20, 0, 60) subtitleLabel.BackgroundTransparency = 1 subtitleLabel.Text = subtitle subtitleLabel.TextColor3 = theme.Text subtitleLabel.TextTransparency = 0.4 subtitleLabel.TextSize = 14 subtitleLabel.TextXAlignment = Enum.TextXAlignment.Left subtitleLabel.Font = Enum.Font.Gotham subtitleLabel.Parent = mainFrame local progressFrame = Instance.new("Frame") progressFrame.Size = UDim2.new(1, -40, 0, 8) progressFrame.Position = UDim2.new(0, 20, 0, 160) progressFrame.BackgroundColor3 = Color3.fromRGB(240, 240, 240) progressFrame.BackgroundTransparency = 0.7 progressFrame.Parent = mainFrame local progressFill = Instance.new("Frame") progressFill.Size = UDim2.new(0, 0, 1, 0) progressFill.BackgroundColor3 = theme.Accent progressFill.BorderSizePixel = 0 progressFill.Parent = progressFrame local progressCorner = Instance.new("UICorner") progressCorner.CornerRadius = UDim.new(1, 0) progressCorner.Parent = progressFrame progressCorner.Parent = progressFill local statusLabel = Instance.new("TextLabel") statusLabel.Size = UDim2.new(1, -40, 0, 20) statusLabel.Position = UDim2.new(0, 20, 0, 180) statusLabel.BackgroundTransparency = 1 statusLabel.Text = "GETTING DATA..." statusLabel.TextColor3 = theme.Text statusLabel.TextSize = 14 statusLabel.TextXAlignment = Enum.TextXAlignment.Left statusLabel.Font = Enum.Font.Gotham statusLabel.Parent = mainFrame local percentLabel = Instance.new("TextLabel") percentLabel.Size = UDim2.new(0, 60, 0, 20) percentLabel.Position = UDim2.new(1, -80, 0, 180) percentLabel.BackgroundTransparency = 1 percentLabel.Text = "0%" percentLabel.TextColor3 = theme.Text percentLabel.TextTransparency = 0.4 percentLabel.TextSize = 14 percentLabel.TextXAlignment = Enum.TextXAlignment.Right percentLabel.Font = Enum.Font.Gotham percentLabel.Parent = mainFrame local particles = Instance.new("Frame") particles.Size = UDim2.new(1, 0, 0, 100) particles.Position = UDim2.new(0, 0, 0, 100) particles.BackgroundTransparency = 1 particles.Parent = mainFrame local function createParticle() local particle = Instance.new("Frame") particle.Size = UDim2.new(0, 4, 0, 4) particle.Position = UDim2.new(0, math.random(-50, 400), 0, math.random(0, 100)) particle.BackgroundColor3 = theme.Accent particle.BackgroundTransparency = 0.8 particle.BorderSizePixel = 0 particle.Parent = particles local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(1, 0) corner.Parent = particle spawn(function() local duration = 2 + math.random() * 3 local startTime = tick() while particle and particle.Parent do local elapsed = tick() - startTime if elapsed > duration then particle:Destroy() break end local progress = elapsed / duration particle.Position = UDim2.new( 0, particle.Position.X.Offset + math.sin(progress * 10) * 2, 0, particle.Position.Y.Offset + 2 ) particle.BackgroundTransparency = 0.8 + progress * 0.2 RunService.RenderStepped:Wait() end end) end spawn(function() while particles and particles.Parent do createParticle() wait(0.1) end end) local glow = Instance.new("ImageLabel") glow.Name = "Glow" glow.Image = "rbxassetid://5028857084" glow.ImageColor3 = theme.Accent glow.ImageTransparency = 0.8 glow.ScaleType = Enum.ScaleType.Slice glow.SliceCenter = Rect.new(24, 24, 276, 276) glow.Size = UDim2.new(1, 40, 1, 40) glow.Position = UDim2.new(0, -20, 0, -20) glow.BackgroundTransparency = 1 glow.Parent = mainFrame glow.ZIndex = -1 spawn(function() while glow and glow.Parent do TweenService:Create(glow, TweenInfo.new(1.5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), { ImageTransparency = 0.7 }):Play() wait(1.5) TweenService:Create(glow, TweenInfo.new(1.5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), { ImageTransparency = 0.9 }):Play() wait(1.5) end end) mainFrame.BackgroundTransparency = 1 glassEffect.ImageTransparency = 1 stroke.Transparency = 1 titleLabel.TextTransparency = 1 subtitleLabel.TextTransparency = 1 statusLabel.TextTransparency = 1 percentLabel.TextTransparency = 1 progressFrame.BackgroundTransparency = 1 progressFill.BackgroundTransparency = 1 glow.ImageTransparency = 1 local fadeIn = TweenInfo.new(0.8, Enum.EasingStyle.Quad, Enum.EasingDirection.Out) TweenService:Create(mainFrame, fadeIn, {BackgroundTransparency = 0.2}):Play() TweenService:Create(glassEffect, fadeIn, {ImageTransparency = 0.5}):Play() TweenService:Create(stroke, fadeIn, {Transparency = 0.7}):Play() wait(0.1) TweenService:Create(titleLabel, fadeIn, {TextTransparency = 0}):Play() wait(0.1) TweenService:Create(subtitleLabel, fadeIn, {TextTransparency = 0.4}):Play() wait(0.1) TweenService:Create(statusLabel, fadeIn, {TextTransparency = 0}):Play() TweenService:Create(percentLabel, fadeIn, {TextTransparency = 0.4}):Play() wait(0.1) TweenService:Create(progressFrame, fadeIn, {BackgroundTransparency = 0.7}):Play() TweenService:Create(progressFill, fadeIn, {BackgroundTransparency = 0}):Play() TweenService:Create(glow, fadeIn, {ImageTransparency = 0.8}):Play() local loadingUI = {} function loadingUI:UpdateProgress(progress) progress = math.clamp(progress, 0, 1) TweenService:Create(progressFill, TweenInfo.new(0.5, Enum.EasingStyle.Quint), { Size = UDim2.new(progress, 0, 1, 0) }):Play() percentLabel.Text = string.format("%d%%", math.floor(progress * 100)) if progress > 0 and progress < 1 then for i = 1, 5 do createParticle() end end end function loadingUI:UpdateStatus(text) statusLabel.Text = text local pulse = TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out) TweenService:Create(statusLabel, pulse, {TextTransparency = 0.3}):Play() wait(0.2) TweenService:Create(statusLabel, pulse, {TextTransparency = 0}):Play() TweenService:Create(glow, TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { ImageTransparency = 0.6 }):Play() wait(0.3) TweenService:Create(glow, TweenInfo.new(0.5, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { ImageTransparency = 0.8 }):Play() end function loadingUI:Destroy() local fadeOut = TweenInfo.new(0.8, Enum.EasingStyle.Quad, Enum.EasingDirection.In) TweenService:Create(titleLabel, fadeOut, {TextTransparency = 1}):Play() TweenService:Create(subtitleLabel, fadeOut, {TextTransparency = 1}):Play() TweenService:Create(statusLabel, fadeOut, {TextTransparency = 1}):Play() TweenService:Create(percentLabel, fadeOut, {TextTransparency = 1}):Play() TweenService:Create(progressFrame, fadeOut, {BackgroundTransparency = 1}):Play() TweenService:Create(progressFill, fadeOut, {BackgroundTransparency = 1}):Play() TweenService:Create(glow, fadeOut, {ImageTransparency = 1}):Play() wait(0.3) TweenService:Create(mainFrame, fadeOut, {BackgroundTransparency = 1}):Play() TweenService:Create(glassEffect, fadeOut, {ImageTransparency = 1}):Play() TweenService:Create(stroke, fadeOut, {Transparency = 1}):Play() wait(0.8) if blurEffect and blurEffect.Parent then blurEffect:Destroy() end screenGui:Destroy() end return loadingUI end local loadingScreen = CreateLoadingScreen({ Title = "SCRIPT LOADING...", Subtitle = "by: mjay,Q3E4", Theme = { Glass = Color3.fromRGB(255, 255, 255), Accent = Color3.fromRGB(100, 210, 255), Text = Color3.fromRGB(30, 30, 30), Secondary = Color3.fromRGB(220, 220, 220) } }) local steps = { { text = "FUNCTION LOADING...", duration = 1.161917813 }, { text = "LOADING ASSETS...", duration = 2.789113 }, { text = "COMPLILING SCRIPT...", duration = 1.54188 }, { text = "LUAU ANAIYSIS...", duration = 3.139178 }, { text = "FINALIZING SETUP...", duration = 0.7 }, { text = "READY!", duration = 0.49789113666 } } for i, step in ipairs(steps) do loadingScreen:UpdateStatus(step.text) loadingScreen:UpdateProgress(i/#steps) wait(step.duration) end wait(1) loadingScreen:Destroy()