Eni v3 | Free Aimbot & ESP script
Key Required

Eni v3 | Free Aimbot & ESP script

[🗣️CALLOUT🗣️] ENTRENCHED 🥀LarslangschwansLarslangschwans 2.2K views 13.8K executesUpdated Aug 31, 2026
Unrated
00
Lua Script•941 lines (38125 chars)
-- ╔══════════════════════════════════════════════════════════╗
--   ENI CHEAT SUITE v3 — Entrenched | All-in-One
--   Rayfield UI | Synapse X / KRNL / Fluxus / Solara
--   FLY FIXED — No instances, pure state manipulation
-- ╚══════════════════════════════════════════════════════════╝

-- ════════════════════════════════════════════════════════════
--  SERVICES
-- ════════════════════════════════════════════════════════════
local Players          = game:GetService("Players")
local RunService       = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local Lighting         = game:GetService("Lighting")
local Camera           = workspace.CurrentCamera
local LP               = Players.LocalPlayer
local Mouse            = LP:GetMouse()

-- ════════════════════════════════════════════════════════════
--  CONFIG
-- ════════════════════════════════════════════════════════════
local Cfg = {
    Aimbot = {
        Enabled     = false,
        SilentAim   = false,
        Prediction  = true,
        AimPart     = "Head",
        FOV         = 160,
        Smooth      = 18,
        TeamCheck   = true,
        HoldKey     = Enum.KeyCode.Q,
        BulletSpeed = 300,
    },
    Triggerbot = {
        Enabled   = false,
        Delay     = 80,
        TeamCheck = true,
    },
    Hitbox = {
        Enabled = false,
        Size    = 8,
    },
    ESP = {
        Enabled    = true,
        Box        = true,
        Name       = true,
        Distance   = true,
        Tracer     = false,
        HealthBar  = false,
        Skeleton   = false,
        TeamCheck  = true,
        MaxDist    = 600,
        EnemyColor = Color3.fromRGB(235, 55, 55),
    },
    Visual = {
        RainbowESP   = false,
        RainbowSpeed = 2,
        Chams        = false,
        ChamsColor   = Color3.fromRGB(255, 50, 50),
        RainbowGUI   = false,
        Fullbright   = false,
        RainbowWorld = false,
        Radar        = false,
        RadarScale   = 0.25,
    },
    Crosshair = {
        Enabled = false,
        Color   = Color3.fromRGB(255, 255, 255),
        Size    = 8,
        Gap     = 4,
        Thick   = 1.5,
    },
    FOVChanger = {
        Enabled = false,
        Value   = 90,
    },
    Player = {
        FlyEnabled    = false,
        FlySpeed      = 22,
        InfJump       = false,
        JumpPower     = 50,
        AntiFall      = false,
        NoclipEnabled = false,
    },
}

-- ════════════════════════════════════════════════════════════
--  FORWARD DECLARATIONS
-- ════════════════════════════════════════════════════════════
local FOVCircle, CHLines, RainbowBorder, RadarBG, RadarBorder, RadarCenter
CHLines       = {}
RainbowBorder = {}
local Pool        = {}
local ChamsPool   = {}
local RadarDots   = {}
local RainbowHue  = 0
local TriggerDebounce = false
local TriggerTimer    = 0

-- Bone pairs for skeleton ESP
local R15_BONES = {
    {"Head","UpperTorso"},{"UpperTorso","LowerTorso"},
    {"LowerTorso","LeftUpperLeg"},{"LowerTorso","RightUpperLeg"},
    {"LeftUpperLeg","LeftLowerLeg"},{"RightUpperLeg","RightLowerLeg"},
    {"UpperTorso","LeftUpperArm"},{"UpperTorso","RightUpperArm"},
    {"LeftUpperArm","LeftLowerArm"},{"RightUpperArm","RightLowerArm"},
}
local R6_BONES = {
    {"Head","Torso"},{"Torso","Left Arm"},{"Torso","Right Arm"},
    {"Torso","Left Leg"},{"Torso","Right Leg"},
}

-- ════════════════════════════════════════════════════════════
--  LIGHTING ORIGINALS + EFFECTS
-- ════════════════════════════════════════════════════════════
local OrigLight = {
    Brightness     = Lighting.Brightness,
    Ambient        = Lighting.Ambient,
    OutdoorAmbient = Lighting.OutdoorAmbient,
}

local function SetFullbright(v)
    if v then
        Lighting.Brightness     = 2
        Lighting.Ambient        = Color3.fromRGB(255, 255, 255)
        Lighting.OutdoorAmbient = Color3.fromRGB(255, 255, 255)
    else
        Lighting.Brightness     = OrigLight.Brightness
        Lighting.Ambient        = OrigLight.Ambient
        Lighting.OutdoorAmbient = OrigLight.OutdoorAmbient
    end
end

-- Chams folder (parent highlights here, not to character → bypasses CCFI)
local ChamsFolder = Instance.new("Folder")
ChamsFolder.Name   = "ENI_Chams"
ChamsFolder.Parent = workspace

-- ════════════════════════════════════════════════════════════
--  HELPERS
-- ════════════════════════════════════════════════════════════
local function Draw(kind, props)
    local o = Drawing.new(kind)
    for k, v in pairs(props) do o[k] = v end
    return o
end

-- ════════════════════════════════════════════════════════════
--  CROSSHAIR
-- ════════════════════════════════════════════════════════════
local function BuildCHLine()
    return Draw("Line", {Visible=false, Thickness=Cfg.Crosshair.Thick, Color=Cfg.Crosshair.Color})
end

local function RebuildCrosshair()
    for _, l in ipairs(CHLines) do l:Remove() end
    CHLines = {}
    for i = 1, 4 do CHLines[i] = BuildCHLine() end
end

-- ════════════════════════════════════════════════════════════
--  FLY — FIXED (zero instances, pure state + velocity)
-- ════════════════════════════════════════════════════════════
local function StartFly()
    Cfg.Player.FlyEnabled = true
end

local function StopFly()
    Cfg.Player.FlyEnabled = false
    local char = LP.Character; if not char then return end
    local hum  = char:FindFirstChildOfClass("Humanoid"); if not hum then return end
    local hrp  = char:FindFirstChild("HumanoidRootPart"); if not hrp then return end
    hum:SetStateEnabled(Enum.HumanoidStateType.Freefall, true)
    hum:SetStateEnabled(Enum.HumanoidStateType.Jumping, true)
    hum:ChangeState(Enum.HumanoidStateType.Freefall)
    hrp.AssemblyLinearVelocity = Vector3.zero
end

local function FlyTick()
    if not Cfg.Player.FlyEnabled then return end
    local char = LP.Character; if not char then return end
    local hrp  = char:FindFirstChild("HumanoidRootPart"); if not hrp then return end
    local hum  = char:FindFirstChildOfClass("Humanoid"); if not hum then return end

    -- Lock humanoid into physics state (no BodyVelocity needed)
    hum:SetStateEnabled(Enum.HumanoidStateType.Freefall, false)
    hum:SetStateEnabled(Enum.HumanoidStateType.Jumping,  false)
    hum:ChangeState(Enum.HumanoidStateType.Physics)

    local cf  = Camera.CFrame
    local dir = Vector3.zero
    if UserInputService:IsKeyDown(Enum.KeyCode.W)           then dir += cf.LookVector         end
    if UserInputService:IsKeyDown(Enum.KeyCode.S)           then dir -= cf.LookVector         end
    if UserInputService:IsKeyDown(Enum.KeyCode.A)           then dir -= cf.RightVector        end
    if UserInputService:IsKeyDown(Enum.KeyCode.D)           then dir += cf.RightVector        end
    if UserInputService:IsKeyDown(Enum.KeyCode.Space)       then dir += Vector3.new(0, 1, 0)  end
    if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then dir -= Vector3.new(0, 1, 0)  end
    if dir.Magnitude > 0 then dir = dir.Unit end

    hrp.AssemblyLinearVelocity = dir * Cfg.Player.FlySpeed
end

LP.CharacterAdded:Connect(function()
    task.wait(1)
    if Cfg.Player.FlyEnabled then StartFly() end
end)

-- ════════════════════════════════════════════════════════════
--  RAYFIELD WINDOW
-- ════════════════════════════════════════════════════════════
local Rayfield = loadstring(game:HttpGet("https://sirius.menu/rayfield"))()

local Win = Rayfield:CreateWindow({
    Name            = "ENI  •  Entrenched  v3",
    LoadingTitle    = "ENI Cheat Suite",
    LoadingSubtitle = "Entrenched  —  for LO  ♥",
    ConfigurationSaving = {
        Enabled    = true,
        FolderName = "ENI",
        FileName   = "Entrenched_v3",
    },
    KeySystem = false,
})

local T_Combat  = Win:CreateTab("Combat",   4483362458)
local T_Visuals = Win:CreateTab("Visuals",  4483362458)
local T_Effects = Win:CreateTab("Effects",  4483362458)
local T_Player  = Win:CreateTab("Player",   4483362458)
local T_Misc    = Win:CreateTab("Misc",     4483362458)

-- ────────────────────────────────────────────────────────────
--  COMBAT TAB
-- ────────────────────────────────────────────────────────────
T_Combat:CreateSection("Aimbot")
T_Combat:CreateToggle({ Name="Aimbot", CurrentValue=false, Flag="AimbotEnabled",
    Callback=function(v) Cfg.Aimbot.Enabled=v end })
T_Combat:CreateToggle({ Name="Silent Aim", CurrentValue=false, Flag="SilentAim",
    Callback=function(v) Cfg.Aimbot.SilentAim=v end })
T_Combat:CreateToggle({ Name="Prediction", CurrentValue=true, Flag="Prediction",
    Callback=function(v) Cfg.Aimbot.Prediction=v end })
T_Combat:CreateKeybind({ Name="Aim Hold Key", CurrentKeybind="Q",
    HoldToInteract=true, Flag="AimKey", Callback=function() end })
T_Combat:CreateSlider({ Name="FOV Radius", Range={40,500}, Increment=10,
    Suffix=" px", CurrentValue=160, Flag="AimbotFOV",
    Callback=function(v) Cfg.Aimbot.FOV=v; if FOVCircle then FOVCircle.Radius=v end end })
T_Combat:CreateSlider({ Name="Smoothing", Range={1,60}, Increment=1,
    Suffix="%", CurrentValue=18, Flag="AimbotSmooth",
    Callback=function(v) Cfg.Aimbot.Smooth=v end })
T_Combat:CreateSlider({ Name="Bullet Speed", Range={80,1200}, Increment=10,
    Suffix=" st/s", CurrentValue=300, Flag="BulletSpeed",
    Callback=function(v) Cfg.Aimbot.BulletSpeed=v end })
T_Combat:CreateDropdown({ Name="Aim Bone",
    Options={"Head","HumanoidRootPart","UpperTorso","LeftUpperLeg","RightUpperLeg"},
    CurrentOption={"Head"}, Flag="AimBone",
    Callback=function(v) Cfg.Aimbot.AimPart=v[1] end })
T_Combat:CreateToggle({ Name="Team Check", CurrentValue=true, Flag="AimbotTeam",
    Callback=function(v) Cfg.Aimbot.TeamCheck=v end })

T_Combat:CreateSection("Triggerbot")
T_Combat:CreateToggle({ Name="Triggerbot", CurrentValue=false, Flag="TriggerEnabled",
    Callback=function(v) Cfg.Triggerbot.Enabled=v end })
T_Combat:CreateSlider({ Name="Trigger Delay", Range={0,300}, Increment=5,
    Suffix=" ms", CurrentValue=80, Flag="TriggerDelay",
    Callback=function(v) Cfg.Triggerbot.Delay=v end })
T_Combat:CreateToggle({ Name="Team Check (Trigger)", CurrentValue=true, Flag="TriggerTeam",
    Callback=function(v) Cfg.Triggerbot.TeamCheck=v end })

T_Combat:CreateSection("Hitbox")
T_Combat:CreateToggle({ Name="Hitbox Expander", CurrentValue=false, Flag="HitboxEnabled",
    Callback=function(v) Cfg.Hitbox.Enabled=v end })
T_Combat:CreateSlider({ Name="Hitbox Size", Range={4,28}, Increment=1,
    Suffix=" st", CurrentValue=8, Flag="HitboxSize",
    Callback=function(v) Cfg.Hitbox.Size=v end })
T_Combat:CreateLabel("⚠  Only works at close range")

-- ────────────────────────────────────────────────────────────
--  VISUALS TAB
-- ────────────────────────────────────────────────────────────
T_Visuals:CreateSection("Player ESP")
T_Visuals:CreateToggle({ Name="ESP Enabled", CurrentValue=true, Flag="ESPEnabled",
    Callback=function(v) Cfg.ESP.Enabled=v end })
T_Visuals:CreateToggle({ Name="Bounding Box", CurrentValue=true, Flag="ESPBox",
    Callback=function(v) Cfg.ESP.Box=v end })
T_Visuals:CreateToggle({ Name="Player Names", CurrentValue=true, Flag="ESPName",
    Callback=function(v) Cfg.ESP.Name=v end })
T_Visuals:CreateToggle({ Name="Distance Label", CurrentValue=true, Flag="ESPDist",
    Callback=function(v) Cfg.ESP.Distance=v end })
T_Visuals:CreateToggle({ Name="Skip Teammates", CurrentValue=true, Flag="ESPTeam",
    Callback=function(v) Cfg.ESP.TeamCheck=v end })
T_Visuals:CreateSlider({ Name="Max Render Distance", Range={100,1200},
    Increment=50, Suffix=" m", CurrentValue=600, Flag="ESPMaxDist",
    Callback=function(v) Cfg.ESP.MaxDist=v end })
T_Visuals:CreateColorPicker({ Name="Enemy ESP Color",
    Color=Color3.fromRGB(235,55,55), Flag="ESPColor",
    Callback=function(v) Cfg.ESP.EnemyColor=v end })

T_Visuals:CreateSection("Enhanced ESP")
T_Visuals:CreateToggle({ Name="Tracers", CurrentValue=false, Flag="ESPTracer",
    Callback=function(v) Cfg.ESP.Tracer=v end })
T_Visuals:CreateToggle({ Name="Health Bars", CurrentValue=false, Flag="ESPHealth",
    Callback=function(v) Cfg.ESP.HealthBar=v end })
T_Visuals:CreateToggle({ Name="Skeleton ESP", CurrentValue=false, Flag="ESPSkel",
    Callback=function(v) Cfg.ESP.Skeleton=v end })
T_Visuals:CreateToggle({ Name="Chams (See-Through)", CurrentValue=false, Flag="ChamsEnabled",
    Callback=function(v)
        Cfg.Visual.Chams=v
        for _,h in pairs(ChamsPool) do h.Enabled=v end
    end })
T_Visuals:CreateColorPicker({ Name="Chams Color",
    Color=Color3.fromRGB(255,50,50), Flag="ChamsColor",
    Callback=function(v)
        Cfg.Visual.ChamsColor=v
        for _,h in pairs(ChamsPool) do h.FillColor=v end
    end })

T_Visuals:CreateSection("Crosshair")
T_Visuals:CreateToggle({ Name="Custom Crosshair", CurrentValue=false, Flag="CrosshairEnabled",
    Callback=function(v) Cfg.Crosshair.Enabled=v end })
T_Visuals:CreateSlider({ Name="Size", Range={4,30}, Increment=1,
    Suffix=" px", CurrentValue=8, Flag="CrosshairSize",
    Callback=function(v) Cfg.Crosshair.Size=v; RebuildCrosshair() end })
T_Visuals:CreateSlider({ Name="Gap", Range={1,20}, Increment=1,
    Suffix=" px", CurrentValue=4, Flag="CrosshairGap",
    Callback=function(v) Cfg.Crosshair.Gap=v; RebuildCrosshair() end })
T_Visuals:CreateSlider({ Name="Thickness", Range={1,5}, Increment=1,
    Suffix=" px", CurrentValue=2, Flag="CrosshairThick",
    Callback=function(v) Cfg.Crosshair.Thick=v; RebuildCrosshair() end })
T_Visuals:CreateColorPicker({ Name="Crosshair Color",
    Color=Color3.fromRGB(255,255,255), Flag="CrosshairColor",
    Callback=function(v) Cfg.Crosshair.Color=v; RebuildCrosshair() end })

T_Visuals:CreateSection("Camera")
T_Visuals:CreateToggle({ Name="FOV Changer", CurrentValue=false, Flag="FOVEnabled",
    Callback=function(v)
        Cfg.FOVChanger.Enabled=v
        if not v then Camera.FieldOfView=70 end
    end })
T_Visuals:CreateSlider({ Name="Field of View", Range={40,130}, Increment=1,
    Suffix="°", CurrentValue=90, Flag="FOVValue",
    Callback=function(v)
        Cfg.FOVChanger.Value=v
        if Cfg.FOVChanger.Enabled then Camera.FieldOfView=v end
    end })

T_Visuals:CreateSection("2D Radar")
T_Visuals:CreateToggle({ Name="Radar", CurrentValue=false, Flag="RadarEnabled",
    Callback=function(v)
        Cfg.Visual.Radar=v
        if RadarBG then RadarBG.Visible=v end
        if RadarBorder then RadarBorder.Visible=v end
        if RadarCenter then RadarCenter.Visible=v end
    end })
T_Visuals:CreateSlider({ Name="Radar Scale", Range={10,60}, Increment=2,
    Suffix=" px/st", CurrentValue=25, Flag="RadarScale",
    Callback=function(v) Cfg.Visual.RadarScale=v/100 end })

-- ────────────────────────────────────────────────────────────
--  EFFECTS TAB
-- ────────────────────────────────────────────────────────────
T_Effects:CreateSection("Rainbow")
T_Effects:CreateToggle({ Name="Rainbow ESP Colors", CurrentValue=false, Flag="RainbowESP",
    Callback=function(v) Cfg.Visual.RainbowESP=v end })
T_Effects:CreateToggle({ Name="Rainbow World", CurrentValue=false, Flag="RainbowWorld",
    Callback=function(v)
        Cfg.Visual.RainbowWorld=v
        if not v then
            Lighting.Ambient=OrigLight.Ambient
            Lighting.OutdoorAmbient=OrigLight.OutdoorAmbient
        end
    end })
T_Effects:CreateToggle({ Name="Rainbow Screen Border", CurrentValue=false, Flag="RainbowGUI",
    Callback=function(v)
        Cfg.Visual.RainbowGUI=v
        if not v then for _,l in ipairs(RainbowBorder) do l.Visible=false end end
    end })
T_Effects:CreateSlider({ Name="Rainbow Speed", Range={1,10}, Increment=1,
    Suffix="x", CurrentValue=2, Flag="RainbowSpeed",
    Callback=function(v) Cfg.Visual.RainbowSpeed=v end })

T_Effects:CreateSection("Lighting")
T_Effects:CreateToggle({ Name="Fullbright", CurrentValue=false, Flag="Fullbright",
    Callback=function(v)
        Cfg.Visual.Fullbright=v
        SetFullbright(v)
    end })

T_Effects:CreateSection("World Color")
T_Effects:CreateColorPicker({ Name="Ambient Override",
    Color=Color3.fromRGB(128,128,128), Flag="AmbientColor",
    Callback=function(v)
        if not Cfg.Visual.RainbowWorld and not Cfg.Visual.Fullbright then
            Lighting.Ambient=v
        end
    end })

-- ────────────────────────────────────────────────────────────
--  PLAYER TAB
-- ────────────────────────────────────────────────────────────
T_Player:CreateSection("Flight  (WASD + Space/Ctrl)")
T_Player:CreateToggle({ Name="Fly — Instance-Free Fix", CurrentValue=false, Flag="FlyEnabled",
    Callback=function(v)
        if v then StartFly() else StopFly() end
    end })
T_Player:CreateSlider({ Name="Fly Speed", Range={10,120}, Increment=2,
    Suffix=" st/s", CurrentValue=22, Flag="FlySpeed",
    Callback=function(v) Cfg.Player.FlySpeed=v end })

T_Player:CreateSection("Movement")
T_Player:CreateToggle({ Name="Infinite Jump", CurrentValue=false, Flag="InfJump",
    Callback=function(v) Cfg.Player.InfJump=v end })
T_Player:CreateSlider({ Name="Jump Power", Range={50,350}, Increment=5,
    Suffix=" jp", CurrentValue=50, Flag="JumpPower",
    Callback=function(v)
        Cfg.Player.JumpPower=v
        local char=LP.Character
        if char then
            local hum=char:FindFirstChildOfClass("Humanoid")
            if hum then hum.JumpPower=v end
        end
    end })
T_Player:CreateToggle({ Name="Anti Fall-Damage", CurrentValue=false, Flag="AntiFall",
    Callback=function(v) Cfg.Player.AntiFall=v end })
T_Player:CreateToggle({ Name="Noclip", CurrentValue=false, Flag="Noclip",
    Callback=function(v) Cfg.Player.NoclipEnabled=v end })

-- ────────────────────────────────────────────────────────────
--  MISC TAB
-- ────────────────────────────────────────────────────────────
T_Misc:CreateSection("Tools")
T_Misc:CreateButton({ Name="Status Notification",
    Callback=function()
        Rayfield:Notify({
            Title   = "ENI  v3  •  Status",
            Content = string.format(
                "Aim:%s  Silent:%s  Trig:%s  Fly:%s  ESP:%s  Chams:%s",
                Cfg.Aimbot.Enabled and"✓"or"✗",
                Cfg.Aimbot.SilentAim and"✓"or"✗",
                Cfg.Triggerbot.Enabled and"✓"or"✗",
                Cfg.Player.FlyEnabled and"✓"or"✗",
                Cfg.ESP.Enabled and"✓"or"✗",
                Cfg.Visual.Chams and"✓"or"✗"
            ),
            Duration=5, Image=4483362458,
        })
    end })
T_Misc:CreateButton({ Name="Reset All Lighting",
    Callback=function()
        Cfg.Visual.Fullbright=false
        Cfg.Visual.RainbowWorld=false
        SetFullbright(false)
        Rayfield:Notify({Title="Lighting Reset",Content="All effects cleared.",Duration=3})
    end })
T_Misc:CreateButton({ Name="Reset Jump Power",
    Callback=function()
        Cfg.Player.JumpPower=50
        local char=LP.Character
        if char then
            local hum=char:FindFirstChildOfClass("Humanoid")
            if hum then hum.JumpPower=50 end
        end
    end })
T_Misc:CreateSection("Credits")
T_Misc:CreateLabel("ENI Cheat Suite v3  •  Entrenched")
T_Misc:CreateLabel("Made with ♥ for LO")

-- ════════════════════════════════════════════════════════════
--  DRAWING OBJECT INIT
-- ════════════════════════════════════════════════════════════
FOVCircle = Draw("Circle", {
    Visible=false, Radius=Cfg.Aimbot.FOV,
    Color=Color3.new(1,1,1), Thickness=1, Filled=false,
})

RebuildCrosshair()

-- Rainbow screen border (4 lines)
for i = 1, 4 do
    RainbowBorder[i] = Draw("Line", {
        Visible=false, Thickness=3, Color=Color3.new(1,0,0),
    })
end

-- Radar background + border + center dot
local RW, RH = 140, 140
RadarBG = Draw("Square", {
    Visible=false, Filled=true, Thickness=0,
    Color=Color3.fromRGB(10,10,10),
    Position=Vector2.new(0,0), Size=Vector2.new(RW,RH),
})
RadarBorder = Draw("Square", {
    Visible=false, Filled=false, Thickness=1.5,
    Color=Color3.fromRGB(200,200,200),
    Position=Vector2.new(0,0), Size=Vector2.new(RW,RH),
})
RadarCenter = Draw("Circle", {
    Visible=false, Filled=true, Radius=4,
    Color=Color3.fromRGB(100,200,255), Thickness=1,
})

-- ════════════════════════════════════════════════════════════
--  ESP POOL
-- ════════════════════════════════════════════════════════════
local function MakeESP(p)
    local skelLines = {}
    for i = 1, 10 do
        skelLines[i] = Draw("Line", {
            Visible=false, Thickness=1, Color=Cfg.ESP.EnemyColor,
        })
    end
    Pool[p] = {
        Box      = Draw("Square",{Visible=false,Thickness=1.4,Filled=false,Color=Cfg.ESP.EnemyColor}),
        Name     = Draw("Text",  {Visible=false,Size=13,Center=true,Outline=true,Color=Color3.new(1,1,1)}),
        Dist     = Draw("Text",  {Visible=false,Size=11,Center=true,Outline=true,Color=Color3.fromRGB(185,185,185)}),
        Tracer   = Draw("Line",  {Visible=false,Thickness=1,Color=Cfg.ESP.EnemyColor}),
        HealthBG = Draw("Square",{Visible=false,Filled=true,Thickness=0,Color=Color3.fromRGB(25,25,25)}),
        HealthBar= Draw("Square",{Visible=false,Filled=true,Thickness=0,Color=Color3.fromRGB(85,225,85)}),
        SkelLines= skelLines,
    }
end

local function KillESP(p)
    if Pool[p] then
        for _, o in pairs(Pool[p]) do
            if type(o) == "table" then
                for _, l in pairs(o) do l:Remove() end
            else
                o:Remove()
            end
        end
        Pool[p] = nil
    end
end

for _, p in ipairs(Players:GetPlayers()) do if p ~= LP then MakeESP(p) end end
Players.PlayerAdded:Connect(function(p)   if p ~= LP then MakeESP(p) end end)
Players.PlayerRemoving:Connect(KillESP)

-- ════════════════════════════════════════════════════════════
--  CHAMS POOL
-- ════════════════════════════════════════════════════════════
local function MakeChams(p)
    if ChamsPool[p] then return end
    local char = p.Character; if not char then return end
    local h              = Instance.new("Highlight")
    h.Adornee            = char
    h.FillColor          = Cfg.Visual.ChamsColor
    h.OutlineColor       = Color3.fromRGB(255, 255, 255)
    h.FillTransparency   = 0.45
    h.OutlineTransparency = 0
    h.Enabled            = Cfg.Visual.Chams
    h.Parent             = ChamsFolder
    ChamsPool[p]         = h
end

local function KillChams(p)
    if ChamsPool[p] then
        ChamsPool[p]:Destroy()
        ChamsPool[p] = nil
    end
end

for _, p in ipairs(Players:GetPlayers()) do if p ~= LP then MakeChams(p) end end
Players.PlayerAdded:Connect(function(p)
    task.wait(1)
    if p ~= LP then MakeChams(p) end
end)
Players.PlayerRemoving:Connect(KillChams)

-- ════════════════════════════════════════════════════════════
--  RADAR DOTS POOL
-- ════════════════════════════════════════════════════════════
local function MakeRadarDot(p)
    RadarDots[p] = Draw("Circle", {
        Visible=false, Filled=true, Radius=3,
        Color=Cfg.ESP.EnemyColor, Thickness=1,
    })
end

local function KillRadarDot(p)
    if RadarDots[p] then RadarDots[p]:Remove(); RadarDots[p]=nil end
end

for _, p in ipairs(Players:GetPlayers()) do if p ~= LP then MakeRadarDot(p) end end
Players.PlayerAdded:Connect(function(p)   if p ~= LP then MakeRadarDot(p) end end)
Players.PlayerRemoving:Connect(KillRadarDot)

-- ════════════════════════════════════════════════════════════
--  INFINITE JUMP
-- ════════════════════════════════════════════════════════════
UserInputService.JumpRequest:Connect(function()
    if not Cfg.Player.InfJump then return end
    local char = LP.Character; if not char then return end
    local hum  = char:FindFirstChildOfClass("Humanoid")
    if hum and hum:GetState() ~= Enum.HumanoidStateType.Dead then
        hum:ChangeState(Enum.HumanoidStateType.Jumping)
    end
end)

-- ════════════════════════════════════════════════════════════
--  NOCLIP
-- ════════════════════════════════════════════════════════════
RunService.Stepped:Connect(function()
    if not Cfg.Player.NoclipEnabled then return end
    local char = LP.Character; if not char then return end
    for _, p in ipairs(char:GetDescendants()) do
        if p:IsA("BasePart") then p.CanCollide = false end
    end
end)

-- ════════════════════════════════════════════════════════════
--  COMBAT HELPERS
-- ════════════════════════════════════════════════════════════
local function PredictPos(part)
    local hrp = part.Parent and part.Parent:FindFirstChild("HumanoidRootPart")
    if not hrp then return part.Position end
    local myHRP = LP.Character and LP.Character:FindFirstChild("HumanoidRootPart")
    if not myHRP then return part.Position end
    local travelTime = (part.Position - myHRP.Position).Magnitude / Cfg.Aimbot.BulletSpeed
    return part.Position + hrp.AssemblyLinearVelocity * travelTime
end

local function BestTarget()
    local ctr = Vector2.new(Camera.ViewportSize.X/2, Camera.ViewportSize.Y/2)
    local best, bestD = nil, Cfg.Aimbot.FOV
    for _, p in ipairs(Players:GetPlayers()) do
        if p == LP then continue end
        if Cfg.Aimbot.TeamCheck and p.Team == LP.Team then continue end
        local char = p.Character; if not char then continue end
        local part = char:FindFirstChild(Cfg.Aimbot.AimPart); if not part then continue end
        local aimPos = Cfg.Aimbot.Prediction and PredictPos(part) or part.Position
        local sp, vis = Camera:WorldToViewportPoint(aimPos)
        if not vis then continue end
        local d = (Vector2.new(sp.X, sp.Y) - ctr).Magnitude
        if d < bestD then bestD=d; best={part=part, pos=aimPos} end
    end
    return best
end

local function IsOnEnemy()
    local t = Mouse.Target; if not t then return false end
    local parent = t.Parent
    for _, p in ipairs(Players:GetPlayers()) do
        if p == LP then continue end
        if Cfg.Triggerbot.TeamCheck and p.Team == LP.Team then continue end
        if p.Character == parent or p.Character == parent.Parent then return true end
    end
    return false
end

local function UpdateHitboxes()
    if not Cfg.Hitbox.Enabled then return end
    for _, p in ipairs(Players:GetPlayers()) do
        if p == LP then continue end
        local char = p.Character; if not char then continue end
        local hrp  = char:FindFirstChild("HumanoidRootPart"); if not hrp then continue end
        hrp.Size         = Vector3.new(Cfg.Hitbox.Size, Cfg.Hitbox.Size, Cfg.Hitbox.Size)
        hrp.Transparency = 0.95
    end
end

-- ════════════════════════════════════════════════════════════
--  MAIN RENDER LOOP
-- ════════════════════════════════════════════════════════════
RunService.RenderStepped:Connect(function(dt)
    local vp     = Camera.ViewportSize
    local center = Vector2.new(vp.X / 2, vp.Y / 2)

    -- ── Rainbow hue tick ────────────────────────────────────
    RainbowHue = (RainbowHue + dt * 0.1 * Cfg.Visual.RainbowSpeed) % 1
    local rainbowColor = Color3.fromHSV(RainbowHue, 1, 1)

    -- ── FOV Circle ──────────────────────────────────────────
    FOVCircle.Position = center
    FOVCircle.Visible  = Cfg.Aimbot.Enabled or Cfg.Aimbot.SilentAim

    -- ── FOV Changer ─────────────────────────────────────────
    if Cfg.FOVChanger.Enabled then Camera.FieldOfView = Cfg.FOVChanger.Value end

    -- ── Rainbow World ───────────────────────────────────────
    if Cfg.Visual.RainbowWorld and not Cfg.Visual.Fullbright then
        Lighting.Ambient        = Color3.fromHSV(RainbowHue, 0.6, 1)
        Lighting.OutdoorAmbient = Color3.fromHSV((RainbowHue + 0.5) % 1, 0.6, 1)
    end

    -- ── Rainbow Screen Border ───────────────────────────────
    if Cfg.Visual.RainbowGUI then
        local c0 = Color3.fromHSV(RainbowHue, 1, 1)
        local c1 = Color3.fromHSV((RainbowHue+0.25)%1, 1, 1)
        local c2 = Color3.fromHSV((RainbowHue+0.5)%1, 1, 1)
        local c3 = Color3.fromHSV((RainbowHue+0.75)%1, 1, 1)
        -- top
        RainbowBorder[1].Visible=true; RainbowBorder[1].Color=c0
        RainbowBorder[1].From=Vector2.new(0,0); RainbowBorder[1].To=Vector2.new(vp.X,0)
        -- right
        RainbowBorder[2].Visible=true; RainbowBorder[2].Color=c1
        RainbowBorder[2].From=Vector2.new(vp.X,0); RainbowBorder[2].To=Vector2.new(vp.X,vp.Y)
        -- bottom
        RainbowBorder[3].Visible=true; RainbowBorder[3].Color=c2
        RainbowBorder[3].From=Vector2.new(vp.X,vp.Y); RainbowBorder[3].To=Vector2.new(0,vp.Y)
        -- left
        RainbowBorder[4].Visible=true; RainbowBorder[4].Color=c3
        RainbowBorder[4].From=Vector2.new(0,vp.Y); RainbowBorder[4].To=Vector2.new(0,0)
    else
        for _, l in ipairs(RainbowBorder) do l.Visible=false end
    end

    -- ── Chams update (re-sync adornee on respawn) ───────────
    for _, p in ipairs(Players:GetPlayers()) do
        if p == LP then continue end
        local h = ChamsPool[p]
        if not h then MakeChams(p); continue end
        if p.Character and h.Adornee ~= p.Character then
            h.Adornee = p.Character
        end
        h.Enabled   = Cfg.Visual.Chams and (not Cfg.ESP.TeamCheck or p.Team ~= LP.Team)
        h.FillColor = Cfg.Visual.RainbowESP and rainbowColor or Cfg.Visual.ChamsColor
    end

    -- ── ESP ─────────────────────────────────────────────────
    local espColor = Cfg.Visual.RainbowESP and rainbowColor or Cfg.ESP.EnemyColor

    for _, p in ipairs(Players:GetPlayers()) do
        if p == LP then continue end
        local esp  = Pool[p]; if not esp then continue end
        local char = p.Character

        local function hide()
            esp.Box.Visible      = false
            esp.Name.Visible     = false
            esp.Dist.Visible     = false
            esp.Tracer.Visible   = false
            esp.HealthBG.Visible = false
            esp.HealthBar.Visible= false
            for _, l in ipairs(esp.SkelLines) do l.Visible=false end
        end

        if not char or not Cfg.ESP.Enabled          then hide(); continue end
        if Cfg.ESP.TeamCheck and p.Team == LP.Team  then hide(); continue end

        local root = char:FindFirstChild("HumanoidRootPart")
        local head = char:FindFirstChild("Head")
        if not root or not head then hide(); continue end

        local myRoot = LP.Character and LP.Character:FindFirstChild("HumanoidRootPart")
        if not myRoot then hide(); continue end

        local dist3D = (root.Position - myRoot.Position).Magnitude
        if dist3D > Cfg.ESP.MaxDist then hide(); continue end

        local top, topV = Camera:WorldToViewportPoint(head.Position + Vector3.new(0, 0.65, 0))
        local bot, botV = Camera:WorldToViewportPoint(root.Position - Vector3.new(0, 2.8, 0))
        if not (topV and botV) then hide(); continue end

        local h  = math.abs(bot.Y - top.Y)
        local w  = h * 0.48

        -- Box
        esp.Box.Visible   = Cfg.ESP.Box
        esp.Box.Color     = espColor
        esp.Box.Size      = Vector2.new(w, h)
        esp.Box.Position  = Vector2.new(top.X - w/2, top.Y)

        -- Name
        esp.Name.Visible  = Cfg.ESP.Name
        esp.Name.Color    = espColor
        esp.Name.Text     = p.DisplayName
        esp.Name.Position = Vector2.new(top.X, top.Y - 16)

        -- Distance
        esp.Dist.Visible  = Cfg.ESP.Distance
        esp.Dist.Text     = string.format("[%dm]", math.floor(dist3D/3.2))
        esp.Dist.Position = Vector2.new(bot.X, bot.Y + 3)

        -- Tracer
        esp.Tracer.Visible = Cfg.ESP.Tracer
        esp.Tracer.Color   = espColor
        esp.Tracer.From    = Vector2.new(center.X, vp.Y)
        esp.Tracer.To      = Vector2.new(bot.X, bot.Y)

        -- Health Bar
        local hum = char:FindFirstChildOfClass("Humanoid")
        local hp  = hum and (hum.Health / math.max(hum.MaxHealth, 1)) or 0
        local hpColor = Color3.fromHSV(hp * 0.35, 1, 1)
        local barX = top.X - w/2 - 6

        esp.HealthBG.Visible  = Cfg.ESP.HealthBar
        esp.HealthBG.Position = Vector2.new(barX, top.Y)
        esp.HealthBG.Size     = Vector2.new(4, h)

        esp.HealthBar.Visible  = Cfg.ESP.HealthBar
        esp.HealthBar.Color    = hpColor
        esp.HealthBar.Size     = Vector2.new(4, h * hp)
        esp.HealthBar.Position = Vector2.new(barX, top.Y + h * (1 - hp))

        -- Skeleton
        for _, l in ipairs(esp.SkelLines) do l.Visible=false end
        if Cfg.ESP.Skeleton then
            local boneSet = char:FindFirstChild("UpperTorso") and R15_BONES or R6_BONES
            for i, pair in ipairs(boneSet) do
                local a = char:FindFirstChild(pair[1])
                local b = char:FindFirstChild(pair[2])
                local sl = esp.SkelLines[i]; if not sl then break end
                if a and b then
                    local ap, avis = Camera:WorldToViewportPoint(a.Position)
                    local bp, bvis = Camera:WorldToViewportPoint(b.Position)
                    if avis and bvis then
                        sl.Visible = true
                        sl.Color   = espColor
                        sl.From    = Vector2.new(ap.X, ap.Y)
                        sl.To      = Vector2.new(bp.X, bp.Y)
                    else
                        sl.Visible = false
                    end
                else
                    sl.Visible = false
                end
            end
        end
    end

    -- ── 2D Radar ────────────────────────────────────────────
    local rpX = vp.X - RW - 12
    local rpY = vp.Y - RH - 12
    local rCX = rpX + RW / 2
    local rCY = rpY + RH / 2

    RadarBG.Visible     = Cfg.Visual.Radar
    RadarBorder.Visible = Cfg.Visual.Radar
    RadarCenter.Visible = Cfg.Visual.Radar

    if Cfg.Visual.Radar then
        RadarBG.Position     = Vector2.new(rpX, rpY)
        RadarBG.Size         = Vector2.new(RW, RH)
        RadarBorder.Position = Vector2.new(rpX, rpY)
        RadarBorder.Size     = Vector2.new(RW, RH)
        RadarCenter.Position = Vector2.new(rCX, rCY)

        local myHRP  = LP.Character and LP.Character:FindFirstChild("HumanoidRootPart")
        local camYaw = math.atan2(-Camera.CFrame.LookVector.X, -Camera.CFrame.LookVector.Z)

        for _, p in ipairs(Players:GetPlayers()) do
            if p == LP then continue end
            local rdot = RadarDots[p]; if not rdot then continue end
            if Cfg.ESP.TeamCheck and p.Team == LP.Team then rdot.Visible=false; continue end
            local pChar = p.Character
            local pHRP  = pChar and pChar:FindFirstChild("HumanoidRootPart")
            if not pHRP or not myHRP then rdot.Visible=false; continue end

            local rel  = pHRP.Position - myHRP.Position
            local rx   = rel.X * math.cos(camYaw) - rel.Z * math.sin(camYaw)
            local rz   = rel.X * math.sin(camYaw) + rel.Z * math.cos(camYaw)
            local px   = rx * Cfg.Visual.RadarScale
            local pz   = rz * Cfg.Visual.RadarScale
            local maxR = math.min(RW, RH) / 2 - 5
            local mag  = math.sqrt(px*px + pz*pz)
            if mag > maxR then px=px/mag*maxR; pz=pz/mag*maxR end

            rdot.Visible  = true
            rdot.Color    = espColor
            rdot.Position = Vector2.new(rCX + px, rCY + pz)
        end
    else
        for _, dot in pairs(RadarDots) do dot.Visible=false end
    end

    -- ── Aimbot ──────────────────────────────────────────────
    local target = BestTarget()
    if Cfg.Aimbot.Enabled and UserInputService:IsKeyDown(Cfg.Aimbot.HoldKey) and target then
        local cf   = Camera.CFrame
        local dest = CFrame.lookAt(cf.Position, target.pos)
        Camera.CFrame = cf:Lerp(dest, Cfg.Aimbot.Smooth / 100)
    end

    -- ── Silent Aim ──────────────────────────────────────────
    if Cfg.Aimbot.SilentAim and target then
        if UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton1) then
            local savedCF = Camera.CFrame
            Camera.CFrame = CFrame.lookAt(savedCF.Position, target.pos)
            task.defer(function() Camera.CFrame = savedCF end)
        end
    end

    -- ── Triggerbot ──────────────────────────────────────────
    TriggerTimer = TriggerTimer + dt * 1000
    if Cfg.Triggerbot.Enabled and IsOnEnemy()
    and TriggerTimer >= Cfg.Triggerbot.Delay and not TriggerDebounce then
        TriggerDebounce = true
        TriggerTimer    = 0
        mouse1press()
        task.delay(0.06, function()
            mouse1release()
            TriggerDebounce = false
        end)
    end

    -- ── Hitbox ──────────────────────────────────────────────
    UpdateHitboxes()

    -- ── Crosshair ───────────────────────────────────────────
    if CHLines[1] then
        local s  = Cfg.Crosshair.Size
        local g  = Cfg.Crosshair.Gap
        local cc = Cfg.Visual.RainbowESP and rainbowColor or Cfg.Crosshair.Color
        local cx, cy = center.X, center.Y
        CHLines[1].Visible=Cfg.Crosshair.Enabled; CHLines[1].Color=cc
        CHLines[1].From=Vector2.new(cx,cy-g);     CHLines[1].To=Vector2.new(cx,cy-g-s)
        CHLines[2].Visible=Cfg.Crosshair.Enabled; CHLines[2].Color=cc
        CHLines[2].From=Vector2.new(cx,cy+g);     CHLines[2].To=Vector2.new(cx,cy+g+s)
        CHLines[3].Visible=Cfg.Crosshair.Enabled; CHLines[3].Color=cc
        CHLines[3].From=Vector2.new(cx-g,cy);     CHLines[3].To=Vector2.new(cx-g-s,cy)
        CHLines[4].Visible=Cfg.Crosshair.Enabled; CHLines[4].Color=cc
        CHLines[4].From=Vector2.new(cx+g,cy);     CHLines[4].To=Vector2.new(cx+g+s,cy)
    end

    -- ── Fly (fixed — no instances) ──────────────────────────
    FlyTick()

    -- ── Character stats ─────────────────────────────────────
    local char = LP.Character
    if char then
        local hum = char:FindFirstChildOfClass("Humanoid")
        if hum then
            if not Cfg.Player.FlyEnabled then
                hum.JumpPower = Cfg.Player.JumpPower
            end
            if Cfg.Player.AntiFall then
                hum:SetStateEnabled(Enum.HumanoidStateType.FallingDown, false)
            end
        end
    end
end)

-- ════════════════════════════════════════════════════════════
--  STARTUP
-- ════════════════════════════════════════════════════════════
task.wait(2)
Rayfield:Notify({
    Title    = "ENI v3  ✓",
    Content  = "All systems live. Fly fixed. Stay low LO  ♥",
    Duration = 6,
    Image    = 4483362458,
})

Features & Information

All-in-one cheat suite for Entrenched featuring aimbot with prediction & silent aim, full ESP (boxes, names, skeletons, health bars, radar), hitbox expander, triggerbot, chams, fly, noclip, infinite jump, rainbow effects, fullbright, and a clean Rayfield UI with config saving — no key system.
#free#aimbot#esp#no key#fly

Community Comments (0)

No comments yet for this script.

More Scripts for [🗣️CALLOUT🗣️] ENTRENCHED 🥀