local Players = game:GetService("Players") local Workspace = game:GetService("Workspace") local UserInputService = game:GetService("UserInputService") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") local POLAROID_ESP_NAME = "FixationPolaroidESP" local SAFE_ESP_NAME = "FixationSafeESP" local BONFIRE_ESP_NAME = "BonfireESP" local WILLOW_ESP_NAME = "WillowESP" local espEnabled = true local safeEnabled = false local bonfireEnabled = false local willowEnabled = false local espColor = Color3.fromRGB(255, 0, 0) local destroyed = false local descendantConnection local removingConnection local oldGui = playerGui:FindFirstChild("ESP_Teleport_Menu") if oldGui then oldGui:Destroy() end local screenGui = Instance.new("ScreenGui") screenGui.Name = "ESP_Teleport_Menu" screenGui.ResetOnSpawn = false screenGui.Parent = playerGui local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0, 280, 0, 400) mainFrame.Position = UDim2.new(0, 20, 0.5, -200) mainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25) mainFrame.BorderSizePixel = 0 mainFrame.Parent = screenGui local mainCorner = Instance.new("UICorner") mainCorner.CornerRadius = UDim.new(0, 10) mainCorner.Parent = mainFrame local title = Instance.new("TextLabel") title.Size = UDim2.new(1, -45, 0, 40) title.Position = UDim2.new(0, 10, 0, 0) title.BackgroundTransparency = 1 title.Text = "ESP / Teleport" title.TextColor3 = Color3.new(1, 1, 1) title.TextSize = 20 title.Font = Enum.Font.GothamBold title.TextXAlignment = Enum.TextXAlignment.Left title.Parent = mainFrame local closeButton = Instance.new("TextButton") closeButton.Size = UDim2.new(0, 35, 0, 35) closeButton.Position = UDim2.new(1, -40, 0, 3) closeButton.BackgroundColor3 = Color3.fromRGB(180, 50, 50) closeButton.Text = "X" closeButton.TextColor3 = Color3.new(1, 1, 1) closeButton.TextSize = 18 closeButton.Font = Enum.Font.GothamBold closeButton.Parent = mainFrame local closeCorner = Instance.new("UICorner") closeCorner.CornerRadius = UDim.new(0, 8) closeCorner.Parent = closeButton local function createButton(text, y) local button = Instance.new("TextButton") button.Size = UDim2.new(1, -20, 0, 40) button.Position = UDim2.new(0, 10, 0, y) button.BackgroundColor3 = Color3.fromRGB(45, 45, 45) button.TextColor3 = Color3.new(1, 1, 1) button.Text = text button.TextSize = 16 button.Font = Enum.Font.GothamBold button.Parent = mainFrame local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 7) corner.Parent = button return button end local function removeHighlight(object, highlightName) if not object then return end local highlight = object:FindFirstChild(highlightName) if highlight and highlight:IsA("Highlight") then highlight:Destroy() end end local function createHighlight(object, highlightName) if not object then return nil end if not ( object:IsA("Model") or object:IsA("BasePart") ) then return nil end local existing = object:FindFirstChild(highlightName) if existing and existing:IsA("Highlight") then existing.FillColor = espColor return existing end local highlight = Instance.new("Highlight") highlight.Name = highlightName highlight.Adornee = object highlight.FillColor = espColor highlight.OutlineColor = Color3.new(1, 1, 1) highlight.FillTransparency = 0.5 highlight.OutlineTransparency = 0 highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop highlight.Parent = object return highlight end local polaroids = {} local function addPolaroid(object) if object.Name ~= "FixationPolaroid" then return end if polaroids[object] then return end polaroids[object] = true if espEnabled then createHighlight( object, POLAROID_ESP_NAME ) end end local function removePolaroid(object) if not polaroids[object] then return end polaroids[object] = nil removeHighlight( object, POLAROID_ESP_NAME ) end local function scanPolaroids() for _, obj in ipairs( Workspace:GetDescendants() ) do if obj.Name == "FixationPolaroid" then addPolaroid(obj) end end end local function updatePolaroidESP() for object in pairs(polaroids) do if object.Parent then if espEnabled then createHighlight( object, POLAROID_ESP_NAME ) else removeHighlight( object, POLAROID_ESP_NAME ) end else polaroids[object] = nil end end end local function getSafeObject() local fixationSafe = Workspace:FindFirstChild("FixationSafe") if not fixationSafe then return nil end local sketchfab = fixationSafe:FindFirstChild("Sketchfab_model") if not sketchfab then return nil end local material = sketchfab:FindFirstChild( "Safe.obj.cleaner.materialmerger.gles" ) if not material then return nil end local object2 = material:FindFirstChild("Object_2") if not object2 then return nil end return object2:FindFirstChild("Object_0") end local function addSafeESP() local safe = getSafeObject() if not safe then return end if safeEnabled then createHighlight( safe, SAFE_ESP_NAME ) else removeHighlight( safe, SAFE_ESP_NAME ) end end local function getBonfireObject() local map = Workspace:FindFirstChild("Map") if not map then return nil end local bonfires = map:FindFirstChild("Bonfires") if not bonfires then return nil end local fire = bonfires:FindFirstChild("Fire") if not fire then return nil end return fire:FindFirstChild( "Meshes/meshPart" ) end local function addBonfireESP() local bonfire = getBonfireObject() if not bonfire then return end if bonfireEnabled then createHighlight( bonfire, BONFIRE_ESP_NAME ) else removeHighlight( bonfire, BONFIRE_ESP_NAME ) end end local willows = {} local function addWillow(object) if object.Name ~= "FixationWillowBox" then return end if willows[object] then return end willows[object] = true if willowEnabled then createHighlight( object, WILLOW_ESP_NAME ) end end local function removeWillow(object) if not willows[object] then return end willows[object] = nil removeHighlight( object, WILLOW_ESP_NAME ) end local function scanWillows() for _, obj in ipairs( Workspace:GetDescendants() ) do if obj.Name == "FixationWillowBox" then addWillow(obj) end end end local function updateWillowESP() for object in pairs(willows) do if object.Parent then if willowEnabled then createHighlight( object, WILLOW_ESP_NAME ) else removeHighlight( object, WILLOW_ESP_NAME ) end else willows[object] = nil end end end local function teleportTo(object) if not object then return end local character = player.Character if not character then return end local root = character:FindFirstChild( "HumanoidRootPart" ) if not root then return end local targetPart = nil if object:IsA("BasePart") then targetPart = object elseif object:IsA("Model") then if object.PrimaryPart then targetPart = object.PrimaryPart else targetPart = object:FindFirstChildWhichIsA( "BasePart", true ) end end if targetPart then root.CFrame = targetPart.CFrame + Vector3.new(0, 4, 0) end end local polaroidButton = createButton( "Polaroid: ON", 50 ) local safeButton = createButton( "Safe: OFF", 95 ) local bonfireButton = createButton( "Bonfire: OFF", 140 ) local willowButton = createButton( "Willow: OFF", 185 ) local listButton = createButton( "Obj Hightlit", 230 ) --================================================== -- COLOR PALETTE --================================================== local colorLabel = Instance.new("TextLabel") colorLabel.Size = UDim2.new(1, -20, 0, 25) colorLabel.Position = UDim2.new(0, 10, 0, 280) colorLabel.BackgroundTransparency = 1 colorLabel.Text = "Цвет подсветки" colorLabel.TextColor3 = Color3.new(1, 1, 1) colorLabel.TextSize = 15 colorLabel.Font = Enum.Font.GothamBold colorLabel.Parent = mainFrame local colors = { {"Красный", Color3.fromRGB(255, 0, 0)}, {"Зелёный", Color3.fromRGB(0, 255, 0)}, {"Синий", Color3.fromRGB(0, 100, 255)}, {"Жёлтый", Color3.fromRGB(255, 255, 0)}, {"Фиолетовый", Color3.fromRGB(170, 0, 255)}, {"Голубой", Color3.fromRGB(0, 255, 255)}, {"Белый", Color3.fromRGB(255, 255, 255)}, {"Оранжевый", Color3.fromRGB(255, 120, 0)}, {"Розовый", Color3.fromRGB(255, 0, 150)}, {"Салатовый", Color3.fromRGB(120, 255, 0)} } for i, data in ipairs(colors) do local color = data[2] local row = math.floor((i - 1) / 5) local column = (i - 1) % 5 local colorButton = Instance.new("TextButton") colorButton.Size = UDim2.new(0, 45, 0, 25) colorButton.Position = UDim2.new( 0, 10 + column * 52, 0, 305 + row * 30 ) colorButton.BackgroundColor3 = color colorButton.Text = "" colorButton.Parent = mainFrame local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 5) corner.Parent = colorButton colorButton.MouseButton1Click:Connect(function() espColor = color for object in pairs(polaroids) do local h = object:FindFirstChild( POLAROID_ESP_NAME ) if h and h:IsA("Highlight") then h.FillColor = espColor end end for object in pairs(willows) do local h = object:FindFirstChild( WILLOW_ESP_NAME ) if h and h:IsA("Highlight") then h.FillColor = espColor end end local safe = getSafeObject() if safe then local h = safe:FindFirstChild( SAFE_ESP_NAME ) if h and h:IsA("Highlight") then h.FillColor = espColor end end local bonfire = getBonfireObject() if bonfire then local h = bonfire:FindFirstChild( BONFIRE_ESP_NAME ) if h and h:IsA("Highlight") then h.FillColor = espColor end end end) end local listFrame = Instance.new("Frame") listFrame.Size = UDim2.new(0, 350, 0, 450) listFrame.Position = UDim2.new(0, 310, 0.5, -225) listFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25) listFrame.BorderSizePixel = 0 listFrame.Visible = false listFrame.Parent = screenGui local listCorner = Instance.new("UICorner") listCorner.CornerRadius = UDim.new(0, 10) listCorner.Parent = listFrame local listTitle = Instance.new("TextLabel") listTitle.Size = UDim2.new(1, -50, 0, 40) listTitle.Position = UDim2.new(0, 10, 0, 0) listTitle.BackgroundTransparency = 1 listTitle.Text = "Подсвечиваемые объекты" listTitle.TextColor3 = Color3.new(1, 1, 1) listTitle.TextSize = 18 listTitle.Font = Enum.Font.GothamBold listTitle.TextXAlignment = Enum.TextXAlignment.Left listTitle.Parent = listFrame local listClose = Instance.new("TextButton") listClose.Size = UDim2.new(0, 35, 0, 35) listClose.Position = UDim2.new(1, -40, 0, 3) listClose.BackgroundColor3 = Color3.fromRGB(180, 50, 50) listClose.Text = "X" listClose.TextColor3 = Color3.new(1, 1, 1) listClose.TextSize = 18 listClose.Font = Enum.Font.GothamBold listClose.Parent = listFrame local listCloseCorner = Instance.new("UICorner") listCloseCorner.CornerRadius = UDim.new(0, 8) listCloseCorner.Parent = listClose local scroll = Instance.new("ScrollingFrame") scroll.Size = UDim2.new(1, -20, 1, -50) scroll.Position = UDim2.new(0, 10, 0, 45) scroll.BackgroundTransparency = 1 scroll.BorderSizePixel = 0 scroll.ScrollBarThickness = 6 scroll.CanvasSize = UDim2.new(0, 0, 0, 0) scroll.Parent = listFrame local layout = Instance.new("UIListLayout") layout.Padding = UDim.new(0, 5) layout.SortOrder = Enum.SortOrder.LayoutOrder layout.Parent = scroll local function createSection(text, order) local label = Instance.new("TextLabel") label.Size = UDim2.new(1, -5, 0, 30) label.BackgroundTransparency = 1 label.Text = text label.TextColor3 = Color3.new(1, 1, 1) label.TextSize = 16 label.Font = Enum.Font.GothamBold label.TextXAlignment = Enum.TextXAlignment.Left label.LayoutOrder = order label.Parent = scroll return label end local function createObjectButton( text, object, order ) local button = Instance.new("TextButton") button.Size = UDim2.new(1, -5, 0, 35) button.BackgroundColor3 = Color3.fromRGB(45, 45, 45) button.Text = text button.TextColor3 = Color3.new(1, 1, 1) button.TextSize = 14 button.Font = Enum.Font.Gotham button.LayoutOrder = order button.Parent = scroll local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 6) corner.Parent = button button.MouseButton1Click:Connect(function() if object and object.Parent then teleportTo(object) end end) return button end local function updateObjectList() for _, child in ipairs( scroll:GetChildren() ) do if child:IsA("TextButton") or child:IsA("TextLabel") then child:Destroy() end end local order = 0 createSection( "POLAROID", order ) order += 1 local polaroidIndex = 0 for object in pairs(polaroids) do if object.Parent then polaroidIndex += 1 createObjectButton( "Polaroid " .. polaroidIndex, object, order ) order += 1 end end --================================================== -- SAFE --================================================== local safe = getSafeObject() if safe then createSection( "SAFE", order ) order += 1 createObjectButton( "Safe", safe, order ) order += 1 end local bonfire = getBonfireObject() if bonfire then createSection( "BONFIRE", order ) order += 1 createObjectButton( "Bonfire", bonfire, order ) order += 1 end local willowCount = 0 for object in pairs(willows) do if object.Parent then willowCount += 1 end end if willowCount > 0 then createSection( "WILLOW", order ) order += 1 local willowIndex = 0 for object in pairs(willows) do if object.Parent then willowIndex += 1 createObjectButton( "Willow " .. willowIndex, object, order ) order += 1 end end end scroll.CanvasSize = UDim2.new( 0, 0, 0, layout.AbsoluteContentSize.Y + 10 ) end polaroidButton.MouseButton1Click:Connect(function() espEnabled = not espEnabled if espEnabled then polaroidButton.Text = "Polaroid: ON" else polaroidButton.Text = "Polaroid: OFF" end updatePolaroidESP() if listFrame.Visible then updateObjectList() end end) safeButton.MouseButton1Click:Connect(function() safeEnabled = not safeEnabled if safeEnabled then safeButton.Text = "Safe: ON" else safeButton.Text = "Safe: OFF" end addSafeESP() if listFrame.Visible then updateObjectList() end end) bonfireButton.MouseButton1Click:Connect(function() bonfireEnabled = not bonfireEnabled if bonfireEnabled then bonfireButton.Text = "Bonfire: ON" else bonfireButton.Text = "Bonfire: OFF" end addBonfireESP() if listFrame.Visible then updateObjectList() end end) willowButton.MouseButton1Click:Connect(function() willowEnabled = not willowEnabled if willowEnabled then willowButton.Text = "Willow: ON" else willowButton.Text = "Willow: OFF" end updateWillowESP() if listFrame.Visible then updateObjectList() end end) listButton.MouseButton1Click:Connect(function() listFrame.Visible = not listFrame.Visible if listFrame.Visible then -- Полностью обновляем список updateObjectList() end end) listClose.MouseButton1Click:Connect(function() listFrame.Visible = false end) descendantConnection = Workspace.DescendantAdded:Connect(function(obj) if destroyed then return end if obj.Name == "FixationPolaroid" then addPolaroid(obj) if listFrame.Visible then task.defer(function() if not destroyed and listFrame.Visible then updateObjectList() end end) end return end if obj.Name == "FixationWillowBox" then addWillow(obj) if listFrame.Visible then task.defer(function() if not destroyed and listFrame.Visible then updateObjectList() end end) end return end if obj.Name == "Object_0" then task.defer(function() if destroyed then return end if safeEnabled then addSafeESP() end if listFrame.Visible then updateObjectList() end end) return end if obj.Name == "Meshes/meshPart" then task.defer(function() if destroyed then return end if bonfireEnabled then addBonfireESP() end if listFrame.Visible then updateObjectList() end end) return end end) removingConnection = Workspace.DescendantRemoving:Connect(function(obj) if destroyed then return end local changed = false if polaroids[obj] then removePolaroid(obj) changed = true end if willows[obj] then removeWillow(obj) changed = true end if changed and listFrame.Visible then task.defer(function() if not destroyed and listFrame.Visible then updateObjectList() end end) end end) scanPolaroids() scanWillows() addSafeESP() addBonfireESP() local function makeDraggable(frame) local dragging = false local dragStart local startPos frame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = input.Position startPos = frame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) UserInputService.InputChanged:Connect(function(input) if not dragging then return end if input.UserInputType == Enum.UserInputType.MouseMovement then local delta = input.Position - dragStart frame.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) end end) end makeDraggable(mainFrame) makeDraggable(listFrame) closeButton.MouseButton1Click:Connect(function() destroyed = true if descendantConnection then descendantConnection:Disconnect() descendantConnection = nil end if removingConnection then removingConnection:Disconnect() removingConnection = nil end for object in pairs(polaroids) do removeHighlight( object, POLAROID_ESP_NAME ) end for object in pairs(willows) do removeHighlight( object, WILLOW_ESP_NAME ) end -- Safe local safe = getSafeObject() if safe then removeHighlight( safe, SAFE_ESP_NAME ) end -- Bonfire local bonfire = getBonfireObject() if bonfire then removeHighlight( bonfire, BONFIRE_ESP_NAME ) end screenGui:Destroy() end)