local uiName = "tradelinkv1_Official" local old = game:GetService("CoreGui"):FindFirstChild(uiName) or game:GetService("Players").LocalPlayer.PlayerGui:FindFirstChild(uiName) if old then old:Destroy() end local Players = game:GetService("Players") local ReplicatedStorage = game:GetService("ReplicatedStorage") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local lp = Players.LocalPlayer local char = lp.Character or lp.CharacterAdded:Wait() local hum = char:WaitForChild("Humanoid") local hrp = char:WaitForChild("HumanoidRootPart") local savedData = {} local ghostFolder = workspace:FindFirstChild("MirrorFolder_v33") or Instance.new("Folder", workspace) ghostFolder.Name = "MirrorFolder_v33" local currentLayer, sortedLayers = 1, {} local isFast, isLagging = false, false local jetpackTemplate = ReplicatedStorage:WaitForChild("Jetpack") local upPressed, downPressed = false, false local maxFlySpeed = 25 local verticalVel = 0 local easing = 0.1 local jetpackActive = false local bv local scriptEnabled = false local jetpackClone, jetpackScript, partsModel, idleTrack local fireParts = {} local animator = hum:FindFirstChildWhichIsA("Animator") or Instance.new("Animator", hum) local startHeight = 10 local stopHeight = 4 local rayParams = RaycastParams.new() rayParams.FilterType = Enum.RaycastFilterType.Blacklist rayParams.FilterDescendantsInstances = {char} local sg = Instance.new("ScreenGui", game:GetService("CoreGui")) sg.Name = uiName local Main = Instance.new("Frame", sg) Main.Size = UDim2.new(0, 180, 0, 470) -- Increased height for Discord button Main.Position = UDim2.new(0.05, 0, 0.2, 0) Main.BackgroundColor3 = Color3.fromRGB(20, 20, 25) Main.Active, Main.Draggable = true, true local Title = Instance.new("TextLabel", Main) Title.Size = UDim2.new(1, 0, 0, 30) Title.Text = "made by tradelinkv1" Title.TextColor3 = Color3.new(1, 1, 1) Title.BackgroundTransparency = 1 Title.Font = Enum.Font.SourceSansBold Title.TextSize = 14 local function createBtn(text, y, color) local b = Instance.new("TextButton", Main) b.Size = UDim2.new(0.9, 0, 0, 30) b.Position = UDim2.new(0.05, 0, 0, y + 30) b.Text, b.BackgroundColor3 = text, color b.TextColor3, b.Font, b.TextSize = Color3.new(1, 1, 1), Enum.Font.SourceSansBold, 12 return b end local scanBtn = createBtn("1. SCAN BUILD", 10, Color3.fromRGB(0, 120, 0)) local uncopyBtn = createBtn("UNCOPY (RESET)", 45, Color3.fromRGB(80, 80, 0)) local showBtn = createBtn("2. SHOW ALL (PASTE)", 85, Color3.fromRGB(0, 100, 200)) local unpasteBtn = createBtn("UNPASTE (CLEAR)", 120, Color3.fromRGB(150, 50, 0)) local upBtn = createBtn("LAYER (+)", 160, Color3.fromRGB(60, 60, 60)) local downBtn = createBtn("LAYER (-)", 195, Color3.fromRGB(60, 60, 60)) local jetBtn = createBtn("JETPACK: OFF", 235, Color3.fromRGB(0, 150, 150)) local speedBtn = createBtn("SPEED: 16", 270, Color3.fromRGB(150, 150, 0)) local lagBtn = createBtn("LAG SERVER: OFF", 305, Color3.fromRGB(180, 0, 0)) local dcBtn = createBtn("JOIN DISCORD", 345, Color3.fromRGB(88, 101, 242)) -- Discord Blurple local killBtn = createBtn("UNLOAD SCRIPT", 405, Color3.fromRGB(100, 0, 0)) local ShoutOut = Instance.new("TextLabel", sg) ShoutOut.Size = UDim2.new(0, 250, 0, 40) ShoutOut.Position = UDim2.new(0.5, -125, 0.85, 0) ShoutOut.Visible = false ShoutOut.BackgroundColor3 = Color3.fromRGB(30, 30, 35) ShoutOut.TextColor3 = Color3.fromRGB(0, 255, 150) ShoutOut.Font = Enum.Font.Code ShoutOut.Text = "Jetpack made by brotabrr" ShoutOut.BorderSizePixel = 0 local function notify(txt) ShoutOut.Text = txt ShoutOut.Visible = true task.wait(5) ShoutOut.Visible = false end dcBtn.MouseButton1Click:Connect(function() setclipboard("https://discord.gg/rUp5BRBTHD") task.spawn(function() notify("Link copied to clipboard!") end) end) local function spawnJetpack() jetpackClone = jetpackTemplate:Clone() jetpackClone.Parent = workspace jetpackScript = jetpackClone:FindFirstChildWhichIsA("Script") partsModel = jetpackScript:FindFirstChild("Jetpack") for _, part in ipairs(partsModel:GetDescendants()) do if part:IsA("BasePart") then part.Transparency, part.CanCollide, part.Anchored = 0, false, false end end partsModel.PrimaryPart = partsModel.PrimaryPart or partsModel:FindFirstChildWhichIsA("BasePart") partsModel:SetPrimaryPartCFrame(hrp.CFrame * CFrame.new(0, 0.2, 0.7)) local weld = Instance.new("WeldConstraint") weld.Part0, weld.Part1, weld.Parent = hrp, partsModel.PrimaryPart, partsModel.PrimaryPart local idleAnim = hum.RigType == Enum.HumanoidRigType.R6 and jetpackScript:FindFirstChild("Idle") or jetpackScript:FindFirstChild("IdleR15") if idleAnim then idleTrack = animator:LoadAnimation(idleAnim) end fireParts = {} for _, fp in ipairs(jetpackScript:GetDescendants()) do if fp.Name == "FirePart" then table.insert(fireParts, fp) end end end local function toggleFire(state) for _, fp in ipairs(fireParts) do for _, child in ipairs(fp:GetDescendants()) do if child:IsA("ParticleEmitter") or child:IsA("Light") then child.Enabled = state end end end end local function toggleJetpack() scriptEnabled = not scriptEnabled jetBtn.Text = scriptEnabled and "JETPACK: ON" or "JETPACK: OFF" if not scriptEnabled then if idleTrack then idleTrack:Stop() end if jetpackClone then jetpackClone:Destroy() end if bv then bv:Destroy() end jetpackClone, bv, idleTrack, verticalVel = nil, nil, nil, 0 else task.spawn(function() notify("Jetpack made by brotabrr") end) spawnJetpack() end end jetBtn.MouseButton1Click:Connect(toggleJetpack) scanBtn.MouseButton1Click:Connect(function() local p = nil for _, v in pairs(workspace:GetDescendants()) do if v:IsA("BasePart") and (v.Name == "Plot" or v.Size.X > 40) and (v.Position - hrp.Position).Magnitude < 100 then p = v; break end end if not p then scanBtn.Text = "NO PLOT FOUND"; return end savedData, sortedLayers = {}, {} local layers = {} for _, v in pairs(workspace:GetDescendants()) do if v:IsA("BasePart") and not v:IsDescendantOf(ghostFolder) then local isPlayerPart = false for _, player in pairs(Players:GetPlayers()) do if player.Character and v:IsDescendantOf(player.Character) then isPlayerPart = true; break end end if not isPlayerPart then local rel = p.CFrame:PointToObjectSpace(v.Position) if math.abs(rel.X) < (p.Size.X/2) and math.abs(rel.Z) < (p.Size.Z/2) then local snap = math.floor(rel.Y + 0.5) table.insert(savedData, {Obj = v, CF = p.CFrame:ToObjectSpace(v.CFrame), Layer = snap, Color = v.Color}) layers[snap] = true end end end end for h in pairs(layers) do table.insert(sortedLayers, h) end table.sort(sortedLayers) scanBtn.Text = "SCANNED: "..#savedData end) local function draw(all) ghostFolder:ClearAllChildren() local p = nil for _, v in pairs(workspace:GetDescendants()) do if v:IsA("BasePart") and (v.Name == "Plot" or v.Size.X > 40) and (v.Position - hrp.Position).Magnitude < 100 then p = v; break end end if not p then return end for _, d in pairs(savedData) do if all or (sortedLayers[currentLayer] and d.Layer == sortedLayers[currentLayer]) then local g = d.Obj:Clone() if g:IsA("BasePart") then g.Anchored, g.CanCollide, g.CanQuery = true, false, false g.CFrame, g.Color = p.CFrame:ToWorldSpace(d.CF), d.Color local m = g:FindFirstChildOfClass("SpecialMesh") or g:FindFirstChildOfClass("MeshPart") g.Transparency = m and 1 or 0.6 g.Parent = ghostFolder end end end end RunService.RenderStepped:Connect(function() if not scriptEnabled or not partsModel then return end local origin = hrp.Position local groundRay = workspace:Raycast(origin, Vector3.new(0, -2, 0), rayParams) local longRay = workspace:Raycast(origin, Vector3.new(0, -1000, 0), rayParams) local distToGround = longRay and (origin.Y - longRay.Position.Y) or math.huge if distToGround > startHeight and not groundRay then jetpackActive = true elseif distToGround <= stopHeight or groundRay then jetpackActive = false end if jetpackActive then if not bv then bv = Instance.new("BodyVelocity", hrp) bv.MaxForce, bv.P = Vector3.new(0, math.huge, 0), 1250 end if idleTrack and not idleTrack.IsPlaying then idleTrack:Play() end toggleFire(true) local targetVel = upPressed and maxFlySpeed or (downPressed and -maxFlySpeed or 0) verticalVel = verticalVel + (targetVel - verticalVel) * easing bv.Velocity = Vector3.new(0, verticalVel, 0) else if bv then bv:Destroy() bv = nil end if idleTrack and idleTrack.IsPlaying then idleTrack:Stop() end toggleFire(false) verticalVel = 0 end end) UserInputService.InputBegan:Connect(function(i, processed) if processed then return end if i.KeyCode == Enum.KeyCode.E then upPressed = true end if i.KeyCode == Enum.KeyCode.Q then downPressed = true end if i.KeyCode == Enum.KeyCode.T then toggleJetpack() end end) UserInputService.InputEnded:Connect(function(i) if i.KeyCode == Enum.KeyCode.E then upPressed = false end if i.KeyCode == Enum.KeyCode.Q then downPressed = false end end) lagBtn.MouseButton1Click:Connect(function() isLagging = not isLagging lagBtn.Text = isLagging and "LAGGING..." or "LAG SERVER: OFF" task.spawn(function() while isLagging do for i = 1, 300 do local part = Instance.new("Part", workspace) part.Size, part.Position = Vector3.new(0.1,0.1,0.1), hrp.Position + Vector3.new(0,20,0) game:GetService("Debris"):AddItem(part, 0.1) end task.wait(0.05) end end) end) speedBtn.MouseButton1Click:Connect(function() isFast = not isFast hum.WalkSpeed = isFast and 100 or 16 speedBtn.Text = isFast and "SPEED: 100" or "SPEED: 16" end) showBtn.MouseButton1Click:Connect(function() draw(true) end) upBtn.MouseButton1Click:Connect(function() if currentLayer < #sortedLayers then currentLayer = currentLayer+1 draw(false) end end) downBtn.MouseButton1Click:Connect(function() if currentLayer > 1 then currentLayer = currentLayer-1 draw(false) end end) unpasteBtn.MouseButton1Click:Connect(function() ghostFolder:ClearAllChildren() end) uncopyBtn.MouseButton1Click:Connect(function() savedData = {} scanBtn.Text = "1. SCAN BUILD" end) killBtn.MouseButton1Click:Connect(function() scriptEnabled, isLagging = false, false if jetpackClone then jetpackClone:Destroy() end if bv then bv:Destroy() end hum.WalkSpeed = 16; sg:Destroy(); ghostFolder:Destroy() end)