OpenSource
Key Required

OpenSource

[⚖️JUDGEMAN] Jujutsu InfiniteDevzinhDevzinh 4.5K views 24 executesUpdated Jan 30, 2025
Unrated
00
Lua Script•2014 lines (66537 chars)
local Luna = loadstring(game:HttpGet("https://paste.ee/r/WSCKThwW", true))()
local HttpService = game:GetService("HttpService")
local configFile = "SterlingHubConfig.json"
local http = game:GetService("HttpService")
local userId = game.Players.LocalPlayer.UserId
--local blacklist = {1131586622, 1225643250, 1918988070}
--for _, id in pairs(blacklist) do
--    if userId == id then
--       game.Players.LocalPlayer:Kick("Access revoked from using Sterling Hub.")
--    end
--end
-- Default configuration
local config = {
    instaKillEnabled = false,
    range = 0,
    tweenToMobEnabled = false,
    tweenSpeed = 0,
    tweenRange = 0,
    tweenPosition = "On Top",
    positionOffset = 1,
    autopromoteEnabled = false,
    autoCollectEnabled = false,
    cooldownToggle = false,
    lastFired = 0,
    collectdelayTime = 0,
    flipDelayTime = 0,
    autoBossEnabled = false,
    autoreplayEnabled = false,
    autocollectToolsEnabled = false,
    autofreezeEnabled = false,
    autofreezeRange = 0,
    itemESPEnabled = false
}

-- Load configuration function
local function loadConfig()
    if isfile(configFile) then
        local data = readfile(configFile)
        local success, result = pcall(function()
            return game:GetService("HttpService"):JSONDecode(data)
        end)
        if success then
            for k, v in pairs(result) do
                config[k] = v  -- Update config fields directly
            end
        end
    end
end

local function saveConfig()
    local data = game:GetService("HttpService"):JSONEncode(config)  -- Encode the config directly
    writefile(configFile, data)
end

-- Save configuration function
local function saveConfig()
    local data = game:GetService("HttpService"):JSONEncode(config)  -- Encode the config directly
    writefile(configFile, data)
end

-- Auto-load configuration on script start
loadConfig()



local Window = Luna:CreateWindow({
    Name = "Sterling Hub",
    Subtitle = nil,
    LogoID = "90804827107744",
    LoadingEnabled = true,
    LoadingTitle = "patiu was here",
    LoadingSubtitle = "by DAN",

    ConfigSettings = {
		RootFolder = nil, 
		ConfigFolder = "Sterling Hub" 
    },
})

Window:CreateHomeTab({
	SupportedExecutors = {}, -- A Table Of Executors Your Script Supports. Add strings of the executor names for each executor.
	DiscordInvite = "J37PW97j6a",
	Icon = 1, -- By Default, The Icon Is The Home Icon. If You would like to change it to dashboard, replace the interger with 2
})

local Tab = Window:CreateTab({
    Name = "Main",
    Icon = "settings_input_antenna",
    ImageSource = "Material",
    ShowTitle = true
})

local Button = Tab:CreateButton({
	Name = "Data Rollback",
	Description = "Click this this after u done spinnin and rejoin and dont use too much spins",
    	Callback = function()
           

        local ohString1 = "\255"

        game:GetService("ReplicatedStorage").Remotes.Server.Data.ChangeSetting:InvokeServer(ohString1)
    	end
})

Tab:CreateSection("Instakill")

local instaKillEnabled = false
local range = 0
local tweenToMobEnabled = false
local tweenSpeed = 0
local tweenRange = 0

Tab:CreateToggle({
    Name = "Enable Insta-Kill",
    CurrentValue = config.instaKillEnabled,
    Callback = function(State)
        instaKillEnabled = State
        config.instaKillEnabled = State
        saveConfig()
    end
})

Tab:CreateSlider({
    Name = "Kill Range",
    Range = {10, 1000},
    Increment = 1,
    CurrentValue = config.range,
    Callback = function(Value)
        range = Value
        config.range = Value
        saveConfig()
    end
})

Tab:CreateSection("Tweening")

Tab:CreateToggle({
    Name = "Tween to Near Mobs",
    CurrentValue = config.tweenToMobEnabled,
    Callback = function(State)
        tweenToMobEnabled = State
        config.tweenToMobEnabled = State
        saveConfig()
    end
})

Tab:CreateSlider({
    Name = "Tweening Range",
    Range = {5, 5000},
    Increment = 5,
    CurrentValue = config.tweenRange,
    Callback = function(Value)
        tweenRange = Value
        config.tweenRange = Value
        saveConfig()
    end
})

Tab:CreateSlider({
    Name = "Tween Speed",
    Range = {0.5, 5000},
    Increment = 1,
    CurrentValue = config.tweenSpeed,
    Callback = function(Value)
        tweenSpeed = Value
        config.tweenSpeed = Value
        saveConfig()
    end
})

local tweenPosition = "On Top" 
Tab:CreateDropdown({
    Name = "Tween Position",
    Options = {"On Top", "Under", "Behind"},
    CurrentOption = tweenPosition,
    Callback = function(Selected)
        tweenPosition = Selected
    end
})

local positionOffset = 1
Tab:CreateSlider({
    Name = "Position Offset",
    Range = {1, 50},
    Increment = 1,
    CurrentValue = positionOffset,
    Callback = function(Value)
        positionOffset = Value
    end
})

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

local Mag = function(Pos1, Pos2)
    return (Pos1.Position - Pos2.Position).Magnitude
end

local Tween = function(Object1, Object2, Speed, Offset, Wait)
    if Object1 and Object2 then
        local Timing = Mag(Object1, Object2) / Speed
        local TweenInfo = TweenInfo.new(Timing, Enum.EasingStyle.Linear)
        local TweenSystem = TweenService:Create(Object1, TweenInfo, {CFrame = CFrame.new(Object2.Position + Offset)})
        TweenSystem:Play()
        if Wait then
            TweenSystem.Completed:Wait()
        end
    end
end

local function performInstaKill()
    if not instaKillEnabled then return end

    local player = game.Players.LocalPlayer
    local character = player.Character or player.CharacterAdded:Wait()
    local origin = character.PrimaryPart.Position

    for _, mob in pairs(workspace.Objects.Mobs:GetChildren()) do
        if mob:IsA("Model") and mob.PrimaryPart then
            local distance = (mob.PrimaryPart.Position - origin).Magnitude
            if distance <= range then
                local humanoid = mob:FindFirstChildOfClass("Humanoid")
                if humanoid then
                    humanoid.Health = 0
                end
            end
        end
    end
end

local function NoClip()
    for _, v in next, Player.Character:GetChildren() do
        if v:IsA("BasePart") and v.CanCollide then
            v.CanCollide = false
        end
    end
end

local function performTweenToMobs()
    if not tweenToMobEnabled then return end

    local player = game.Players.LocalPlayer
    local character = player.Character or player.CharacterAdded:Wait()

    NoClip() 

    for _, mob in pairs(workspace.Objects.Mobs:GetChildren()) do
        if mob:IsA("Model") and mob.PrimaryPart then
            local distance = (mob.PrimaryPart.Position - character.PrimaryPart.Position).Magnitude
            if distance <= tweenRange then
                local offset = Vector3.new(0, 0, 0)

                if tweenPosition == "On Top" then
                    offset = Vector3.new(0, positionOffset, 0)
                elseif tweenPosition == "Under" then
                    offset = Vector3.new(0, -positionOffset, 0)
                elseif tweenPosition == "Behind" then
                    offset = Vector3.new(0, 0, -positionOffset)
                end

                Tween(character.PrimaryPart, mob.PrimaryPart, tweenSpeed, offset, true)
            end
        end
    end
end


game:GetService("RunService").Stepped:Connect(function()
    if instaKillEnabled then
        performInstaKill() 
    end
    if tweenToMobEnabled then
        performTweenToMobs()
    end
end)

Tab:CreateSection("Auto Boss")
local autoreplayEnabled = false
local ProximityPromptService = game:GetService("ProximityPromptService")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local lootUI = game:GetService("Players").LocalPlayer.PlayerGui.Loot
local flipButton = game:GetService("Players").LocalPlayer.PlayerGui.Loot.Frame.Flip
local replayButton = game:GetService("Players").LocalPlayer.PlayerGui.ReadyScreen.Frame.Replay
local GuiService = game:GetService("GuiService")
local VirtualInputManager = game:GetService("VirtualInputManager")
local player = game.Players.LocalPlayer
local flipDelayTime = 0.4

-- Auto Replay Function with a 35-second delay
local function autoReplay()
    while autoreplayEnabled do
        -- Check if replayButton is visible and enabled
        if replayButton.Visible then
            task.wait(45)  -- Wait for an additional 4 seconds before triggering the replay

            -- Trigger the replay if the replay button is visible
            GuiService.SelectedObject = replayButton
            VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.Return, false, game)
            task.wait(0.1)
            VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.Return, false, game)
            task.wait(0.1)
            VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.BackSlash, false, game)
            task.wait(0.1)
            VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.BackSlash, false, game)
        end
        task.wait(1)  -- Check every second
    end
end

-- Toggle for Auto Replay
Tab:CreateToggle({
    Name = "Auto Replay",
    CurrentValue = config.autoreplayEnabled,  -- Default off state
    Callback = function(State)
        autoreplayEnabled = State  -- Toggle variable to track the state
        config.autoreplayEnabled = State
        saveConfig()

        -- Start or stop the autoReplay function based on the toggle state
        if State then
            -- Enable auto replay
            task.spawn(autoReplay)  -- Run autoReplay in a separate thread
        else
            -- Disable auto replay
            autoreplayEnabled = false
        end
    end
})



Tab:CreateToggle({
    Name = "Auto Boss",
    CurrentValue = config.autoBossEnabled,  -- Default off state
    Callback = function(State)
        autoBossEnabled = State  -- Toggle variable to track the state
        config.autoBossEnabled = State
        saveConfig()

        -- Start countdown if Auto Boss is enabled
        if State then
            for i = 30, 1, -1 do
                task.delay(30 - i, function()
                    Luna:Notification({
                        Title = "Auto Boss",
                        Icon = "notifications_active",
                        ImageSource = "Material",
                        Content = "Time remaining: " .. i .. " seconds",
                        Time = 1  -- Display each notification for 1 second
                    })
                end)
            end

            -- Final notification when the countdown ends
            task.delay(30, function()
                Luna:Notification({
                    Title = "Countdown Complete!",
                    Icon = "check_circle",
                    ImageSource = "Material",
                    Content = "The countdown is complete!",
                    Time = 5
                })
            end)
        end
    end
})


-- Tween to Boss function
local function tweenToBoss()
    local player = game.Players.LocalPlayer
    local character = player.Character or player.CharacterAdded:Wait()
    local bossSpawn = workspace.Objects.Spawns.BossSpawn

    if character and character.PrimaryPart and bossSpawn then
        local offset = Vector3.new(0, 20, 0)  -- Optional offset if needed
        local speed = 1000  -- Speed for tweening
        Tween(character.PrimaryPart, bossSpawn, speed, offset, true)
    end
end

-- Insta-Kill and Tween to Mobs function
local function performInstaKillAndTween()
    if not autoBossEnabled then return end

    local player = game.Players.LocalPlayer
    local character = player.Character or player.CharacterAdded:Wait()
    local origin = character.PrimaryPart.Position

    -- Tween to the boss spawn point if not already there
    if (workspace.Objects.Spawns.BossSpawn.Position - origin).Magnitude > 50 then
        tweenToBoss()  -- This will move the player to the BossSpawn
    end

    -- Insta-Kill and Tween to nearby mobs
    for _, mob in pairs(workspace.Objects.Mobs:GetChildren()) do
        if mob:IsA("Model") and mob.PrimaryPart then
            local distance = (mob.PrimaryPart.Position - origin).Magnitude
            if distance <= 1000 then  -- Range of 1000 units
                -- Insta-Kill logic
                local humanoid = mob:FindFirstChildOfClass("Humanoid")
                if humanoid then
                    humanoid.Health = 0
                end

                -- Tween to the mob with "On Top" offset
                local offset = Vector3.new(0, 10, 0)  -- Offset on top of the mob
                Tween(character.PrimaryPart, mob.PrimaryPart, 500, offset, true)
            end
        end
    end
end

-- Run the Insta-Kill and Tween logic when the Auto Boss toggle is enabled
game:GetService("RunService").Stepped:Connect(function()
    if autoBossEnabled then
        wait(30)
        performInstaKillAndTween()  -- Perform the action when the toggle is enabled
    end
end)

local Quests = Window:CreateTab({
	Name = "Auto Daily Quest (Turn On Insta Kill)",
	Icon = "looks",
	ImageSource = "Material",
	ShowTitle = true -- This will determine whether the big header text in the tab will show
})

local snow = Quests:CreateButton({
	Name = "Mr Snow",
	Description = nil, -- Creates A Description For Users to know what the button does (looks bad if you use it all the time),
    	Callback = function()
         local TweenService = game:GetService("TweenService")
local Players = game:GetService("Players")
local VirtualInputManager = game:GetService("VirtualInputManager")
local RunService = game:GetService("RunService")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")

local npcName = "Mr. Snow"
local objectsFolder = workspace:FindFirstChild("Objects")
local npcFolder = objectsFolder and objectsFolder:FindFirstChild("NPCs")
local npc = npcFolder and npcFolder:FindFirstChild(npcName)

if not npc or not npc.PrimaryPart then
    warn("NPC not found or has no PrimaryPart!")
    return
end

local noclipActive = false

-- Function to toggle noclip
local function toggleNoclip(state)
    noclipActive = state
    if noclipActive then
        RunService.Stepped:Connect(function()
            for _, part in ipairs(character:GetDescendants()) do
                if part:IsA("BasePart") then
                    part.CanCollide = false
                end
            end
        end)
    else
        for _, part in ipairs(character:GetDescendants()) do
            if part:IsA("BasePart") then
                part.CanCollide = true
            end
        end
    end
end

local function simulateKeyPress(keyCode, duration)
    VirtualInputManager:SendKeyEvent(true, keyCode, false, game)
    wait(duration)
    VirtualInputManager:SendKeyEvent(false, keyCode, false, game)
end

local function pressProximityPrompt(prompt, duration)
    if prompt and prompt:IsA("ProximityPrompt") and prompt.Enabled then
        prompt:InputHoldBegin()
        wait(duration)
        prompt:InputHoldEnd()
    end
end

local function tweenToPosition(position, callback, shouldFloat)
    local distance = (humanoidRootPart.Position - position).Magnitude
    local speed = 3000
    local tweenTime = distance / speed
    local currentOrientation = humanoidRootPart.CFrame - humanoidRootPart.CFrame.Position
    local floatHeight = shouldFloat and 3 or 0 -- Float height if shouldFloat is true
    local adjustedPosition = position + Vector3.new(0, floatHeight, 0)
    local tweenInfo = TweenInfo.new(tweenTime, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
    local tweenGoal = { CFrame = CFrame.new(adjustedPosition) * currentOrientation }
    local tween = TweenService:Create(humanoidRootPart, tweenInfo, tweenGoal)

    toggleNoclip(true) -- Enable noclip before tweening
    tween:Play()
    tween.Completed:Connect(function()
        toggleNoclip(false) -- Disable noclip after tweening

        if callback then
            callback()
        end
    end)
end

local function findAndTweenToSnowPiles()
    local map = workspace:FindFirstChild("Map")
    if not map then
        warn("Map not found!")
        return
    end

    local questObject = map:FindFirstChild("QuestObject")
    if not questObject then
        warn("QuestObject not found under Map!")
        return
    end

    local snowPiles = questObject:FindFirstChild("SnowPiles")
    if not snowPiles then
        warn("SnowPiles folder not found under QuestObject!")
        return
    end

    local usedFolder = snowPiles:FindFirstChild("Used")
    if not usedFolder then
        warn("Used folder not found under SnowPiles!")
        return
    end

    local foundSnowPiles = false
    for _, child in ipairs(usedFolder:GetChildren()) do
        if child.Name == "SnowPile" and child:IsA("BasePart") then
            foundSnowPiles = true
            tweenToPosition(child.Position, function()
                local prompt = child:FindFirstChildOfClass("ProximityPrompt")
                if prompt then
                    pressProximityPrompt(prompt, 4.5) -- Updated to 4.5 seconds
                end
            end, true) -- Enable floating while tweening to snowpile
            wait(4.5) -- Updated to match interaction time
        end
    end

    if not foundSnowPiles then
        print("No SnowPiles found under Used.")
    else
        print("All SnowPiles have been successfully located and interacted with.")
    end
end

local function tweenToNPC()
    local targetPosition = npc.PrimaryPart.Position + Vector3.new(0, 0, -5)
    tweenToPosition(targetPosition, function()
        local prompt = npc:FindFirstChildOfClass("ProximityPrompt")
        if prompt then
            pressProximityPrompt(prompt, 0.5)
            simulateKeyPress(Enum.KeyCode.BackSlash, 0.1)
            wait(0.5)
            simulateKeyPress(Enum.KeyCode.S, 0.1)
            wait(0.5)
            simulateKeyPress(Enum.KeyCode.Return, 0.1)
            wait(0.5)
            simulateKeyPress(Enum.KeyCode.S, 0.1)
            wait(0.5)
            simulateKeyPress(Enum.KeyCode.Return, 0.1)
            wait(0.5)
            simulateKeyPress(Enum.KeyCode.Return, 0.1)
            wait(1)
            findAndTweenToSnowPiles()
        end
    end)
end

wait(1)
tweenToNPC()
    	end
})

local cabbage = Quests:CreateButton({
	Name = "Cabbage Merchant",
	Description = nil, -- Creates A Description For Users to know what the button does (looks bad if you use it all the time),
    	Callback = function()
         local TweenService = game:GetService("TweenService")
local Players = game:GetService("Players")
local VirtualInputManager = game:GetService("VirtualInputManager")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")

local npcName = "Cabbage Merchant"
local objectsFolder = workspace:FindFirstChild("Objects")
local npcFolder = objectsFolder and objectsFolder:FindFirstChild("NPCs")
local npc = npcFolder and npcFolder:FindFirstChild(npcName)

if not npc or not npc.PrimaryPart then
    return
end

local function simulateKeyPress(keyCode, duration)
    VirtualInputManager:SendKeyEvent(true, keyCode, false, game)
    wait(duration)
    VirtualInputManager:SendKeyEvent(false, keyCode, false, game)
end

local function pressProximityPrompt(prompt)
    while prompt and prompt:IsA("ProximityPrompt") and prompt.Enabled do
        fireproximityprompt(prompt)
        wait(0.1)
    end
end

local function tweenToNPC()
    local targetPosition = npc.PrimaryPart.Position + Vector3.new(0, 0, -5)
    local distance = (humanoidRootPart.Position - targetPosition).Magnitude
    local speed = 3000
    local tweenTime = distance / speed
    local currentOrientation = humanoidRootPart.CFrame - humanoidRootPart.CFrame.Position
    local tweenInfo = TweenInfo.new(tweenTime, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
    local tweenGoal = { CFrame = CFrame.new(targetPosition) * currentOrientation }
    local tween = TweenService:Create(humanoidRootPart, tweenInfo, tweenGoal)

    for _, part in ipairs(character:GetDescendants()) do
        if part:IsA("BasePart") then
            part.CanCollide = false
        end
    end

    tween:Play()

    tween.Completed:Connect(function()
        for _, part in ipairs(character:GetDescendants()) do
            if part:IsA("BasePart") then
                part.CanCollide = true
            end
        end

        local prompt = npc:FindFirstChildOfClass("ProximityPrompt")
        if prompt then
            pressProximityPrompt(prompt)
            simulateKeyPress(Enum.KeyCode.BackSlash, 0.1)
            wait(0.1)
            simulateKeyPress(Enum.KeyCode.S, 0.1)
            wait(0.1)
            simulateKeyPress(Enum.KeyCode.Return, 0.1)
            wait(0.1)
            simulateKeyPress(Enum.KeyCode.S, 0.1)
            wait(0.1)
            simulateKeyPress(Enum.KeyCode.Return, 0.1)
            wait(0.1)
            simulateKeyPress(Enum.KeyCode.Return, 0.1)

            local firstTargetPosition = Vector3.new(2731.888916015625, 663.6421508789062, 287.21820068359375)
            while (humanoidRootPart.Position - firstTargetPosition).Magnitude > 1 do
                humanoidRootPart.CFrame = humanoidRootPart.CFrame:Lerp(
                    CFrame.new(firstTargetPosition, humanoidRootPart.Position + humanoidRootPart.CFrame.LookVector),
                    0.1
                )
                wait(0.1)
            end

            wait(0.1)
            simulateKeyPress(Enum.KeyCode.E, 4)

            local secondTargetPosition = Vector3.new(3444.66015625, 636.7777099609375, 183.07412719726562)
            while (humanoidRootPart.Position - secondTargetPosition).Magnitude > 1 do
                humanoidRootPart.CFrame = humanoidRootPart.CFrame:Lerp(
                    CFrame.new(secondTargetPosition, humanoidRootPart.Position + humanoidRootPart.CFrame.LookVector),
                    0.1
                )
                wait(0.1)
            end
        end
    end)
end

wait(0.1)
tweenToNPC()
    	end
})

local guts = Quests:CreateButton({
	Name = "Curse Slayer",
	Description = nil, -- Creates A Description For Users to know what the button does (looks bad if you use it all the time),
    	Callback = function()
         local TweenService = game:GetService("TweenService")
local Players = game:GetService("Players")
local VirtualInputManager = game:GetService("VirtualInputManager")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")

local npcName = "Curse Slayer"
local objectsFolder = workspace:FindFirstChild("Objects")
local npcFolder = objectsFolder and objectsFolder:FindFirstChild("NPCs")
local npc = npcFolder and npcFolder:FindFirstChild(npcName)

if not npc or not npc.PrimaryPart then
    return
end

local function simulateKeyPress(keyCode, duration)
    VirtualInputManager:SendKeyEvent(true, keyCode, false, game)
    wait(duration)
    VirtualInputManager:SendKeyEvent(false, keyCode, false, game)
end

local function pressProximityPrompt(prompt)
    while prompt and prompt:IsA("ProximityPrompt") and prompt.Enabled do
        fireproximityprompt(prompt)
        wait(0.2)
    end
end

local function tweenToNPC()
    local targetPosition = npc.PrimaryPart.Position + Vector3.new(0, 0, -5)
    local distance = (humanoidRootPart.Position - targetPosition).Magnitude
    local speed = 3000
    local tweenTime = distance / speed
    local currentOrientation = humanoidRootPart.CFrame - humanoidRootPart.CFrame.Position
    local tweenInfo = TweenInfo.new(tweenTime, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
    local tweenGoal = { CFrame = CFrame.new(targetPosition) * currentOrientation }
    local tween = TweenService:Create(humanoidRootPart, tweenInfo, tweenGoal)

    for _, part in ipairs(character:GetDescendants()) do
        if part:IsA("BasePart") then
            part.CanCollide = false
        end
    end

    tween:Play()

    tween.Completed:Connect(function()
        for _, part in ipairs(character:GetDescendants()) do
            if part:IsA("BasePart") then
                part.CanCollide = true
            end
        end

        local prompt = npc:FindFirstChildOfClass("ProximityPrompt")
        if prompt then
            pressProximityPrompt(prompt)
            simulateKeyPress(Enum.KeyCode.BackSlash, 0.1)
            wait(0.5)
            simulateKeyPress(Enum.KeyCode.S, 0.1)
            wait(0.5)
            simulateKeyPress(Enum.KeyCode.Return, 0.1)
            wait(0.5)
            simulateKeyPress(Enum.KeyCode.S, 0.1)
            wait(0.5)
            simulateKeyPress(Enum.KeyCode.Return, 0.1)
            wait(0.5)
            simulateKeyPress(Enum.KeyCode.Return, 0.1)
        end
    end)
end

wait(1)
tweenToNPC()
    	end
})

local lazy = Quests:CreateButton({
	Name = "Lazy Sorcerer",
	Description = nil, -- Creates A Description For Users to know what the button does (looks bad if you use it all the time),
    	Callback = function()
         local TweenService = game:GetService("TweenService")
local Players = game:GetService("Players")
local VirtualInputManager = game:GetService("VirtualInputManager")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")

local npcName = "Lazy Sorcerer"
local objectsFolder = workspace:FindFirstChild("Objects")
local npcFolder = objectsFolder and objectsFolder:FindFirstChild("NPCs")
local npc = npcFolder and npcFolder:FindFirstChild(npcName)

if not npc or not npc.PrimaryPart then
    return
end

local function simulateKeyPress(keyCode, duration)
    VirtualInputManager:SendKeyEvent(true, keyCode, false, game)
    wait(duration)
    VirtualInputManager:SendKeyEvent(false, keyCode, false, game)
end

local function pressProximityPrompt(prompt)
    while prompt and prompt:IsA("ProximityPrompt") and prompt.Enabled do
        fireproximityprompt(prompt)
        wait(0.2)
    end
end

local function tweenToNPC()
    local targetPosition = npc.PrimaryPart.Position + Vector3.new(0, 0, -5)
    local distance = (humanoidRootPart.Position - targetPosition).Magnitude
    local speed = 3000
    local tweenTime = distance / speed
    local currentOrientation = humanoidRootPart.CFrame - humanoidRootPart.CFrame.Position
    local tweenInfo = TweenInfo.new(tweenTime, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
    local tweenGoal = { CFrame = CFrame.new(targetPosition) * currentOrientation }
    local tween = TweenService:Create(humanoidRootPart, tweenInfo, tweenGoal)

    for _, part in ipairs(character:GetDescendants()) do
        if part:IsA("BasePart") then
            part.CanCollide = false
        end
    end

    tween:Play()

    tween.Completed:Connect(function()
        for _, part in ipairs(character:GetDescendants()) do
            if part:IsA("BasePart") then
                part.CanCollide = true
            end
        end

        local prompt = npc:FindFirstChildOfClass("ProximityPrompt")
        if prompt then
            pressProximityPrompt(prompt)
            simulateKeyPress(Enum.KeyCode.BackSlash, 0.1)
            wait(0.5)
            simulateKeyPress(Enum.KeyCode.S, 0.1)
            wait(0.5)
            simulateKeyPress(Enum.KeyCode.Return, 0.1)
            wait(0.5)
            simulateKeyPress(Enum.KeyCode.S, 0.1)
            wait(0.5)
            simulateKeyPress(Enum.KeyCode.Return, 0.1)
            wait(0.5)
            simulateKeyPress(Enum.KeyCode.Return, 0.1)
        end
    end)
end

wait(1)
tweenToNPC()
end
})

local fort = Quests:CreateButton({
	Name = "Fort Alchemist",
	Description = nil, -- Creates A Description For Users to know what the button does (looks bad if you use it all the time),
    	Callback = function()
         local TweenService = game:GetService("TweenService")
local Players = game:GetService("Players")
local VirtualInputManager = game:GetService("VirtualInputManager")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")

local npcName = "Fort Alchemist"
local objectsFolder = workspace:FindFirstChild("Objects")
local npcFolder = objectsFolder and objectsFolder:FindFirstChild("NPCs")
local npc = npcFolder and npcFolder:FindFirstChild(npcName)

if not npc or not npc.PrimaryPart then
    warn("NPC not found or has no PrimaryPart!")
    return
end

local function simulateKeyPress(keyCode, duration)
    VirtualInputManager:SendKeyEvent(true, keyCode, false, game)
    wait(duration)
    VirtualInputManager:SendKeyEvent(false, keyCode, false, game)
end

local function pressProximityPrompt(prompt, duration)
    if prompt and prompt:IsA("ProximityPrompt") and prompt.Enabled then
        prompt:InputHoldBegin()
        wait(duration)
        prompt:InputHoldEnd()
    end
end

local function tweenToPosition(position, callback)
    local distance = (humanoidRootPart.Position - position).Magnitude
    local speed = 3000
    local tweenTime = distance / speed
    local currentOrientation = humanoidRootPart.CFrame - humanoidRootPart.CFrame.Position
    local tweenInfo = TweenInfo.new(tweenTime, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
    local tweenGoal = { CFrame = CFrame.new(position) * currentOrientation }
    local tween = TweenService:Create(humanoidRootPart, tweenInfo, tweenGoal)

    for _, part in ipairs(character:GetDescendants()) do
        if part:IsA("BasePart") then
            part.CanCollide = false
        end
    end

    tween:Play()
    tween.Completed:Connect(function()
        for _, part in ipairs(character:GetDescendants()) do
            if part:IsA("BasePart") then
                part.CanCollide = true
            end
        end

        if callback then
            callback()
        end
    end)
end

local function collectFrostPetal()
    local map = workspace:FindFirstChild("Map")
    if not map then
        warn("Map not found!")
        return
    end

    local forageSpots = map:FindFirstChild("ForageSpots")
    if not forageSpots then
        warn("ForageSpots not found under Map!")
        return
    end

    local frostPetals = {}
    for _, spot in ipairs(forageSpots:GetChildren()) do
        for _, frostPetalModel in ipairs(spot:GetChildren()) do
            if frostPetalModel.Name == "Frost Petal" and frostPetalModel:IsA("Model") then
                for _, part in ipairs(frostPetalModel:GetChildren()) do
                    if part:IsA("BasePart") then
                        table.insert(frostPetals, part)
                    end
                end
            end
        end
    end

    if #frostPetals == 0 then
        warn("No Frost Petal found!")
    else
        print("Frost Petals found:", #frostPetals)
    end

    return frostPetals
end

local function tweenToFrostPetal()
    local frostPetals = collectFrostPetal()
    if not frostPetals or #frostPetals == 0 then
        return
    end

    local collected = 0
    for _, petal in ipairs(frostPetals) do
        if collected >= 9 then
            break
        end

        tweenToPosition(petal.Position, function()
            local prompt = petal:FindFirstChildOfClass("ProximityPrompt")
            if prompt then
                pressProximityPrompt(prompt, 1)
                collected = collected + 1
                print("Collected Frost Petal:", collected)
            end
        end)

        wait(2) -- Wait before moving to the next petal
    end

    if collected < 9 then
        print("Only", collected, "Frost Petals were collected.")
    else
        print("Successfully collected 9 Frost Petals.")
    end
end

local function tweenToNPC()
    local targetPosition = npc.PrimaryPart.Position + Vector3.new(0, 0, -5)
    tweenToPosition(targetPosition, function()
        local prompt = npc:FindFirstChildOfClass("ProximityPrompt")
        if prompt then
            pressProximityPrompt(prompt, 0.5)
            simulateKeyPress(Enum.KeyCode.BackSlash, 0.1)
            wait(0.5)
            simulateKeyPress(Enum.KeyCode.S, 0.1)
            wait(0.5)
            simulateKeyPress(Enum.KeyCode.Return, 0.1)
            wait(0.5)
            simulateKeyPress(Enum.KeyCode.S, 0.1)
            wait(0.5)
            simulateKeyPress(Enum.KeyCode.Return, 0.1)
            wait(0.5)
            simulateKeyPress(Enum.KeyCode.Return, 0.1)
            wait(1)
            tweenToFrostPetal()
            wait(1)
            simulateKeyPress(Enum.KeyCode.BackSlash, 0.1) -- Final action
            print("Final BackSlash action triggered!")
        end
    end)
end

wait(1)
tweenToNPC()
    	end
})

local digger = Quests:CreateButton({
	Name = "Grave Digger",
	Description = nil, -- Creates A Description For Users to know what the button does (looks bad if you use it all the time),
    	Callback = function()
         local TweenService = game:GetService("TweenService")
local Players = game:GetService("Players")
local VirtualInputManager = game:GetService("VirtualInputManager")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")

local npcName = "Grave Digger"
local objectsFolder = workspace:FindFirstChild("Objects")
local npcFolder = objectsFolder and objectsFolder:FindFirstChild("NPCs")
local npc = npcFolder and npcFolder:FindFirstChild(npcName)

if not npc or not npc.PrimaryPart then
    return
end

local savedCoordinates = Vector3.new(7282.884765625, 990.78515625, -1070.3953857421875)

local function simulateKeyPress(keyCode, duration)
    VirtualInputManager:SendKeyEvent(true, keyCode, false, game)
    wait(duration)
    VirtualInputManager:SendKeyEvent(false, keyCode, false, game)
end

local function pressProximityPrompt(prompt)
    while prompt and prompt:IsA("ProximityPrompt") and prompt.Enabled do
        fireproximityprompt(prompt)
        wait(0.2)
    end
end

local function tweenToPosition(targetPosition, callback)
    local distance = (humanoidRootPart.Position - targetPosition).Magnitude
    local speed = 3000
    local tweenTime = distance / speed
    local currentOrientation = humanoidRootPart.CFrame - humanoidRootPart.CFrame.Position
    local tweenInfo = TweenInfo.new(tweenTime, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
    local tweenGoal = { CFrame = CFrame.new(targetPosition) * currentOrientation }
    local tween = TweenService:Create(humanoidRootPart, tweenInfo, tweenGoal)

    for _, part in ipairs(character:GetDescendants()) do
        if part:IsA("BasePart") then
            part.CanCollide = false
        end
    end

    tween:Play()

    tween.Completed:Connect(function()
        for _, part in ipairs(character:GetDescendants()) do
            if part:IsA("BasePart") then
                part.CanCollide = true
            end
        end
        if callback then
            callback()
        end
    end)
end

local function interactWithNPC()
    local prompt = npc:FindFirstChildOfClass("ProximityPrompt")
    if prompt then
        pressProximityPrompt(prompt)
        simulateKeyPress(Enum.KeyCode.BackSlash, 0.1)
        wait(0.5)
        simulateKeyPress(Enum.KeyCode.S, 0.1)
        wait(0.5)
        simulateKeyPress(Enum.KeyCode.Return, 0.1)
        wait(0.5)
        simulateKeyPress(Enum.KeyCode.S, 0.1)
        wait(0.5)
        simulateKeyPress(Enum.KeyCode.Return, 0.1)
        wait(0.5)
        simulateKeyPress(Enum.KeyCode.Return, 0.1)

        -- Tween to saved coordinates after interacting
        tweenToPosition(savedCoordinates)
        wait(0.5)
        simulateKeyPress(Enum.KeyCode.BackSlash, 0.1)
    end
end

local function tweenToNPC()
    local targetPosition = npc.PrimaryPart.Position + Vector3.new(0, 0, -5)
    tweenToPosition(targetPosition, interactWithNPC)
end

wait(1)
tweenToNPC()
end
})

local temple = Quests:CreateButton({
	Name = "Temple Master",
	Description = nil, -- Creates A Description For Users to know what the button does (looks bad if you use it all the time),
    	Callback = function()
         local TweenService = game:GetService("TweenService")
local Players = game:GetService("Players")
local VirtualInputManager = game:GetService("VirtualInputManager")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")

local npcName = "Temple Master" -- Changed NPC Name
local objectsFolder = workspace:FindFirstChild("Objects")
local npcFolder = objectsFolder and objectsFolder:FindFirstChild("NPCs")
local npc = npcFolder and npcFolder:FindFirstChild(npcName)

if not npc or not npc.PrimaryPart then
    return
end

-- Coordinates provided
local targetCoordinates = Vector3.new(6328.4580078125, 982.6458740234375, -409.1114196777344)

local function simulateKeyPress(keyCode, duration)
    VirtualInputManager:SendKeyEvent(true, keyCode, false, game)
    wait(duration)
    VirtualInputManager:SendKeyEvent(false, keyCode, false, game)
end

local function pressProximityPrompt(prompt)
    while prompt and prompt:IsA("ProximityPrompt") and prompt.Enabled do
        fireproximityprompt(prompt)
        wait(0.2)
    end
end

local function tweenToPosition(targetPosition, callback)
    local distance = (humanoidRootPart.Position - targetPosition).Magnitude
    local speed = 3000
    local tweenTime = distance / speed
    local currentOrientation = humanoidRootPart.CFrame - humanoidRootPart.CFrame.Position
    local tweenInfo = TweenInfo.new(tweenTime, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
    local tweenGoal = { CFrame = CFrame.new(targetPosition) * currentOrientation }
    local tween = TweenService:Create(humanoidRootPart, tweenInfo, tweenGoal)

    for _, part in ipairs(character:GetDescendants()) do
        if part:IsA("BasePart") then
            part.CanCollide = false
        end
    end

    tween:Play()

    tween.Completed:Connect(function()
        for _, part in ipairs(character:GetDescendants()) do
            if part:IsA("BasePart") then
                part.CanCollide = true
            end
        end
        if callback then
            callback()
        end
    end)
end

local function interactWithNPC()
    local prompt = npc:FindFirstChildOfClass("ProximityPrompt")
    if prompt then
        pressProximityPrompt(prompt)
        simulateKeyPress(Enum.KeyCode.BackSlash, 0.1)
        wait(0.5)
        simulateKeyPress(Enum.KeyCode.S, 0.1)
        wait(0.5)
        simulateKeyPress(Enum.KeyCode.Return, 0.1)
        wait(0.5)
        simulateKeyPress(Enum.KeyCode.S, 0.1)
        wait(0.5)
        simulateKeyPress(Enum.KeyCode.Return, 0.1)
        wait(0.5)
        simulateKeyPress(Enum.KeyCode.Return, 0.1)

        -- Tween to provided coordinates
        tweenToPosition(targetCoordinates, function()
            -- Simulate holding 'E' for 4 seconds
            wait(2)
            simulateKeyPress(Enum.KeyCode.E, 4)
            
            -- Simulate pressing backslash
            simulateKeyPress(Enum.KeyCode.BackSlash, 0.1)
        end)
    end
end

local function tweenToNPC()
    local targetPosition = npc.PrimaryPart.Position + Vector3.new(0, 0, -5)
    tweenToPosition(targetPosition, interactWithNPC)
end

wait(1)
tweenToNPC()
    	end
})

local camp = Quests:CreateButton({
	Name = "Camp Sorcerer",
	Description = nil, -- Creates A Description For Users to know what the button does (looks bad if you use it all the time),
    	Callback = function()
         local TweenService = game:GetService("TweenService")
local Players = game:GetService("Players")
local VirtualInputManager = game:GetService("VirtualInputManager")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")

local npcName = "Camp Sorcerer" -- Updated NPC name
local objectsFolder = workspace:FindFirstChild("Objects")
local npcFolder = objectsFolder and objectsFolder:FindFirstChild("NPCs")
local npc = npcFolder and npcFolder:FindFirstChild(npcName)

if not npc or not npc.PrimaryPart then
    return
end

local targetCoordinates = Vector3.new(8747.899, 772.301, 1569.553) -- New coordinates

local function simulateKeyPress(keyCode, duration)
    VirtualInputManager:SendKeyEvent(true, keyCode, false, game)
    wait(duration)
    VirtualInputManager:SendKeyEvent(false, keyCode, false, game)
end

local function pressProximityPrompt(prompt)
    while prompt and prompt:IsA("ProximityPrompt") and prompt.Enabled do
        fireproximityprompt(prompt)
        wait(0.2) -- Hold prompt for a short interval
    end
end

local function tweenToPosition(targetPosition, callback)
    local distance = (humanoidRootPart.Position - targetPosition).Magnitude
    local speed = 500
    local tweenTime = distance / speed
    local currentOrientation = humanoidRootPart.CFrame - humanoidRootPart.CFrame.Position
    local tweenInfo = TweenInfo.new(tweenTime, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
    local tweenGoal = { CFrame = CFrame.new(targetPosition) * currentOrientation }
    local tween = TweenService:Create(humanoidRootPart, tweenInfo, tweenGoal)

    for _, part in ipairs(character:GetDescendants()) do
        if part:IsA("BasePart") then
            part.CanCollide = false
        end
    end

    tween:Play()

    tween.Completed:Connect(function()
        for _, part in ipairs(character:GetDescendants()) do
            if part:IsA("BasePart") then
                part.CanCollide = true
            end
        end
        if callback then
            callback()
        end
    end)
end

local function interactWithNearbyPrompt()
    local prompt = workspace:FindFirstChildOfClass("ProximityPrompt")
    if prompt then
        pressProximityPrompt(prompt)
    end
end

local function interactWithNPC()
    local prompt = npc:FindFirstChildOfClass("ProximityPrompt")
    if prompt then
        -- Proximity prompt interaction with the NPC
        pressProximityPrompt(prompt)
        simulateKeyPress(Enum.KeyCode.BackSlash, 0.1)
        wait(0.5)
        simulateKeyPress(Enum.KeyCode.S, 0.1)
        wait(0.5)
        simulateKeyPress(Enum.KeyCode.Return, 0.1)
        wait(0.5)
        simulateKeyPress(Enum.KeyCode.S, 0.1)
        wait(0.5)
        simulateKeyPress(Enum.KeyCode.Return, 0.1)
        wait(0.5)
        simulateKeyPress(Enum.KeyCode.Return, 0.1)

        -- Tween to new coordinates after sequence
        tweenToPosition(targetCoordinates, function()
            wait(2)
            -- Wait and press E for 2 secondssw
        simulateKeyPress(Enum.KeyCode.E, 2)
        
            wait(1)
            tweenToPosition(Vector3.new(7538.853516625, 747.5322265625, 987.73436035162))
        simulateKeyPress(Enum.keyCode.BackSlash, 0.1)
        end)
    end
end

local function tweenToNPC()
    local targetPosition = npc.PrimaryPart.Position + Vector3.new(0, 0, -5)
    tweenToPosition(targetPosition, interactWithNPC)
end

wait(1)
tweenToNPC()
    	end
})

local Misc = Window:CreateTab({
    Name = "Misc",
    Icon = "priority_high",
    ImageSource = "Material",
    ShowTitle = true
})


-- ESP Settings
local ESPEnabled = false
local blacklistedItems = {"Chest"} -- Blacklist
local ESPFolder = Instance.new("Folder", game.CoreGui) -- Store ESP drawings

-- Utility Functions
local function createESP(model)
    -- Get the Root part of the model
    local rootPart = model:FindFirstChild("Root")
    if not rootPart then return end

    -- Create BillboardGui
    local billboard = Instance.new("BillboardGui", ESPFolder)
    billboard.Adornee = rootPart
    billboard.Size = UDim2.new(0, 200, 0, 50)
    billboard.AlwaysOnTop = true

    local textLabel = Instance.new("TextLabel", billboard)
    textLabel.Size = UDim2.new(1, 0, 1, 0)
    textLabel.TextScaled = true
    textLabel.BackgroundTransparency = 1
    textLabel.TextColor3 = Color3.new(1, 1, 1)
    textLabel.Font = Enum.Font.GothamBold

    -- Update Text and Distance
    spawn(function()
        while ESPEnabled and model.Parent do
            local playerRoot = game.Players.LocalPlayer.Character and game.Players.LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
            if playerRoot then
                local distance = math.floor((playerRoot.Position - rootPart.Position).Magnitude)
                textLabel.Text = string.format("%s\n(%d studs)", model.Name, distance)
            end
            task.wait(0.1)
        end
        billboard:Destroy()
    end)
end

local function toggleESP(enabled)
    ESPEnabled = enabled
    if ESPEnabled then
        for _, model in pairs(workspace.Objects.Drops:GetChildren()) do
            if not table.find(blacklistedItems, model.Name) and model:IsA("Model") then
                createESP(model)
            end
        end
        -- Notify
        Luna:Notification({
            Title = "ESP Enabled",
            Icon = "notifications_active",
            ImageSource = "Material",
            Content = "Item ESP has been enabled."
        })
    else
        -- Clear ESP
        ESPFolder:ClearAllChildren()
        -- Notify
        Luna:Notification({
            Title = "ESP Disabled",
            Icon = "notifications_off",
            ImageSource = "Material",
            Content = "Item ESP has been disabled."
        })
    end
end

-- Watch for New Items
workspace.Objects.Drops.ChildAdded:Connect(function(child)
    if ESPEnabled and not table.find(blacklistedItems, child.Name) and child:IsA("Model") then
        createESP(child)
    end
end)

-- Create Toggle
local Toggle = Misc:CreateToggle({
    Name = "Enable Item ESP",
    Description = "Toggle the item ESP feature to display item distances and names.",
    CurrentValue = config.itemESPEnabled,
    Callback = function(Value)
        config.itemESPEnabled = Value
        toggleESP(Value) 
        saveConfig()
    end
})

Tab:CreateSection("Auto Freeze")

local autofreezeRange = config.autofreezeRange
local autoFreezeEnabled = config.autoFreezeEnabled

-- Create the Toggle for enabling/disabling auto-freeze
local Toggle = Tab:CreateToggle({
    Name = "Enable Auto-Freeze",
    Description = "Enable or disable the auto-freeze feature for nearby humanoids.",
    CurrentValue = config.autoFreezeEnabled,  -- Use saved value
    Callback = function(Value)
        autoFreezeEnabled = Value
        config.autoFreezeEnabled = Value
        saveConfig()

        if Value then
            print("Auto-Freeze enabled")

            -- Auto-freeze logic
            local replicatedStorage = game:GetService("ReplicatedStorage")
            local freezeRemote = replicatedStorage.Remotes.Server.Combat.Rush

            local player = game.Players.LocalPlayer
            local playerCharacter = player.Character or player.CharacterAdded:Wait()

            local function getDistance(pos1, pos2)
                return (pos1 - pos2).Magnitude
            end

            local allowedFolders = {"Mobs", "Characters"}

            while autoFreezeEnabled do
                for _, folderName in ipairs(allowedFolders) do
                    local folder = workspace.Objects:FindFirstChild(folderName)
                    if folder then
                        for _, model in ipairs(folder:GetDescendants()) do
                            local humanoid = model:FindFirstChildOfClass("Humanoid")
                            if humanoid and humanoid.Parent ~= playerCharacter then
                                local humanoidRootPart = model:FindFirstChild("HumanoidRootPart")
                                local playerRootPart = playerCharacter:FindFirstChild("HumanoidRootPart")

                                if humanoidRootPart and playerRootPart then
                                    local distance = getDistance(playerRootPart.Position, humanoidRootPart.Position)
                                    if distance <= autofreezeRange then
                                        freezeRemote:FireServer(humanoid, false) -- Fire the server with updated parameters
                                    end
                                end
                            end
                        end
                    end
                end
                wait(0.5) -- Adjust the wait time for checking frequency
            end
        else
            print("Auto-Freeze disabled")
        end
    end
})

-- Create the Slider for Range Selection
local Slider = Tab:CreateSlider({
    Name = "Select Range for Freezing",
    Range = {1, 1000},  -- Minimum and Maximum Range for the Slider
    Increment = 1,      -- The value change per step
    CurrentValue = config.autofreezeRange,
    Callback = function(Value)
        autofreezeRange = Value
        config.autofreezeRange = Value
        saveConfig()
        print("Selected range for auto-freeze:", autofreezeRange)
    end
})


local TweenService = game:GetService("TweenService")
local autocollectToolsEnabled = false
local ProximityPromptService = game:GetService("ProximityPromptService")
local RunService = game:GetService("RunService")

local function Tween(Object1, Object2, Speed, Offset, Wait)
    if Object1 and Object2 then
        local Timing = (Object1.Position - Object2.Position).Magnitude / Speed
        local TweenInfo = TweenInfo.new(Timing, Enum.EasingStyle.Linear)
        local TweenSystem = TweenService:Create(Object1, TweenInfo, {CFrame = Object2.CFrame + Offset})
        TweenSystem:Play()
        if Wait then
            TweenSystem.Completed:Wait()
        end
    end
end

local function TweenAndFireProximityPrompt(character, targetModel, speed, offset)
    local rootPart = targetModel:FindFirstChild("Root")
    local proximityPrompt = targetModel:FindFirstChild("Collect")

    if rootPart and proximityPrompt then
        -- Tween to the root part
        Tween(character.PrimaryPart, rootPart, speed, offset, true)

        -- Simulate proximity prompt activation
        task.wait(0.5) -- Slight delay to ensure proximity
        fireproximityprompt(proximityPrompt) -- Trigger the proximity prompt
        print("Proximity Prompt 'Collect' triggered for:", targetModel.Name)
    else
        print("No 'Collect' Proximity Prompt or 'Root' part found for:", targetModel.Name)
    end
end

local function tweenToLoot()
    local player = game.Players.LocalPlayer
    local character = player.Character or player.CharacterAdded:Wait()

    if autocollectToolsEnabled and character and character.PrimaryPart then
        for _, model in pairs(workspace.Objects.Drops:GetChildren()) do
            if model:IsA("Model") then
                local offset = Vector3.new(0, 0, 0)
                local speed = 5000
                TweenAndFireProximityPrompt(character, model, speed, offset)

                -- Wait for 0.5 seconds after processing each item
                task.wait(0.5)
            end
        end
    end
end


ProximityPromptService.PromptShown:Connect(function(prompt)
     if autocollectToolsEnabled then
        fireproximityprompt(prompt)

    end
end)

-- Toggle button for Auto Collect Loots
Misc:CreateToggle({
    Name = "Auto Collect Loots(Don't Turn Auto Quest On)",
    CurrentValue = config.autocollectToolsEnabled,
    Callback = function(State)
        autocollectToolsEnabled = State
        config.autocollectToolsEnabled = State
        saveConfig()
            if autocollectToolsEnabled then
                tweenToLoot()
                task.wait(1) -- Adjust delay to prevent performance issues
            end
        end
})

local autopromoteEnabled = false

Misc:CreateToggle({
    Name = "Auto Promote",
    CurrentValue = config.autopromoteEnabled,
    Callback = function(Value)
        autopromoteEnabled = Value
        config.autopromoteEnabled = Value
        saveConfig()
    end
})

local function performautopromote()
    if autopromoteEnabled then
        local ohString1 = "Clan Head Jujutsu High"
        local ohString2 = "Promote"
        game:GetService("ReplicatedStorage").Remotes.Server.Dialogue.GetResponse:InvokeServer(ohString1, ohString2)
    end
end

game:GetService("RunService").Heartbeat:Connect(function()
    performautopromote()
end)

-- Setup necessary services and variables
local autoCollectEnabled = false
local ProximityPromptService = game:GetService("ProximityPromptService")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local lootUI = game:GetService("Players").LocalPlayer.PlayerGui.Loot
local flipButton = game:GetService("Players").LocalPlayer.PlayerGui.Loot.Frame.Flip
local replayButton = game:GetService("Players").LocalPlayer.PlayerGui.ReadyScreen.Frame.Replay
local GuiService = game:GetService("GuiService")
local VirtualInputManager = game:GetService("VirtualInputManager")
local player = game.Players.LocalPlayer
local flipDelayTime = 0.4

local chestTable = {}
local chestCount = 0
local endFunctions = false  -- Used to track if coroutines are already running

-- Function to update the chest list
local function updateChests()
    local dropsFolder = game.Workspace.Objects.Drops:GetChildren()
    chestTable = {}
    chestCount = 0
    for _, chest in pairs(dropsFolder) do
        if chest:IsA("Model") and chest.Name == "Chest" then
            table.insert(chestTable, chest)
            chestCount = chestCount + 1
        end
    end
end

-- Function to collect a chest
local function collectChest(chest)
    if chest:IsA("Model") and chest.Name == "Chest" then
        local dropsFolder = game.Workspace.Objects.Drops
        local initialChestCount = #dropsFolder:GetChildren()  -- Get the initial chest count
        for _, prompt in pairs(chest:GetChildren()) do
            if prompt:IsA("ProximityPrompt") then
                prompt:InputHoldBegin()
                task.wait(0.06)
                prompt:InputHoldEnd()
                task.wait(1)
            end
        end
        local finalChestCount = #dropsFolder:GetChildren()  -- Get the final chest count
        if finalChestCount < initialChestCount then
            chestCount = finalChestCount
        end
    end
end

-- Function to auto-flip (automate flip button interaction)
local function autoFlip()
    while autoCollectEnabled do
        task.wait()
        if lootUI.Enabled then
            task.wait(flipDelayTime)
            GuiService.SelectedObject = flipButton
            VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.Return, false, game)
            task.wait(0.1)
            VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.Return, false, game)
            task.wait(0.1)
            VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.BackSlash, false, game)
            task.wait(0.1)
            VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.BackSlash, false, game)
        else
            task.wait(1)
        end
    end
end

-- Function to auto-collect chests
local function autoCollectChests()
    while autoCollectEnabled do
        task.wait()
        updateChests()
        if chestCount > 0 then
            for _, chest in pairs(chestTable) do
                collectChest(chest)
                break
            end
        end
    end
end

-- Debug function for chest count
local function debugChestCount()
    while true do
        local dropsFolder = game.Workspace.Objects.Drops
        local finalChestCount = #dropsFolder:GetChildren()
        print("Chests:", finalChestCount)
        task.wait(1)
    end
end

-- Start the debug function in the background
coroutine.wrap(debugChestCount)()

-- Toggle button to enable/disable auto collection
local Toggle = Misc:CreateToggle({
    Name = "Auto Collect Chest",
    CurrentValue = config.autoCollectEnabled,
    Callback = function(Value)
        autoCollectEnabled = Value
        config.autoCollectEnabled = Value
        saveConfig()
        if autoCollectEnabled then
            if not endFunctions then
                -- Start the coroutines only when the toggle is enabled for the first time
                endFunctions = true
                coroutine.wrap(autoFlip)()
                coroutine.wrap(autoCollectChests)()
            end
        else
            endFunctions = false  -- Stop the coroutines when the toggle is disabled
            print("Auto collect disabled.")
        end
    end
})


Misc:CreateSection("Free Innate Slots, Skip Spins")

local Button = Misc:CreateButton({
    Name = "Grant Gamepasses",
    Callback = function()
                Luna:Notification({
                Title = "Success",
                Content = "Granted Gamepasses",
                ImageSource = "Material",
                Icon = "notifications_active",
                Time = 5
})
        local gamepassIds = {"77102528", "77102481", "77103458", "259500454", "77102969"}
        local player = game:GetService("Players").LocalPlayer
        local replicatedData = player:WaitForChild("ReplicatedData")
        local gamepassesFolder = replicatedData:WaitForChild("gamepasses")

        for _, gamepassId in ipairs(gamepassIds) do
            local gamepassValue = gamepassesFolder:FindFirstChild(gamepassId)

            if not gamepassValue then
              
                gamepassValue = Instance.new("BoolValue")
                gamepassValue.Name = gamepassId
                gamepassValue.Value = true
                gamepassValue.Parent = gamepassesFolder
                print("Inserted BoolValue for game pass with ID:", gamepassId)
            else
                print("BoolValue for game pass with ID already exists:", gamepassId)
            end
        end
    end
})
Misc:CreateSection("Skill Giver(Not Perm)")


local modeSelected = "Innates"
local DropDown = Misc:CreateDropdown({
    Name = "Select Mode",
    Options = {"Innates", "Skills"},
    CurrentOption = {"Innates"},
    Callback = function(value)
        modeSelected = value
    end
})


local skillName
local Input = Misc:CreateInput({
    Name = "Enter Skill/Innate Skill",
    CurrentValue = "",
    TextDisappear = false,  
    Callback = function(value)
        print("Entered skill: " .. value)
        skillName = value  
    end
})

local keybindSelected = "B"
local DropDown = Misc:CreateDropdown({
    Name = "Select Keybind",
    Options = {"B", "C", "G", "T", "V", "X", "Y", "Z"},
    CurrentOption = {"B"},
    Callback = function(value)
        keybindSelected = value
    end
})


local Button = Misc:CreateButton({
    Name = "Assign Skill/Innate Skill",
    Callback = function()
        if not skillName or skillName == "" then
            Luna:Notification({
                Title = "Error",
                Content = "Please enter a skill name.",
                ImageSource = "Material",
                Icon = "notifications_active",
                Time = 5
            })
            return
        end

        local player = game:GetService("Players").LocalPlayer
        local techniques = player:WaitForChild("ReplicatedData"):WaitForChild("techniques")
        local selectedFolder
        if modeSelected == "Innates" then
            selectedFolder = techniques:WaitForChild("innates")
        elseif modeSelected == "Skills" then
            selectedFolder = techniques:WaitForChild("skills")
        end

        if selectedFolder then
            local stringValue = selectedFolder:FindFirstChild(keybindSelected)
            if stringValue and stringValue:IsA("StringValue") then
                stringValue.Value = skillName
                print("Skill assigned: " .. skillName)
                Luna:Notification({
                    Title = "Skill Assigned",
                    Content = "The skill '" .. skillName .. "' has been assigned to " .. keybindSelected,
                    Image = "Material",  -- Custom icon (use your own if needed)
                    Icon = "notifications_active",
                    Time = 5
                })
            else
                Luna:MakeNotification({
                    Title = "Error",
                    Content = "No StringValue found for " .. keybindSelected .. " in " .. modeSelected,
                    Icon = "notifications_active",
                    ImageSource = "Material",  -- Custom icon (use your own if needed)
                    Time = 5
                })
            end
        else
            Luna:Notification({
                Title = "Error",
                Content = "Selected folder (" .. modeSelected .. ") does not exist.",
                ImageSource = "Material",
                Icon = "notifications_active",
                Time = 5
            })
        end
    end
})

Misc:CreateSection("Weapon Giver")

local toolName = ""

-- Create an input box for typing the Tool name
local Input = Misc:CreateInput({
    Name = "Enter Weapon Name",
    PlaceholderText = "Type weapon name here",
    CurrentValue = "",
    Numeric = false,
    Callback = function(Text)
        toolName = Text
    end,
})

-- Button to create and add the Tool to the Backpack
local Button = Misc:CreateButton({
    Name = "Give Weapon (Not Permanent)",
    Callback = function()
        if not toolName or toolName == "" then
            print("Error: Please enter a tool name.")
            return
        end

        local player = game:GetService("Players").LocalPlayer
        local backpack = player.Backpack

        -- Check if the tool already exists
        if backpack:FindFirstChild(toolName) then
            print("Cursed Tool Already Exists: A tool with this name is already in your Backpack.")
            return
        end

        -- Create the tool and add it to the backpack
        local tool = Instance.new("Tool")
        tool.Name = toolName
        tool.Parent = backpack
        print("Tool '" .. toolName .. "' added to the Backpack.")
    end,
})


local Tab = Window:CreateTab({
    Name = "Move Redeemer",
    Icon = "redeem",
    ImageSource = "Material",
    ShowTitle = true,
})

local moveName = ""

local Input = Tab:CreateInput({
	Name = "Move Redeemer(Perm needs money and mastery)",
	Description = nil,
	PlaceholderText = "Input Placeholder",
	CurrentValue = "", -- the current text
	Numeric = false, -- When true, the user may only type numbers in the box (Example walkspeed)
	MaxCharacters = nil, -- if a number, the textbox length cannot exceed the number
	Enter = false, -- When true, the callback will only be executed when the user presses enter.
    	Callback = function(Text)
        moveName = Text
    	end
}, "Input")

local Button = Tab:CreateButton({
    Name = "Redeem Move",
    Callback = function()
        if moveName and moveName ~= "" then
            game:GetService("ReplicatedStorage").Remotes.Server.Data.UnlockStatNode:InvokeServer(moveName)
            print("Redeemed move:", moveName)
        else
            warn("Please enter a move name!")
        end
    end,
})


local Settings = Window:CreateTab({
    Name = "Settings",
    Icon = "settings",
    ImageSource = "Material",
    ShowTitle = true
})

local HttpService = game:GetService("HttpService")
local url = ""

local inputURL = Settings:CreateInput({
    Name = "Enter Discord Webhook URL",
    PlaceholderText = "Paste your Discord Webhook URL here",
    CurrentValue = "",
    Numeric = false,
    Callback = function(Text)
        url = Text
    end,
})

-- Create confirm button
local ConfirmButton = Settings:CreateButton({
    Name = "Confirm Webhook URL",
    Callback = function()
        if url == "" then
            -- Show error if URL is empty
            Luna:Notification({
                Title = "Error",
                Icon = "error_outline",
                ImageSource = "Material",
                Content = "Please enter a valid Discord Webhook URL.",
            })
        else
            -- URL is valid, proceed with using the webhook
            print("Webhook URL confirmed:", url)
            Luna:Notification({
                Title = "Webhook Confirmed",
                Icon = "check_circle",
                ImageSource = "Material",
                Content = "Discord Webhook URL has been confirmed.",
            })
        end
    end,
})


-- Send embed message function
function SendMessageEMBED(url, embed)
    local headers = {
        ["Content-Type"] = "application/json"
    }
    local data = {
        ["username"] = "Sterling Hub",
        ["avatar_url"] = "https://imgur.com/5EKp1dm.png",
        ["embeds"] = {
            {
                ["title"] = embed.title,
                ["url"] = "https://discord.gg/J37PW97j6a",
                ["description"] = embed.description,
                ["color"] = embed.color,
                ["fields"] = embed.fields,
                ["footer"] = {
                    ["text"] = embed.footer.text
                }
            }
        }
    }
    local body = HttpService:JSONEncode(data)
    local response = request({
        Url = url,
        Method = "POST",
        Headers = headers,
        Body = body
    })
    print("Sent")
end

-- Webhook logic for item collection (same as your original)
for _, item in pairs(workspace.Objects.Drops:GetChildren()) do
    local proximityPrompt = item:FindFirstChild("Collect")
    if proximityPrompt then
        proximityPrompt.Triggered:Connect(function(player)
            local parentName = item.Name
            local embed = {
                ["title"] = parentName .. " Collected!",
                ["description"] = player.Name .. " has collected " .. parentName,
                ["color"] = 65280,  -- Green color
                ["fields"] = {
                    {
                        ["name"] = "Player",
                        ["value"] = player.Name
                    },
                    {
                        ["name"] = "Item",
                        ["value"] = parentName
                    }
                },
                ["footer"] = {
                    ["text"] = "https://discord.gg/J37PW97j6a"
                }
            }
            SendMessageEMBED(url, embed)
        end)
    end
end

Features & Information

Cracked for 25ms

Community Comments (1)

FrateleFrateleJan 30, 2025(edited)

lmao you changed the open source we showed on 25ms with your dc invite

More Scripts for [⚖️JUDGEMAN] Jujutsu Infinite