-- Professional Roblox Loader GUI -- Created with modern design principles and smooth animations local Players = game:GetService("Players") local TweenService = game:GetService("TweenService") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local SoundService = game:GetService("SoundService") local Lighting = game:GetService("Lighting") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") -- Configuration local CONFIG = { validLink = "https://link-target.net/1348019/femware-scripts", validKey = "X7F2K9LQW3PAM8ZTF", discordInvite = "https://discord.gg/YK47SwJV", scriptUrl = "https://raw.githubusercontent.com/MortalR/asdsadsad/refs/heads/main/script" } -- Create main ScreenGui local screenGui = Instance.new("ScreenGui") screenGui.Name = "ScriptLoaderGUI" screenGui.ResetOnSpawn = false screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling -- Try to parent to CoreGui, fallback to PlayerGui local success, err = pcall(function() screenGui.Parent = game:GetService("CoreGui") end) if not success then screenGui.Parent = playerGui end -- Create blur effect local blurEffect = Instance.new("BlurEffect") blurEffect.Name = "LoaderBlur" blurEffect.Size = 0 blurEffect.Parent = Lighting -- Main container frame local mainFrame = Instance.new("Frame") mainFrame.Name = "MainFrame" mainFrame.Size = UDim2.new(0, 420, 0, 520) mainFrame.Position = UDim2.new(0.5, -210, 0.5, -260) mainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 35) mainFrame.BorderSizePixel = 0 mainFrame.ClipsDescendants = true mainFrame.Parent = screenGui -- Add corner radius to main frame local mainCorner = Instance.new("UICorner") mainCorner.CornerRadius = UDim.new(0, 16) mainCorner.Parent = mainFrame -- Add shadow effect local shadowFrame = Instance.new("Frame") shadowFrame.Name = "Shadow" shadowFrame.Size = UDim2.new(1, 20, 1, 20) shadowFrame.Position = UDim2.new(0, -10, 0, -10) shadowFrame.BackgroundColor3 = Color3.fromRGB(0, 0, 0) shadowFrame.BackgroundTransparency = 0.7 shadowFrame.ZIndex = mainFrame.ZIndex - 1 shadowFrame.Parent = mainFrame local shadowCorner = Instance.new("UICorner") shadowCorner.CornerRadius = UDim.new(0, 16) shadowCorner.Parent = shadowFrame -- Gradient background local gradientFrame = Instance.new("Frame") gradientFrame.Name = "GradientBackground" gradientFrame.Size = UDim2.new(1, 0, 1, 0) gradientFrame.Position = UDim2.new(0, 0, 0, 0) gradientFrame.BackgroundTransparency = 1 gradientFrame.Parent = mainFrame local gradient = Instance.new("UIGradient") gradient.Color = ColorSequence.new{ ColorSequenceKeypoint.new(0, Color3.fromRGB(45, 45, 65)), ColorSequenceKeypoint.new(1, Color3.fromRGB(25, 25, 35)) } gradient.Rotation = 45 gradient.Parent = gradientFrame -- Title bar for dragging local titleBar = Instance.new("Frame") titleBar.Name = "TitleBar" titleBar.Size = UDim2.new(1, 0, 0, 60) titleBar.Position = UDim2.new(0, 0, 0, 0) titleBar.BackgroundTransparency = 1 titleBar.Parent = mainFrame -- Title label local titleLabel = Instance.new("TextLabel") titleLabel.Name = "TitleLabel" titleLabel.Size = UDim2.new(1, -40, 1, 0) titleLabel.Position = UDim2.new(0, 20, 0, 0) titleLabel.BackgroundTransparency = 1 titleLabel.Text = "Script Loader" titleLabel.TextColor3 = Color3.fromRGB(255, 255, 255) titleLabel.TextScaled = true titleLabel.Font = Enum.Font.GothamBold titleLabel.TextXAlignment = Enum.TextXAlignment.Left titleLabel.Parent = titleBar -- Close button local closeButton = Instance.new("TextButton") closeButton.Name = "CloseButton" closeButton.Size = UDim2.new(0, 30, 0, 30) closeButton.Position = UDim2.new(1, -45, 0, 15) closeButton.BackgroundColor3 = Color3.fromRGB(255, 85, 85) closeButton.Text = "×" closeButton.TextColor3 = Color3.fromRGB(255, 255, 255) closeButton.TextScaled = true closeButton.Font = Enum.Font.GothamBold closeButton.BorderSizePixel = 0 closeButton.Parent = titleBar local closeCorner = Instance.new("UICorner") closeCorner.CornerRadius = UDim.new(0, 15) closeCorner.Parent = closeButton -- Content container local contentFrame = Instance.new("Frame") contentFrame.Name = "ContentFrame" contentFrame.Size = UDim2.new(1, -40, 1, -80) contentFrame.Position = UDim2.new(0, 20, 0, 70) contentFrame.BackgroundTransparency = 1 contentFrame.Parent = mainFrame -- Key input section local inputLabel = Instance.new("TextLabel") inputLabel.Name = "InputLabel" inputLabel.Size = UDim2.new(1, 0, 0, 30) inputLabel.Position = UDim2.new(0, 0, 0, 20) inputLabel.BackgroundTransparency = 1 inputLabel.Text = "Enter your key below:" inputLabel.TextColor3 = Color3.fromRGB(200, 200, 200) inputLabel.TextScaled = true inputLabel.Font = Enum.Font.Gotham inputLabel.TextXAlignment = Enum.TextXAlignment.Left inputLabel.Parent = contentFrame -- Key input box local keyInput = Instance.new("TextBox") keyInput.Name = "KeyInput" keyInput.Size = UDim2.new(1, 0, 0, 50) keyInput.Position = UDim2.new(0, 0, 0, 60) keyInput.BackgroundColor3 = Color3.fromRGB(40, 40, 55) keyInput.BorderSizePixel = 0 keyInput.Text = "" keyInput.PlaceholderText = "Paste your key here..." keyInput.TextColor3 = Color3.fromRGB(255, 255, 255) keyInput.PlaceholderColor3 = Color3.fromRGB(120, 120, 120) keyInput.TextScaled = true keyInput.Font = Enum.Font.Gotham keyInput.ClearTextOnFocus = false keyInput.Parent = contentFrame local inputCorner = Instance.new("UICorner") inputCorner.CornerRadius = UDim.new(0, 8) inputCorner.Parent = keyInput -- Buttons container local buttonsFrame = Instance.new("Frame") buttonsFrame.Name = "ButtonsFrame" buttonsFrame.Size = UDim2.new(1, 0, 0, 200) buttonsFrame.Position = UDim2.new(0, 0, 0, 140) buttonsFrame.BackgroundTransparency = 1 buttonsFrame.Parent = contentFrame -- Button creation function local function createButton(name, text, position, color) local button = Instance.new("TextButton") button.Name = name button.Size = UDim2.new(1, 0, 0, 45) button.Position = position button.BackgroundColor3 = color button.BorderSizePixel = 0 button.Text = text button.TextColor3 = Color3.fromRGB(255, 255, 255) button.TextScaled = true button.Font = Enum.Font.GothamBold button.Parent = buttonsFrame local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 8) corner.Parent = button -- Add gradient local buttonGradient = Instance.new("UIGradient") buttonGradient.Color = ColorSequence.new{ ColorSequenceKeypoint.new(0, color), ColorSequenceKeypoint.new(1, Color3.new(color.R * 0.8, color.G * 0.8, color.B * 0.8)) } buttonGradient.Rotation = 90 buttonGradient.Parent = button return button end -- Create buttons local getKeyButton = createButton("GetKeyButton", "🔑 Get Key", UDim2.new(0, 0, 0, 0), Color3.fromRGB(85, 170, 255)) local getDiscordButton = createButton("GetDiscordButton", "💬 Get Discord", UDim2.new(0, 0, 0, 60), Color3.fromRGB(114, 137, 218)) local submitButton = createButton("SubmitButton", "✅ Submit Key", UDim2.new(0, 0, 0, 120), Color3.fromRGB(85, 255, 127)) -- Status label local statusLabel = Instance.new("TextLabel") statusLabel.Name = "StatusLabel" statusLabel.Size = UDim2.new(1, 0, 0, 30) statusLabel.Position = UDim2.new(0, 0, 1, -50) statusLabel.BackgroundTransparency = 1 statusLabel.Text = "" statusLabel.TextColor3 = Color3.fromRGB(255, 255, 255) statusLabel.TextScaled = true statusLabel.Font = Enum.Font.Gotham statusLabel.Parent = contentFrame -- Particle effect local particleFrame = Instance.new("Frame") particleFrame.Name = "ParticleFrame" particleFrame.Size = UDim2.new(1, 0, 1, 0) particleFrame.Position = UDim2.new(0, 0, 0, 0) particleFrame.BackgroundTransparency = 1 particleFrame.Parent = mainFrame -- Animation functions local function tweenButton(button, scale, duration) local tween = TweenService:Create( button, TweenInfo.new(duration or 0.1, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Size = UDim2.new(scale, 0, 0, 45)} ) tween:Play() end local function showStatus(message, color, duration) statusLabel.Text = message statusLabel.TextColor3 = color local tween = TweenService:Create( statusLabel, TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {TextTransparency = 0} ) tween:Play() if duration then spawn(function() wait(duration) local fadeTween = TweenService:Create( statusLabel, TweenInfo.new(0.5, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {TextTransparency = 1} ) fadeTween:Play() end) end end -- Dragging functionality local dragging = false local dragStart = nil local startPos = nil titleBar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = input.Position startPos = mainFrame.Position end end) UserInputService.InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then local delta = input.Position - dragStart mainFrame.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) -- Button hover effects local function addHoverEffect(button, originalColor) local hoverColor = Color3.new( math.min(originalColor.R + 0.1, 1), math.min(originalColor.G + 0.1, 1), math.min(originalColor.B + 0.1, 1) ) button.MouseEnter:Connect(function() tweenButton(button, 1.05) local tween = TweenService:Create( button, TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {BackgroundColor3 = hoverColor} ) tween:Play() end) button.MouseLeave:Connect(function() tweenButton(button, 1) local tween = TweenService:Create( button, TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {BackgroundColor3 = originalColor} ) tween:Play() end) end -- Add hover effects addHoverEffect(getKeyButton, Color3.fromRGB(85, 170, 255)) addHoverEffect(getDiscordButton, Color3.fromRGB(114, 137, 218)) addHoverEffect(submitButton, Color3.fromRGB(85, 255, 127)) addHoverEffect(closeButton, Color3.fromRGB(255, 85, 85)) -- Button functionality getKeyButton.MouseButton1Click:Connect(function() if setclipboard then setclipboard(CONFIG.validLink) showStatus("✅ Key link copied to clipboard!", Color3.fromRGB(85, 255, 127), 2) else showStatus("❌ Clipboard not supported", Color3.fromRGB(255, 85, 85), 2) end end) getDiscordButton.MouseButton1Click:Connect(function() if setclipboard then setclipboard(CONFIG.discordInvite) showStatus("✅ Discord invite copied!", Color3.fromRGB(114, 137, 218), 2) else showStatus("❌ Clipboard not supported", Color3.fromRGB(255, 85, 85), 2) end end) submitButton.MouseButton1Click:Connect(function() local enteredKey = keyInput.Text if enteredKey == "" then showStatus("❌ Please enter a key", Color3.fromRGB(255, 85, 85), 2) return end if enteredKey == CONFIG.validKey then showStatus("✅ Key validated! Loading script...", Color3.fromRGB(85, 255, 127), 1) -- Success animation local successTween = TweenService:Create( mainFrame, TweenInfo.new(0.5, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Size = UDim2.new(0, 450, 0, 550)} ) successTween:Play() spawn(function() wait(1.5) -- Load the script from GitHub local success, err = pcall(function() loadstring(game:HttpGet(CONFIG.scriptUrl))() end) if success then showStatus("✅ Script loaded successfully!", Color3.fromRGB(85, 255, 127), 1) -- Show success notification game.StarterGui:SetCore("SendNotification", { Title = "Script Loader"; Text = "Script has been loaded successfully! by.oSzn"; Duration = 5; }) wait(1) -- Fade out animation local fadeOutTween = TweenService:Create( mainFrame, TweenInfo.new(0.5, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {BackgroundTransparency = 1} ) fadeOutTween:Play() -- Fade out blur local blurTween = TweenService:Create( blurEffect, TweenInfo.new(0.5, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Size = 0} ) blurTween:Play() wait(0.5) screenGui:Destroy() blurEffect:Destroy() else showStatus("❌ Failed to load script: " .. tostring(err), Color3.fromRGB(255, 85, 85), 5) print("Script loading error:", err) end end) else showStatus("❌ Invalid key! Please try again.", Color3.fromRGB(255, 85, 85), 3) -- Shake animation for invalid key local originalPos = mainFrame.Position spawn(function() for i = 1, 6 do local offset = (i % 2 == 0) and 10 or -10 mainFrame.Position = UDim2.new( originalPos.X.Scale, originalPos.X.Offset + offset, originalPos.Y.Scale, originalPos.Y.Offset ) wait(0.05) end mainFrame.Position = originalPos end) end end) closeButton.MouseButton1Click:Connect(function() -- Close animation local closeTween = TweenService:Create( mainFrame, TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Size = UDim2.new(0, 0, 0, 0)} ) closeTween:Play() local blurTween = TweenService:Create( blurEffect, TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Size = 0} ) blurTween:Play() spawn(function() wait(0.3) screenGui:Destroy() blurEffect:Destroy() end) end) -- Particle system local function createParticle() local particle = Instance.new("Frame") particle.Size = UDim2.new(0, math.random(2, 4), 0, math.random(2, 4)) particle.Position = UDim2.new(math.random(), 0, 1, 0) particle.BackgroundColor3 = Color3.fromRGB( math.random(100, 255), math.random(100, 255), math.random(200, 255) ) particle.BackgroundTransparency = 0.3 particle.BorderSizePixel = 0 particle.Parent = particleFrame local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(1, 0) corner.Parent = particle local tween = TweenService:Create( particle, TweenInfo.new(math.random(3, 6), Enum.EasingStyle.Linear), { Position = UDim2.new(math.random(), 0, -0.1, 0), BackgroundTransparency = 1 } ) tween:Play() tween.Completed:Connect(function() particle:Destroy() end) end -- Start particle system spawn(function() while screenGui.Parent do createParticle() wait(math.random(0.5, 1.5)) end end) -- Initial animations mainFrame.Size = UDim2.new(0, 0, 0, 0) mainFrame.BackgroundTransparency = 1 -- Fade in blur local blurTween = TweenService:Create( blurEffect, TweenInfo.new(0.5, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Size = 10} ) blurTween:Play() -- Scale in main frame local scaleTween = TweenService:Create( mainFrame, TweenInfo.new(0.6, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {Size = UDim2.new(0, 420, 0, 520)} ) scaleTween:Play() -- Fade in main frame local fadeTween = TweenService:Create( mainFrame, TweenInfo.new(0.4, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {BackgroundTransparency = 0} ) fadeTween:Play() -- Focus on key input spawn(function() wait(0.8) keyInput:CaptureFocus() end) print("Script Loader GUI loaded successfully!")