-- 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 -- -- Activation Function -- local function ToggleDesync() local character = LocalPlayer.Character if not character then return end local root = getRoot(character) if not root then return end desyncActive = not desyncActive if desyncActive then -- TURN DESYNC ON savedCFrame = root.CFrame hiddenPos = savedCFrame * CFrame.new(0, 500, 0) -- Teleports server model up high -- Start Desync Loop desyncLoop = RunService.Heartbeat:Connect(function() if character and getRoot(character) then -- Add your explicit position desync replication code here end end) Notify("Desync Activated", "success") else -- TURN DESYNC OFF if desyncLoop then desyncLoop:Disconnect() desyncLoop = nil end -- Return to visual placement if savedCFrame then root.CFrame = savedCFrame end Notify("Desync Deactivated", "info") end end -- -- Keybind Listener (Press X to Toggle) -- UserInputService.InputBegan:Connect(function(input, gameProcessedEvent) -- This makes sure the cheat doesn't toggle when typing in game chat if gameProcessedEvent then return end if input.KeyCode == Enum.KeyCode.X then ToggleDesync() 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")