Haikyuu legends no key
Key Required

Haikyuu legends no key

[UPD] Volleyball Legendsme0wme0w 34K views 787 executesUpdated May 2, 2025
2.5/ 5(4 votes)
2250% Positive
Lua Script•748 lines (23366 chars)
local Luna = loadstring(game:HttpGet("https://paste.ee/r/WSCKThwW", true))()

local HttpService = game:GetService("HttpService")

local configFile = "SterlingHubHaikyuuConfig.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

local config = {
    spikePower = 1,
    diveSpeed = 1,
    blockPower = 1,
    bumpPower = 1,
    servePower = 1,
    jumpPower = 1,
    speed = 1,
    setPower = 1,
    powerfulServeEnabled = false,
    spikeHitbox = 10,
    bumpHitbox = 10,
    diveHitbox = 10,
    setHitbox = 10,
    serveHitbox = 10,
    blockHitbox = 10,
    tiltPower = 1,
    jumpsetHitbox = 10,
    autoRotate = 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 = "Sterling Hub",
    LoadingSubtitle = "by DAN",
    ConfigSettings = {
        RootFolder = nil,
        ConfigFolder = "Sterling Hub"
    },
})

Window:CreateHomeTab({
    SupportedExecutors = {},
    DiscordInvite = "25ms",
    Icon = 1,
})

local Tab = Window:CreateTab({
    Name = "Auto Farm",
    Icon = "agriculture",
    ImageSource = "Material",
    ShowTitle = true
})

local player = game.Players.LocalPlayer
local humanoid = player.Character:WaitForChild("Humanoid")
local humanoidRootPart = player.Character:WaitForChild("HumanoidRootPart")
local VirtualInputManager = game:GetService("VirtualInputManager")

local isRunning = false -- Tracks the toggle state

-- Functions
local function pressSpace()
    VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.Space, false, game)
    task.wait(0.1)
    VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.Space, false, game)
end

local function pressClick()
    VirtualInputManager:SendMouseButtonEvent(0, 0, 0, true, game, 1)
    VirtualInputManager:SendMouseButtonEvent(0, 0, 0, false, game, 1)
end

local function getRandomTargetPart()
    local positionsFolder = workspace.Map.BallNoCollide.Positions["2"]
    local parts = {}

    for _, part in ipairs(positionsFolder:GetChildren()) do
        if part:IsA("BasePart") then
            table.insert(parts, part)
        end
    end

    if #parts > 0 then
        return parts[math.random(1, #parts)]
    end
    return nil
end

local player = game.Players.LocalPlayer
local roundOverStats = player.PlayerGui.Interface.RoundOverStats
local backBtn = roundOverStats.BackBtn
local VirtualInputManager = game:GetService("VirtualInputManager")
local boundaryFolder = workspace:WaitForChild("Map"):WaitForChild("BallNoCollide"):WaitForChild("Boundaries")


local VirtualInputManager = game:GetService("VirtualInputManager")

local function pressEscTwice()
    -- First press with delay of 0.3 seconds
    task.wait(5)

    VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.Escape, false, game)  -- Key down
    VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.Escape, false, game) -- Key up
    task.wait(0.3) -- First delay (adjustable)

    -- Second press with delay of 0.7 seconds
    VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.Escape, false, game)  -- Key down
    VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.Escape, false, game) -- Key up
    task.wait(0.7) -- Second delay (adjustable)

    print("Esc key pressed twice with different delays!")
end

local escPressed = false -- Flag to track if Esc has been pressed

local function checkRoundOverStats()
    while true do
        -- Check if RoundOverStats is visible
        if roundOverStats.Visible then
            -- Only press Esc if it hasn't been pressed already
            if not escPressed then
                pressEscTwice()  -- Call pressEscTwice only once when the GUI becomes visible
                escPressed = true  -- Set the flag to prevent multiple presses
            end
        else
            -- Reset the flag when the RoundOverStats GUI is hidden
            escPressed = false
        end
        task.wait(0.5)  -- Check every 0.5 seconds
    end
end


-- Toggle for all functionality
Tab:CreateToggle({
    Name = "Auto Farm",
    Description = "Toggle Auto Farm",
    CurrentValue = false,
    Callback = function(Value)
        isRunning = Value
        print("All functionality is now " .. (Value and "enabled" or "disabled"))
    end
})

local function isInsidePart(part, position)
    local size = part.Size / 2
    local center = part.Position
    return math.abs(position.X - center.X) <= size.X
        and math.abs(position.Y - center.Y) <= size.Y
        and math.abs(position.Z - center.Z) <= size.Z
end

local boundaryFolder = workspace:WaitForChild("Map"):WaitForChild("BallNoCollide"):WaitForChild("Boundaries")

if not boundaryFolder then
    warn("Boundary folder not found! Check the path.")
    return
end

local ballPrefix = "CLIENT_BALL_"

-- Function to find the ball
local function getBall()
    for _, object in pairs(workspace:GetChildren()) do
        if object:IsA("Model") and object.Name:match(ballPrefix) then
            return object:FindFirstChild("Sphere.001") or object:FindFirstChild("Cube.001")
        end
    end
    return nil
end

-- Start checking RoundOverStats visibility in parallel
task.spawn(checkRoundOverStats)

task.spawn(function()
    while task.wait(0.3) do
        if not isRunning then
            continue
        end

        -- Ball tracking logic
        local ballPart = getBall()

        if ballPart then
            -- Move to the ball
            humanoid:MoveTo(ballPart.Position)

            local distance = (ballPart.Position - humanoidRootPart.Position).Magnitude

            if distance <= 15 then
                local targetPart = getRandomTargetPart()
                if targetPart then
                    -- Adjust character to face the target part
                    local lookVector = (targetPart.Position - humanoidRootPart.Position).Unit
                    humanoidRootPart.CFrame = CFrame.new(humanoidRootPart.Position, humanoidRootPart.Position + lookVector)
                end

                -- Jump and interact if the ball is above the player
                if ballPart.Position.Y > humanoidRootPart.Position.Y + 5 then
                    pressSpace()
                    pressClick()
                end
            end
        end
    end
end)

-- Declare the player
local player = game.Players.LocalPlayer
local enablejoin = false
local VirtualInputManager = game:GetService("VirtualInputManager")

-- Function to handle team selection (called after the reset)
local function teamSelection()
    if not enablejoin then return end

    task.wait(10)

    -- Check if Team Selection GUI exists and can be accessed
    local teamSelectionGui = player.PlayerGui.Interface.TeamSelection
    local gameInterface = player.PlayerGui.Interface.Game

    -- Only make the team selection GUI visible if the game interface is not yet visible
    if not gameInterface.Visible then
        teamSelectionGui.Visible = true
    end

    while not gameInterface.Visible and enablejoin do
        -- Select a random number between 1 and 6
        local randomNum = math.random(1, 6)
        local button = teamSelectionGui["2"][tostring(randomNum)]

        if button and button:IsA("ImageButton") then
            local absPos = button.AbsolutePosition
            local absSize = button.AbsoluteSize
            local clickPosition = absPos + (absSize / 2) -- Center of the button

            -- Simulate mouse button down
            VirtualInputManager:SendMouseButtonEvent(clickPosition.X, clickPosition.Y, 0, true, game, 1)
            -- Simulate mouse button up
            VirtualInputManager:SendMouseButtonEvent(clickPosition.X, clickPosition.Y, 0, false, game, 1)
        end

        -- Add a random delay between clicks to simulate human-like behavior
        task.wait(math.random(5, 15) / 10) -- Delay between 0.5 and 1.5 seconds
    end

    -- Hide the team selection GUI when the game GUI becomes visible
    if gameInterface.Visible then
        teamSelectionGui.Visible = false
    end
end

-- Listen for the player's character reset and re-trigger the team selection
player.CharacterAdded:Connect(function(character)
    -- If the toggle is on, start the team selection after the reset
    if enablejoin then
        -- Wait a bit to make sure the character has fully loaded
        teamSelection()
    end
end)

-- Toggle for Auto Join Match (waiting 30 seconds before starting team selection)
Tab:CreateToggle({
    Name = "Auto Join Match",
    Description = "Automatically join a match after waiting for 30 seconds(to avoid getting bugged)",
    CurrentValue = false,
    Callback = function(Value)
        enablejoin = Value
        if enablejoin then
            -- Wait 30 seconds before starting the team selection
            teamSelection()
        end
    end
})

Tab:CreateSection("Misc")

local autoRotateConnection -- Variable to hold the Heartbeat connection

local function autorotateon()
    local player = game.Players.LocalPlayer
    local humanoid = player.Character:WaitForChild("Humanoid")

    -- Start monitoring AutoRotate
    autoRotateConnection = game:GetService("RunService").Heartbeat:Connect(function()
        if humanoid.AutoRotate == false then
            humanoid.AutoRotate = true
            print("AutoRotate has been re-enabled.")
        end
    end)
end

local function autorotateoff()
    -- Stop monitoring AutoRotate
    if autoRotateConnection then
        autoRotateConnection:Disconnect()
        autoRotateConnection = nil
        print("AutoRotate monitoring has been disabled.")
    end
end

-- Toggle for enabling/disabling AutoRotate monitoring
Tab:CreateToggle({
    Name = "Enable Rotate In The Air",
    Description = "Toggle Rotate In The Air(Re-Enable This When You Switch Team",
    CurrentValue = config.autoRotate,
    Callback = function(State)
        config.autoRotate = State
        saveConfig()
        print("Toggle Rotate is now " .. (State and "enabled" or "disabled"))

        if State then
            autorotateon() -- Enable monitoring
        else
            autorotateoff() -- Disable monitoring
        end
    end
})



local Button = Tab:CreateButton({
	Name = "Break The Match",
	Description = "Stops the match(must be serving)",
    	Callback = function()

local ohNil1 = nil
local ohNumber2 = 0.95

game:GetService("ReplicatedStorage").Packages._Index["sleitnick_knit@1.7.0"].knit.Services.GameService.RF.Serve:InvokeServer(ohNil1, ohNumber2)
    	end
})

local UserInputService = game:GetService("UserInputService")

-- Create the toggle UI element
Tab:CreateToggle({
    Name = "Enable Powerful Serve",
    Description = "Press Z to Powerful Serve",
    CurrentValue = config.powerfulServe,
    Callback = function(State)
        powerfulServe = State
        config.powerfulServeEnabled = State
        saveConfig()  -- Save the config after toggling
    end
})

UserInputService.InputBegan:Connect(function(input, gameProcessedEvent)
    if not gameProcessedEvent and input.KeyCode == Enum.KeyCode.Z then
        if powerfulServe then
            game:GetService("ReplicatedStorage").Packages._Index["sleitnick_knit@1.7.0"].knit.Services.GameService.RF.Serve:InvokeServer(Vector3.new(0, 0, 0), math.huge)
        end
    end
end)

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


Tab:CreateSection("Stat Changer")

local Slider = Tab:CreateSlider({
    Name = "Dive Speed",
    Range = {0, 5},
    Increment = 0.1,
    CurrentValue = config.diveSpeed,
    Callback = function(value)
        game.Players.LocalPlayer:SetAttribute("GameDiveSpeedMultiplier", value)
        print("Dive Speed updated to " .. value)
        config.diveSpeed = value 
        saveConfig()
    end
})


local Slider = Tab:CreateSlider({
    Name = "Spike Power",
    Range = {0, 500},
    Increment = 0.1,
    CurrentValue = config.spikePower,
    Callback = function(value)
        game.Players.LocalPlayer:SetAttribute("GameSpikePowerMultiplier", value)
        print("Spike Power updated to " .. value)
        config.spikePower = value 
        saveConfig()
    end
})

local Slider = Tab:CreateSlider({
    Name = "Tilt Power",
    Range = {0, 500},
    Increment = 0.1,
    CurrentValue = config.tiltPower,
    Callback = function(value)
        game.Players.LocalPlayer:SetAttribute("GameTiltPowerMultiplier", value)
        print("Tilt Power updated to " .. value)
        config.tiltPower = value
        saveConfig()    
    end
})

local Slider = Tab:CreateSlider({
    Name = "Speed",
    Range = {0, 1.5},
    Increment = 0.1,
    CurrentValue = config.speed,
    Callback = function(value)
        game.Players.LocalPlayer:SetAttribute("GameSpeedMultiplier", value)
        print("Speed updated to " .. value)
        config.speed = value
        saveConfig()
    end
})

local Slider = Tab:CreateSlider({
    Name = "Set Power",
    Range = {0, 500},
    Increment = 0.1,
    CurrentValue = config.setPower,
    Callback = function(value)
        game.Players.LocalPlayer:SetAttribute("GameSetPowerMultiplier", value)
        print("Set Power updated to " .. value)
        config.setPower = value
        saveConfig()
    end
})

local Slider = Tab:CreateSlider({
    Name = "Serve Power",
    Range = {0, 500},
    Increment = 0.1,
    CurrentValue = config.servePower,
    Callback = function(value)
        game.Players.LocalPlayer:SetAttribute("GameServePowerMultiplier", value)
        print("Serve Power updated to " .. value)
        config.servePower = value
        saveConfig()
    end
})

local Slider = Tab:CreateSlider({
    Name = "Jump Power",
    Range = {0, 5},
    Increment = 0.1,
    CurrentValue = config.jumpPower,
    Callback = function(value)
        game.Players.LocalPlayer:SetAttribute("GameJumpPowerMultiplier", value)
        print("Jump Power updated to " .. value)
        config.jumpPower = value
        saveConfig()
    end
})

local Slider = Tab:CreateSlider({
    Name = "Bump Power",
    Range = {0, 500},
    Increment = 0.1,
    CurrentValue = config.bumpPower,
    Callback = function(value)
        game.Players.LocalPlayer:SetAttribute("GameBumpPowerMultiplier", value)
        print("Bump Power updated to " .. value)
        config.bumpPower = value
        saveConfig()    
    end
})

local Slider = Tab:CreateSlider({
    Name = "Block Power",
    Range = {0, 500},
    Increment = 0.1,
    CurrentValue = config.blockPower,
    Callback = function(value)
        game.Players.LocalPlayer:SetAttribute("GameBlockPowerMultiplier", value)
        print("Block Power updated to " .. value)
        config.blockPower = value
        saveConfig()    
    end
})

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

Hitbox:CreateSection("Hitbox Extender")

local Slider = Hitbox:CreateSlider({
    Name = "Spike Hitbox Size",
    Range = {1, 100}, -- Adjust the range as needed
    Increment = 0.1,
    CurrentValue = config.spikeHitbox, 
    Callback = function(value)
        local spikeHitbox = game:GetService("ReplicatedStorage").Assets.Hitboxes.Spike
        local part = spikeHitbox:FindFirstChild("Part") -- Ensure we get the correct Part

        if part and part:IsA("BasePart") then
            -- Update the size of the part for all axes (X, Y, Z)
            part.Size = Vector3.new(value, value, value)
            print("Spike Part size updated to " .. tostring(part.Size))
	    config.spikeHitbox = value
	    saveConfig()
        else
            warn("Part not found in Spike hitbox!")
        end
    end
})

local Slider = Hitbox:CreateSlider({
    Name = "Jump Set Hitbox Size",
    Range = {1, 100}, -- Adjust the range as needed
    Increment = 0.1,
    CurrentValue = config.jumpsetHitbox, 
    Callback = function(value)
        local jumpset = game:GetService("ReplicatedStorage").Assets.Hitboxes.JumpSet
        local part = jumpset:FindFirstChild("Part") -- Ensure we get the correct Part

        if part and part:IsA("BasePart") then
            -- Update the size of the part for all axes (X, Y, Z)
            part.Size = Vector3.new(value, value, value)
            print("Spike Part size updated to " .. tostring(part.Size))
	    config.jumpsetHitbox = value
	    saveConfig()
        else
            warn("Part not found in Jump Set hitbox!")
        end
    end
})

local Slider = Hitbox:CreateSlider({
    Name = "Set Hitbox Size",
    Range = {1, 100}, -- Adjust the range as needed
    Increment = 0.1,
    CurrentValue = config.setHitbox,
    Callback = function(value)
        local setHitbox = game:GetService("ReplicatedStorage").Assets.Hitboxes.Set
        local part = setHitbox:FindFirstChild("Part") -- Ensure we get the correct Part

        if part and part:IsA("BasePart") then
            -- Update the size of the part for all axes (X, Y, Z)
            part.Size = Vector3.new(value, value, value)
            print("Set Part size updated to " .. tostring(part.Size))
	    config.setHitbox = value
	    saveConfig()
        else
            warn("Part not found in Set hitbox!")
        end
    end
})

local Slider = Hitbox:CreateSlider({
    Name = "Serve Hitbox Size",
    Range = {1, 100}, -- Adjust the range as needed
    Increment = 0.1,
    CurrentValue = config.serveHitbox,
    Callback = function(value)
        local serveHitbox = game:GetService("ReplicatedStorage").Assets.Hitboxes.Serve
        local part = serveHitbox:FindFirstChild("Part") -- Ensure we get the correct Part

        if part and part:IsA("BasePart") then
            -- Update the size of the part for all axes (X, Y, Z)
            part.Size = Vector3.new(value, value, value)
            print("Serve Part size updated to " .. tostring(part.Size))
	    config.serveHitbox = value
	    saveConfig()
        else
            warn("Part not found in Serve hitbox!")
        end
    end
})

local Slider = Hitbox:CreateSlider({
    Name = "Dive Hitbox Size",
    Range = {1, 100}, -- Adjust the range as needed
    Increment = 0.1,
    CurrentValue = config.diveHitbox,
    Callback = function(value)
        local diveHitbox = game:GetService("ReplicatedStorage").Assets.Hitboxes.Dive
        local part = diveHitbox:FindFirstChild("Part") -- Ensure we get the correct Part

        if part and part:IsA("BasePart") then
            -- Update the size of the part for all axes (X, Y, Z)
            part.Size = Vector3.new(value, value, value)
            print("Dive Part size updated to " .. tostring(part.Size))
	    config.diveHitbox = value
	    saveConfig()
        else
            warn("Part not found in Dive hitbox!")
        end
    end
})

local Slider = Hitbox:CreateSlider({
    Name = "Bump Hitbox Size",
    Range = {1, 100}, -- Adjust the range as needed
    Increment = 0.1,
    CurrentValue = config.bumpHitbox,
    Callback = function(value)
        local bumpHitbox = game:GetService("ReplicatedStorage").Assets.Hitboxes.Bump
        local part = bumpHitbox:FindFirstChild("Part") -- Ensure we get the correct Part

        if part and part:IsA("BasePart") then
            -- Update the size of the part for all axes (X, Y, Z)
            part.Size = Vector3.new(value, value, value)
            print("Bump Part size updated to " .. tostring(part.Size))
	    config.bumpHitbox = value
	    saveConfig()
        else
            warn("Part not found in Bump hitbox!")
        end
    end
})

local Slider = Hitbox:CreateSlider({
    Name = "Block Hitbox Size",
    Range = {1, 100}, -- Adjust the range as needed
    Increment = 0.1,
    CurrentValue = config.blockHitbox,
    Callback = function(value)
        local blockHitbox = game:GetService("ReplicatedStorage").Assets.Hitboxes.Block
        local part = blockHitbox:FindFirstChild("Part") -- Ensure we get the correct Part

        if part and part:IsA("BasePart") then
            -- Update the size of the part for all axes (X, Y, Z)
            part.Size = Vector3.new(value, value, value)
            print("Block Part size updated to " .. tostring(part.Size))
	    config.blockHitbox = value
	    saveConfig()
	else
            warn("Part not found in Block hitbox!")
        end
    end
})

local Spin = Window:CreateTab({
    Name = "Auto Spin",
    Icon = "shopping_cart",
    ImageSource = "Material",
    ShowTitle = true
})

local autoSpin = false 


local Toggle = Spin:CreateToggle({
	Name = "Auto Spin",
	Description = nil,
	CurrentValue = false,
	Callback = function(Value)
		autoSpin = Value 
		if autoSpin then
			print("Auto Spin Enabled")
			startAutoSpin()
		else
			print("Auto Spin Disabled")
		end
	end
})

local desiredStyles = {}  -- A table to store multiple selected styles

local Dropdown = Spin:CreateDropdown({
	Name = "Select Desired Style",
	Description = "Choose your desired style",
	Options = {"Oikawa", "Bokuto", "Kageyama", "Sawamura", "Ushijima", "Kozume", "Kuroo", "Yamamoto", "Azumane", "Yaku", "Hinata"},
	CurrentOption = {"Hinata"},
	MultipleOptions = true,
	SpecialType = nil,
	Callback = function(Option)
		desiredStyles = Option  -- Update the selected styles (can be multiple)
		print("Selected Styles:", table.concat(desiredStyles, ", "))
	end
})

-- Function to Display Notification
function showNotification(styleName)
	Luna:Notification({
		Title = "Style Obtained!",
		Icon = "check_circle",  -- You can use other Material icons
		ImageSource = "Material",
		Content = "You successfully obtained the style: " .. styleName,
	})
end

-- Function to Perform Auto Spin
function startAutoSpin()
	coroutine.wrap(function()
		while autoSpin do
			local currentStyle = game:GetService("Players").LocalPlayer.PlayerGui.Interface.Lobby.Styles.TopPanel.DisplayName.Text
			if table.find(desiredStyles, currentStyle) then  -- Check if the current style is in the selected styles
				print("STOP! You got:", currentStyle)
				autoSpin = false  -- Stop spinning automatically
				showNotification(currentStyle)  -- Show notification
				break
			else
				game:GetService("ReplicatedStorage").Packages._Index["sleitnick_knit@1.7.0"].knit.Services.StylesService.RF.Roll:InvokeServer(false)
				print("Spinning... Current result:", currentStyle)
				wait(0.5)  -- Delay between spins
			end
		end
	end)()
end

Features & Information

haikyuu legends sterling hub actual owner: dan script cracked by: 25ms
#dupe#unlimited#money#haikyuu legends

Community Comments (6)

ccatccatMay 2, 2025

im pretty sure im the one who leaked the source code

sagesageMay 2, 2025

* aint work son

me0wme0wMay 2, 2025

@Pateu_cash32 hey, thanks for reaching out but its from “25ms” server, directly got from there so i gave them the credit.

me0wme0wMay 2, 2025

@sage i will check if theres an error

sagesageMay 2, 2025

executed with wave and nun show up

ccatccatMay 2, 2025

@me0w im the one who 25ms got the source from

More Scripts for [UPD] Volleyball Legends