-- LocalScript: Checkpoint Hub (исправленный + задержка 1 сек + перетаскивание) local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local Workspace = game:GetService("Workspace") local Camera = Workspace.CurrentCamera local TweenService = game:GetService("TweenService") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") -- === Задержка 1 секунда перед запуском === task.wait(1) -- === Иконка из ссылки === local logoAssetId = "rbxassetid://74562782" -- War Tycon -- === Уведомления === local function createNotification(text, duration) duration = duration or 3 local notification = Instance.new("Frame") notification.Name = "Notification" notification.Size = UDim2.new(0, 320, 0, 90) notification.Position = UDim2.new(0.5, -160, 0.85, 0) notification.BackgroundColor3 = Color3.fromRGB(25, 25, 25) notification.BorderSizePixel = 0 notification.BackgroundTransparency = 0.1 notification.Parent = screenGui local uiCorner = Instance.new("UICorner") uiCorner.CornerRadius = UDim.new(0, 15) uiCorner.Parent = notification local uiStroke = Instance.new("UIStroke") uiStroke.Color = Color3.fromRGB(255, 0, 0) uiStroke.Thickness = 3 uiStroke.Parent = notification local glowEffect = Instance.new("ImageLabel") glowEffect.Name = "GlowEffect" glowEffect.Size = UDim2.new(1.2, 0, 1.2, 0) glowEffect.Position = UDim2.new(-0.1, 0, -0.1, 0) glowEffect.BackgroundTransparency = 1 glowEffect.Image = "rbxassetid://5028857084" glowEffect.ImageColor3 = Color3.fromRGB(255, 0, 0) glowEffect.ImageTransparency = 0.7 glowEffect.ZIndex = -1 glowEffect.Parent = notification local iconImage = Instance.new("ImageLabel") iconImage.Name = "NotifIcon" iconImage.Size = UDim2.new(0, 60, 0, 60) iconImage.Position = UDim2.new(0, 15, 0.5, -30) iconImage.BackgroundTransparency = 1 iconImage.Image = logoAssetId iconImage.Parent = notification local notifText = Instance.new("TextLabel") notifText.Name = "NotifText" notifText.Size = UDim2.new(1, -90, 1, -20) notifText.Position = UDim2.new(0, 85, 0, 10) notifText.BackgroundTransparency = 1 notifText.TextColor3 = Color3.fromRGB(255, 255, 255) notifText.TextSize = 20 notifText.Font = Enum.Font.GothamBold notifText.Text = text notifText.TextWrapped = true notifText.TextXAlignment = Enum.TextXAlignment.Left notifText.Parent = notification notification.BackgroundTransparency = 1 uiStroke.Transparency = 1 notifText.TextTransparency = 1 iconImage.ImageTransparency = 1 glowEffect.ImageTransparency = 1 TweenService:Create(notification, TweenInfo.new(0.6, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {BackgroundTransparency = 0.1}):Play() TweenService:Create(uiStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Transparency = 0}):Play() TweenService:Create(notifText, TweenInfo.new(0.6, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {TextTransparency = 0}):Play() TweenService:Create(iconImage, TweenInfo.new(0.6, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {ImageTransparency = 0}):Play() TweenService:Create(glowEffect, TweenInfo.new(0.6, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {ImageTransparency = 0.7}):Play() spawn(function() wait(duration) TweenService:Create(notification, TweenInfo.new(0.6, Enum.EasingStyle.Quart, Enum.EasingDirection.In), {BackgroundTransparency = 1}):Play() TweenService:Create(uiStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quart, Enum.EasingDirection.In), {Transparency = 1}):Play() TweenService:Create(notifText, TweenInfo.new(0.6, Enum.EasingStyle.Quart, Enum.EasingDirection.In), {TextTransparency = 1}):Play() TweenService:Create(iconImage, TweenInfo.new(0.6, Enum.EasingStyle.Quart, Enum.EasingDirection.In), {ImageTransparency = 1}):Play() TweenService:Create(glowEffect, TweenInfo.new(0.6, Enum.EasingStyle.Quart, Enum.EasingDirection.In), {ImageTransparency = 1}):Play() wait(0.6) notification:Destroy() end) end -- === Создаём GUI (с защитой от падения) === local screenGui = nil pcall(function() screenGui = playerGui:FindFirstChild("FrontEvillGUI") if not screenGui then screenGui = Instance.new("ScreenGui") screenGui.Name = "FrontEvillGUI" screenGui.ResetOnSpawn = false if syn then syn.protect_gui(screenGui) screenGui.Parent = game:GetService("CoreGui") elseif gethui and gethui() then screenGui.Parent = gethui() else screenGui.Parent = playerGui end end end) if not screenGui then warn("❌ Не удалось создать ScreenGui") return end -- === Показываем основной GUI === local function showCheckpointHub() spawn(function() wait(0.5) -- Небольшая задержка для стабильности local mainFrame = Instance.new("Frame") mainFrame.Name = "CheckpointHub" mainFrame.Size = UDim2.new(0, 420, 0, 500) mainFrame.Position = UDim2.new(0.5, -210, 0.5, -250) mainFrame.BackgroundColor3 = Color3.fromRGB(10, 10, 10) mainFrame.BorderSizePixel = 0 mainFrame.Visible = false -- Скрыто при старте mainFrame.Parent = screenGui mainFrame.AnchorPoint = Vector2.new(0.5, 0.5) local uiCorner = Instance.new("UICorner") uiCorner.CornerRadius = UDim.new(0, 20) uiCorner.Parent = mainFrame local uiStroke = Instance.new("UIStroke") uiStroke.Color = Color3.fromRGB(255, 0, 0) uiStroke.Thickness = 3 uiStroke.Parent = mainFrame local frameGlow = Instance.new("ImageLabel") frameGlow.Name = "FrameGlow" frameGlow.Size = UDim2.new(1.1, 0, 1.1, 0) frameGlow.Position = UDim2.new(-0.05, 0, -0.05, 0) frameGlow.BackgroundTransparency = 1 frameGlow.Image = "rbxassetid://5028857084" frameGlow.ImageColor3 = Color3.fromRGB(255, 0, 0) frameGlow.ImageTransparency = 0.7 frameGlow.ZIndex = -1 frameGlow.Parent = mainFrame local titleLabel = Instance.new("TextLabel") titleLabel.Name = "TitleLabel" titleLabel.Size = UDim2.new(1, 0, 0, 40) titleLabel.Position = UDim2.new(0, 0, 0, 20) titleLabel.BackgroundTransparency = 1 titleLabel.TextColor3 = Color3.fromRGB(255, 0, 0) titleLabel.TextSize = 26 titleLabel.Font = Enum.Font.GothamBold titleLabel.Text = "Checkpoint System" titleLabel.TextXAlignment = Enum.TextXAlignment.Center titleLabel.Parent = mainFrame local bindLabel = Instance.new("TextButton") bindLabel.Name = "BindLabel" bindLabel.Size = UDim2.new(1, 0, 0, 30) bindLabel.Position = UDim2.new(0, 0, 0, 60) bindLabel.BackgroundColor3 = Color3.fromRGB(30, 30, 30) bindLabel.BorderSizePixel = 0 bindLabel.Text = "Bind: V" bindLabel.TextColor3 = Color3.fromRGB(255, 255, 255) bindLabel.Font = Enum.Font.Gotham bindLabel.TextSize = 16 bindLabel.TextXAlignment = Enum.TextXAlignment.Center bindLabel.Parent = mainFrame -- === Кнопка перезагрузки === local reloadBtn = Instance.new("TextButton") reloadBtn.Name = "ReloadBtn" reloadBtn.Size = UDim2.new(0.2, 0, 0, 30) reloadBtn.Position = UDim2.new(0.4, 0, 0, 450) reloadBtn.BackgroundColor3 = Color3.fromRGB(150, 100, 0) reloadBtn.TextColor3 = Color3.fromRGB(255, 255, 255) reloadBtn.TextSize = 14 reloadBtn.Font = Enum.Font.Gotham reloadBtn.Text = "Reload" reloadBtn.TextXAlignment = Enum.TextXAlignment.Center reloadBtn.Parent = mainFrame local reloadCorner = Instance.new("UICorner") reloadCorner.CornerRadius = UDim.new(0, 8) reloadCorner.Parent = reloadBtn -- === 4 слота === local slots = {} for i = 1, 4 do local slot = Instance.new("Frame") slot.Name = "Slot" .. i slot.Size = UDim2.new(0.8, 0, 0, 90) slot.Position = UDim2.new(0.1, 0, 0, 100 + (i - 1) * 100) slot.BackgroundColor3 = Color3.fromRGB(20, 20, 20) slot.BorderSizePixel = 2 slot.BorderColor3 = Color3.fromRGB(255, 0, 0) slot.Parent = mainFrame local slotCorner = Instance.new("UICorner") slotCorner.CornerRadius = UDim.new(0, 12) slotCorner.Parent = slot -- Название local nameBox = Instance.new("TextBox") nameBox.Name = "NameBox" nameBox.Size = UDim2.new(0.4, -10, 0, 30) nameBox.Position = UDim2.new(0.02, 0, 0.1, 0) nameBox.BackgroundColor3 = Color3.fromRGB(30, 30, 30) nameBox.TextColor3 = Color3.fromRGB(255, 255, 255) nameBox.TextSize = 14 nameBox.Font = Enum.Font.Gotham nameBox.Text = "Slot " .. i nameBox.ClearTextOnFocus = false nameBox.TextXAlignment = Enum.TextXAlignment.Center nameBox.Parent = slot -- SAVE local saveBtn = Instance.new("TextButton") saveBtn.Name = "Save" saveBtn.Size = UDim2.new(0.2, 0, 0, 30) saveBtn.Position = UDim2.new(0.45, 0, 0.1, 0) saveBtn.BackgroundColor3 = Color3.fromRGB(0, 200, 0) saveBtn.TextColor3 = Color3.fromRGB(255, 255, 255) saveBtn.TextSize = 14 saveBtn.Font = Enum.Font.Gotham saveBtn.Text = "SAVE" saveBtn.TextXAlignment = Enum.TextXAlignment.Center saveBtn.Parent = slot -- TP local tpBtn = Instance.new("TextButton") tpBtn.Name = "TP" tpBtn.Size = UDim2.new(0.2, 0, 0, 30) tpBtn.Position = UDim2.new(0.68, 0, 0.1, 0) tpBtn.BackgroundColor3 = Color3.fromRGB(0, 100, 255) tpBtn.TextColor3 = Color3.fromRGB(255, 255, 255) tpBtn.TextSize = 14 tpBtn.Font = Enum.Font.Gotham tpBtn.Text = "TP" tpBtn.TextXAlignment = Enum.TextXAlignment.Center tpBtn.Parent = slot slots[i] = { frame = slot, nameBox = nameBox, saveBtn = saveBtn, tpBtn = tpBtn, data = nil } end -- === Переменные === local root = nil local humanoid = nil local currentBind = Enum.KeyCode.V local isChangingBind = false -- === Функция: найти персонажа === local function updateCharacter() local char = player.Character if not char then char = player.CharacterAdded:Wait() end char:WaitForChild("HumanoidRootPart", 5) char:WaitForChild("Humanoid", 5) root = char.HumanoidRootPart humanoid = char.Humanoid createNotification("🔄 Персонаж перезагружен", 2) end -- === Перезагрузка (по кнопке) === reloadBtn.MouseButton1Click:Connect(function() pcall(updateCharacter) createNotification("✅ Персонаж найден", 2) end) -- Автоматическая перезагрузка при респе player.CharacterAdded:Connect(function(char) wait(0.1) pcall(updateCharacter) end) -- Инициализация при старте pcall(updateCharacter) -- === Телепорт === local function tpTo(data) if not root or not data then return end root.Anchored = true humanoid.AutoRotate = false root.CFrame = data.cframe Camera.CFrame = data.cameraCFrame root.AssemblyLinearVelocity = (data.state == Enum.HumanoidStateType.Freefall) and Vector3.new(0, -10, 0) or Vector3.new(0, 0, 0) wait() humanoid:ChangeState(data.state) spawn(function() wait(0.1) root.Anchored = false humanoid.AutoRotate = true end) createNotification("✅ Teleported to " .. data.name, 2) end -- === Обработка кнопок === for i, slot in ipairs(slots) do slot.saveBtn.MouseButton1Click:Connect(function() if not root or not humanoid then createNotification("❌ Персонаж не найден", 2) return end local data = { cframe = root.CFrame, cameraCFrame = Camera.CFrame, state = humanoid:GetState(), name = slot.nameBox.Text } slot.data = data createNotification("💾 Saved: " .. data.name, 2) end) slot.tpBtn.MouseButton1Click:Connect(function() if slot.data then tpTo(slot.data) else createNotification("❌ No data in slot!", 2) end end) end -- === Смена бинда === bindLabel.MouseButton1Click:Connect(function() if isChangingBind then return end isChangingBind = true bindLabel.Text = "Нажмите клавишу..." bindLabel.BackgroundColor3 = Color3.fromRGB(200, 100, 100) local conn conn = UserInputService.InputBegan:Connect(function(input) if isChangingBind and input.UserInputType == Enum.UserInputType.Keyboard then currentBind = input.KeyCode bindLabel.Text = "Bind: " .. currentBind.Name bindLabel.BackgroundColor3 = Color3.fromRGB(30, 30, 30) isChangingBind = false conn:Disconnect() end end) spawn(function() wait(10) if isChangingBind then bindLabel.Text = "Bind: " .. currentBind.Name bindLabel.BackgroundColor3 = Color3.fromRGB(30, 30, 30) isChangingBind = false if conn.Connected then conn:Disconnect() end end end) end) -- === Открытие/закрытие через V === UserInputService.InputBegan:Connect(function(input) if isChangingBind then return end if input.KeyCode == currentBind then mainFrame.Visible = not mainFrame.Visible end end) -- === Перетаскивание GUI === local dragging = false local dragStart = nil local startPos = nil local function updateInput(input) local delta = input.Position - dragStart mainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end titleLabel.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = mainFrame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) UserInputService.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then if dragging then updateInput(input) end end end) -- === Анимации === spawn(function() while frameGlow.Parent do TweenService:Create(frameGlow, TweenInfo.new(2.5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {ImageTransparency = 0.5, Size = UDim2.new(1.12, 0, 1.12, 0)}):Play() wait(2.5) TweenService:Create(frameGlow, TweenInfo.new(2.5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {ImageTransparency = 0.8, Size = UDim2.new(1.08, 0, 1.08, 0)}):Play() wait(2.5) end end) -- Показываем GUI после 0.5 сек (чтобы не было конфликтов) wait(0.5) mainFrame.Visible = true createNotification("🔥 Checkpoint Hub Loaded!", 3) end) end -- Запуск через 1 секунду task.spawn(function() task.wait(1) pcall(showCheckpointHub) end)