-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. Deal with caution. -- -- Stay safe: -- • Never log in on unofficial Roblox sites or lookalike domains. -- • Real Roblox links use roblox.com (check the .com ending). -- • Treat fake Roblox login / "claim reward" pages as phishing. -- [[ End Rscripts Risk Notice ]] -- ═══════════════════════════════════════════════════════════════════════ -- W R A T H H U B -- Premium Loader · v5.0 -- Red / Black · Mobile UI -- ═══════════════════════════════════════════════════════════════════════ -- Original supplied Wrath icon is embedded and saved to the executor's -- file storage. No Roblox asset ID is required. -- -- The loader does NOT close when tapping outside. Use the X to close it. -- ═══════════════════════════════════════════════════════════════════════ local Players = game:GetService("Players") local TweenService = game:GetService("TweenService") local Lighting = game:GetService("Lighting") local Workspace = game:GetService("Workspace") local Player = Players.LocalPlayer local PlayerGui = Player:WaitForChild("PlayerGui") local DISCORD_URL = "https://discord.gg/VYnVHWxjU" -- Execution tracking, bot-token access, and webhook logging removed. local ICON_PATH = "Wrath/wrath_icon.jpeg" local ROOT_ICON_PATH = "wrath_icon.jpeg" local C = { black = Color3.fromRGB(4, 4, 6), surface = Color3.fromRGB(9, 9, 12), surface2 = Color3.fromRGB(13, 13, 17), surface3 = Color3.fromRGB(18, 18, 23), edge = Color3.fromRGB(47, 27, 33), edge2 = Color3.fromRGB(83, 13, 24), red = Color3.fromRGB(255, 18, 35), red2 = Color3.fromRGB(202, 9, 25), red3 = Color3.fromRGB(110, 5, 15), white = Color3.fromRGB(245, 245, 248), softWhite = Color3.fromRGB(212, 212, 220), muted = Color3.fromRGB(125, 125, 137), dim = Color3.fromRGB(67, 67, 78), green = Color3.fromRGB(65, 220, 118), } local function make(className, props, parent) local obj = Instance.new(className) for k, v in pairs(props or {}) do obj[k] = v end obj.Parent = parent return obj end local function frame(parent, props) props = props or {} props.BorderSizePixel = 0 return make("Frame", props, parent) end local function label(parent, text, props) props = props or {} props.BackgroundTransparency = 1 props.BorderSizePixel = 0 props.Text = text props.Font = props.Font or Enum.Font.Gotham props.TextColor3 = props.TextColor3 or C.white props.TextSize = props.TextSize or 14 props.TextXAlignment = props.TextXAlignment or Enum.TextXAlignment.Left props.TextYAlignment = props.TextYAlignment or Enum.TextYAlignment.Center return make("TextLabel", props, parent) end local function button(parent, props) props = props or {} props.BorderSizePixel = 0 props.AutoButtonColor = false return make("TextButton", props, parent) end local function corner(parent, radius) return make("UICorner", {CornerRadius = UDim.new(0, radius or 8)}, parent) end local function stroke(parent, color, thickness, transparency) return make("UIStroke", { Color = color or C.red, Thickness = thickness or 1, Transparency = transparency or 0, ApplyStrokeMode = Enum.ApplyStrokeMode.Border, }, parent) end local function gradient(parent, c1, c2, rotation) return make("UIGradient", { Color = ColorSequence.new(c1, c2), Rotation = rotation or 0, }, parent) end local function tween(obj, duration, props, style, direction) local t = TweenService:Create(obj, TweenInfo.new( duration, style or Enum.EasingStyle.Quart, direction or Enum.EasingDirection.Out ), props) t:Play() return t end local function safeCall(fn, ...) if type(fn) ~= "function" then return false, nil end return pcall(fn, ...) end -- ───────────────────────── Original icon file ────────────────────────────── local ORIGINAL_ICON_B64 = [[ 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rw7bRSwx6X4vs4dethHMyu6f6WDOV3qHAMxAYZxX5bUUAfvr4F/4Lr/Fb4v+Po/A3/BRHw/o/j34La5bvp+veF9F0q30oKspXZqEHkgyNdWrDzIcSKVOTGQxO77g/an/AGTPht8L/wDgjT8X/hl8G/GFt8SPht4U8X+HviR8PvFNvLE7vp+uMLC6066iDeZDd2pMjXB2IpEkbMqO5Rf5KvpxX0F8K/2ofjP8HPhV4++CPgrVfL8J/EvTRp2vaXNGs0E4jlSaKeMNgw3MUiArMhBIyrhhgAA+fiCDhuvekoyTyetFABRRRQAUUUUAFFFFABRRRQB//9X+MeiiigAooooAKKKKACiiigAooooAKKKKACiiigBRjPPIr+gv/gih+2d+zH8DIvElv+1taQ3yfC221Dx74CNzKVEetLHCtzaQpnLy3TQWxiABwRLkbTx/PnTwy4wRQB1Hjvxx4l+J3jfWPiT41n+1a14hvrjVNQm/v3V3K00xHtvcgegAHQVylKetJQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAf//W/jHooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/9k= ]] local function decodeBase64(data) local alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" local lookup = {} for i = 1, #alphabet do lookup[alphabet:sub(i, i)] = i - 1 end data = data:gsub("[^" .. alphabet .. "=]", "") local out = {} local buffer, bits = 0, 0 for i = 1, #data do local ch = data:sub(i, i) if ch ~= "=" then local value = lookup[ch] if value then buffer = buffer * 64 + value bits = bits + 6 if bits >= 8 then bits = bits - 8 local byte = math.floor(buffer / (2 ^ bits)) % 256 out[#out + 1] = string.char(byte) buffer = buffer % (2 ^ bits) end end end end return table.concat(out) end local function ensureIconFile() local bytes = decodeBase64(ORIGINAL_ICON_B64) -- Prefer a persistent Wrath folder in executor storage. if type(makefolder) == "function" then pcall(function() if type(isfolder) ~= "function" or not isfolder("Wrath") then makefolder("Wrath") end end) end local function exists(path) if type(isfile) ~= "function" then return false end local ok, result = pcall(isfile, path) return ok and result == true end local target = ICON_PATH if not exists(target) then if type(writefile) ~= "function" then return nil end local ok = pcall(writefile, target, bytes) -- Some mobile executors don't permit folders. if not ok or not exists(target) then target = ROOT_ICON_PATH pcall(writefile, target, bytes) end end if exists(target) then return target end return nil end local ICON_FILE = ensureIconFile() -- ─────────────────────────────────────────────────────────────────────────── local oldGui = PlayerGui:FindFirstChild("WrathLoader") if oldGui then oldGui:Destroy() end local oldBlur = Lighting:FindFirstChild("WrathLoaderBlur") if oldBlur then oldBlur:Destroy() end local Gui = make("ScreenGui", { Name = "WrathLoader", ResetOnSpawn = false, IgnoreGuiInset = true, DisplayOrder = 9999, ZIndexBehavior = Enum.ZIndexBehavior.Sibling, }, PlayerGui) local Blur = make("BlurEffect", { Name = "WrathLoaderBlur", Size = 0, Enabled = true, }, Lighting) local Overlay = frame(Gui, { Name = "Overlay", Size = UDim2.fromScale(1, 1), BackgroundColor3 = Color3.fromRGB(0, 0, 0), BackgroundTransparency = 1, ZIndex = 1, }) -- Soft shadow behind card. local Shadow = frame(Gui, { Name = "Shadow", AnchorPoint = Vector2.new(0.5, 0.5), Position = UDim2.fromScale(0.5, 0.505), Size = UDim2.fromOffset(662, 372), BackgroundColor3 = Color3.fromRGB(0, 0, 0), BackgroundTransparency = 0.35, ZIndex = 1, }) corner(Shadow, 22) local Card = frame(Gui, { Name = "MainCard", AnchorPoint = Vector2.new(0.5, 0.5), Position = UDim2.fromScale(0.5, 0.54), Size = UDim2.fromOffset(640, 350), BackgroundColor3 = C.surface, ZIndex = 3, ClipsDescendants = true, }) corner(Card, 18) gradient(Card, Color3.fromRGB(13, 13, 17), Color3.fromRGB(5, 5, 7), 90) local Scale = make("UIScale", {Scale = 1}, Card) make("UISizeConstraint", { MinSize = Vector2.new(310, 230), MaxSize = Vector2.new(640, 350), }, Card) local function updateScale() local camera = Workspace.CurrentCamera if not camera then return end local v = camera.ViewportSize local sx = (v.X - 30) / 640 local sy = (v.Y - 44) / 350 Scale.Scale = math.clamp(math.min(sx, sy, 1), 0.54, 1) end updateScale() if Workspace.CurrentCamera then Workspace.CurrentCamera:GetPropertyChangedSignal("ViewportSize"):Connect(updateScale) end -- ───────────────────────── Premium outline system ───────────────────────── -- No heavy rectangle border. Four small corner accents + hairline edges make -- the card look sharper and much less "boxed in". local OutlineTop = frame(Card, { Position = UDim2.new(0, 16, 0, 0), Size = UDim2.new(1, -32, 0, 2), BackgroundColor3 = C.red, ZIndex = 10, }) corner(OutlineTop, 2) gradient(OutlineTop, C.red, C.red3, 0) local OutlineBottom = frame(Card, { Position = UDim2.new(0, 40, 1, -1), Size = UDim2.new(1, -80, 0, 1), BackgroundColor3 = C.edge2, BackgroundTransparency = 0.3, ZIndex = 10, }) local OutlineLeft = frame(Card, { Position = UDim2.new(0, 0, 0, 28), Size = UDim2.new(0, 1, 1, -56), BackgroundColor3 = C.edge, BackgroundTransparency = 0.2, ZIndex = 9, }) local OutlineRight = frame(Card, { Position = UDim2.new(1, -1, 0, 28), Size = UDim2.new(0, 1, 1, -56), BackgroundColor3 = C.edge, BackgroundTransparency = 0.2, ZIndex = 9, }) local function cornerAccent(x, y, flipX, flipY) local holder = frame(Card, { Position = UDim2.new(x, flipX and -16 or 0, y, flipY and -16 or 0), Size = UDim2.fromOffset(16, 16), BackgroundTransparency = 1, ZIndex = 11, }) local h = frame(holder, { Position = flipX and UDim2.new(1, -16, 0, 0) or UDim2.new(0, 0, 0, 0), Size = UDim2.fromOffset(16, 2), BackgroundColor3 = C.red, ZIndex = 11, }) local v = frame(holder, { Position = flipX and UDim2.new(1, -2, 0, 0) or UDim2.new(0, 0, 0, 0), Size = UDim2.fromOffset(2, 16), BackgroundColor3 = C.red, ZIndex = 11, }) if flipY then h.Position = flipX and UDim2.new(1, -16, 1, -2) or UDim2.new(0, 0, 1, -2) v.Position = flipX and UDim2.new(1, -2, 0, 0) or UDim2.new(0, 0, 0, 0) v.Size = UDim2.fromOffset(2, 16) end return holder end -- Simpler corner accents explicitly positioned for consistent rotation-free rendering. local function line(pos, size, z) return frame(Card, { Position = pos, Size = size, BackgroundColor3 = C.red, BackgroundTransparency = 0.05, ZIndex = z or 11, }) end line(UDim2.fromOffset(0, 0), UDim2.fromOffset(34, 2)) line(UDim2.fromOffset(0, 0), UDim2.fromOffset(2, 34)) line(UDim2.new(1, -34, 0, 0), UDim2.fromOffset(34, 2)) line(UDim2.new(1, -2, 0, 0), UDim2.fromOffset(2, 34)) line(UDim2.fromOffset(0, 348), UDim2.fromOffset(34, 2)) line(UDim2.new(1, -34, 348), UDim2.fromOffset(34, 2)) line(UDim2.fromOffset(0, 316), UDim2.fromOffset(2, 34)) line(UDim2.new(1, -2, 316), UDim2.fromOffset(2, 34)) -- ───────────────────────── Left brand section ───────────────────────────── local Left = frame(Card, { Name = "BrandPanel", Position = UDim2.fromOffset(0, 0), Size = UDim2.fromOffset(218, 350), BackgroundColor3 = Color3.fromRGB(11, 7, 10), ZIndex = 4, }) gradient(Left, Color3.fromRGB(20, 8, 12), Color3.fromRGB(8, 8, 11), 135) -- Faint red spotlight behind the icon. local Aura = frame(Left, { AnchorPoint = Vector2.new(0.5, 0.5), Position = UDim2.new(0.5, 0, 0, 118), Size = UDim2.fromOffset(150, 150), BackgroundColor3 = C.red, BackgroundTransparency = 0.95, ZIndex = 4, }) corner(Aura, 90) -- Actual supplied icon. local IconWrap = frame(Left, { Name = "IconWrap", AnchorPoint = Vector2.new(0.5, 0.5), Position = UDim2.new(0.5, 0, 0, 112), Size = UDim2.fromOffset(132, 132), BackgroundColor3 = Color3.fromRGB(7, 7, 9), ZIndex = 6, }) corner(IconWrap, 18) stroke(IconWrap, Color3.fromRGB(102, 10, 23), 1, 0.24) local Icon = make("ImageLabel", { Name = "OriginalWrathIcon", AnchorPoint = Vector2.new(0.5, 0.5), Position = UDim2.fromScale(0.5, 0.5), Size = UDim2.fromOffset(118, 118), BackgroundTransparency = 1, BorderSizePixel = 0, Image = "", ScaleType = Enum.ScaleType.Fit, ZIndex = 7, }, IconWrap) corner(Icon, 14) local function setIcon() if not ICON_FILE then return end local getAsset if type(getcustomasset) == "function" then getAsset = getcustomasset elseif type(getsynasset) == "function" then getAsset = getsynasset end if not getAsset then return end local ok, asset = pcall(getAsset, ICON_FILE) if ok and type(asset) == "string" and asset ~= "" then Icon.Image = asset pcall(function() game:GetService("ContentProvider"):PreloadAsync({Icon}) end) end end setIcon() label(Left, "WRATH", { Position = UDim2.new(0, 0, 0, 190), Size = UDim2.new(1, 0, 0, 34), Font = Enum.Font.GothamBlack, TextSize = 26, TextXAlignment = Enum.TextXAlignment.Center, ZIndex = 6, }) label(Left, "SCRIPT HUB", { Position = UDim2.new(0, 0, 0, 218), Size = UDim2.new(1, 0, 0, 18), Font = Enum.Font.GothamBold, TextSize = 9, TextColor3 = C.red, TextXAlignment = Enum.TextXAlignment.Center, ZIndex = 6, }) local BrandDash = frame(Left, { Position = UDim2.new(0.5, -27, 0, 245), Size = UDim2.fromOffset(54, 2), BackgroundColor3 = C.red, ZIndex = 6, }) corner(BrandDash, 2) label(Left, "PREMIUM ACCESS", { Position = UDim2.new(0, 0, 0, 256), Size = UDim2.new(1, 0, 0, 14), Font = Enum.Font.Code, TextSize = 8, TextColor3 = C.dim, TextXAlignment = Enum.TextXAlignment.Center, ZIndex = 6, }) -- Player card at bottom-left. local Profile = frame(Left, { Name = "PlayerProfile", Position = UDim2.new(0, 13, 1, -59), Size = UDim2.new(1, -26, 0, 46), BackgroundColor3 = Color3.fromRGB(12, 11, 15), ZIndex = 6, }) corner(Profile, 10) stroke(Profile, C.edge, 1, 0.2) local AvatarHolder = frame(Profile, { Position = UDim2.new(0, 6, 0.5, -17), Size = UDim2.fromOffset(34, 34), BackgroundColor3 = Color3.fromRGB(28, 12, 18), ZIndex = 7, }) corner(AvatarHolder, 17) local Avatar = make("ImageLabel", { AnchorPoint = Vector2.new(0.5, 0.5), Position = UDim2.fromScale(0.5, 0.5), Size = UDim2.fromOffset(30, 30), BackgroundTransparency = 1, BorderSizePixel = 0, Image = "", ScaleType = Enum.ScaleType.Crop, ZIndex = 8, }, AvatarHolder) corner(Avatar, 15) stroke(Avatar, C.red2, 1, 0.12) label(Profile, Player.DisplayName or Player.Name, { Position = UDim2.new(0, 48, 0, 6), Size = UDim2.new(1, -57, 0, 15), Font = Enum.Font.GothamBold, TextSize = 10, TextColor3 = C.white, TextTruncate = Enum.TextTruncate.AtEnd, ZIndex = 8, }) label(Profile, "@" .. Player.Name, { Position = UDim2.new(0, 48, 0, 23), Size = UDim2.new(1, -57, 0, 13), Font = Enum.Font.Gotham, TextSize = 8, TextColor3 = C.muted, TextTruncate = Enum.TextTruncate.AtEnd, ZIndex = 8, }) task.spawn(function() local ok, image = pcall(function() return Players:GetUserThumbnailAsync( Player.UserId, Enum.ThumbnailType.HeadShot, Enum.ThumbnailSize.Size100x100 ) end) if ok and Avatar.Parent then Avatar.Image = image end end) -- ───────────────────────── Right content section ─────────────────────────── local Right = frame(Card, { Name = "ContentPanel", Position = UDim2.fromOffset(218, 0), Size = UDim2.new(1, -218, 1, 0), BackgroundTransparency = 1, ZIndex = 4, }) -- Small game badge in the top-right. local GameBadge = frame(Right, { Name = "GameBadge", AnchorPoint = Vector2.new(1, 0), Position = UDim2.new(1, -45, 0, 12), Size = UDim2.fromOffset(150, 23), BackgroundColor3 = Color3.fromRGB(13, 11, 15), ZIndex = 8, }) corner(GameBadge, 8) stroke(GameBadge, C.edge, 1, 0.12) local GameDot = frame(GameBadge, { Position = UDim2.new(0, 9, 0.5, -3), Size = UDim2.fromOffset(6, 6), BackgroundColor3 = C.red, ZIndex = 9, }) corner(GameDot, 4) local GameName = label(GameBadge, "Loading...", { Position = UDim2.new(0, 22, 0, 0), Size = UDim2.new(1, -29, 1, 0), Font = Enum.Font.GothamMedium, TextSize = 8, TextColor3 = C.softWhite, TextTruncate = Enum.TextTruncate.AtEnd, ZIndex = 9, }) task.spawn(function() -- Prefer Roblox's place product metadata instead of game.Name, which -- can show a generic runtime/place label such as "UGC". local name = "Place " .. tostring(game.PlaceId) local ok, info = pcall(function() return game:GetService("MarketplaceService"):GetProductInfo(game.PlaceId) end) if ok and type(info) == "table" and type(info.Name) == "string" and info.Name ~= "" then name = info.Name else -- Fallback only when Roblox product metadata is unavailable. pcall(function() if type(game.Name) == "string" and game.Name ~= "" and game.Name:lower() ~= "ugc" then name = game.Name end end) end if GameName.Parent then GameName.Text = name end end) -- Close X: transparent, minimal, mobile-friendly. local Close = button(Right, { Name = "Close", AnchorPoint = Vector2.new(1, 0), Position = UDim2.new(1, -8, 0, 9), Size = UDim2.fromOffset(32, 30), BackgroundTransparency = 1, Text = "×", Font = Enum.Font.GothamMedium, TextSize = 25, TextColor3 = C.muted, ZIndex = 12, }) Close.MouseEnter:Connect(function() tween(Close, 0.12, { TextColor3 = C.red, Rotation = 90, }) end) Close.MouseLeave:Connect(function() tween(Close, 0.12, { TextColor3 = C.muted, Rotation = 0, }) end) -- Header. label(Right, "JOIN THE COMMUNITY", { Position = UDim2.new(0, 28, 0, 45), Size = UDim2.new(1, -205, 0, 28), Font = Enum.Font.GothamBlack, TextSize = 19, TextColor3 = C.white, ZIndex = 7, }) label(Right, "Get releases, updates and support.", { Position = UDim2.new(0, 28, 0, 73), Size = UDim2.new(1, -65, 0, 20), Font = Enum.Font.Gotham, TextSize = 11, TextColor3 = C.muted, ZIndex = 7, }) -- Header status pill. local StatusPill = frame(Right, { Position = UDim2.new(0, 28, 0, 106), Size = UDim2.fromOffset(112, 22), BackgroundColor3 = Color3.fromRGB(13, 25, 18), ZIndex = 7, }) corner(StatusPill, 8) local StatusDot = frame(StatusPill, { Position = UDim2.new(0, 9, 0.5, -3), Size = UDim2.fromOffset(6, 6), BackgroundColor3 = C.green, ZIndex = 8, }) corner(StatusDot, 4) label(StatusPill, "LOADER READY", { Position = UDim2.new(0, 22, 0, 0), Size = UDim2.new(1, -27, 1, 0), Font = Enum.Font.GothamMedium, TextSize = 9, TextColor3 = Color3.fromRGB(111, 182, 134), ZIndex = 8, }) -- Fine divider. frame(Right, { Position = UDim2.new(0, 28, 0, 143), Size = UDim2.new(1, -56, 0, 1), BackgroundColor3 = Color3.fromRGB(38, 27, 32), ZIndex = 6, }) label(Right, "DISCORD INVITE", { Position = UDim2.new(0, 28, 0, 158), Size = UDim2.new(1, -56, 0, 14), Font = Enum.Font.GothamBold, TextSize = 8, TextColor3 = C.dim, ZIndex = 7, }) -- Invite box. local Invite = frame(Right, { Position = UDim2.new(0, 28, 0, 178), Size = UDim2.new(1, -56, 0, 42), BackgroundColor3 = Color3.fromRGB(7, 7, 10), ZIndex = 7, }) corner(Invite, 9) stroke(Invite, C.edge, 1, 0.1) local InviteAccent = frame(Invite, { Position = UDim2.new(0, 0, 0, 0), Size = UDim2.fromOffset(2, 42), BackgroundColor3 = C.red, ZIndex = 9, }) corner(InviteAccent, 3) local InviteDot = frame(Invite, { Position = UDim2.new(0, 15, 0.5, -3), Size = UDim2.fromOffset(6, 6), BackgroundColor3 = C.green, ZIndex = 9, }) corner(InviteDot, 4) label(Invite, "discord.gg/wrathub", { Position = UDim2.new(0, 31, 0, 0), Size = UDim2.new(1, -42, 1, 0), Font = Enum.Font.Code, TextSize = 12, TextColor3 = C.softWhite, TextTruncate = Enum.TextTruncate.AtEnd, ZIndex = 9, }) -- Premium copy-invite button: clean typography, arrow, layered border, -- and a restrained animated sheen. local Copy = button(Right, { Name = "CopyInvite", Position = UDim2.new(0, 28, 0, 230), Size = UDim2.new(1, -56, 0, 54), BackgroundColor3 = C.red3, Text = "", ZIndex = 7, ClipsDescendants = true, }) corner(Copy, 11) gradient(Copy, Color3.fromRGB(242, 17, 39), Color3.fromRGB(139, 5, 20), 0) local CopyBorder = stroke(Copy, Color3.fromRGB(255, 83, 99), 1.2, 0.35) local CopyInner = frame(Copy, { Position = UDim2.fromOffset(1, 1), Size = UDim2.new(1, -2, 1, -2), BackgroundTransparency = 1, ZIndex = 8, }) corner(CopyInner, 10) stroke(CopyInner, Color3.fromRGB(255, 170, 176), 1, 0.88) local CopyText = label(Copy, "COPY INVITE LINK", { Position = UDim2.new(0, 18, 0, 10), Size = UDim2.new(1, -58, 0, 17), Font = Enum.Font.GothamBold, TextSize = 11, TextColor3 = C.white, TextXAlignment = Enum.TextXAlignment.Left, ZIndex = 10, }) local CopySubText = label(Copy, "One tap · ready to paste", { Position = UDim2.new(0, 18, 0, 28), Size = UDim2.new(1, -58, 0, 13), Font = Enum.Font.Gotham, TextSize = 8, TextColor3 = Color3.fromRGB(255, 204, 209), TextXAlignment = Enum.TextXAlignment.Left, ZIndex = 10, }) local CopyArrow = label(Copy, "›", { AnchorPoint = Vector2.new(1, 0.5), Position = UDim2.new(1, -13, 0.5, -1), Size = UDim2.fromOffset(18, 28), Font = Enum.Font.GothamMedium, TextSize = 26, TextColor3 = Color3.fromRGB(255, 225, 228), TextXAlignment = Enum.TextXAlignment.Center, ZIndex = 10, }) local Shine = frame(Copy, { Position = UDim2.new(0, -95, 0, -10), Size = UDim2.fromOffset(45, 78), Rotation = 15, BackgroundColor3 = Color3.fromRGB(255, 255, 255), BackgroundTransparency = 0.89, ZIndex = 9, }) -- Bottom metadata. label(Right, "WRATH / OFFICIAL", { Position = UDim2.new(0, 28, 1, -33), Size = UDim2.new(0, 160, 0, 16), Font = Enum.Font.Code, TextSize = 8, TextColor3 = C.dim, ZIndex = 7, }) label(Right, "v5.0 • MOBILE READY", { AnchorPoint = Vector2.new(1, 0), Position = UDim2.new(1, -28, 1, -33), Size = UDim2.new(0, 170, 0, 16), Font = Enum.Font.Code, TextSize = 8, TextColor3 = C.dim, TextXAlignment = Enum.TextXAlignment.Right, ZIndex = 7, }) -- ───────────────────────── Interactions ──────────────────────────────────── local copied = false Copy.MouseEnter:Connect(function() if not copied then tween(Copy, 0.16, {BackgroundColor3 = Color3.fromRGB(247, 23, 45)}) tween(CopyBorder, 0.16, {Transparency = 0.04, Thickness = 1.5}) tween(CopyArrow, 0.16, {Position = UDim2.new(1, -10, 0.5, -1), TextColor3 = C.white}) end end) Copy.MouseLeave:Connect(function() if not copied then tween(Copy, 0.18, {BackgroundColor3 = C.red3}) tween(CopyBorder, 0.18, {Transparency = 0.35, Thickness = 1.2}) tween(CopyArrow, 0.18, {Position = UDim2.new(1, -13, 0.5, -1), TextColor3 = Color3.fromRGB(255, 225, 228)}) end end) Copy.Activated:Connect(function() if copied then return end copied = true local clipboardOK = false if type(setclipboard) == "function" then clipboardOK = pcall(setclipboard, DISCORD_URL) elseif type(toclipboard) == "function" then clipboardOK = pcall(toclipboard, DISCORD_URL) end if clipboardOK then CopyText.Text = "INVITE COPIED" CopySubText.Text = "Paste it into your browser or Discord" CopyArrow.Text = "›" tween(Copy, 0.18, { BackgroundColor3 = Color3.fromRGB(24, 130, 66) }) tween(CopyBorder, 0.18, {Color = Color3.fromRGB(110, 255, 159), Transparency = 0.08}) else CopyText.Text = "CLIPBOARD UNAVAILABLE" CopySubText.Text = "Copy manually: discord.gg/wrathub" CopyArrow.Text = "›" tween(Copy, 0.18, { BackgroundColor3 = Color3.fromRGB(105, 72, 19) }) tween(CopyBorder, 0.18, {Color = Color3.fromRGB(255, 204, 112), Transparency = 0.08}) end task.delay(2.2, function() if not Copy.Parent then return end CopyText.Text = "COPY INVITE LINK" CopySubText.Text = "One tap · ready to paste" CopyArrow.Text = "›" CopyBorder.Color = Color3.fromRGB(255, 83, 99) tween(Copy, 0.18, {BackgroundColor3 = C.red3}) tween(CopyBorder, 0.18, {Transparency = 0.35, Thickness = 1.2}) copied = false end) end) local closing = false local function closeLoader() if closing then return end closing = true tween(Card, 0.25, { Position = UDim2.fromScale(0.5, 0.54), BackgroundTransparency = 1, }, Enum.EasingStyle.Quart, Enum.EasingDirection.In) tween(Shadow, 0.2, { BackgroundTransparency = 1, }, Enum.EasingStyle.Quad) tween(Overlay, 0.25, { BackgroundTransparency = 1, }, Enum.EasingStyle.Quad) tween(Blur, 0.25, { Size = 0, }, Enum.EasingStyle.Quad) task.delay(0.28, function() if Gui.Parent then Gui:Destroy() end if Blur.Parent then Blur:Destroy() end end) end Close.Activated:Connect(closeLoader) -- ───────────────────────── Entry + ambient animation ─────────────────────── Card.Position = UDim2.fromScale(0.5, 0.57) Card.BackgroundTransparency = 0.15 Shadow.BackgroundTransparency = 0.65 tween(Overlay, 0.38, { BackgroundTransparency = 0.23, }, Enum.EasingStyle.Quad) tween(Blur, 0.42, { Size = 13, }, Enum.EasingStyle.Quad) tween(Card, 0.52, { Position = UDim2.fromScale(0.5, 0.5), BackgroundTransparency = 0, }, Enum.EasingStyle.Back) tween(Shadow, 0.5, { Position = UDim2.fromScale(0.5, 0.505), BackgroundTransparency = 0.32, }, Enum.EasingStyle.Quad) task.spawn(function() while Gui.Parent and Card.Parent do tween(OutlineTop, 1.8, { BackgroundColor3 = Color3.fromRGB(255, 36, 51) }, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut) tween(Aura, 1.8, { BackgroundTransparency = 0.91 }, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut) task.wait(1.8) tween(OutlineTop, 1.8, { BackgroundColor3 = C.red2 }, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut) tween(Aura, 1.8, { BackgroundTransparency = 0.96 }, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut) task.wait(1.8) end end) task.spawn(function() task.wait(0.9) while Gui.Parent and Card.Parent do Shine.Position = UDim2.new(0, -65, 0, -12) tween(Shine, 0.72, { Position = UDim2.new(1, 25, 0, -12) }, Enum.EasingStyle.Quad) task.wait(4.2) end end) task.spawn(function() while Gui.Parent and Card.Parent do tween(StatusDot, 1.2, {BackgroundTransparency = 0.55}, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut) task.wait(1.2) tween(StatusDot, 1.2, {BackgroundTransparency = 0}, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut) task.wait(1.2) end end)