--[[ external.vip Discord Free Script UI ]] local Players = game:GetService("Players") local TweenService = game:GetService("TweenService") local UserInputService = game:GetService("UserInputService") local LocalPlayer = Players.LocalPlayer local DISCORD_LINK = "https://discord.gg/7NvnJbhfpU" --// Remove previous UI pcall(function() local old = game:GetService("CoreGui"):FindFirstChild("ExternalVIP_Discord") if old then old:Destroy() end end) pcall(function() local old = LocalPlayer.PlayerGui:FindFirstChild("ExternalVIP_Discord") if old then old:Destroy() end end) --// GUI local Gui = Instance.new("ScreenGui") Gui.Name = "ExternalVIP_Discord" Gui.ResetOnSpawn = false Gui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling local success = pcall(function() Gui.Parent = game:GetService("CoreGui") end) if not success or not Gui.Parent then Gui.Parent = LocalPlayer:WaitForChild("PlayerGui") end --// Main local Main = Instance.new("Frame") Main.Name = "Main" Main.Size = UDim2.new(0, 420, 0, 235) Main.Position = UDim2.new(0.5, -210, 0.5, -117) Main.BackgroundColor3 = Color3.fromRGB(13, 13, 17) Main.BorderSizePixel = 0 Main.Parent = Gui local MainCorner = Instance.new("UICorner") MainCorner.CornerRadius = UDim.new(0, 10) MainCorner.Parent = Main --// Outline local Stroke = Instance.new("UIStroke") Stroke.Color = Color3.fromRGB(240, 80, 210) Stroke.Thickness = 1.5 Stroke.Transparency = 0.15 Stroke.Parent = Main --// Top accent local Accent = Instance.new("Frame") Accent.Name = "Accent" Accent.Size = UDim2.new(1, 0, 0, 3) Accent.BackgroundColor3 = Color3.fromRGB(240, 80, 210) Accent.BorderSizePixel = 0 Accent.Parent = Main local AccentCorner = Instance.new("UICorner") AccentCorner.CornerRadius = UDim.new(0, 10) AccentCorner.Parent = Accent --// Title local Title = Instance.new("TextLabel") Title.Name = "Title" Title.BackgroundTransparency = 1 Title.Position = UDim2.new(0, 22, 0, 21) Title.Size = UDim2.new(1, -65, 0, 30) Title.Font = Enum.Font.GothamBold Title.Text = "external.vip" Title.TextColor3 = Color3.fromRGB(245, 245, 245) Title.TextSize = 22 Title.TextXAlignment = Enum.TextXAlignment.Left Title.Parent = Main --// Subtitle local Subtitle = Instance.new("TextLabel") Subtitle.Name = "Subtitle" Subtitle.BackgroundTransparency = 1 Subtitle.Position = UDim2.new(0, 22, 0, 51) Subtitle.Size = UDim2.new(1, -44, 0, 18) Subtitle.Font = Enum.Font.GothamBold Subtitle.Text = "GET THE SCRIPT FOR FREE" Subtitle.TextColor3 = Color3.fromRGB(240, 80, 210) Subtitle.TextSize = 11 Subtitle.TextXAlignment = Enum.TextXAlignment.Left Subtitle.Parent = Main --// Description local Description = Instance.new("TextLabel") Description.Name = "Description" Description.BackgroundTransparency = 1 Description.Position = UDim2.new(0, 22, 0, 78) Description.Size = UDim2.new(1, -44, 0, 43) Description.Font = Enum.Font.Gotham Description.Text = "Join the external.vip Discord to get the script\nand stay updated with the latest releases." Description.TextColor3 = Color3.fromRGB(155, 155, 165) Description.TextSize = 13 Description.TextWrapped = true Description.TextXAlignment = Enum.TextXAlignment.Left Description.Parent = Main --// Link container local LinkBox = Instance.new("Frame") LinkBox.Name = "LinkBox" LinkBox.Position = UDim2.new(0, 22, 0, 130) LinkBox.Size = UDim2.new(1, -44, 0, 36) LinkBox.BackgroundColor3 = Color3.fromRGB(19, 19, 25) LinkBox.BorderSizePixel = 0 LinkBox.Parent = Main local LinkCorner = Instance.new("UICorner") LinkCorner.CornerRadius = UDim.new(0, 6) LinkCorner.Parent = LinkBox local LinkStroke = Instance.new("UIStroke") LinkStroke.Color = Color3.fromRGB(40, 40, 50) LinkStroke.Thickness = 1 LinkStroke.Parent = LinkBox local LinkText = Instance.new("TextLabel") LinkText.Name = "Link" LinkText.BackgroundTransparency = 1 LinkText.Position = UDim2.new(0, 12, 0, 0) LinkText.Size = UDim2.new(1, -24, 1, 0) LinkText.Font = Enum.Font.Gotham LinkText.Text = DISCORD_LINK LinkText.TextColor3 = Color3.fromRGB(170, 170, 180) LinkText.TextSize = 11 LinkText.TextXAlignment = Enum.TextXAlignment.Left LinkText.Parent = LinkBox --// Copy button local CopyButton = Instance.new("TextButton") CopyButton.Name = "CopyButton" CopyButton.Position = UDim2.new(0, 22, 0, 180) CopyButton.Size = UDim2.new(1, -44, 0, 38) CopyButton.BackgroundColor3 = Color3.fromRGB(220, 65, 190) CopyButton.BorderSizePixel = 0 CopyButton.AutoButtonColor = false CopyButton.Font = Enum.Font.GothamBold CopyButton.Text = "COPY DISCORD LINK" CopyButton.TextColor3 = Color3.fromRGB(255, 255, 255) CopyButton.TextSize = 12 CopyButton.Parent = Main local CopyCorner = Instance.new("UICorner") CopyCorner.CornerRadius = UDim.new(0, 6) CopyCorner.Parent = CopyButton --// Close button local Close = Instance.new("TextButton") Close.Name = "Close" Close.BackgroundTransparency = 1 Close.Position = UDim2.new(1, -43, 0, 17) Close.Size = UDim2.new(0, 27, 0, 27) Close.Font = Enum.Font.GothamBold Close.Text = "×" Close.TextColor3 = Color3.fromRGB(130, 130, 140) Close.TextSize = 23 Close.AutoButtonColor = false Close.Parent = Main --// Close hover Close.MouseEnter:Connect(function() TweenService:Create( Close, TweenInfo.new(0.15), {TextColor3 = Color3.fromRGB(240, 80, 210)} ):Play() end) Close.MouseLeave:Connect(function() TweenService:Create( Close, TweenInfo.new(0.15), {TextColor3 = Color3.fromRGB(130, 130, 140)} ):Play() end) --// Copy button hover CopyButton.MouseEnter:Connect(function() TweenService:Create( CopyButton, TweenInfo.new(0.15), { BackgroundColor3 = Color3.fromRGB(240, 80, 210) } ):Play() end) CopyButton.MouseLeave:Connect(function() TweenService:Create( CopyButton, TweenInfo.new(0.15), { BackgroundColor3 = Color3.fromRGB(220, 65, 190) } ):Play() end) --// Copy Discord CopyButton.MouseButton1Click:Connect(function() if setclipboard then setclipboard(DISCORD_LINK) CopyButton.Text = "COPIED!" CopyButton.BackgroundColor3 = Color3.fromRGB(55, 190, 130) task.wait(1.5) if CopyButton and CopyButton.Parent then CopyButton.Text = "COPY DISCORD LINK" CopyButton.BackgroundColor3 = Color3.fromRGB(220, 65, 190) end elseif toclipboard then toclipboard(DISCORD_LINK) CopyButton.Text = "COPIED!" CopyButton.BackgroundColor3 = Color3.fromRGB(55, 190, 130) task.wait(1.5) if CopyButton and CopyButton.Parent then CopyButton.Text = "COPY DISCORD LINK" CopyButton.BackgroundColor3 = Color3.fromRGB(220, 65, 190) end else CopyButton.Text = "CLIPBOARD UNSUPPORTED" task.wait(1.5) if CopyButton and CopyButton.Parent then CopyButton.Text = "COPY DISCORD LINK" end end end) --// Close Close.MouseButton1Click:Connect(function() Gui:Destroy() end) --// Dragging local dragging = false local dragStart local startPosition local function updateDrag(input) local delta = input.Position - dragStart Main.Position = UDim2.new( startPosition.X.Scale, startPosition.X.Offset + delta.X, startPosition.Y.Scale, startPosition.Y.Offset + delta.Y ) end Title.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = input.Position startPosition = Main.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) UserInputService.InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then updateDrag(input) end end) --// Entrance animation Main.Position = UDim2.new(0.5, -210, 0.5, -90) Main.BackgroundTransparency = 1 TweenService:Create( Main, TweenInfo.new( 0.35, Enum.EasingStyle.Quart, Enum.EasingDirection.Out ), { Position = UDim2.new(0.5, -210, 0.5, -117), BackgroundTransparency = 0 } ):Play()