Загрузка данных


-- Fatality.win Premium Client written for PC (Xeno Executor)
if getgenv().FatalityWinPC_Loaded then return end
getgenv().FatalityWinPC_Loaded = true

-- Загрузка ПК-библиотеки интерфейса с поддержкой размытия и стилизации под Fatality/Neverlose
local Fluent = loadstring(game:HttpGet("https://github.com/dawid-scripts/Fluent/releases/latest/download/main.lua"))()
local SaveManager = loadstring(game:HttpGet("https://raw.githubusercontent.com/dawid-scripts/Fluent/main/Addons/SaveManager.lua"))()
local InterfaceManager = loadstring(game:HttpGet("https://raw.githubusercontent.com/dawid-scripts/Fluent/main/Addons/InterfaceManager.lua"))()

-- Настройка окна в стиле ПК-софта Fatality
local Window = Fluent:CreateWindow({
    Title = "FATALITY.WIN — Premium Edition",
    SubTitle = "by Neverlose_CC [Expires: NEVER]",
    TabWidth = 120,
    Size = UDim2.fromOffset(580, 420),
    Acrylic = true, -- Реальное ПК размытие заднего фона
    Theme = "Dark",
    MinimizeKey = Enum.KeyCode.Insert -- Открытие/Закрытие меню на INSERT
})

-- Добавляем фирменный бордовый оттенок Fatality элементам
Fluent.Options = Fluent.Options or {}

-- Сервисы игры
local players = game:GetService("Players")
local runService = game:GetService("RunService")
local soundService = game:GetService("SoundService")
local debris = game:GetService("Debris")
local client = players.LocalPlayer

-- Стейт функций
local features = {
    chinahat = {enabled = false, style = "Vantality Pink", part = nil},
    hitsounds = {enabled = false, type = "Skeet (Classic)", volume = 5},
    spinbot = false,
    jitter = false,
    fakelag = false,
    chams = false,
    noclip = false
}

local enemyHealths = {}
local hatCleanup = nil

-- ==================== ВКЛАДКИ МЕНЮ (ПК СТИЛЬ) ====================
local Tabs = {
    Rage = Window:AddTab({ Title = "RAGE", Icon = "crosshair" }),
    Legit = Window:AddTab({ Title = "LEGIT", Icon = "user-check" }),
    Visual = Window:AddTab({ Title = "VISUAL", Icon = "eye" }),
    Misc = Window:AddTab({ Title = "MISC", Icon = "settings" })
}

-- ------------------ RAGE TAB ------------------
Tabs.Rage:AddParagraph({ Title = "Aimbot Configuration", Content = "Main Rage target selectors and double tap triggers." })

Tabs.Rage:AddToggle("SilentAim", {Title = "Enable Silent Aim", Default = false})
Tabs.Rage:AddToggle("DoubleTap", {Title = "Double Tap (Desync)", Default = false})
Tabs.Rage:AddSlider("HitChance", {Title = "Hit-Chance Limit", Min = 0, Max = 100, Default = 64, Round = 0, Callback = function(v) end})

Tabs.Rage:AddParagraph({ Title = "Anti-Aim Section", Content = "Desync and angles manipulation." })
local SpinToggle = Tabs.Rage:AddToggle("Spinbot", {Title = "Desync Spinbot", Default = false})
local JitterToggle = Tabs.Rage:AddToggle("JitterAA", {Title = "Jitter Anti-Aim", Default = false})
local LagToggle = Tabs.Rage:AddToggle("FakeLag", {Title = "Fake Lag Desync", Default = false})

-- ------------------ LEGIT TAB ------------------
Tabs.Legit:AddToggle("LegitAim", {Title = "Legit Aimbot Smooth", Default = false})
Tabs.Legit:AddSlider("FOV", {Title = "Maximum Field of View", Min = 1, Max = 180, Default = 45, Round = 0, Callback = function(v) end})

-- ------------------ VISUAL TAB (Сюда вынесены Шляпа и Звуки) ------------------
Tabs.Visual:AddParagraph({ Title = "Player ESP", Content = "Render modifications for tactical advantage." })
local ChamsToggle = Tabs.Visual:AddToggle("Chams", {Title = "Player Wallhack / Chams", Default = false})

Tabs.Visual:AddParagraph({ Title = "Vantality Visuals", Content = "Special hat customization models." })
local HatToggle = Tabs.Visual:AddToggle("ChinaHat", {Title = "Draw China Hat (TSB Style)", Default = false})
local HatDropdown = Tabs.Visual:AddDropdown("HatTheme", {
    Title = "China Hat Preset",
    Values = {"Vantality Pink", "Fatality Red", "Gamesense Green"},
    CurrentValue = "Vantality Pink"
})

Tabs.Visual:AddParagraph({ Title = "Sound Effects", Content = "Audio confirmation on structural hits (Syria Fix)." })
local HitToggle = Tabs.Visual:AddToggle("HitAudio", {Title = "Enable Hit Audio", Default = false})
local HitDropdown = Tabs.Visual:AddDropdown("HitSelector", {
    Title = "Hit Audio Selector",
    Values = {"Skeet (Classic)", "Neverlose (Click)"},
    CurrentValue = "Skeet (Classic)"
})
local HitVolume = Tabs.Visual:AddSlider("HitVolume", {Title = "Audio Volume Booster", Min = 1, Max = 10, Default = 5, Round = 0})

-- ------------------ MISC TAB ------------------
Tabs.Misc:AddSlider("Speed", {Title = "Speed Changer", Min = 16, Max = 150, Default = 50, Round = 0})
Tabs.Misc:AddSlider("Jump", {Title = "Jump Height Changer", Min = 50, Max = 150, Default = 50, Round = 0})
local NoclipToggle = Tabs.Misc:AddToggle("Noclip", {Title = "Noclip Object Bypass", Default = false})

-- ==================== ПК ЛОГИКА ФУНКЦИЙ ====================

-- 1. Сборка Неоновой Шляпы Vantality (TSB)
local function spawnHat()
    if not features.chinahat.enabled then return end
    local char = client.Character
    local head = char and char:WaitForChild("Head", 5)
    if not head then return end
    
    if features.chinahat.part then pcall(function() features.chinahat.part:Destroy() end) end
    
    local part = Instance.new("Part")
    part.Name = "FatalityPC_Hat"
    part.Size = Vector3.new(2.4, 0.4, 2.4)
    part.CanCollide = false
    part.CastShadow = false
    part.Transparency = 0.25
    part.Material = Enum.Material.Neon
    
    local mesh = Instance.new("SpecialMesh", part)
    mesh.MeshType = Enum.MeshType.Cone
    mesh.Scale = Vector3.new(2.5, 1.3, 2.5)
    
    local att0 = Instance.new("Attachment", head)
    att0.Position = Vector3.new(0, 0.65, 0)
    
    local att1 = Instance.new("Attachment", part)
    att1.Position = Vector3.new(0, -0.2, 0)
    
    local alignPos = Instance.new("AlignPosition", part)
    alignPos.Attachment0 = att1; alignPos.Attachment1 = att0
    alignPos.RigidityEnabled = true
    
    local alignOri = Instance.new("AlignOrientation", part)
    alignOri.Attachment0 = att1; alignOri.Attachment1 = att0
    alignOri.RigidityEnabled = true

    part.Parent = char
    features.chinahat.part = part
end

HatToggle:OnChanged(function(state)
    features.chinahat.enabled = state
    if state then
        spawnHat()
        hatCleanup = client.CharacterAdded:Connect(function() task.wait(0.5); spawnHat() end)
    else
        if hatCleanup then hatCleanup:Disconnect(); hatCleanup = nil end
        if features.chinahat.part then pcall(function() features.chinahat.part:Destroy() end); features.chinahat.part = nil end
    end
end)

HatDropdown:OnChanged(function(val)
    features.chinahat.style = val
end)

runService.RenderStepped:Connect(function()
    local part = features.chinahat.part
    if part and part.Parent then
        if features.chinahat.style == "Vantality Pink" then part.Color = Color3.fromRGB(255, 0, 255)
        elseif features.chinahat.style == "Fatality Red" then part.Color = Color3.fromRGB(186, 12, 87)
        elseif features.chinahat.style == "Gamesense Green" then part.Color = Color3.fromRGB(0, 255, 120) end
    end
end)

-- 2. ПК Хитсаунды через Клиентскую Камеру
local FIX_SOUNDS = {
    ["Skeet (Classic)"] = "rbxassetid://9114223193",
    ["Neverlose (Click)"] = "rbxassetid://1222215169"
}

local function trackEnemy(plr)
    if plr == client then return end
    local function onChar(char)
        local hum = char:WaitForChild("Humanoid", 15)
        if hum then
            enemyHealths[plr] = hum.Health
            hum.HealthChanged:Connect(function(currentHealth)
                local lastHealth = enemyHealths[plr] or hum.MaxHealth
                enemyHealths[plr] = currentHealth
                if currentHealth < lastHealth and features.hitsounds.enabled then
                    pcall(function()
                        local cam = workspace.CurrentCamera
                        if cam then
                            local sound = Instance.new("Sound")
                            sound.SoundId = FIX_SOUNDS[features.hitsounds.type] or FIX_SOUNDS["Skeet (Classic)"]
                            sound.Volume = features.hitsounds.volume * 0.4
                            sound.PlayOnRemove = true
                            sound.Parent = cam
                            sound:Play()
                            debris:AddItem(sound, 0.5)
                        end
                    end)
                end
            end)
        end
    end
    if plr.Character then task.spawn(onChar, plr.Character) end
    plr.CharacterAdded:Connect(onChar)
end

for _, p in ipairs(players:GetPlayers()) do trackEnemy(p) end
players.PlayerAdded:Connect(trackEnemy)

HitToggle:OnChanged(function(s) features.hitsounds.enabled = s end)
HitDropdown:OnChanged(function(v) features.hitsounds.type = v end)
HitVolume:OnChanged(function(v) features.hitsounds.volume = v end)

-- 3. Движение, Spinbot и Anti-Aim
SpinToggle:OnChanged(function(s) features.spinbot = s end)
JitterToggle:OnChanged(function(s) features.jitter = s end)
LagToggle:OnChanged(function(s) features.fakelag = s end)

runService.Heartbeat:Connect(function()
    local hrp = client.Character and client.Character:FindFirstChild("HumanoidRootPart")
    if not hrp then return end
    
    if features.spinbot then
        hrp.CFrame = CFrame.new(hrp.CFrame.Position) * CFrame.Angles(0, math.rad((tick() * 900) % 360), 0)
    elseif features.jitter then
        local angle = (math.random(0, 1) == 1 and 75 or -75)
        hrp.CFrame = CFrame.new(hrp.CFrame.Position) * CFrame.Angles(0, math.rad(angle), 0)
    end
end)

task.spawn(function()
    while task.wait() do
        if features.fakelag then
            local hrp = client.Character and client.Character:FindFirstChild("HumanoidRootPart")
            if hrp then hrp.Anchored = true; task.wait(0.08); hrp.Anchored = false end
            task.wait(math.random(2, 4)/10)
        end
    end
end)

-- 4. Визуалы (Chams)
local activeChams = {}
ChamsToggle:OnChanged(function(state)
    features.chams = state
    if not state then
        for _, h in pairs(activeChams) do if h and h.Parent then h:Destroy() end end
        table.clear(activeChams)
    end
end)

runService.Heartbeat:Connect(function()
    if not features.chams then return end
    for _, p in ipairs(players:GetPlayers()) do
        if p ~= client and p.Character and p.Character:Parent() ~= nil then
            local hl = activeChams[p] or p.Character:FindFirstChild("FatalityPC_ESP")
            if not hl then
                hl = Instance.new("Highlight")
                hl.Name = "FatalityPC_ESP"
                hl.FillTransparency = 0.4
                hl.FillColor = Color3.fromRGB(186, 12, 87)
                hl.OutlineColor = Color3.fromRGB(255, 255, 255)
                hl.Parent = p.Character
                activeChams[p] = hl
            end
        end
    end
end)

-- 5. Миски (Скорость, Ноклип)
NoclipToggle:OnChanged(function(s) features.noclip = s end)
runService.Stepped:Connect(function()
    if features.noclip and client.Character then
        for _, p in ipairs(client.Character:GetDescendants()) do
            if p:IsA("BasePart") then p.CanCollide = false end
        end
    end
end)

task.spawn(function()
    while task.wait(0.2) do
        pcall(function()
            local hum = client.Character and client.Character:FindFirstChild("Humanoid")
            if hum then
                hum.WalkSpeed = Tabs.Misc.Sliders.Speed.Value
                hum.JumpPower = Tabs.Misc.Sliders.Jump.Value
            end
        end)
    end
end)

-- Авто-менеджер автосохранения конфигов (чтобы Xeno не сбрасывал настройки при релоаде)
SaveManager:SetFolder("FatalityWinPC")
InterfaceManager:SetFolder("FatalityWinPC")
SaveManager:BuildConfigSection(Tabs.Misc)
InterfaceManager:BuildInterfaceSection(Tabs.Misc)
SaveManager:LoadAutoloadConfig()