--[[ Slitware Key System GUI + Key Validation ]] local Players = game:GetService("Players") local HttpService = game:GetService("HttpService") local TweenService = game:GetService("TweenService") local UserInputService = game:GetService("UserInputService") local Player = Players.LocalPlayer local HWID = game:GetService("RbxAnalyticsService"):GetClientId() local API_BASE = "https://slitware.pages.dev/api" local KEY_STORE = "SlitwareKey_v1" -- ============================================================ -- GUI CREATION -- ============================================================ local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "SlitwareUI" ScreenGui.ResetOnSpawn = false ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling ScreenGui.Parent = Player:WaitForChild("PlayerGui") local Main = Instance.new("Frame") Main.Name = "Main" Main.Size = UDim2.new(0, 420, 0, 280) Main.Position = UDim2.new(0.5, -210, 0.5, -140) Main.BackgroundColor3 = Color3.fromRGB(10, 10, 10) Main.BorderSizePixel = 0 Main.Parent = ScreenGui local MainCorner = Instance.new("UICorner") MainCorner.CornerRadius = UDim.new(0, 12) MainCorner.Parent = Main local MainStroke = Instance.new("UIStroke") MainStroke.Color = Color3.fromRGB(40, 40, 40) MainStroke.Thickness = 1 MainStroke.Parent = Main -- Title Bar local TitleBar = Instance.new("Frame") TitleBar.Size = UDim2.new(1, 0, 0, 44) TitleBar.BackgroundColor3 = Color3.fromRGB(14, 14, 14) TitleBar.BorderSizePixel = 0 TitleBar.Parent = Main local TBCorner = Instance.new("UICorner") TBCorner.CornerRadius = UDim.new(0, 12) TBCorner.Parent = TitleBar local TitleLabel = Instance.new("TextLabel") TitleLabel.Size = UDim2.new(1, -16, 1, 0) TitleLabel.Position = UDim2.new(0, 16, 0, 0) TitleLabel.BackgroundTransparency = 1 TitleLabel.Text = "SLITWARE" TitleLabel.TextColor3 = Color3.fromRGB(255, 255, 255) TitleLabel.TextXAlignment = Enum.TextXAlignment.Left TitleLabel.Font = Enum.Font.GothamBold TitleLabel.TextSize = 16 TitleLabel.Parent = TitleBar local VersionLabel = Instance.new("TextLabel") VersionLabel.Size = UDim2.new(0, 60, 1, 0) VersionLabel.Position = UDim2.new(1, -76, 0, 0) VersionLabel.BackgroundTransparency = 1 VersionLabel.Text = "v1.0" VersionLabel.TextColor3 = Color3.fromRGB(80, 80, 80) VersionLabel.TextXAlignment = Enum.TextXAlignment.Right VersionLabel.Font = Enum.Font.Gotham VersionLabel.TextSize = 12 VersionLabel.Parent = TitleBar -- Close Button local CloseBtn = Instance.new("TextButton") CloseBtn.Size = UDim2.new(0, 30, 0, 30) CloseBtn.Position = UDim2.new(1, -37, 0, 7) CloseBtn.BackgroundColor3 = Color3.fromRGB(25, 25, 25) CloseBtn.Text = "X" CloseBtn.TextColor3 = Color3.fromRGB(120, 120, 120) CloseBtn.Font = Enum.Font.GothamBold CloseBtn.TextSize = 12 CloseBtn.BorderSizePixel = 0 CloseBtn.Parent = TitleBar local CBCorner = Instance.new("UICorner") CBCorner.CornerRadius = UDim.new(0, 6) CBCorner.Parent = CloseBtn -- Status Label local StatusLabel = Instance.new("TextLabel") StatusLabel.Size = UDim2.new(1, -32, 0, 20) StatusLabel.Position = UDim2.new(0, 16, 0, 56) StatusLabel.BackgroundTransparency = 1 StatusLabel.Text = "" StatusLabel.TextColor3 = Color3.fromRGB(80, 80, 80) StatusLabel.TextXAlignment = Enum.TextXAlignment.Left StatusLabel.Font = Enum.Font.Gotham StatusLabel.TextSize = 11 StatusLabel.Parent = Main -- Key Input Box local InputFrame = Instance.new("Frame") InputFrame.Size = UDim2.new(1, -32, 0, 42) InputFrame.Position = UDim2.new(0, 16, 0, 86) InputFrame.BackgroundColor3 = Color3.fromRGB(18, 18, 18) InputFrame.BorderSizePixel = 0 InputFrame.Parent = Main local IFCorner = Instance.new("UICorner") IFCorner.CornerRadius = UDim.new(0, 8) IFCorner.Parent = InputFrame local IFStroke = Instance.new("UIStroke") IFStroke.Color = Color3.fromRGB(35, 35, 35) IFStroke.Thickness = 1 IFStroke.Parent = InputFrame local KeyInput = Instance.new("TextBox") KeyInput.Size = UDim2.new(1, -16, 1, 0) KeyInput.Position = UDim2.new(0, 8, 0, 0) KeyInput.BackgroundTransparency = 1 KeyInput.Text = "" KeyInput.PlaceholderText = "SLIT-XXXXX-XXXXX-XXXXX-XXXXX" KeyInput.PlaceholderColor3 = Color3.fromRGB(50, 50, 50) KeyInput.TextColor3 = Color3.fromRGB(200, 200, 200) KeyInput.Font = Enum.Font.GothamMedium KeyInput.TextSize = 14 KeyInput.ClearTextOnFocus = false KeyInput.Parent = InputFrame -- Time Display local TimeLabel = Instance.new("TextLabel") TimeLabel.Size = UDim2.new(1, -32, 0, 18) TimeLabel.Position = UDim2.new(0, 16, 0, 138) TimeLabel.BackgroundTransparency = 1 TimeLabel.Text = "" TimeLabel.TextColor3 = Color3.fromRGB(50, 50, 50) TimeLabel.TextXAlignment = Enum.TextXAlignment.Left TimeLabel.Font = Enum.Font.Gotham TimeLabel.TextSize = 10 TimeLabel.Parent = Main -- Divider local Divider = Instance.new("Frame") Divider.Size = UDim2.new(1, -32, 0, 1) Divider.Position = UDim2.new(0, 16, 0, 168) Divider.BackgroundColor3 = Color3.fromRGB(30, 30, 30) Divider.BorderSizePixel = 0 Divider.Parent = Main -- Button Container local BtnContainer = Instance.new("Frame") BtnContainer.Size = UDim2.new(1, -32, 0, 44) BtnContainer.Position = UDim2.new(0, 16, 0, 182) BtnContainer.BackgroundTransparency = 1 BtnContainer.Parent = Main local BtnLayout = Instance.new("UIListLayout") BtnLayout.FillDirection = Enum.FillDirection.Horizontal BtnLayout.Padding = UDim.new(0, 12) BtnLayout.Parent = BtnContainer -- Submit Key Button local SubmitBtn = Instance.new("TextButton") SubmitBtn.Name = "Submit" SubmitBtn.Size = UDim2.new(0.5, -6, 1, 0) SubmitBtn.BackgroundColor3 = Color3.fromRGB(255, 255, 255) SubmitBtn.Text = "SUBMIT KEY" SubmitBtn.TextColor3 = Color3.fromRGB(0, 0, 0) SubmitBtn.Font = Enum.Font.GothamBold SubmitBtn.TextSize = 13 SubmitBtn.BorderSizePixel = 0 SubmitBtn.Parent = BtnContainer local SBCorner = Instance.new("UICorner") SBCorner.CornerRadius = UDim.new(0, 8) SBCorner.Parent = SubmitBtn -- Get Key Button local GetKeyBtn = Instance.new("TextButton") GetKeyBtn.Name = "GetKey" GetKeyBtn.Size = UDim2.new(0.5, -6, 1, 0) GetKeyBtn.BackgroundColor3 = Color3.fromRGB(25, 25, 25) GetKeyBtn.Text = "GET KEY" GetKeyBtn.TextColor3 = Color3.fromRGB(180, 180, 180) GetKeyBtn.Font = Enum.Font.GothamBold GetKeyBtn.TextSize = 13 GetKeyBtn.BorderSizePixel = 0 GetKeyBtn.Parent = BtnContainer local GKCorner = Instance.new("UICorner") GKCorner.CornerRadius = UDim.new(0, 8) GKCorner.Parent = GetKeyBtn local GKStroke = Instance.new("UIStroke") GKStroke.Color = Color3.fromRGB(50, 50, 50) GKStroke.Thickness = 1 GKStroke.Parent = GetKeyBtn -- Footer local Footer = Instance.new("TextLabel") Footer.Size = UDim2.new(1, -32, 0, 24) Footer.Position = UDim2.new(0, 16, 1, -34) Footer.BackgroundTransparency = 1 Footer.Text = "slitware.pages.dev" Footer.TextColor3 = Color3.fromRGB(35, 35, 35) Footer.Font = Enum.Font.Gotham Footer.TextSize = 10 Footer.Parent = Main -- ============================================================ -- DRAGGING -- ============================================================ local dragging, dragInput, dragStart, startPos TitleBar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = Main.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) TitleBar.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then dragInput = input end end) UserInputService.InputChanged:Connect(function(input) if input == dragInput and dragging then local delta = input.Position - dragStart Main.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end) -- ============================================================ -- ANIMATIONS -- ============================================================ local function tweenColor(obj, prop, color, duration) TweenService:Create(obj, TweenInfo.new(duration or 0.2), {[prop] = color}):Play() end local function flashStatus(msg, color) StatusLabel.Text = msg StatusLabel.TextColor3 = color or Color3.fromRGB(80, 80, 80) end -- Button hover effects for _, btn in {SubmitBtn, GetKeyBtn} do btn.MouseEnter:Connect(function() if btn.Name == "Submit" then tweenColor(btn, "BackgroundColor3", Color3.fromRGB(220, 220, 220)) else tweenColor(btn, "BackgroundColor3", Color3.fromRGB(35, 35, 35)) end end) btn.MouseLeave:Connect(function() if btn.Name == "Submit" then tweenColor(btn, "BackgroundColor3", Color3.fromRGB(255, 255, 255)) else tweenColor(btn, "BackgroundColor3", Color3.fromRGB(25, 25, 25)) end end) end -- ============================================================ -- KEY SYSTEM LOGIC -- ============================================================ local function validateKey(key) local ok, result = pcall(function() return HttpService:JSONDecode( game:HttpGet(API_BASE .. "/validate?key=" .. HttpService:UrlEncode(key) .. "&hwid=" .. HttpService:UrlEncode(HWID)) ) end) return ok and result or {valid = false, error = "Connection failed"} end SubmitBtn.MouseButton1Click:Connect(function() local key = KeyInput.Text:gsub("%s+", "") if key == "" then flashStatus("Enter a key first", Color3.fromRGB(255, 60, 60)) return end flashStatus("Validating...", Color3.fromRGB(120, 120, 120)) SubmitBtn.Text = "..." local result = validateKey(key) if result.valid then flashStatus("Key valid", Color3.fromRGB(60, 255, 60)) SubmitBtn.Text = "VALID" tweenColor(SubmitBtn, "BackgroundColor3", Color3.fromRGB(60, 255, 60)) tweenColor(SubmitBtn, "TextColor3", Color3.fromRGB(0, 0, 0)) local h = math.floor(result.expires_in / 3600) local m = math.floor((result.expires_in % 3600) / 60) TimeLabel.Text = "Expires in " .. h .. "h " .. m .. "m" TimeLabel.TextColor3 = Color3.fromRGB(60, 180, 60) wait(1.5) ScreenGui:Destroy() -- KEY VALIDATED: your script logic goes below else flashStatus(result.error or "Invalid key", Color3.fromRGB(255, 60, 60)) SubmitBtn.Text = "SUBMIT KEY" tweenColor(InputFrame, "BackgroundColor3", Color3.fromRGB(40, 10, 10)) wait(0.5) tweenColor(InputFrame, "BackgroundColor3", Color3.fromRGB(18, 18, 18)) end end) GetKeyBtn.MouseButton1Click:Connect(function() setclipboard("https://slitware.pages.dev/get-key") flashStatus("Link copied — open in browser", Color3.fromRGB(180, 180, 180)) end) CloseBtn.MouseButton1Click:Connect(function() ScreenGui:Destroy() end) -- ============================================================ -- INTRO ANIMATION -- ============================================================ Main.BackgroundTransparency = 1 for _, v in Main:GetDescendants() do if v:IsA("GuiObject") then if v:IsA("TextLabel") or v:IsA("TextButton") or v:IsA("TextBox") then v.TextTransparency = 1 end if not v:IsA("UICorner") and not v:IsA("UIStroke") and not v:IsA("UIListLayout") then v.BackgroundTransparency = 1 end end end task.wait(0.3) TweenService:Create(Main, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() task.wait(0.15) for _, v in Main:GetDescendants() do if v:IsA("GuiObject") and not v:IsA("UICorner") and not v:IsA("UIStroke") and not v:IsA("UIListLayout") then TweenService:Create(v, TweenInfo.new(0.3), {BackgroundTransparency = v == InputFrame and 0 or (v == Divider and 0 or (v:IsA("Frame") and (v == TitleBar and 0 or (v == BtnContainer and 1 or 0)) or 0))}):Play() end if v:IsA("TextLabel") or v:IsA("TextButton") or v:IsA("TextBox") then TweenService:Create(v, TweenInfo.new(0.3), {TextTransparency = 0}):Play() end end