-- ═══════════════════════════════════════════════════════════════ -- Desync GUI v1.0 -- Server-client desync: walk around invisibly, toggle off = TP to visual pos -- ═══════════════════════════════════════════════════════════════ local Players = game:GetService("Players") local RunService = game:GetService("RunService") local TweenService = game:GetService("TweenService") local UserInputService = game:GetService("UserInputService") local LocalPlayer = Players.LocalPlayer local PlayerGui = LocalPlayer:WaitForChild("PlayerGui") -- ═══════════════════════════════════════════════════════════════ -- State -- ═══════════════════════════════════════════════════════════════ local desyncActive = false local speedBoosted = false local defaultSpeed = 16 local currentSpeed = 16 local invisSeat = nil local invisWeld = nil local savedCFrame = nil local desyncLoop = nil local hiddenPos = nil -- set dynamically to above current position -- ═══════════════════════════════════════════════════════════════ -- Colors -- ═══════════════════════════════════════════════════════════════ local C = { Bg = Color3.fromRGB(12, 12, 16), Surface = Color3.fromRGB(22, 22, 28), SurfaceMid = Color3.fromRGB(30, 30, 38), SurfaceLt = Color3.fromRGB(40, 40, 50), SurfaceHover= Color3.fromRGB(50, 50, 60), Border = Color3.fromRGB(45, 45, 55), Accent = Color3.fromRGB(120, 80, 255), AccentDim = Color3.fromRGB(90, 55, 200), AccentGlow = Color3.fromRGB(160, 120, 255), Green = Color3.fromRGB(50, 205, 120), GreenDim = Color3.fromRGB(35, 160, 90), Red = Color3.fromRGB(255, 70, 70), RedDim = Color3.fromRGB(200, 50, 50), Yellow = Color3.fromRGB(255, 200, 50), Text = Color3.fromRGB(210, 210, 220), TextBright = Color3.fromRGB(255, 255, 255), TextDim = Color3.fromRGB(130, 130, 150), TextMuted = Color3.fromRGB(85, 85, 100), White = Color3.fromRGB(255, 255, 255), } -- ═══════════════════════════════════════════════════════════════ -- Utility -- ═══════════════════════════════════════════════════════════════ local function Create(class, props) local inst = Instance.new(class) for k, v in pairs(props or {}) do if k ~= "Parent" and k ~= "Children" then inst[k] = v end end if props and props.Parent then inst.Parent = props.Parent end if props and props.Children then for _, child in ipairs(props.Children) do child.Parent = inst end end return inst end local function AddCorner(parent, radius) local c = Instance.new("UICorner") c.CornerRadius = UDim.new(0, radius or 6) c.Parent = parent return c end local function AddStroke(parent, color, thickness, transparency) local s = Instance.new("UIStroke") s.Color = color or C.Border s.Thickness = thickness or 1 s.Transparency = transparency or 0.5 s.Parent = parent return s end local function AddPadding(parent, l, t, r, b) local p = Instance.new("UIPadding") p.PaddingLeft = UDim.new(0, l or 0) p.PaddingTop = UDim.new(0, t or 0) p.PaddingRight = UDim.new(0, r or 0) p.PaddingBottom = UDim.new(0, b or 0) p.Parent = parent return p end local function Smooth(inst, props, dur) return TweenService:Create(inst, TweenInfo.new(dur or 0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), props) end local function Spring(inst, props, dur) return TweenService:Create(inst, TweenInfo.new(dur or 0.4, Enum.EasingStyle.Back, Enum.EasingDirection.Out), props) end local function Quick(inst, props) return TweenService:Create(inst, TweenInfo.new(0.1, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), props) end local function PlaySound(id, vol, pitch) pcall(function() local s = Instance.new("Sound") s.SoundId = "rbxassetid://" .. tostring(id) s.Volume = vol or 0.2 s.PlaybackSpeed = pitch or 1 s.Parent = PlayerGui s:Play() s.Ended:Connect(function() s:Destroy() end) task.delay(3, function() if s and s.Parent then s:Destroy() end end) end) end -- ═══════════════════════════════════════════════════════════════ -- Notification -- ═══════════════════════════════════════════════════════════════ local notifContainer = Create("ScreenGui", { Name = "Desync_Notifs", ResetOnSpawn = false, ZIndexBehavior = Enum.ZIndexBehavior.Sibling, Parent = PlayerGui, }) Create("UIListLayout", { SortOrder = Enum.SortOrder.LayoutOrder, Padding = UDim.new(0, 4), VerticalAlignment = Enum.VerticalAlignment.Top, HorizontalAlignment = Enum.HorizontalAlignment.Right, Parent = notifContainer, }) local np = Instance.new("UIPadding") np.PaddingTop = UDim.new(0, 10) np.PaddingRight = UDim.new(0, 10) np.Parent = notifContainer local function Notify(text, notifType) PlaySound(6895079853, 0.15, 1.1) local types = { success = C.Green, error = C.Red, info = C.Accent, warning = C.Yellow, } local col = types[notifType] or types.info local notif = Create("Frame", { BackgroundColor3 = C.Surface, BackgroundTransparency = 0.05, Size = UDim2.new(0, 240, 0, 34), BorderSizePixel = 0, Position = UDim2.new(1.5, 0, 0, 0), Parent = notifContainer, }) AddCorner(notif, 6) AddStroke(notif, C.Border, 1, 0.6) Create("Frame", { BackgroundColor3 = col, Size = UDim2.new(0, 3, 1, 0), BorderSizePixel = 0, Parent = notif, }) Create("TextLabel", { Text = text, Font = Enum.Font.GothamBold, TextSize = 11, TextColor3 = C.Text, TextXAlignment = Enum.TextXAlignment.Left, BackgroundTransparency = 1, Size = UDim2.new(1, -18, 1, 0), Position = UDim2.new(0, 12, 0, 0), TextTruncate = Enum.TextTruncate.AtEnd, Parent = notif, }) Spring(notif, { Position = UDim2.new(1, 0, 0, 0) }, 0.4):Play() task.delay(3, function() if notif and notif.Parent then Smooth(notif, { Position = UDim2.new(1.5, 0, 0, 0), BackgroundTransparency = 1 }, 0.25):Play() task.delay(0.3, function() if notif and notif.Parent then notif:Destroy() end end) end end) end -- ═══════════════════════════════════════════════════════════════ -- Desync Logic -- ═══════════════════════════════════════════════════════════════ local function getRoot(char) return char:FindFirstChild("HumanoidRootPart") or char:FindFirstChild("Torso") or char:FindFirstChild("UpperTorso") end local function getTorso(char) return char:FindFirstChild("Torso") or char:FindFirstChild("UpperTorso") end local function getHiddenPos(root) local pos = root and root.Position or Vector3.new(0, 100, 0) return Vector3.new(pos.X, pos.Y + 50000, pos.Z) end local function setCharacterTransparency(char, trans) for _, part in pairs(char:GetDescendants()) do if part:IsA("BasePart") or part:IsA("Decal") then pcall(function() part.Transparency = trans end) end end -- Keep face visible at low transparency local head = char:FindFirstChild("Head") if head then local face = head:FindFirstChild("face") if face then pcall(function() face.Transparency = math.min(trans, 0.7) end) end end end local function enableDesync() local char = LocalPlayer.Character if not char then Notify("No character found!", "error") return false end local root = getRoot(char) local torso = getTorso(char) if not root or not torso then Notify("Missing body parts!", "error") return false end -- Step 1: Save current position (your ghost body stays here) savedCFrame = root.CFrame -- Step 2: Get safe hidden spot WAY ABOVE the map hiddenPos = getHiddenPos(root) -- Step 3: Move character up to hidden spot (server registers this) char:MoveTo(hiddenPos) task.wait() -- Step 4: Create invisible seat at hidden spot invisSeat = Instance.new("Seat") invisSeat.Name = "DesyncSeat_" .. math.random(10000, 99999) invisSeat.Anchored = false invisSeat.CanCollide = false invisSeat.Transparency = 1 invisSeat.Size = Vector3.new(2, 1, 1) invisSeat.Position = hiddenPos invisSeat.Parent = workspace -- Step 5: Weld seat to torso invisWeld = Instance.new("Weld") invisWeld.Name = "DesyncWeld" invisWeld.Part0 = invisSeat invisWeld.Part1 = torso invisWeld.Parent = invisSeat -- Step 6: Snap seat back to saved position (ghost body spot) task.wait() invisSeat.CFrame = savedCFrame -- Step 7: Make character transparent setCharacterTransparency(char, desyncTransparency) -- Step 7: Start desync maintenance loop -- Prevents server corrections + keeps character transparent desyncLoop = RunService.Heartbeat:Connect(function() if not desyncActive then return end -- Only maintain if seat is still alive if invisSeat and invisSeat.Parent then -- Keep character transparent (some games reset it) local c = LocalPlayer.Character if c then for _, part in pairs(c:GetDescendants()) do if part:IsA("BasePart") or part:IsA("Decal") then if part.Transparency < desyncTransparency - 0.05 then pcall(function() part.Transparency = desyncTransparency end) end end end end end end) desyncActive = true Notify("Desync ON - You are invisible!", "success") return true end local function disableDesync() -- Step 1: Save current visual position (where the player walked to) local char = LocalPlayer.Character local currentVisualPos = nil if char then local root = getRoot(char) if root then currentVisualPos = root.CFrame end end -- Step 2: Stop the maintenance loop if desyncLoop then desyncLoop:Disconnect() desyncLoop = nil end -- Step 3: Destroy seat + weld if invisSeat and invisSeat.Parent then invisSeat:Destroy() end invisSeat = nil invisWeld = nil -- Step 4: Restore character transparency if char then setCharacterTransparency(char, 0) end -- Step 5: Teleport to where the player visually was (not the hidden spot) if currentVisualPos and char then task.wait(0.1) pcall(function() char:PivotTo(currentVisualPos) end) -- Fallback if PivotTo doesn't work pcall(function() char:MoveTo(currentVisualPos.Position) end) end desyncActive = false savedCFrame = nil Notify("Desync OFF - TP'd to visual pos!", "info") end -- ═══════════════════════════════════════════════════════════════ -- GUI -- ═══════════════════════════════════════════════════════════════ local gui = Create("ScreenGui", { Name = "DesyncGUI", ResetOnSpawn = false, ZIndexBehavior = Enum.ZIndexBehavior.Sibling, Parent = PlayerGui, }) local main = Create("Frame", { Name = "Main", BackgroundColor3 = C.Bg, Size = UDim2.new(0, 200, 0, 0), Position = UDim2.new(0, 20, 0.5, -100), BorderSizePixel = 0, Parent = gui, }) AddCorner(main, 10) AddStroke(main, C.Border, 1, 0.4) -- Glow local glow = Create("Frame", { BackgroundColor3 = C.Accent, BackgroundTransparency = 0.97, Size = UDim2.new(1, 6, 1, 6), Position = UDim2.new(0, -3, 0, -3), ZIndex = -1, Parent = main, }) AddCorner(glow, 12) -- Content local content = Create("Frame", { BackgroundTransparency = 1, Size = UDim2.new(1, 0, 0, 0), AutomaticSize = Enum.AutomaticSize.Y, Parent = main, }) local contentLayout = Create("UIListLayout", { SortOrder = Enum.SortOrder.LayoutOrder, Padding = UDim.new(0, 0), Parent = content, }) AddPadding(content, 12, 12, 12, 12) -- ═══ Title Bar ═══ local titleBar = Create("Frame", { BackgroundColor3 = C.Surface, Size = UDim2.new(1, 0, 0, 34), BorderSizePixel = 0, LayoutOrder = 0, Parent = content, }) AddCorner(titleBar, 8) Create("Frame", { BackgroundColor3 = C.Surface, Size = UDim2.new(1, 0, 0, 10), Position = UDim2.new(0, 0, 1, -5), BorderSizePixel = 0, Parent = titleBar, }) -- Logo local logoDot = Create("Frame", { BackgroundColor3 = C.Accent, Size = UDim2.new(0, 8, 0, 8), Position = UDim2.new(0, 12, 0.5, 0), AnchorPoint = Vector2.new(0, 0.5), Parent = titleBar, }) AddCorner(logoDot, 4) Create("TextLabel", { Text = "DESYNC", Font = Enum.Font.GothamBold, TextSize = 13, TextColor3 = C.TextBright, BackgroundTransparency = 1, Size = UDim2.new(1, -50, 1, 0), Position = UDim2.new(0, 26, 0, 0), TextXAlignment = Enum.TextXAlignment.Left, Parent = titleBar, }) -- Status dot local statusDot = Create("Frame", { BackgroundColor3 = C.TextMuted, Size = UDim2.new(0, 7, 0, 7), Position = UDim2.new(1, -12, 0.5, 0), AnchorPoint = Vector2.new(0, 0.5), Parent = titleBar, }) AddCorner(statusDot, 4) -- ═══ Dragging ═══ local dragging = false local 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) UserInputService.InputChanged:Connect(function(input) if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) 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) -- Spacer Create("Frame", { BackgroundTransparency = 1, Size = UDim2.new(1, 0, 0, 8), LayoutOrder = 1, Parent = content, }) -- ═══ Desync Button ═══ local desyncRow = Create("Frame", { BackgroundColor3 = C.Surface, BackgroundTransparency = 0.7, Size = UDim2.new(1, 0, 0, 44), BorderSizePixel = 0, LayoutOrder = 2, Parent = content, }) AddCorner(desyncRow, 6) Create("TextLabel", { Text = "Desync", Font = Enum.Font.GothamBold, TextSize = 11, TextColor3 = C.TextBright, TextXAlignment = Enum.TextXAlignment.Left, BackgroundTransparency = 1, Size = UDim2.new(1, 0, 0, 14), Position = UDim2.new(0, 10, 0, 3), Parent = desyncRow, }) Create("TextLabel", { Text = "Server-client desync", Font = Enum.Font.Gotham, TextSize = 8, TextColor3 = C.TextMuted, TextXAlignment = Enum.TextXAlignment.Left, BackgroundTransparency = 1, Size = UDim2.new(1, 0, 0, 12), Position = UDim2.new(0, 10, 0, 18), Parent = desyncRow, }) local desyncBtn = Create("TextButton", { Text = "OFF", Font = Enum.Font.GothamBold, TextSize = 10, TextColor3 = C.White, BackgroundColor3 = C.SurfaceLt, Size = UDim2.new(0, 56, 0, 22), Position = UDim2.new(1, -66, 0.5, 0), AnchorPoint = Vector2.new(0, 0.5), Parent = desyncRow, }) AddCorner(desyncBtn, 5) desyncRow.MouseEnter:Connect(function() Quick(desyncRow, { BackgroundTransparency = 0.55 }):Play() end) desyncRow.MouseLeave:Connect(function() Quick(desyncRow, { BackgroundTransparency = 0.7 }):Play() end) desyncBtn.MouseButton1Click:Connect(function() PlaySound(6895079853, 0.2, 1) Quick(desyncBtn, { Size = UDim2.new(0, 50, 0, 19) }):Play() task.delay(0.1, function() Spring(desyncBtn, { Size = UDim2.new(0, 56, 0, 22) }, 0.3):Play() end) if not desyncActive then local ok = enableDesync() if ok then desyncBtn.Text = "ON" desyncBtn.BackgroundColor3 = C.AccentDim statusDot.BackgroundColor3 = C.Green end else disableDesync() desyncBtn.Text = "OFF" desyncBtn.BackgroundColor3 = C.SurfaceLt statusDot.BackgroundColor3 = C.TextMuted -- Reset speed too if speedBoosted then speedBoosted = false speedBtn.Text = "Speed OFF" speedBtn.BackgroundColor3 = C.SurfaceLt local hum = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") if hum then hum.WalkSpeed = defaultSpeed end end end end) -- ═══ Speed Button ═══ local speedRow = Create("Frame", { BackgroundColor3 = C.Surface, BackgroundTransparency = 0.7, Size = UDim2.new(1, 0, 0, 44), BorderSizePixel = 0, LayoutOrder = 3, Parent = content, }) AddCorner(speedRow, 6) Create("TextLabel", { Text = "Speed Boost", Font = Enum.Font.GothamBold, TextSize = 11, TextColor3 = C.TextBright, TextXAlignment = Enum.TextXAlignment.Left, BackgroundTransparency = 1, Size = UDim2.new(1, 0, 0, 14), Position = UDim2.new(0, 10, 0, 3), Parent = speedRow, }) Create("TextLabel", { Text = "Faster movement while desynced", Font = Enum.Font.Gotham, TextSize = 8, TextColor3 = C.TextMuted, TextXAlignment = Enum.TextXAlignment.Left, BackgroundTransparency = 1, Size = UDim2.new(1, 0, 0, 12), Position = UDim2.new(0, 10, 0, 18), Parent = speedRow, }) local speedBtn = Create("TextButton", { Text = "Speed OFF", Font = Enum.Font.GothamBold, TextSize = 9, TextColor3 = C.White, BackgroundColor3 = C.SurfaceLt, Size = UDim2.new(0, 56, 0, 22), Position = UDim2.new(1, -66, 0.5, 0), AnchorPoint = Vector2.new(0, 0.5), Parent = speedRow, }) AddCorner(speedBtn, 5) speedRow.MouseEnter:Connect(function() Quick(speedRow, { BackgroundTransparency = 0.55 }):Play() end) speedRow.MouseLeave:Connect(function() Quick(speedRow, { BackgroundTransparency = 0.7 }):Play() end) speedBtn.MouseButton1Click:Connect(function() PlaySound(6895079853, 0.15, 1.2) Quick(speedBtn, { Size = UDim2.new(0, 50, 0, 19) }):Play() task.delay(0.1, function() Spring(speedBtn, { Size = UDim2.new(0, 56, 0, 22) }, 0.3):Play() end) speedBoosted = not speedBoosted local hum = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") if hum then if speedBoosted then hum.WalkSpeed = 100 speedBtn.Text = "Speed ON" speedBtn.BackgroundColor3 = C.GreenDim Notify("Speed: 100", "success") else hum.WalkSpeed = defaultSpeed speedBtn.Text = "Speed OFF" speedBtn.BackgroundColor3 = C.SurfaceLt Notify("Speed: " .. defaultSpeed, "info") end end end) -- Spacer Create("Frame", { BackgroundTransparency = 1, Size = UDim2.new(1, 0, 0, 8), LayoutOrder = 4, Parent = content, }) -- ═══ Speed Slider ═══ local sliderSection = Create("Frame", { BackgroundColor3 = C.Surface, BackgroundTransparency = 0.7, Size = UDim2.new(1, 0, 0, 52), BorderSizePixel = 0, LayoutOrder = 5, Parent = content, }) AddCorner(sliderSection, 6) Create("TextLabel", { Text = "Speed Value", Font = Enum.Font.GothamBold, TextSize = 11, TextColor3 = C.TextBright, TextXAlignment = Enum.TextXAlignment.Left, BackgroundTransparency = 1, Size = UDim2.new(1, -65, 0, 14), Position = UDim2.new(0, 10, 0, 4), Parent = sliderSection, }) Create("TextLabel", { Text = "Set walk speed when boosted", Font = Enum.Font.Gotham, TextSize = 8, TextColor3 = C.TextMuted, TextXAlignment = Enum.TextXAlignment.Left, BackgroundTransparency = 1, Size = UDim2.new(1, -65, 0, 12), Position = UDim2.new(0, 10, 0, 18), Parent = sliderSection, }) -- Value badge local speedVal = Create("TextLabel", { Text = "100", Font = Enum.Font.GothamBold, TextSize = 10, TextColor3 = C.AccentGlow, BackgroundColor3 = C.SurfaceMid, Size = UDim2.new(0, 44, 0, 18), Position = UDim2.new(1, -54, 0, 4), Parent = sliderSection, }) AddCorner(speedVal, 4) AddStroke(speedVal, C.Border, 1, 0.5) -- Track local track = Create("Frame", { BackgroundColor3 = C.SurfaceLt, Size = UDim2.new(1, -20, 0, 4), Position = UDim2.new(0, 10, 1, -12), Parent = sliderSection, }) AddCorner(track, 2) local fill = Create("Frame", { BackgroundColor3 = C.Accent, Size = UDim2.new(0, 0, 1, 0), Position = UDim2.new(0, 0, 0, 0), Parent = track, }) AddCorner(fill, 2) local sliderThumb = Create("Frame", { BackgroundColor3 = C.White, Size = UDim2.new(0, 12, 0, 12), Position = UDim2.new(0, -6, 0.5, 0), Parent = track, }) AddCorner(sliderThumb, 6) local speedSliderVal = 100 local speedMin, speedMax, speedStep = 16, 500, 1 local function updateSpeedSlider(val) speedSliderVal = math.clamp(math.round(val / speedStep) * speedStep, speedMin, speedMax) currentSpeed = speedSliderVal local pct = (speedSliderVal - speedMin) / (speedMax - speedMin) pct = math.clamp(pct, 0, 1) fill.Size = UDim2.new(pct, 0, 1, 0) sliderThumb.Position = UDim2.new(pct, -6, 0.5, 0) speedVal.Text = tostring(speedSliderVal) -- If speed boost is on, apply immediately if speedBoosted then local hum = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") if hum then hum.WalkSpeed = speedSliderVal end end end updateSpeedSlider(100) sliderSection.MouseEnter:Connect(function() Quick(sliderSection, { BackgroundTransparency = 0.55 }):Play() end) sliderSection.MouseLeave:Connect(function() Quick(sliderSection, { BackgroundTransparency = 0.7 }):Play() end) local sliderDragging = false sliderThumb.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then sliderDragging = true PlaySound(6895079853, 0.1, 0.8) end end) track.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then sliderDragging = true PlaySound(6895079853, 0.1, 0.8) local relX = (input.Position.X - track.AbsolutePosition.X) / track.AbsoluteSize.X updateSpeedSlider(speedMin + relX * (speedMax - speedMin)) end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then if sliderDragging then sliderDragging = false end end end) UserInputService.InputChanged:Connect(function(input) if sliderDragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then local relX = math.clamp((input.Position.X - track.AbsolutePosition.X) / track.AbsoluteSize.X, 0, 1) updateSpeedSlider(speedMin + relX * (speedMax - speedMin)) end end) -- Spacer Create("Frame", { BackgroundTransparency = 1, Size = UDim2.new(1, 0, 0, 8), LayoutOrder = 6, Parent = content, }) -- ═══ Transparency Slider ═══ local transSection = Create("Frame", { BackgroundColor3 = C.Surface, BackgroundTransparency = 0.7, Size = UDim2.new(1, 0, 0, 52), BorderSizePixel = 0, LayoutOrder = 7, Parent = content, }) AddCorner(transSection, 6) Create("TextLabel", { Text = "Visibility", Font = Enum.Font.GothamBold, TextSize = 11, TextColor3 = C.TextBright, TextXAlignment = Enum.TextXAlignment.Left, BackgroundTransparency = 1, Size = UDim2.new(1, -65, 0, 14), Position = UDim2.new(0, 10, 0, 4), Parent = transSection, }) Create("TextLabel", { Text = "Character transparency", Font = Enum.Font.Gotham, TextSize = 8, TextColor3 = C.TextMuted, TextXAlignment = Enum.TextXAlignment.Left, BackgroundTransparency = 1, Size = UDim2.new(1, -65, 0, 12), Position = UDim2.new(0, 10, 0, 18), Parent = transSection, }) local transVal = Create("TextLabel", { Text = "0.5", Font = Enum.Font.GothamBold, TextSize = 10, TextColor3 = C.AccentGlow, BackgroundColor3 = C.SurfaceMid, Size = UDim2.new(0, 44, 0, 18), Position = UDim2.new(1, -54, 0, 4), Parent = transSection, }) AddCorner(transVal, 4) AddStroke(transVal, C.Border, 1, 0.5) local transTrack = Create("Frame", { BackgroundColor3 = C.SurfaceLt, Size = UDim2.new(1, -20, 0, 4), Position = UDim2.new(0, 10, 1, -12), Parent = transSection, }) AddCorner(transTrack, 2) local transFill = Create("Frame", { BackgroundColor3 = C.Accent, Size = UDim2.new(0, 0, 1, 0), Position = UDim2.new(0, 0, 0, 0), Parent = transTrack, }) AddCorner(transFill, 2) local transThumb = Create("Frame", { BackgroundColor3 = C.White, Size = UDim2.new(0, 12, 0, 12), Position = UDim2.new(0, -6, 0.5, 0), Parent = transTrack, }) AddCorner(transThumb, 6) local transSliderVal = 0.5 local transMin, transMax, transStep = 0, 1, 0.05 local desyncTransparency = 0.5 local function updateTransSlider(val) transSliderVal = math.clamp(math.round(val / transStep) * transStep, transMin, transMax) desyncTransparency = transSliderVal local pct = (transSliderVal - transMin) / (transMax - transMin) pct = math.clamp(pct, 0, 1) transFill.Size = UDim2.new(pct, 0, 1, 0) transThumb.Position = UDim2.new(pct, -6, 0.5, 0) transVal.Text = tostring(transSliderVal) -- Apply live if desync is active if desyncActive and LocalPlayer.Character then setCharacterTransparency(LocalPlayer.Character, desyncTransparency) end end updateTransSlider(0.5) transSection.MouseEnter:Connect(function() Quick(transSection, { BackgroundTransparency = 0.55 }):Play() end) transSection.MouseLeave:Connect(function() Quick(transSection, { BackgroundTransparency = 0.7 }):Play() end) local transDragging = false transThumb.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then transDragging = true PlaySound(6895079853, 0.1, 0.8) end end) transTrack.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then transDragging = true PlaySound(6895079853, 0.1, 0.8) local relX = (input.Position.X - transTrack.AbsolutePosition.X) / transTrack.AbsoluteSize.X updateTransSlider(transMin + relX * (transMax - transMin)) end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then if transDragging then transDragging = false end end end) UserInputService.InputChanged:Connect(function(input) if transDragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then local relX = math.clamp((input.Position.X - transTrack.AbsolutePosition.X) / transTrack.AbsoluteSize.X, 0, 1) updateTransSlider(transMin + relX * (transMax - transMin)) end end) -- Spacer Create("Frame", { BackgroundTransparency = 1, Size = UDim2.new(1, 0, 0, 8), LayoutOrder = 8, Parent = content, }) -- ═══ Info ═══ Create("TextLabel", { Text = "Toggle desync on, walk around\nfreely, then toggle off to TP\nto where you are visually.", Font = Enum.Font.Gotham, TextSize = 8, TextColor3 = C.TextMuted, TextXAlignment = Enum.TextXAlignment.Left, BackgroundTransparency = 1, Size = UDim2.new(1, 0, 0, 30), TextWrapped = true, LayoutOrder = 9, Parent = content, }) -- Bottom spacer Create("Frame", { BackgroundTransparency = 1, Size = UDim2.new(1, 0, 0, 6), LayoutOrder = 10, Parent = content, }) -- ═══ Keyboard Shortcut ═══ UserInputService.InputBegan:Connect(function(input, processed) if processed then return end if input.KeyCode == Enum.KeyCode.X then desyncBtn.MouseButton1Click:Fire() end end) -- ═══ Reset on respawn ═══ LocalPlayer.CharacterAdded:Connect(function(char) -- Reset state if desyncActive then desyncActive = false if desyncLoop then desyncLoop:Disconnect() desyncLoop = nil end if invisSeat and invisSeat.Parent then invisSeat:Destroy() end invisSeat = nil invisWeld = nil savedCFrame = nil desyncBtn.Text = "OFF" desyncBtn.BackgroundColor3 = C.SurfaceLt statusDot.BackgroundColor3 = C.TextMuted end speedBoosted = false speedBtn.Text = "Speed OFF" speedBtn.BackgroundColor3 = C.SurfaceLt Notify("Desync reset (respawn)", "warning") end) -- ═══ Anti-seat-cleanup loop ═══ -- Some games delete workspace parts periodically, silently recreate the seat instead of turning off task.spawn(function() while task.wait(0.5) do if desyncActive and (not invisSeat or not invisSeat.Parent) then -- Seat got deleted by the game, silently recreate it local char = LocalPlayer.Character if not char then continue end local root = getRoot(char) local torso = getTorso(char) if not root or not torso then continue end -- Recreate seat at hidden pos invisSeat = Instance.new("Seat") invisSeat.Name = "DesyncSeat_" .. math.random(10000, 99999) invisSeat.Anchored = false invisSeat.CanCollide = false invisSeat.Transparency = 1 invisSeat.Size = Vector3.new(2, 1, 1) invisSeat.Position = hiddenPos invisSeat.Parent = workspace -- Weld it invisWeld = Instance.new("Weld") invisWeld.Name = "DesyncWeld" invisWeld.Part0 = invisSeat invisWeld.Part1 = torso invisWeld.Parent = invisSeat task.wait() -- Snap seat to where the player visually is invisSeat.CFrame = root.CFrame end end end) -- ═══ Open animation ═══ main.Size = UDim2.new(0, 0, 0, 0) main.BackgroundTransparency = 1 task.delay(0.05, function() PlaySound(6895079853, 0.25, 0.9) Spring(main, { Size = UDim2.new(0, 200, 0, 390), BackgroundTransparency = 0.04, }, 0.6):Play() Smooth(glow, { BackgroundTransparency = 0.95 }, 0.4):Play() end) Notify("Desync loaded! Press X to toggle", "success")