local TweenService = game:GetService("TweenService") local UserInputService = game:GetService("UserInputService") local CoreGui = game:GetService("CoreGui") local HttpService = game:GetService("HttpService") local Players = game:GetService("Players") local RunService = game:GetService("RunService") local Workspace = game:GetService("Workspace") local LocalPlayer = Players.LocalPlayer local cfg = { api = "put your junkie api key here", service = "put your junkie service name here", provider = "put your junkie provider name here", discord = "https://work.ink/29FJ/first-step", logo = "rbxassetid://121595097202790", barColor = Color3.fromRGB(90,170,255), keyFile = "&R4_key2.txt" } local notifActive = {} local function createNotification(title,content,length,iconId) local screen = Instance.new("ScreenGui") screen.Name = "NotifGui" screen.ResetOnSpawn = false screen.DisplayOrder = 2147483647 screen.Parent = CoreGui local scale = math.clamp(math.min(workspace.CurrentCamera.ViewportSize.X,workspace.CurrentCamera.ViewportSize.Y)/1366,0.6,1.6) local w = math.clamp(320*scale,200,520) local h = math.clamp(72*scale,54,140) local main = Instance.new("Frame") main.Size = UDim2.new(0,w,0,h) main.Position = UDim2.new(1,-12,1,-12-h-16) main.AnchorPoint = Vector2.new(1,1) main.BackgroundTransparency = 0 main.BackgroundColor3 = Color3.fromRGB(20,40,70) main.BorderSizePixel = 0 main.Parent = screen local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0,10) corner.Parent = main local bar = Instance.new("Frame") bar.Size = UDim2.new(1,0,0,4) bar.Position = UDim2.new(0,0,1,-4) bar.BackgroundColor3 = cfg.barColor bar.BorderSizePixel = 0 bar.ClipsDescendants = true bar.Parent = main local barCorner = Instance.new("UICorner") barCorner.CornerRadius = UDim.new(0,2) barCorner.Parent = bar local fill = Instance.new("Frame") fill.Size = UDim2.new(1,0,1,0) fill.Position = UDim2.new(0,0,0,0) fill.BackgroundColor3 = cfg.barColor fill.BorderSizePixel = 0 fill.Parent = bar local icon = Instance.new("ImageLabel") icon.Size = UDim2.new(0,h,1,0) icon.Position = UDim2.new(0,0,0,0) icon.BackgroundTransparency = 1 icon.Image = iconId or cfg.logo icon.ImageColor3 = cfg.barColor icon.ScaleType = Enum.ScaleType.Stretch icon.Parent = main local txt = Instance.new("TextLabel") txt.BackgroundTransparency = 1 txt.Size = UDim2.new(1,-h-8,0.4,0) txt.Position = UDim2.new(0,h+8,0,0) txt.Font = Enum.Font.Code txt.TextSize = math.clamp(14*scale,12,20) txt.TextXAlignment = Enum.TextXAlignment.Left txt.TextYAlignment = Enum.TextYAlignment.Top txt.TextColor3 = Color3.new(1,1,1) txt.Text = title txt.Parent = main local sub = Instance.new("TextLabel") sub.BackgroundTransparency = 1 sub.Size = UDim2.new(1,-h-8,0.5,0) sub.Position = UDim2.new(0,h+8,0.4,0) sub.Font = Enum.Font.Code sub.TextSize = math.clamp(12*scale,10,16) sub.TextXAlignment = Enum.TextXAlignment.Left sub.TextYAlignment = Enum.TextYAlignment.Top sub.TextColor3 = Color3.fromRGB(200,200,200) sub.Text = content sub.TextWrapped = true sub.Parent = main local id = tostring(math.floor(tick()*1000)).."-"..HttpService:GenerateGUID(false) table.insert(notifActive,{id=id,frame=main,sizeY=h}) local function restack() local spacing = 8*scale local yoff = 0 for i = #notifActive,1,-1 do local node = notifActive[i] if node and node.frame and node.frame.Parent then local target = -12-yoff-node.sizeY TweenService:Create(node.frame,TweenInfo.new(0.25,Enum.EasingStyle.Quad,Enum.EasingDirection.Out),{Position=UDim2.new(1,-12,1,target)}):Play() yoff = yoff+node.sizeY+spacing end end end restack() local function destroy() for i = 1,#notifActive do if notifActive[i].id == id then table.remove(notifActive,i) break end end TweenService:Create(main,TweenInfo.new(0.35,Enum.EasingStyle.Quad,Enum.EasingDirection.In),{Position=UDim2.new(1,16,main.Position.Y.Scale,main.Position.Y.Offset),BackgroundTransparency=1}):Play() TweenService:Create(txt,TweenInfo.new(0.35),{TextTransparency=1}):Play() TweenService:Create(sub,TweenInfo.new(0.35),{TextTransparency=1}):Play() TweenService:Create(icon,TweenInfo.new(0.35),{ImageTransparency=1}):Play() task.wait(0.35) pcall(function() main:Destroy() end) restack() end if length and length > 0 then TweenService:Create(fill,TweenInfo.new(length,Enum.EasingStyle.Linear,Enum.EasingDirection.Out),{Size=UDim2.new(0,0,1,0)}):Play() task.delay(length,destroy) end local btn = Instance.new("TextButton") btn.Size = UDim2.new(1,0,1,0) btn.BackgroundTransparency = 1 btn.Text = "" btn.ZIndex = 10 btn.Parent = main btn.MouseButton1Click:Connect(destroy) return {Close=destroy} end local function saveKey(key) if writefile then pcall(function() writefile(cfg.keyFile,key) end) end end local function loadKey() if readfile then local ok,data = pcall(function() return readfile(cfg.keyFile) end) if ok then return data end end return "" end local function buildUI() local Part1 = {} local Part2 = {} local Part3 = {} Part1.Screen = Instance.new("ScreenGui") Part1.Screen.Name = "&R4 Tuff" Part1.Screen.ZIndexBehavior = Enum.ZIndexBehavior.Global Part1.Screen.ResetOnSpawn = false Part1.Screen.IgnoreGuiInset = true Part1.Screen.Parent = CoreGui Part1.Main = Instance.new("Frame") Part1.Main.Name = "Main" Part1.Main.Size = UDim2.new(0,370,0,200) Part1.Main.Position = UDim2.new(0.5,0,0.5,0) Part1.Main.AnchorPoint = Vector2.new(0.5,0.5) Part1.Main.BackgroundColor3 = Color3.fromRGB(20,30,50) Part1.Main.BackgroundTransparency = 0 Part1.Main.BorderSizePixel = 0 Part1.Main.ClipsDescendants = false Part1.Main.Parent = Part1.Screen Part1.Corner = Instance.new("UICorner") Part1.Corner.CornerRadius = UDim.new(0,10) Part1.Corner.Parent = Part1.Main Part2.Top = Instance.new("Frame") Part2.Top.Name = "Top" Part2.Top.Size = UDim2.new(1,0,0,35) Part2.Top.Position = UDim2.new(0,0,0,0) Part2.Top.BackgroundColor3 = Color3.fromRGB(30,60,100) Part2.Top.BorderSizePixel = 0 Part2.Top.Parent = Part1.Main Part2.TopCorner = Instance.new("UICorner") Part2.TopCorner.CornerRadius = UDim.new(0,10) Part2.TopCorner.Parent = Part2.Top Part2.TopCover = Instance.new("Frame") Part2.TopCover.Name = "TopCover" Part2.TopCover.Size = UDim2.new(1,0,0,20) Part2.TopCover.Position = UDim2.new(0,0,1,-20) Part2.TopCover.BackgroundColor3 = Color3.fromRGB(30,60,100) Part2.TopCover.BorderSizePixel = 0 Part2.TopCover.Parent = Part2.Top Part2.Line = Instance.new("Frame") Part2.Line.Name = "Line" Part2.Line.Size = UDim2.new(1,0,0,1) Part2.Line.Position = UDim2.new(0,0,1,0) Part2.Line.BackgroundColor3 = Color3.fromRGB(25,50,90) Part2.Line.BorderSizePixel = 0 Part2.Line.Parent = Part2.Top Part2.Logo = Instance.new("ImageLabel") Part2.Logo.Name = "Logo" Part2.Logo.Size = UDim2.new(0,20,0,20) Part2.Logo.Position = UDim2.new(0,10,0,7) Part2.Logo.BackgroundTransparency = 1 Part2.Logo.Image = cfg.logo Part2.Logo.ImageColor3 = cfg.barColor Part2.Logo.Parent = Part2.Top Part2.Title = Instance.new("TextLabel") Part2.Title.Name = "Title" Part2.Title.Size = UDim2.new(0,100,0,35) Part2.Title.Position = UDim2.new(0,35,0,0) Part2.Title.BackgroundTransparency = 1 Part2.Title.Text = "&R4 Hideout" Part2.Title.TextColor3 = Color3.fromRGB(200,230,255) Part2.Title.TextSize = 18 Part2.Title.Font = Enum.Font.GothamBold Part2.Title.TextXAlignment = Enum.TextXAlignment.Left Part2.Title.Parent = Part2.Top Part2.Close = Instance.new("ImageButton") Part2.Close.Name = "Close" Part2.Close.Size = UDim2.new(0,20,0,20) Part2.Close.Position = UDim2.new(1,-10,0.5,0) Part2.Close.AnchorPoint = Vector2.new(1,0.5) Part2.Close.BackgroundTransparency = 1 Part2.Close.Image = "rbxassetid://122931434733842" Part2.Close.ImageColor3 = Color3.fromRGB(200,230,255) Part2.Close.ScaleType = Enum.ScaleType.Fit Part2.Close.Parent = Part2.Top Part3.Input = Instance.new("Frame") Part3.Input.Name = "Input" Part3.Input.Size = UDim2.new(0.9,0,0,35) Part3.Input.Position = UDim2.new(0.5,0,0,60) Part3.Input.AnchorPoint = Vector2.new(0.5,0) Part3.Input.BackgroundColor3 = Color3.fromRGB(15,35,65) Part3.Input.BackgroundTransparency = 0.3 Part3.Input.BorderSizePixel = 0 Part3.Input.Parent = Part1.Main Part3.InputStroke = Instance.new("UIStroke") Part3.InputStroke.Color = cfg.barColor Part3.InputStroke.Thickness = 1 Part3.InputStroke.Transparency = 0.5 Part3.InputStroke.Parent = Part3.Input Part3.InputCorner = Instance.new("UICorner") Part3.InputCorner.CornerRadius = UDim.new(0,6) Part3.InputCorner.Parent = Part3.Input Part3.Box = Instance.new("TextBox") Part3.Box.Name = "Box" Part3.Box.Size = UDim2.new(0.9,0,1,0) Part3.Box.Position = UDim2.new(0.5,0,0.5,0) Part3.Box.AnchorPoint = Vector2.new(0.5,0.5) Part3.Box.BackgroundTransparency = 1 Part3.Box.Text = loadKey() Part3.Box.TextColor3 = Color3.fromRGB(200,230,255) Part3.Box.PlaceholderText = "00000000-0000-0000-0000-000000000000" Part3.Box.PlaceholderColor3 = Color3.fromRGB(100,120,150) Part3.Box.TextSize = 14 Part3.Box.Font = Enum.Font.Gotham Part3.Box.ClearTextOnFocus = false Part3.Box.Parent = Part3.Input Part3.Buttons = Instance.new("Frame") Part3.Buttons.Name = "Buttons" Part3.Buttons.Size = UDim2.new(0.9,0,0,30) Part3.Buttons.Position = UDim2.new(0.5,0,1,-40) Part3.Buttons.AnchorPoint = Vector2.new(0.5,1) Part3.Buttons.BackgroundTransparency = 1 Part3.Buttons.Parent = Part1.Main local btnColor = Color3.fromRGB(30,80,150) Part3.GetKey = Instance.new("TextButton") Part3.GetKey.Name = "GetKey" Part3.GetKey.Size = UDim2.new(0.45,-4,1,0) Part3.GetKey.Position = UDim2.new(0.25,0,0,0) Part3.GetKey.AnchorPoint = Vector2.new(0.5,0) Part3.GetKey.BackgroundColor3 = btnColor Part3.GetKey.BorderSizePixel = 0 Part3.GetKey.Text = "" Part3.GetKey.AutoButtonColor = false Part3.GetKey.Parent = Part3.Buttons local getKeyIco = Instance.new("ImageLabel") getKeyIco.Size = UDim2.new(0,16,0,16) getKeyIco.Position = UDim2.new(0.5,-20,0.5,0) getKeyIco.AnchorPoint = Vector2.new(0.5,0.5) getKeyIco.BackgroundTransparency = 1 getKeyIco.Image = "rbxassetid://96510194465420" getKeyIco.ImageColor3 = Color3.new(1,1,1) getKeyIco.Parent = Part3.GetKey local getKeyTxt = Instance.new("TextLabel") getKeyTxt.Size = UDim2.new(1,0,1,0) getKeyTxt.Position = UDim2.new(0.5,8,0,0) getKeyTxt.AnchorPoint = Vector2.new(0.5,0) getKeyTxt.BackgroundTransparency = 1 getKeyTxt.Text = "Get Key" getKeyTxt.TextColor3 = Color3.new(1,1,1) getKeyTxt.TextSize = 12 getKeyTxt.Font = Enum.Font.GothamBold getKeyTxt.Parent = Part3.GetKey Part3.GetKeyCorner = Instance.new("UICorner") Part3.GetKeyCorner.CornerRadius = UDim.new(0,8) Part3.GetKeyCorner.Parent = Part3.GetKey Part3.Verify = Instance.new("TextButton") Part3.Verify.Name = "Verify" Part3.Verify.Size = UDim2.new(0.45,-4,1,0) Part3.Verify.Position = UDim2.new(0.75,0,0,0) Part3.Verify.AnchorPoint = Vector2.new(0.5,0) Part3.Verify.BackgroundColor3 = btnColor Part3.Verify.BorderSizePixel = 0 Part3.Verify.Text = "" Part3.Verify.AutoButtonColor = false Part3.Verify.Parent = Part3.Buttons local verifyIco = Instance.new("ImageLabel") verifyIco.Size = UDim2.new(0,16,0,16) verifyIco.Position = UDim2.new(0.5,-20,0.5,0) verifyIco.AnchorPoint = Vector2.new(0.5,0.5) verifyIco.BackgroundTransparency = 1 verifyIco.Image = "rbxassetid://87354736164608" verifyIco.ImageColor3 = Color3.new(1,1,1) verifyIco.Parent = Part3.Verify local verifyTxt = Instance.new("TextLabel") verifyTxt.Size = UDim2.new(1,0,1,0) verifyTxt.Position = UDim2.new(0.5,8,0,0) verifyTxt.AnchorPoint = Vector2.new(0.5,0) verifyTxt.BackgroundTransparency = 1 verifyTxt.Text = "Verify" verifyTxt.TextColor3 = Color3.new(1,1,1) verifyTxt.TextSize = 12 verifyTxt.Font = Enum.Font.GothamBold verifyTxt.Parent = Part3.Verify Part3.VerifyCorner = Instance.new("UICorner") Part3.VerifyCorner.CornerRadius = UDim.new(0,8) Part3.VerifyCorner.Parent = Part3.Verify return { gui = Part1.Screen, main = Part1.Main, box = Part3.Box, verify = Part3.Verify, getKey = Part3.GetKey, close = Part2.Close, top = Part2.Top } end local function drag(ui) local dragInput,dragStart,startPos ui.top.InputBegan:Connect(function(inp) if inp.UserInputType == Enum.UserInputType.MouseButton1 then dragInput = inp dragStart = inp.Position startPos = ui.main.Position inp.Changed:Connect(function() if inp.UserInputState == Enum.UserInputState.End then dragInput = nil end end) end end) UserInputService.InputChanged:Connect(function(inp) if inp == dragInput and inp.UserInputType == Enum.UserInputType.MouseMovement then local delta = inp.Position - dragStart ui.main.Position = UDim2.new(startPos.X.Scale,startPos.X.Offset+delta.X,startPos.Y.Scale,startPos.Y.Offset+delta.Y) end end) end local function pulse(btn) local orig = btn.BackgroundColor3 local pop = Color3.new(math.min(orig.R*1.3,1),math.min(orig.G*1.3,1),math.min(orig.B*1.3,1)) TweenService:Create(btn,TweenInfo.new(0.15),{BackgroundColor3=pop}):Play() task.wait(0.15) TweenService:Create(btn,TweenInfo.new(0.25,Enum.EasingStyle.Back,Enum.EasingDirection.Out),{BackgroundColor3=orig}):Play() end local function loadScript() print("hi") end local function main() if getgenv().JunkieUILoaded then return end getgenv().JunkieUILoaded = true local ui = buildUI() drag(ui) local function validate() local key = ui.box.Text:gsub("%s+","") if key == "" then createNotification("Key Required","Please enter a key to continue.",3,"rbxassetid://82094603330968") return end createNotification("Checking...","Validating your key, please wait.",2,"rbxassetid://92630967969808") local success, sdk = pcall(function() return loadstring(game:HttpGet("https://junkie-development.de/sdk/JunkieKeySystem.lua"))() end) if not success then createNotification("Error", "Failed to load SDK. Please try again.", 3, "rbxassetid://78733624425654") return end local ok = sdk.verifyKey(cfg.api, key, cfg.service) if ok then saveKey(key) createNotification("Success!", "Key verified. Loading script...", 3, "rbxassetid://87094841427580") TweenService:Create(ui.main, TweenInfo.new(0.4, Enum.EasingStyle.Quad, Enum.EasingDirection.In), { Position = UDim2.new(0.5, 0, -0.5, 0), BackgroundTransparency = 1 }):Play() task.wait(0.4) ui.gui:Destroy() loadScript() else createNotification("Invalid Key", "The key you entered is incorrect.", 3, "rbxassetid://78733624425654") end end ui.verify.MouseButton1Click:Connect(function() pulse(ui.verify) validate() end) ui.box.FocusLost:Connect(function(enter) if enter then validate() end end) ui.getKey.MouseButton1Click:Connect(function() pulse(ui.getKey) createNotification("Getting Key...", "Generating your key link...", 2, "rbxassetid://83281479437771") local success, sdk = pcall(function() return loadstring(game:HttpGet("https://junkie-development.de/sdk/JunkieKeySystem.lua"))() end) if success then local link = sdk.getLink(cfg.api, cfg.provider, cfg.service) if link and setclipboard then setclipboard(link) createNotification("Link Copied", "Get-key link has been copied to clipboard.", 3, "rbxassetid://128463727794542") else createNotification("Failed", "Could not generate get-key link.", 3, "rbxassetid://78733624425654") end else createNotification("Error", "Failed to load SDK. Please try again.", 3, "rbxassetid://78733624425654") end end) ui.close.MouseButton1Click:Connect(function() createNotification("Closing...", "See you next time!", 2, "rbxassetid://116998807311805") TweenService:Create(ui.main, TweenInfo.new(0.4, Enum.EasingStyle.Quad, Enum.EasingDirection.In), { Position = UDim2.new(0.5, 0, -0.5, 0), BackgroundTransparency = 1 }):Play() task.wait(0.4) ui.gui:Destroy() end) ui.box.Focused:Connect(function() TweenService:Create(ui.box.Parent, TweenInfo.new(0.2), {BackgroundTransparency = 0}):Play() end) ui.box.FocusLost:Connect(function() TweenService:Create(ui.box.Parent, TweenInfo.new(0.2), {BackgroundTransparency = 0.3}):Play() end) for _,btn in ipairs({ui.verify, ui.getKey}) do btn.MouseEnter:Connect(function() local orig = btn.BackgroundColor3 local bright = Color3.new(math.min(orig.R*1.15,1), math.min(orig.G*1.15,1), math.min(orig.B*1.15,1)) TweenService:Create(btn, TweenInfo.new(0.2), {BackgroundColor3 = bright}):Play() end) btn.MouseLeave:Connect(function() local orig = btn.BackgroundColor3 local dim = Color3.new(orig.R/1.15, orig.G/1.15, orig.B/1.15) TweenService:Create(btn, TweenInfo.new(0.2), {BackgroundColor3 = dim}):Play() end) end end main()