repeat
    wait()
until game:IsLoaded()

local OldNameCall = nil
OldNameCall = hookmetamethod(game, "__namecall", function(...)
    local Self, Key = ...
    if (Self.Name == "" or Self.Name == "RemoteEvent") and Self.Parent.Name == "Security" and Self.ClassName == "RemoteEvent" then
        return wait(9e9)
    end
    return OldNameCall(...)
end)
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")
local Balls = Workspace:FindFirstChild("Balls")
local Script = {
    Function = {},
    Values = {}
}
local SF = Script.Function
local SV = Script.Values
loadstring(game:HttpGet("https://[Log in to view URL]"))()
loadstring(game:HttpGet("https://[Log in to view URL]"))()
for i,v in next, getconnections(LogService.MessageOut) do
	v:Enable()
end

for i,v in next, getgc() do
    if type(v) == "function" then
        if debug.getinfo(v).name == "parry" then
            SF.Parry = v
        end
    end
end
function SF:IsReal()
    local Re
    for i,v in next, Balls:GetChildren() do
        if v:GetAttribute("realBall") and v:GetAttribute("target") == Player.Name and not v.Anchored then
            Re = v
        end
    end
    return Re
end

function SF:Baller()
    local Real = nil
    for i,v in next, Balls:GetChildren() do
        if v:GetAttribute("realBall") then
            Real = v
        end
    end
    return Real
end

function SF:GetPlayerC()
    local Max, Target, Players = math.huge, nil, Players
    for i,v in next, Players:GetPlayers() do
        if v ~= Player and v.Character and v.Character:FindFirstChild("HumanoidRootPart") then
            local Mag = Mag(Player.Character:GetModelCFrame(), v.Character:GetModelCFrame())
            if Mag <= Max then
                Target = v
            end
        end
    end
    return Target
end

function SF:Meth()
    if SV.Method == "KeyPress" then
        keypress(0x46)
        keyrelease(0x46)
    elseif SV.Method == "Remote" then
        ReplicatedStorage.Remotes.ParryButtonPress:Fire()
    elseif SV.Method == "Function" then
        SF:Parry()
    end
end

function SF:Hit()
    local Ball, Clash = SF:IsReal(), true
    if Ball then
        local M = Mag(Ball.CFrame, Player.Character.HumanoidRootPart.CFrame)
        local M2 = Ball.Velocity.Magnitude
        local M3 = M2 * (game.Stats.Network.ServerStatsItem["Data Ping"]:GetValue() / 1000)
		M2 -= M3
		print(M / M2)
		if Hate and not Loser then
			Player.Character.HumanoidRootPart.CFrame = CFrame.lookAt(Player.Character.HumanoidRootPart.CFrame.Position, Vector3.new(Ball.Position.X, Player.Character.HumanoidRootPart.CFrame.Position.Y, Ball.Position.Z))
		end
        if (M / M2 < 0.19 or M / M2 > 9e9 and M < 10) and not Clash then
            Player.Character.HumanoidRootPart.CFrame = CFrame.new(Ball.CFrame.Position + Vector3.new(math.random(1,5),0,math.random(1,5)))
        end
		if M / M2 <= 0.5 then

            SF:Meth()
            if Mag(SF:GetPlayerC().Character:GetModelCFrame(), Player.Character:GetModelCFrame()) <= 7 then
                for i=1, 5 do
                    Clash = false
					SF:Hit()
				end
			end
        end
    end
end

function SF:JustHit()
    local Ball = SF:IsReal()
	if Ball then
		local Old = Player.Character.HumanoidRootPart.CFrame
		Player.Character.HumanoidRootPart.CFrame = CFrame.new(Ball.Position + Vector3.new(10,-0,10))
		SF:Meth()
		wait()
		Player.Character.HumanoidRootPart.CFrame = Old
	end
end

function SF:FreezeHit()
    local Old = Player.Character.HumanoidRootPart.CFrame
    local Ball = SF:IsReal()
	if Ball then
		ReplicatedStorage:WaitForChild("Remotes"):WaitForChild("Freeze"):FireServer()
		Player.Character.HumanoidRootPart.CFrame = CFrame.new(Ball.Position + Vector3.new(0,-10,0))
		wait()
		SF:Meth()
		Player.Character.HumanoidRootPart.CFrame = Old
	end
end

local repo = 'https://[Log in to view URL]'
local Library = loadstring(game:HttpGet("https://[Log in to view URL]"))()
local ThemeManager = loadstring(game:HttpGet(repo .. 'addons/ThemeManager.lua'))()
local SaveManager = loadstring(game:HttpGet(repo .. 'addons/SaveManager.lua'))()
local Window = Library:CreateWindow({
    Title = MarketplaceService:GetProductInfo(game.PlaceId).Name,
    Center = true,
    AutoShow = true,
})
local Tabs = {
    Main = Window:AddTab('Main'),
    ['UI Settings'] = Window:AddTab('UI Settings'),
}

local LeftGroupBox = Tabs.Main:AddLeftGroupbox("")
local RightGroupBox = Tabs.Main:AddRightGroupbox("")
local MenuGroup = Tabs['UI Settings']:AddLeftGroupbox('Menu')

LeftGroupBox:AddToggle('parry', {Text = 'Auto Parry', Default = false,Tooltip = "deflects ball at certain degree not 100% acc", Callback = function(A)
    Hate = A
    RunService.PreSimulation:Connect(function()
        if Hate then
            if SV.MethodHit:find("Legit") then
                for i=1,2 do
				    SF:Hit()
                end
            end
        end
    end)
	spawn(function()
		while wait() and Hate do
			pcall(function()
		        if SV.MethodHit:find("Blatant") then
					SF:JustHit()
				elseif SV.MethodHit:find("Insane") then
					SF:FreezeHit()
				end
			end)
		end
    end)
end})

Toggles.parry:OnChanged(function(State)
    Hate = Toggles.parry.Value
end)


LeftGroupBox:AddDropdown('ssfdf', {Values = {"Remote", "KeyPress", "Function"}, Default = 1, Multi = false, Text = 'Deflect Methods', Tooltip = '', Callback = function(A)
    SV.Method = A
end})

Options.ssfdf:OnChanged(function()
    SV.Method = Options.ssfdf.Value
end)

LeftGroupBox:AddDropdown('e2', {Values = {"Legit (Sucks)", "Blatant (hacker mode)", "Insane (need Freeze Ability)"}, Default = 1, Multi = false, Text = 'Parry Mode', Tooltip = '', Callback = function(A)
    SV.MethodHit = A
end})
Options.e2:OnChanged(function()
    SV.MethodHit = Options.e2.Value
end)
LeftGroupBox:AddToggle('dt', {Text = 'Auto Farm' , Default = false,Tooltip = "deflects ball at certain degree not 100% acc", Callback = function(A)
    Loser = A
    Stepped:Connect(function()
        if Loser then
			pcall(function()
				SF:Hit()
                for i,v in next, Player.Character:GetChildren() do
                    if v:IsA("BasePart") then
                        v.CanCollide = false
                        v.Velocity = Vector3.new(0,0,0)
                    end
                end
                local Ball = SF:Baller()
                if Ball and Player.Character:FindFirstChild("HumanoidRootPart") and Player.Character.Parent.Name == "Alive" then
                    for i=1, 50 do
                        Player.Character.HumanoidRootPart.CFrame = CFrame.new(Vector3.new(Ball.Position.X, Workspace.Map:FindFirstChild('BALLSPAWN',true).Position.Y + -10, Ball.Position.Z))
                    end
                end
			end)
        end
    end)
end})

Toggles.dt:OnChanged(function(State)
    Loser = Toggles.dt.Value
end)

LeftGroupBox:AddToggle('royt', {Text = 'Freeze ability spam', Default = false,Tooltip = "", Callback = function(A)
    roy = A
    Stepped:Connect(function()
        if roy then
            pcall(function()
                ReplicatedStorage:WaitForChild("Remotes"):WaitForChild("Freeze"):FireServer()
            end)
        end
    end)
end})

Toggles.royt:OnChanged(function(State)
    roy = Toggles.royt.Value
end)

LeftGroupBox:AddToggle('Hahaha', {Text = 'Rage Mode', Default = false,Tooltip = "Might not win but will piss people off", Callback = function(A)
    Hog = A
    Stepped:Connect(function()
        if Hog then
            pcall(function()
                if Player.Character:FindFirstChild("Humanoid") and Player.Character.Parent.Name == "Alive" then
					SF:Hit()
                    Workspace.CurrentCamera.CFrame = CFrame.lookAt(Workspace.CurrentCamera.CFrame.Position, SF:Baller().CFrame.Position)
                    if not SF:IsReal().Anchored then
                        Player.Character.Humanoid:MoveTo(SF:Baller().CFrame.Position)
                    end
                end
            end)
        end
    end)
end})

Toggles.Hahaha:OnChanged(function(State)
    Hog = Toggles.Hahaha.Value
end)

LeftGroupBox:AddToggle('Sprint', {Text = 'Toggle Sprint', Default = false,Tooltip = "Enables a small sprint", Callback = function(A)
    Rog = A
    Stepped:Connect(function()
        if Rog then
            pcall(function()
                if Player.Character:FindFirstChild("Humanoid") then
                    Player.Character.Humanoid.WalkSpeed = 70
                end
            end)
        end
    end)
end})

Toggles.Sprint:OnChanged(function(State)
    Rog = Toggles.Sprint.Value
end)

LeftGroupBox:AddToggle('Fotf', {Text = 'Auto Buy Explotion Crate', Default = false,Tooltip = "Heheh go boom", Callback = function(A)
    Goh = A
    spawn(function()
        while Goh  and wait() do
            pcall(function()
                ReplicatedStorage.Remote.RemoteFunction:InvokeServer("PromptPurchaseCrate",Workspace.Spawn.Crates.NormalExplosionCrate)
            end)
        end
    end)
end})

Toggles.Fotf:OnChanged(function(State)
    Goh = Toggles.Fotf.Value
end)
LeftGroupBox:AddToggle('Gotf', {Text = 'Auto Buy Sword Crate', Default = false,Tooltip = "Heheh go boom", Callback = function(A)
    Fot = A
    spawn(function()
        while Fot  and wait() do
            pcall(function()
                ReplicatedStorage.Remote.RemoteFunction:InvokeServer("PromptPurchaseCrate", Workspace.Spawn.Crates.NormalSwordCrate)
            end)
        end
    end)
end})

Toggles.Gotf:OnChanged(function(State)
    Fot = Toggles.Gotf.Value
end)

LeftGroupBox:AddToggle('Face', {Text = 'Always face Ball', Default = false,Tooltip = "Enables a small sprint", Callback = function(A)
    Fac = A
    spawn(function()
        while wait() and Fac do
            pcall(function()
                Workspace.CurrentCamera.CFrame = CFrame.lookAt(Workspace.CurrentCamera.CFrame.Position, SF:Baller().CFrame.Position)
            end)
        end
    end)
end})

Toggles.Face:OnChanged(function(State)
    Fac = Toggles.Face.Value
end)



RightGroupBox:AddToggle('SSS', {Text = 'WalkSpeed Toggle',Default = false,Tooltip = '', Callback = function(A)
    WS = A
    RunService.Stepped:Connect(function()
        if WS then
            pcall(function()
                Player.Character:FindFirstChildWhichIsA("Humanoid").WalkSpeed = WalkSpeed or 16
            end)
        end
    end)
end})
Toggles.SSS:OnChanged(function(State)
    Foe = Toggles.SSS.Value
end)
RightGroupBox:AddInput('SSF3', {Default = 'WalkSpeed',Numeric = true,Finished = false,Text = 'WalkSpeed',Tooltip = 'Numbers Only',Placeholder = 'WalkSpeed'})
Options.SSF3:OnChanged(function(State)
    WalkSpeed = Options.SSF3.Value
end)

RightGroupBox:AddToggle('EEE', {Text = 'JumpPower Toggle',Default = false,Tooltip = '', Callback = function(A)
    JP = A
    RunService.Stepped:Connect(function()
        if JP then
            pcall(function()
                local H = Player.Character:FindFirstChildWhichIsA("Humanoid")
                if H.UseJumpPower then
                    H.JumpPower = JumpPower or 50
                else
                    H.JumpHeight = JumpPower or 50
                end
            end)
        end
    end)
end})
Toggles.EEE:OnChanged(function(State)
    JP = Toggles.EEE.Value
end)
RightGroupBox:AddInput('SSF1', {Default = 'JumpPower',Numeric = true,Finished = false,Text = 'JumpPower',Tooltip = 'Numbers Only',Placeholder = 'JumpPower'})

Options.SSF1:OnChanged(function(State)
    JumpPower = Options.SSF1.Value
end)

RightGroupBox:AddSlider('FlySpeed', {Text = 'FlySpeed',Default = 50,Min = 16,Max = 500,Rounding = 0,Compact = false,Callback = function(Value)
    Speed = Value
end})

Options.FlySpeed:OnChanged(function()
    Speed = Options.FlySpeed.Value
end)

RightGroupBox:AddLabel('Fly KeyBind'):AddKeyPicker('name2', {Default = 'H',SyncToggleState = false,Mode = 'Toggle',Text = 'Fly',NoUI = true,Callback = function(Value)
    VG.Flying(Value, Speed)
end,
ChangedCallback = function(New)
    print(New)
end})
Options.name2:SetValue({ 'H', 'Toggle' })

RightGroupBox:AddButton('ServerHop', function() ServerHop() end)
RightGroupBox:AddButton('Rejoin', function()
    local Success, ErrorMessage = pcall(function()
        Rejoin()
    end)
    if ErrorMessage and not Success then
        warn(ErrorMessage)
    elseif Success and not ErrorMessage then
        print(Success)
    end
end)
Library:SetWatermarkVisibility(true)
local FrameTimer = tick()
local FrameCounter = 0;
local FPS = 60;

local WatermarkConnection = RenderStepped:Connect(function()
    FrameCounter =FrameCounter + 1;
    if (tick() - FrameTimer) >= 1 then
        FPS = FrameCounter;
        FrameTimer = tick();
        FrameCounter = 0;
    end;
    Library:SetWatermark(('Fuji Hub | %s fps | %s ms | %s GameId'):format(
        math.floor(FPS),
        math.floor(game:GetService('Stats').Network.ServerStatsItem['Data Ping']:GetValue()),  game.GameId
    ));
end);

MenuGroup:AddButton('Unload', function() Library:Unload() end)
MenuGroup:AddLabel('Menu bind'):AddKeyPicker('MenuKeybind', { Default = "RightControl", NoUI = true, Text = 'Menu keybind' })

Library.ToggleKeybind = Options.MenuKeybind
ThemeManager:SetLibrary(Library)
SaveManager:SetLibrary(Library)

SaveManager:IgnoreThemeSettings()
SaveManager:SetIgnoreIndexes({ 'MenuKeybind' })
ThemeManager:SetFolder('V.G Hub')
SaveManager:SetFolder("V.G Hub/" .. game.PlaceId)
SaveManager:BuildConfigSection(Tabs['UI Settings'])
ThemeManager:ApplyToTab(Tabs['UI Settings'])

Embed on website

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