local Ip = game:GetService("Players").LocalPlayer
local character = Ip.Character or Ip.CharacterAdded:Wait()
local tweens = game:GetService("TweenService")
local humanoidRootPart = character and character:FindFirstChild("HumanoidRootPart")
local humanoid = character:FindFirstChild("Humanoid")

--check level
local function CheckLevel()
    local level = Ip.Data.Level.Value;
    if ((level == 1) or (level <= 9)) then
        Ms = "Bandit";
        NameQuest = "BanditQuest1";
        QuestLv = 1;
        NameMon = "Bandit";
        CFrameQ = CFrame.new(1060.9383544922, 16.455066680908, 1547.7841796875);
        CFrameMon = CFrame.new(1038.5533447266, 41.296249389648, 1576.5098876953);
    elseif ((level == 10) or (level <= 14)) then
        Ms = "Monkey";
        NameQuest = "JungleQuest";
        QuestLv = 1;
        NameMon = "Monkey";
        CFrameQ = CFrame.new(-1601.6553955078, 36.85213470459, 153.38809204102);
        CFrameMon = CFrame.new(-1448.1446533203, 50.851993560791, 63.60718536377);
    elseif ((level == 15) or (level <= 29)) then
        Ms = "Gorilla";
        NameQuest = "JungleQuest";
        QuestLv = 2;
        NameMon = "Gorilla";
        CFrameQ = CFrame.new(-1601.6553955078, 36.85213470459, 153.38809204102);
        CFrameMon = CFrame.new(-1142.6488037109, 40.462348937988, -515.39227294922);
    elseif ((level == 30) or (level <= 39)) then
        Ms = "Pirate";
        NameQuest = "BuggyQuest1";
        QuestLv = 1;
        NameMon = "Pirate";
        CFrameQ = CFrame.new(-1140.1761474609, 4.752049446106, 3827.4057617188);
        CFrameMon = CFrame.new(-1201.0881347656, 40.628940582275, 3857.5966796875);
    elseif ((level == 40) or (level <= 59)) then
        Ms = "Brute";
        NameQuest = "BuggyQuest1";
        QuestLv = 2;
        NameMon = "Brute";
        CFrameQ = CFrame.new(-1140.1761474609, 4.752049446106, 3827.4057617188);
        CFrameMon = CFrame.new(-1387.5324707031, 24.592035293579, 4100.9575195313);
    elseif ((level == 60) or (level <= 74)) then
        Ms = "Desert Bandit";
        NameQuest = "DesertQuest";
        QuestLv = 1;
        NameMon = "Desert Bandit";
        CFrameQ = CFrame.new(896.51721191406, 6.4384617805481, 4390.1494140625);
        CFrameMon = CFrame.new(984.99896240234, 16.109552383423, 4417.91015625);
    elseif ((level == 75) or (level <= 89)) then
        Ms = "Desert Officer";
        NameQuest = "DesertQuest";
        QuestLv = 2;
        NameMon = "Desert Officer";
        CFrameQ = CFrame.new(896.51721191406, 6.4384617805481, 4390.1494140625);
        CFrameMon = CFrame.new(1547.1510009766, 14.452038764954, 4381.8002929688);
    elseif ((level == 90) or (level <= 99)) then
        Ms = "Snow Bandit";
        NameQuest = "SnowQuest";
        QuestLv = 1;
        NameMon = "Snow Bandit";
        CFrameQ = CFrame.new(1386.8073730469, 87.272789001465, -1298.3576660156);
        CFrameMon = CFrame.new(1356.3028564453, 105.76865386963, -1328.2418212891);
    elseif ((level == 100) or (level <= 119)) then
        Ms = "Snowman";
        NameQuest = "SnowQuest";
        QuestLv = 2;
        NameMon = "Snowman";
        CFrameQ = CFrame.new(1386.8073730469, 87.272789001465, -1298.3576660156);
        CFrameMon = CFrame.new(1218.7956542969, 138.01184082031, -1488.0262451172);
    elseif ((level == 120) or (level <= 149)) then
        Ms = "Chief Petty Officer";
        NameQuest = "MarineQuest2";
        QuestLv = 1;
        NameMon = "Chief Petty Officer";
        CFrameQ = CFrame.new(-5035.49609375, 28.677835464478, 4324.1840820313);
        CFrameMon = CFrame.new(-4931.1552734375, 65.793113708496, 4121.8393554688);
    elseif ((level == 150) or (level <= 174)) then
        Ms = "Sky Bandit";
        NameQuest = "SkyQuest";
        QuestLv = 1;
        NameMon = "Sky Bandit";
        CFrameQ = CFrame.new(-4842.1372070313, 717.69543457031, -2623.0483398438);
        CFrameMon = CFrame.new(-4955.6411132813, 365.46365356445, -2908.1865234375);
    elseif ((level == 175) or (level <= 189)) then
        Ms = "Dark Master";
        NameQuest = "SkyQuest";
        QuestLv = 2;
        NameMon = "Dark Master";
        CFrameQ = CFrame.new(-4842.1372070313, 717.69543457031, -2623.0483398438);
        CFrameMon = CFrame.new(-5148.1650390625, 439.04571533203, -2332.9611816406);
    elseif ((level == 190) or (level <= 209)) then
        Ms = "Prisoner";
        NameQuest = "PrisonerQuest";
        QuestLv = 1;
        NameMon = "Prisoner";
        CFrameQ = CFrame.new(5310.60547, 0.350014925, 474.946594, 0.0175017118, 0, 0.999846935, 0, 1, 0, -0.999846935, 0, 0.0175017118);
        CFrameMon = CFrame.new(4937.31885, 0.332031399, 649.574524, 0.694649816, 0, -0.719348073, 0, 1, 0, 0.719348073, 0, 0.694649816);
    elseif ((level == 210) or (level <= 249)) then
        Ms = "Dangerous Prisoner";
        NameQuest = "PrisonerQuest";
        QuestLv = 2;
        NameMon = "Dangerous Prisoner";
        CFrameQ = CFrame.new(5310.60547, 0.350014925, 474.946594, 0.0175017118, 0, 0.999846935, 0, 1, 0, -0.999846935, 0, 0.0175017118);
        CFrameMon = CFrame.new(5099.6626, 0.351562679, 1055.7583, 0.898906827, 0, -0.438139856, 0, 1, 0, 0.438139856, 0, 0.898906827);
    elseif ((level == 250) or (level <= 274)) then
        Ms = "Toga Warrior";
        NameQuest = "ColosseumQuest";
        QuestLv = 1;
        NameMon = "Toga Warrior";
        CFrameQ = CFrame.new(-1577.7890625, 7.4151420593262, -2984.4838867188);
        CFrameMon = CFrame.new(-1872.5166015625, 49.080215454102, -2913.810546875);
    elseif ((level == 275) or (level <= 299)) then
        Ms = "Gladiator";
        NameQuest = "ColosseumQuest";
        QuestLv = 2;
        NameMon = "Gladiator";
        CFrameQ = CFrame.new(-1577.7890625, 7.4151420593262, -2984.4838867188);
        CFrameMon = CFrame.new(-1521.3740234375, 81.203170776367, -3066.3139648438);
    elseif ((level == 300) or (level <= 324)) then
        Ms = "Military Soldier";
        NameQuest = "MagmaQuest";
        QuestLv = 1;
        NameMon = "Military Soldier";
        CFrameQ = CFrame.new(-5316.1157226563, 12.262831687927, 8517.00390625);
        CFrameMon = CFrame.new(-5369.0004882813, 61.24352645874, 8556.4921875);
    elseif ((level == 325) or (level <= 374)) then
        Ms = "Military Spy";
        NameQuest = "MagmaQuest";
        QuestLv = 2;
        NameMon = "Military Spy";
        CFrameQ = CFrame.new(-5316.1157226563, 12.262831687927, 8517.00390625);
        CFrameMon = CFrame.new(-5787.00293, 75.8262634, 8651.69922, 0.838590562, 0, -0.544762194, 0, 1, 0, 0.544762194, 0, 0.838590562);
    elseif ((level == 375) or (level <= 399)) then
        Ms = "Fishman Warrior";
        NameQuest = "FishmanQuest";
        QuestLv = 1;
        NameMon = "Fishman Warrior";
        CFrameQ = CFrame.new(61122.65234375, 18.497442245483, 1569.3997802734);
        CFrameMon = CFrame.new(60844.10546875, 98.462875366211, 1298.3985595703);
    elseif ((level == 400) or (level <= 449)) then
        Ms = "Fishman Commando";
        NameQuest = "FishmanQuest";
        QuestLv = 2;
        NameMon = "Fishman Commando";
        CFrameQ = CFrame.new(61122.65234375, 18.497442245483, 1569.3997802734);
        CFrameMon = CFrame.new(61738.3984375, 64.207321166992, 1433.8375244141);
    elseif ((level == 450) or (level <= 474)) then
        Ms = "God's Guard";
        NameQuest = "SkyExp1Quest";
        QuestLv = 1;
        NameMon = "God's Guard";
        CFrameQ = CFrame.new(-4721.8603515625, 845.30297851563, -1953.8489990234);
        CFrameMon = CFrame.new(-4628.0498046875, 866.92877197266, -1931.2352294922);
    elseif ((level == 475) or (level <= 524)) then
        Ms = "Shanda";
        NameQuest = "SkyExp1Quest";
        QuestLv = 2;
        NameMon = "Shanda";
        CFrameQ = CFrame.new(-7863.1596679688, 5545.5190429688, -378.42266845703);
        CFrameMon = CFrame.new(-7685.1474609375, 5601.0751953125, -441.38876342773);
    elseif ((level == 525) or (level <= 549)) then
        Ms = "Royal Squad";
        NameQuest = "SkyExp2Quest";
        QuestLv = 1;
        NameMon = "Royal Squad";
        CFrameQ = CFrame.new(-7903.3828125, 5635.9897460938, -464.24011230469);
        CFrameMon = CFrame.new(-7862.3076171875, 5745.7563476563, -481.01025390625);
    elseif ((level == 550) or (level <= 624)) then
        Ms = "Royal Soldier";
        NameQuest = "SkyExp2Quest";
        QuestLv = 2;
        NameMon = "Royal Soldier";
        CFrameQ = CFrame.new(- 7903.3828125, 5635.9897460938, - 1410.923828125);
        CFrameMon = CFrame.new(- 7760.4106445313, 5679.9077148438, - 1884.8112792969);
    elseif ((level == 625) or (level <= 649)) then
        Ms = "Galley Pirate";
        NameQuest = "FountainQuest";
        QuestLv = 1;
        NameMon = "Galley Pirate";
        CFrameQ = CFrame.new(5258.2788085938, 38.526931762695, 4050.044921875);
        CFrameMon = CFrame.new(5557.1684570313, 152.32717895508, 3998.7758789063);
    elseif ((level >= 650)) then
        Ms = "Galley Captain";
        NameQuest = "FountainQuest";
        QuestLv = 2;
        NameMon = "Galley Captain";
        CFrameQ = CFrame.new(5258.2788085938, 38.526931762695, 4050.044921875);
        CFrameMon = CFrame.new(5677.6772460938, 92.786109924316, 4966.6323242188);
    end
end

--anti fall
spawn(function()
    while task.wait() do
        pcall(function()
            if _G.AutoLevel then
                if not humanoidRootPart:FindFirstChild("BodyClip") then
                    local haha = Instance.new("BodyVelocity");
                    haha.Name = "BodyClip";
                    haha.Parent = game:GetService("Players").LocalPlayer.Character.HumanoidRootPart;
                    haha.MaxForce = Vector3.new(100000, 100000, 100000);
                    haha.Velocity = Vector3.new(0, 0, 0);
                end
            else
                humanoidRootPart:FindFirstChild("BodyClip"):Destroy();
            end
        end);
    end
end);

--noclip
spawn(function()
    pcall(function()
        game:GetService("RunService").Stepped:Connect(function()
            if _G.AutoLevel then
                for v834, v835 in pairs(character:GetDescendants()) do
                    if v835:IsA("BasePart") then
                        v835.CanCollide = false;
                    end
                end
            end
        end);
    end);
end);

--tween
local function tween(v, speed)
    if character and humanoidRootPart then
        local distance = (v.Position - humanoidRootPart.Position).Magnitude
        local time = distance / speed
        local tweeninfo = TweenInfo.new(time, Enum.EasingStyle.Linear)
        local start_tween = tweens:Create(humanoidRootPart, tweeninfo, {CFrame = v})
        start_tween:Play()
        return start_tween
    end
end

--equip tool (example so it only equip melee)
local function EquipTool()
    local backpack = game.Players.LocalPlayer.Backpack
    for _, tool in ipairs(backpack:GetChildren()) do
        if tool:IsA("Tool") and tool.ToolTip == "Melee" then
            game.Players.LocalPlayer.Character.Humanoid:EquipTool(tool)
        end
    end
end

--auto AutoHaki
spawn(function()
    if not character:FindFirstChild("HasBuso") then
        local args = {[1] = "Buso"}
        game:GetService("ReplicatedStorage"):WaitForChild("Remotes"):WaitForChild("CommF_"):InvokeServer(unpack(args))
    end
end)

--fast attack
local old
old = hookmetamethod(game, "__namecall", newcclosure(function(self, ...)
    local method_call = getnamecallmethod()
    if tostring(method_call) == "GetAttribute" then
        local args = {...}
        if tostring(self) == "SpeedMult" then
            return -math.huge
        end
        for i, v in pairs(args) do
            if tostring(i) == "SpeedMult" or tostring(v) == "SpeedMult" then
                return -math.huge  
            end
        end
    end
    return old(self, ...)
end))

local function GetBladeHits()
    local targets = {}

    for _, enemy in pairs(game:GetService("Workspace").Enemies:GetChildren()) do
        if enemy:FindFirstChild("HumanoidRootPart") and enemy:FindFirstChild("Humanoid") then
            if (enemy.HumanoidRootPart.Position - game.Players.LocalPlayer.Character.HumanoidRootPart.Position).Magnitude < 60 then
                table.insert(targets, enemy)
            end
        end
    end

    for _, player in pairs(game.Players:GetPlayers()) do
        if player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
            if (player.Character.HumanoidRootPart.Position - game.Players.LocalPlayer.Character.HumanoidRootPart.Position).Magnitude < 60 then
                table.insert(targets, player.Character)
            end
        end
    end
    return targets
end

local function Attack()
    pcall(function()
        local bladeHits = GetBladeHits()
        if #bladeHits > 0 then
        
            game:GetService("ReplicatedStorage"):WaitForChild("Modules"):WaitForChild("Net"):WaitForChild("RE/RegisterAttack"):FireServer(-math.huge)

            local args = {nil, {}}
            for i, target in ipairs(bladeHits) do
                if not args[1] then
                    args[1] = target:FindFirstChild("Head") or target.Head
                end
                if target:IsA("Model") and target:FindFirstChild("HumanoidRootPart") then
                    table.insert(args[2], {target, target.HumanoidRootPart})
                end
            end

            game:GetService("ReplicatedStorage"):WaitForChild("Modules"):WaitForChild("Net"):WaitForChild("RE/RegisterHit"):FireServer(unpack(args))
            game:GetService("ReplicatedStorage"):WaitForChild("Modules"):WaitForChild("Net"):WaitForChild("RE/RegisterAttack"):FireServer(-math.huge)
        end
    end)
end

-----------------------------------------------------------------------------------------------------------------------------------------------------------------
--create window hehe
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
local Fluent = loadstring(game:HttpGet("https://[Log in to view URL]"))()
local SaveManager = loadstring(game:HttpGet("https://[Log in to view URL]"))()
local InterfaceManager = loadstring(game:HttpGet("https://[Log in to view URL]"))()

local Window = Fluent:CreateWindow({
    Title = "Khang Gay Hub | Test Version",
    SubTitle = "by huh",
    TabWidth = 160,
    Size = UDim2.fromOffset(580, 460),
    Acrylic = false, -- The blur may be detectable, setting this to false disables blur entirely
    Theme = "Dark",
    MinimizeKey = Enum.KeyCode.LeftControl -- Used when theres no MinimizeKeybind
})

--Fluent provides Lucide Icons https://[Log in to view URL] for the tabs, icons are optional
local Tabs = {
    Main = Window:AddTab({ Title = "Main", Icon = "" }),
}

local Options = Fluent.Options

do
  
    local Toggle = Tabs.Main:AddToggle("ToggleLevel", {Title = "Auto Farm", Default = false })

    Toggle:OnChanged(function(hehe)
        _G.AutoLevel = hehe;
        if (hehe == false) then
            wait();
            tween(game:GetService("Players").LocalPlayer.Character.HumanoidRootPart.CFrame, 300);
            wait();
        end
    end);
    Options.ToggleLevel:SetValue(false)
    spawn(function()
        while task.wait() do
            if _G.AutoLevel then
                pcall(function()
                    CheckLevel()
                    if (not string.find(Ip.PlayerGui.Main.Quest.Container.QuestTitle.Title.Text, NameMon) or (Ip.PlayerGui.Main.Quest.Visible == false)) then
                        game:GetService("ReplicatedStorage").Remotes.CommF_:InvokeServer("AbandonQuest");
                        tween(CFrameQ, 300);
                        if ((CFrameQ.Position - humanoidRootPart.Position).Magnitude <= 5) then
                            game:GetService("ReplicatedStorage").Remotes.CommF_:InvokeServer("StartQuest", NameQuest, QuestLv);
                        end
                    elseif (string.find(Ip.PlayerGui.Main.Quest.Container.QuestTitle.Title.Text, NameMon) or (Ip.PlayerGui.Main.Quest.Visible == true)) then
                        for vl, vcl in pairs(game:GetService("Workspace").Enemies:GetChildren()) do
                            if (vcl:FindFirstChild("Humanoid") and vcl:FindFirstChild("HumanoidRootPart") and (vcl.Humanoid.Health > 0)) then
                                if (vcl.Name == Ms) then
                                    repeat
                                        EquipTool()
                                        Attack();
                                        tween(vcl.HumanoidRootPart.CFrame + Vector3.new(0, 40, 0), 300);
                                        vcl.HumanoidRootPart.Size = Vector3.new(60, 60, 60);
                                        vcl.HumanoidRootPart.Transparency = 1;
                                        vcl.Humanoid.JumpPower = 0;
                                        vcl.Humanoid.WalkSpeed = 0;
                                        vcl.HumanoidRootPart.CanCollide = false;
                                    until not _G.AutoLevel or not vcl.Parent or (vcl.Humanoid.Health <= 0) or not game:GetService("Workspace").Enemies:FindFirstChild(vcl.Name) or (Ip.PlayerGui.Main.Quest.Visible == false)
                                end
                            end
                        end
                        for dm, dcm in pairs(game:GetService("Workspace")['_WorldOrigin'].EnemySpawns:GetChildren()) do
                            if string.find(dcm.Name, NameMon) then
                                if ((humanoidRootPart.Position - dcm.Position).Magnitude >= 10) then
                                    tween(dcm.HumanoidRootPart.CFrame + Vector3.new(0, 40, 0), 300);
                                end
                            end
                        end
                    end
                end)
            end
        end
    end)
end

SaveManager:LoadAutoloadConfig()

Fluent:Notify({
        Title = "Khang Gay Hub Notification",
        Content = "Script Loaded",
        SubContent = nil, -- Optional
        Duration = 6.5 -- Set to nil to make the notification not disappear
})

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: