local WindUI = loadstring(game:HttpGet("https://raw.githubusercontent.com/dream77239/china-ui/refs/heads/main/main%20(6).lua"))()
local Window = WindUI:CreateWindow({
    Title = "Foresto",
    Icon = "eye",
    IconThemed = true,
    Author = "dk",
    Folder = "CloudHub",
    Size = UDim2.fromOffset(500, 400),
    Transparent = true,
    Theme = "Light",
    Background = nil,
    User = {
        Enabled = true,
        Callback = function() end,
        Anonymous = false
    },
    SideBarWidth = 200,
    ScrollBarEnabled = true
})
local Tab = Window:Tab({  
    Title = "utility function",  
    Icon = "hammer",  
    Locked = false,
})
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer

local tpOn = false
local tpSpd = 5

Tab:Toggle({
    Title = "tp walk",
    Value = false,
    Callback = function(state)
        tpOn = state
        if state then
            spawn(function()
                while tpOn do
                    local chr = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
                    local hrp = chr:FindFirstChild("HumanoidRootPart")
                    local hum = chr:FindFirstChildWhichIsA("Humanoid")
                    local delta = RunService.Heartbeat:Wait()
                    if hrp and hum and hum.MoveDirection.Magnitude > 0 then
                        hrp.CFrame = hrp.CFrame + (hum.MoveDirection * tpSpd * delta)
                    end
                end
            end)
        end
    end
})

Tab:Slider({
    Title = "tp walk speed set",
    Value = {
        Min = 0,
        Max = 50,
        Default = tpSpd,
    },
    Callback = function(v)
        tpSpd = v
    end
})
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer

local G = {}
G.ChopRange = 150
G.ChopConn = nil

Tab:Button({
    Title = "remove fog",
    Callback = function()
        local sky = game:GetService("Lighting"):FindFirstChildOfClass("Sky")
        if sky then sky:Destroy() end
    end,
})

Tab:Toggle({
    Title = "map highlight",
    Value = false,
    Callback = function(state)
        local Lighting = game:GetService("Lighting")
        if state then
            Lighting.Brightness = 5
            Lighting.Ambient = Color3.fromRGB(160, 160, 160)
            Lighting.OutdoorAmbient = Color3.fromRGB(180, 180, 180)
        else
            Lighting.Brightness = 1
            Lighting.Ambient = Color3.fromRGB(70, 70, 70)
            Lighting.OutdoorAmbient = Color3.fromRGB(127, 127, 127)
        end
    end,
})

Tab:Toggle({
    Title = "unlock camera zoom",
    Value = false,
    Callback = function(state)
        local lp = LocalPlayer
        if state then
            lp.CameraMinZoomDistance = 0
            lp.CameraMaxZoomDistance = 500
        else
            lp.CameraMinZoomDistance = 0.5
            lp.CameraMaxZoomDistance = 400
        end
    end,
})

local Tab = Window:Tab({  
    Title = "cut tree",  
    Icon = "tree-pine",  
    Locked = false,
})

Tab:Slider({
    Title = "chop range",
    Value = {
        Min = 50,
        Max = 500,
        Default = 150,
    },
    Callback = function(val)
        G.ChopRange = val
    end,
})

Tab:Toggle({
    Title = "tree chop aura",
    Desc = "need equip axe",
    Value = false,
    Callback = function(state)
        if state then
            G.ChopConn = RunService.Heartbeat:Connect(function()
                local char = LocalPlayer.Character
                if not char then return end
                local root = char:FindFirstChild("HumanoidRootPart")
                if not root then return end
                local axe = char:FindFirstChild("Axe")
                if not axe then return end
                local hitRemote = nil
                pcall(function()
                    hitRemote = axe.Scripts.System.Hit
                end)
                if not hitRemote then return end

                local treesFolder = nil
                pcall(function()
                    treesFolder = workspace.Living.Trees
                end)
                if not treesFolder then return end

                for _, tree in ipairs(treesFolder:GetChildren()) do
                    local tp = tree:FindFirstChildWhichIsA("BasePart")
                    if tp then
                        local dist = (root.Position - tp.Position).Magnitude
                        if dist <= G.ChopRange then
                            pcall(function()
                                hitRemote:FireServer(tree.Name, "LightAttack1", tp.CFrame)
                            end)
                        end
                    end
                end
            end)
        else
            if G.ChopConn then
                G.ChopConn:Disconnect()
                G.ChopConn = nil
            end
        end
    end,
})

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local LocalPlayer = Players.LocalPlayer

local G = {}
G.PickConn = nil
G.SellConn = nil
G.SellTick = 0

Tab:Toggle({
    Title = "auto pickup",
    Value = false,
    Callback = function(state)
        if state then
            G.PickConn = RunService.Heartbeat:Connect(function()
                local rem = nil
                pcall(function()
                    rem = ReplicatedStorage.Events.Player.PickUp
                end)
                if not rem then return end

                local ground = workspace:FindFirstChild("ItemsOnTheGround")
                if not ground then return end

                for _, item in ipairs(ground:GetChildren()) do
                    pcall(function()
                        rem:FireServer(item)
                    end)
                end
            end)
        else
            if G.PickConn then
                G.PickConn:Disconnect()
                G.PickConn = nil
            end
        end
    end,
})

Tab:Toggle({
    Title = "auto sell",
    Desc = "you gotta be near the npc that sells stuff or you’ll get kicked by anti cheat",
    Value = false,
    Callback = function(state)
        if state then
            G.SellTick = 0
            G.SellConn = RunService.Heartbeat:Connect(function(dt)
                G.SellTick = G.SellTick + dt
                if G.SellTick < 1 then return end
                G.SellTick = 0

                local rem = nil
                pcall(function()
                    rem = ReplicatedStorage.Events.Player.Sell
                end)
                if not rem then return end

                local inv = LocalPlayer:FindFirstChild("Inventory")
                if not inv then return end

                local items = inv:GetChildren()
                if #items == 0 then return end

                local batch = {}
                for i = 1, math.min(50, #items) do
                    table.insert(batch, items[i])
                end

                pcall(function()
                    rem:InvokeServer(batch)
                end)
            end)
        else
            if G.SellConn then
                G.SellConn:Disconnect()
                G.SellConn = nil
            end
        end
    end,
})

local Tab = Window:Tab({  
    Title = "violent function",  
    Icon = "hand-fist",  
    Locked = false,
})

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer

local G = {}
G.KillRange = 200
G.KillTarget = "Animals"
G.KillConn = nil
G.ProcRunning = false
G.PlayerESPEnabled = false
G.AnimalESPEnabled = false

G.PlayerESPObjects = {}
G.AnimalESPObjects = {}
G.PlayerESPConns = {}
G.AnimalESPConns = {}

local ESPTick = nil

local function grabKnife()
    local char = LocalPlayer.Character
    if not char then return nil, nil end
    for _, v in ipairs(char:GetChildren()) do
        local skinRem = v:FindFirstChild("Scripts") and v.Scripts:FindFirstChild("System") and v.Scripts.System:FindFirstChild("Skin")
        local hitRem = v:FindFirstChild("Scripts") and v.Scripts:FindFirstChild("System") and v.Scripts.System:FindFirstChild("Hit")
        if skinRem and hitRem then
            return skinRem, hitRem
        end
    end
    return nil, nil
end

local function grabGun()
    local char = LocalPlayer.Character
    if not char then return nil end
    for _, v in ipairs(char:GetChildren()) do
        local hit = v:FindFirstChild("Scripts") and v.Scripts:FindFirstChild("System") and v.Scripts.System:FindFirstChild("Hit")
        if hit then return hit end
    end
    return nil
end

local function grabBullet()
    local b = nil
    pcall(function()
        b = game:GetService("ReplicatedStorage").Stuff.Bullets.NormalBullet
    end)
    return b
end

local function grabTorso(char)
    return char:FindFirstChild("HumanoidRootPart")
        or char:FindFirstChild("Torso")
        or char:FindFirstChild("UpperTorso")
end

local function shootFucker(target)
    local hitRem = grabGun()
    if not hitRem then return end
    local bullet = grabBullet()
    if not bullet then return end
    local torso = grabTorso(target)
    if not torso then return end
    local myRoot = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
    if not myRoot then return end
    local startPos = myRoot.Position
    local hitPos = torso.Position
    local dir = (hitPos - startPos).Unit
    local hum = target:FindFirstChildOfClass("Humanoid")
    if not hum then return end
    pcall(function()
        hitRem:FireServer({
            DistanceMade = vector.create(hitPos.X - startPos.X, hitPos.Y - startPos.Y, hitPos.Z - startPos.Z),
            StartPosition = vector.create(startPos.X, startPos.Y, startPos.Z),
            HitMaterial = Enum.Material.Plastic,
            Ray = nil,
            ShootDirection = vector.create(dir.X, dir.Y, dir.Z),
            HitPos = vector.create(hitPos.X, hitPos.Y, hitPos.Z),
            RayHit = torso,
            HitPart = hum,
            Bullet = bullet,
        })
    end)
end

local function getAliveAnimals()
    local list = {}
    local folder = nil
    pcall(function() folder = workspace.Living.Animals end)
    if not folder then return list end
    for _, a in ipairs(folder:GetChildren()) do
        local hum = a:FindFirstChildOfClass("Humanoid")
        if hum and hum.Health > 0 then
            table.insert(list, a)
        end
    end
    return list
end

local function getAlivePlayers()
    local list = {}
    for _, plr in ipairs(Players:GetPlayers()) do
        if plr ~= LocalPlayer and plr.Character then
            local hum = plr.Character:FindFirstChildOfClass("Humanoid")
            if hum and hum.Health > 0 then
                table.insert(list, plr.Character)
            end
        end
    end
    return list
end

local function nukeESPEntry(store, id)
    if store[id] then
        pcall(function() store[id].highlight:Destroy() end)
        if store[id].billboard then
            pcall(function() store[id].billboard:Destroy() end)
        end
        if store[id].aconn then
            pcall(function() store[id].aconn:Disconnect() end)
        end
        store[id] = nil
    end
end

local function wipeESP(store, connList)
    for id in pairs(store) do
        nukeESPEntry(store, id)
    end
    for _, c in ipairs(connList) do
        pcall(function() c:Disconnect() end)
    end
    for i = #connList, 1, -1 do
        connList[i] = nil
    end
end

local function slap_esp_on(store, model, color, label)
    if not model or not model.Parent then return end
    local id = tostring(model)
    if store[id] then return end

    local h = Instance.new("Highlight")
    h.FillTransparency = 1
    h.OutlineColor = color
    h.OutlineTransparency = 0
    h.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
    h.Adornee = model
    h.Parent = workspace

    local bb = nil
    if label and label ~= "" then
        local head = model:FindFirstChild("Head")
        if head then
            bb = Instance.new("BillboardGui")
            bb.Adornee = head
            bb.AlwaysOnTop = true
            bb.Size = UDim2.new(0, 80, 0, 18)
            bb.StudsOffset = Vector3.new(0, 2.5, 0)
            bb.Parent = workspace
            local tl = Instance.new("TextLabel")
            tl.BackgroundTransparency = 1
            tl.Size = UDim2.new(1, 0, 1, 0)
            tl.Text = label
            tl.TextColor3 = color
            tl.TextScaled = false
            tl.TextSize = 9
            tl.Font = Enum.Font.GothamBold
            tl.Parent = bb
        end
    end

    local conn = model.AncestryChanged:Connect(function()
        if not model.Parent then
            nukeESPEntry(store, id)
        end
    end)

    store[id] = {
        highlight = h,
        billboard = bb,
        aconn = conn,
    }
end

local function killESPTick()
    if ESPTick then
        ESPTick:Disconnect()
        ESPTick = nil
    end
end

local function bootESPTick()
    killESPTick()
    ESPTick = RunService.Heartbeat:Connect(function()
        if not G.PlayerESPEnabled and not G.AnimalESPEnabled then
            killESPTick()
            return
        end

        if G.PlayerESPEnabled then
            for _, plr in ipairs(Players:GetPlayers()) do
                if plr ~= LocalPlayer and plr.Character then
                    slap_esp_on(G.PlayerESPObjects, plr.Character, Color3.fromRGB(255, 50, 50), plr.Name)
                end
            end
        end

        if G.AnimalESPEnabled then
            local folder = nil
            pcall(function() folder = workspace.Living.Animals end)
            if folder then
                for _, animal in ipairs(folder:GetChildren()) do
                    slap_esp_on(G.AnimalESPObjects, animal, Color3.fromRGB(50, 220, 50), "")
                end
            end
        end
    end)
end

Tab:Slider({
    Title = "kill range",
    Value = {
        Min = 50,
        Max = 5000,
        Default = 200,
    },
    Callback = function(val)
        G.KillRange = val
    end,
})

Tab:Dropdown({
    Title = "kill target",
    Multi = false,
    AllowNone = false,
    Value = "Animals",
    Values = {"Animals", "Players", "All"},
    Callback = function(name)
        G.KillTarget = name
    end,
})

Tab:Toggle({
    Title = "kill aura",
    Desc = "need equip gun",
    Value = false,
    Callback = function(state)
        if state then
            G.KillConn = RunService.Heartbeat:Connect(function()
                local char = LocalPlayer.Character
                if not char then return end
                local root = char:FindFirstChild("HumanoidRootPart")
                if not root then return end
                local targets = {}
                if G.KillTarget == "Animals" or G.KillTarget == "All" then
                    for _, t in ipairs(getAliveAnimals()) do table.insert(targets, t) end
                end
                if G.KillTarget == "Players" or G.KillTarget == "All" then
                    for _, t in ipairs(getAlivePlayers()) do table.insert(targets, t) end
                end
                for _, target in ipairs(targets) do
                    local torso = grabTorso(target)
                    if torso and (root.Position - torso.Position).Magnitude <= G.KillRange then
                        shootFucker(target)
                    end
                end
            end)
        else
            if G.KillConn then
                G.KillConn:Disconnect()
                G.KillConn = nil
            end
        end
    end,
})

--this only works on some mobs idk why anyway im too lazy to fix it
Tab:Toggle({
    Title = "auto process corpse",
    Desc = "need equip knife",
    Value = false,
    Callback = function(state)
        G.ProcRunning = state
        if not state then return end
        task.spawn(function()
            while G.ProcRunning do
                local skinRem, knifeRem = grabKnife()
                if skinRem and knifeRem then
                    local folder = nil
                    pcall(function() folder = workspace.Living.Animals end)
                    if folder then
                        for _, animal in ipairs(folder:GetChildren()) do
                            local hum = animal:FindFirstChildOfClass("Humanoid")
                            if hum and hum.Health <= 0 then
                                local mdlFolder = animal:FindFirstChild("Model")
                                local mdlPart = mdlFolder and mdlFolder:FindFirstChildWhichIsA("BasePart")
                                if mdlPart then
                                    for _ = 1, 10 do
                                        pcall(function()
                                            skinRem:FireServer(animal, mdlPart, mdlPart.CFrame)
                                        end)
                                    end
                                end

                                for _, child in ipairs(animal:GetChildren()) do
                                    if child.Name:sub(1, 5) == "Limb_" then
                                        local lp = child:FindFirstChildWhichIsA("BasePart") or child
                                        for _ = 1, 10 do
                                            pcall(function()
                                                knifeRem:FireServer(child, "LightAttack1", lp.CFrame)
                                            end)
                                        end
                                    end
                                end
                            end
                        end
                    end
                end
                task.wait(0.1)
            end
        end)
    end,
})

local Tab = Window:Tab({  
    Title = "esp",  
    Icon = "eye",  
    Locked = false,
})

Tab:Toggle({
    Title = "player esp",
    Value = false,
    Callback = function(state)
        G.PlayerESPEnabled = state
        if not state then
            wipeESP(G.PlayerESPObjects, G.PlayerESPConns)
            if not G.AnimalESPEnabled then killESPTick() end
            return
        end
        for _, plr in ipairs(Players:GetPlayers()) do
            if plr ~= LocalPlayer and plr.Character then
                slap_esp_on(G.PlayerESPObjects, plr.Character, Color3.fromRGB(255, 50, 50), plr.Name)
            end
        end
        local c1 = Players.PlayerAdded:Connect(function(plr)
            if plr.Character then
                slap_esp_on(G.PlayerESPObjects, plr.Character, Color3.fromRGB(255, 50, 50), plr.Name)
            end
            local cc = plr.CharacterAdded:Connect(function(char)
                task.wait(0.5)
                if G.PlayerESPEnabled then
                    slap_esp_on(G.PlayerESPObjects, char, Color3.fromRGB(255, 50, 50), plr.Name)
                end
            end)
            table.insert(G.PlayerESPConns, cc)
        end)
        local c2 = Players.PlayerRemoving:Connect(function(plr)
            if plr.Character then
                nukeESPEntry(G.PlayerESPObjects, tostring(plr.Character))
            end
        end)
        table.insert(G.PlayerESPConns, c1)
        table.insert(G.PlayerESPConns, c2)
        bootESPTick()
    end,
})

Tab:Toggle({
    Title = "animal esp",
    Value = false,
    Callback = function(state)
        G.AnimalESPEnabled = state
        if not state then
            wipeESP(G.AnimalESPObjects, G.AnimalESPConns)
            if not G.PlayerESPEnabled then killESPTick() end
            return
        end
        local folder = nil
        pcall(function() folder = workspace.Living.Animals end)
        if folder then
            for _, animal in ipairs(folder:GetChildren()) do
                slap_esp_on(G.AnimalESPObjects, animal, Color3.fromRGB(50, 220, 50), "")
            end
            local c1 = folder.ChildAdded:Connect(function(animal)
                if G.AnimalESPEnabled then
                    task.wait(0.2)
                    slap_esp_on(G.AnimalESPObjects, animal, Color3.fromRGB(50, 220, 50), "")
                end
            end)
            local c2 = folder.ChildRemoved:Connect(function(animal)
                nukeESPEntry(G.AnimalESPObjects, tostring(animal))
            end)
            table.insert(G.AnimalESPConns, c1)
            table.insert(G.AnimalESPConns, c2)
        end
        bootESPTick()
    end,
})

local Tab = Window:Tab({  
    Title = "tp",  
    Icon = "zap",  
    Locked = false,
})

Tab:Button({
    Title = "tp forest town",
    Callback = function()
        local char = LocalPlayer.Character
        local root = char and char:FindFirstChild("HumanoidRootPart")
        if root then
            root.CFrame = CFrame.new(-8.78, 3.60, 42.05)
        end
    end,
})

Tab:Button({
    Title = "tp ice mines",
    Callback = function()
        local char = LocalPlayer.Character
        local root = char and char:FindFirstChild("HumanoidRootPart")
        if root then
            root.CFrame = CFrame.new(1814.00, 39.00, -753.00)
        end
    end,
})

Tab:Button({
    Title = "tp desert",
    Callback = function()
        local char = LocalPlayer.Character
        local root = char and char:FindFirstChild("HumanoidRootPart")
        if root then
            root.CFrame = CFrame.new(-1584.00, 41.54, 421.00)
        end
    end,
})

Tab:Button({
    Title = "tp swamp town",
    Callback = function()
        local char = LocalPlayer.Character
        local root = char and char:FindFirstChild("HumanoidRootPart")
        if root then
            root.CFrame = CFrame.new(879.00, 7.60, 756.00)
        end
    end,
})

Tab:Button({
    Title = "tp miner's camp",
    Callback = function()
        local char = LocalPlayer.Character
        local root = char and char:FindFirstChild("HumanoidRootPart")
        if root then
            root.CFrame = CFrame.new(-728.00, 39.50, -130.00)
        end
    end,
})
Foresto: Hunting Game OP AUTO FARM AND MORE (OPENSRC)
Mobile Friendly
790 views
6 months ago

OP AUTO FARM AND MORE (OPENSRC)

WORKING
Free

Description

TP Walk – Teleport freely across the map without movement restrictions.

Remove Fog – Disable environmental fog for clear long‑distance visibility.

Map Highlight – Important map locations and resources become easier to spot.

Unlock Camera Zoom – Zoom the camera further for better map awareness.

Tree Chop Aura – Automatically chop nearby trees for faster wood farming.

Auto Pickup – Instantly collect dropped items without manual interaction.

Auto Sell – Automatically sell items to save time while farming resources.

Kill Aura – Automatically attack nearby enemies for efficient combat.

Auto Process Corpse – Quickly process defeated enemies for materials.

Features

  • auto farm

Related Scripts