Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Load Fluent UI + Managers
- local Fluent = loadstring(game:HttpGet("https://github.com/dawid-scripts/Fluent/releases/latest/download/main.lua"))()
- local SaveManager = loadstring(game:HttpGet("https://raw.githubusercontent.com/dawid-scripts/Fluent/master/Addons/SaveManager.lua"))()
- local InterfaceManager = loadstring(game:HttpGet("https://raw.githubusercontent.com/dawid-scripts/Fluent/master/Addons/InterfaceManager.lua"))()
- local TweenService = game:GetService("TweenService")
- local UserInputService = game:GetService("UserInputService")
- local RunService = game:GetService("RunService")
- local ReplicatedStorage = game:GetService("ReplicatedStorage")
- local Players = game:GetService("Players")
- local LocalPlayer = Players.LocalPlayer
- local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
- -- Window
- local Window = Fluent:CreateWindow({
- Title = "SlapBattle by Viper Hub",
- SubTitle = "👽",
- TabWidth = 110,
- Size = UDim2.fromOffset(580, 460),
- Acrylic = true,
- Theme = "Darker",
- MinimizeKey = Enum.KeyCode.LeftControl
- })
- -- Tabs
- local Tabs = {
- Home = Window:AddTab({ Title = "Home", Icon = "home" }),
- Main = Window:AddTab({ Title = "Main", Icon = "swords" }),
- Settings = Window:AddTab({ Title = "Settings", Icon = "settings" })
- }
- -- Home Content
- Tabs.Home:AddParagraph({
- Title = "Viper Supported Games",
- Content = "• Something Evil Will Happen\n• Tower of Hell\n• Slap Battles"
- })
- Tabs.Home:AddButton({
- Title = "Copy Discord Invite 📋",
- Description = "Click to copy Discord link",
- Callback = function()
- setclipboard("https://discord.gg/fGDfD7Rv")
- createNotification("Copied!", "Discord link copied to clipboard", 3)
- end
- })
- -- ========== MAIN GUI ==========
- -- Supported Games Info
- Tabs.Main:AddParagraph({
- Title = "Supported Games & Features",
- Content = "• Something Evil Will Happen: ✅ Fully Supported\n• Tower of Hell: ✅ Fully Supported\n• Slap Battles: ⚠️ AutoSlapFarm Only"
- })
- local autoFarm = false
- local slapCooldown = 1
- local tpCooldown = 0.8
- local slapRange = 35
- local lastSlap = 0
- local lastTP = 0
- local currentTargetIndex = 1
- local hasGlove = false
- local gotInitialGlove = false
- local teleportDone = false
- local invisibilityEnabled = false
- local megarockImmunityEnabled = false
- local antiVoidEnabled = false
- local antiVoidPlate = nil
- local SlapRemote = ReplicatedStorage:WaitForChild("b")
- Tabs.Main:AddToggle("AutoFarmSlapToggle", {
- Title = "AutoFarmSlap",
- Description = "Turn on Invisible less risk",
- Default = false,
- Callback = function(value)
- autoFarm = value
- if value then
- hasGlove = checkGlove()
- gotInitialGlove = false
- teleportDone = false
- local char = LocalPlayer.Character
- if char and not hasGlove then
- teleportToTeleport1()
- elseif char and hasGlove then
- gotInitialGlove = true
- equipGlove()
- end
- end
- end
- })
- Tabs.Main:AddToggle("InvisibleToggle", {
- Title = "Toggle Invisibility",
- Description = "Players CAN'T see you - Only YOU can see yourself. Others can't see your head, body, or name tag.",
- Default = false,
- Callback = function(value)
- invisibilityEnabled = value
- local char = LocalPlayer.Character
- if char then
- for _, part in ipairs(char:GetChildren()) do
- if part:IsA("BasePart") then
- part.Transparency = value and 1 or 0
- end
- end
- local nameTag = char:FindFirstChild("Head"):FindFirstChild("BillboardGui")
- if nameTag then
- nameTag.Enabled = not value
- end
- -- Set Humanoid properties for full invisibility
- local humanoid = char:FindFirstChildOfClass("Humanoid")
- if humanoid then
- humanoid.HipWidth = value and 0 or 0.5
- humanoid.HipHeight = value and 0 or 2
- end
- end
- end
- })
- Tabs.Main:AddToggle("MegarockImmunityToggle", {
- Title = "Megarockability Immunity",
- Description = "Become immune to Megarockability effects.",
- Default = false,
- Callback = function(value)
- megarockImmunityEnabled = value
- local char = LocalPlayer.Character
- if char then
- if value then
- -- Example code to handle immunity (this may vary based on how Megarockability is implemented)
- char:FindFirstChildOfClass("Humanoid").Changed:Connect(function(property)
- if property == "Health" and char:FindFirstChild("MegarockDebuff") then
- -- Prevent health change when affected by Megarockability
- char.Humanoid.Health = char.Humanoid.MaxHealth
- end
- end)
- end
- end
- end
- })
- Tabs.Main:AddToggle("AntiVoidToggle", {
- Title = "Anti-Void",
- Description = "Spawns a huge baseplate under the arena to prevent falling into the void",
- Default = false,
- Callback = function(value)
- antiVoidEnabled = value
- if value then
- -- Create anti-void plate
- antiVoidPlate = Instance.new("Part")
- antiVoidPlate.Name = "ViperAntiVoidPlate"
- antiVoidPlate.Size = Vector3.new(10000, 10, 10000) -- Huge plate covering entire map
- antiVoidPlate.Position = Vector3.new(0, -25, 0) -- Just below arena at Y=-25
- antiVoidPlate.Anchored = true
- antiVoidPlate.CanCollide = true
- antiVoidPlate.Transparency = 0.7
- antiVoidPlate.Color = Color3.fromRGB(0, 100, 255)
- antiVoidPlate.Material = Enum.Material.Neon
- antiVoidPlate.Parent = workspace
- createNotification("Anti-Void", "Protective baseplate created at Y=-25!", 3)
- else
- -- Remove anti-void plate
- if antiVoidPlate then
- antiVoidPlate:Destroy()
- antiVoidPlate = nil
- createNotification("Anti-Void", "Baseplate removed", 2)
- end
- end
- end
- })
- -- Helpers
- function isInLobby(char)
- local root = char and char:FindFirstChild("HumanoidRootPart")
- return root and root.Position.Y >= -327 and root.Position.Y <= -325
- end
- function isInPlayArea(char)
- local y = char and char:FindFirstChild("HumanoidRootPart") and char.HumanoidRootPart.Position.Y
- if not y then return false end
- if y > 1000 then return false end
- if y > 0 and y < 100 then return true end
- if y > -40 and y < 0 then return true end
- if y >= 100 and y < 500 then return true end
- return false
- end
- function checkGlove()
- local char = LocalPlayer.Character
- if not char then return false end
- for _, tool in ipairs(char:GetChildren()) do
- if tool:IsA("Tool") then return true end
- end
- local bp = LocalPlayer:FindFirstChild("Backpack")
- if bp then
- for _, tool in ipairs(bp:GetChildren()) do
- if tool:IsA("Tool") then return true end
- end
- end
- return false
- end
- function equipGlove()
- local bp = LocalPlayer:FindFirstChild("Backpack")
- if not bp then return end
- for _, tool in ipairs(bp:GetChildren()) do
- if tool:IsA("Tool") then
- local hum = LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Humanoid")
- if hum then
- hum:EquipTool(tool)
- hasGlove = true
- gotInitialGlove = true
- print("[SlapFarm] Equipped:", tool.Name)
- break
- end
- end
- end
- end
- function teleportToTeleport1()
- local char = LocalPlayer.Character
- if not char then return end
- local root = char:FindFirstChild("HumanoidRootPart")
- if not root then return end
- local tp = workspace:FindFirstChild("Lobby") and workspace.Lobby:FindFirstChild("Teleport1")
- if tp then
- char:PivotTo(tp.CFrame + Vector3.new(0, 5, 0))
- task.wait(0.4)
- equipGlove()
- teleportDone = true
- print("[SlapFarm] Teleported to Teleport1")
- end
- end
- function getValidTargets()
- local targets = {}
- local myRoot = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
- if not myRoot then return targets end
- for _, plr in ipairs(Players:GetPlayers()) do
- if plr ~= LocalPlayer and plr.Character then
- local root = plr.Character:FindFirstChild("HumanoidRootPart")
- local hum = plr.Character:FindFirstChildOfClass("Humanoid")
- if root and hum and hum.Health > 0 and isInPlayArea(plr.Character) then
- local dist = (myRoot.Position - root.Position).Magnitude
- if dist <= 200 then
- table.insert(targets, {
- player = plr,
- root = root,
- humanoid = hum,
- distance = dist
- })
- end
- end
- end
- end
- table.sort(targets, function(a, b) return a.distance < b.distance end)
- return targets
- end
- LocalPlayer.CharacterAdded:Connect(function(char)
- hasGlove = false
- gotInitialGlove = false
- teleportDone = false
- char:WaitForChild("HumanoidRootPart")
- task.wait(0.5)
- if autoFarm then
- teleportToTeleport1()
- end
- end)
- RunService.Heartbeat:Connect(function()
- if not autoFarm then return end
- local char = LocalPlayer.Character
- local root = char and char:FindFirstChild("HumanoidRootPart")
- if not root then return end
- if not hasGlove and not gotInitialGlove then
- hasGlove = checkGlove()
- if not hasGlove then
- if not teleportDone and isInLobby(char) then
- teleportToTeleport1()
- end
- return
- else
- equipGlove()
- gotInitialGlove = true
- end
- end
- if isInLobby(char) and hasGlove and not teleportDone then
- teleportToTeleport1()
- return
- end
- if not hasGlove or not isInPlayArea(char) then return end
- local targets = getValidTargets()
- if #targets == 0 then return end
- if tick() - lastTP >= tpCooldown then
- currentTargetIndex += 1
- if currentTargetIndex > #targets then currentTargetIndex = 1 end
- local target = targets[currentTargetIndex]
- if target and target.root then
- local offset = target.root.CFrame.LookVector * -5 + Vector3.new(0, 5, 0)
- char:PivotTo(CFrame.new(target.root.Position + offset))
- lastTP = tick()
- end
- end
- if tick() - lastSlap >= slapCooldown then
- for _, target in ipairs(targets) do
- if target.distance <= slapRange then
- SlapRemote:FireServer(target.humanoid)
- lastSlap = tick()
- print("[SlapFarm] Slapped:", target.player.Name)
- break
- end
- end
- end
- end)
- -- ========== Fluent Managers ==========
- SaveManager:SetLibrary(Fluent)
- InterfaceManager:SetLibrary(Fluent)
- InterfaceManager:BuildInterfaceSection(Tabs.Settings)
- SaveManager:BuildConfigSection(Tabs.Settings)
- SaveManager:LoadAutoloadConfig()
- Window:SelectTab(2)
- -- ========== Custom Notification ==========
- function createNotification(title, message, duration)
- duration = duration or 3
- local notifGui = Instance.new("ScreenGui", PlayerGui)
- notifGui.Name = "ViperNotification"
- notifGui.ResetOnSpawn = false
- local notifFrame = Instance.new("Frame", notifGui)
- notifFrame.Size = UDim2.new(0, 300, 0, 80)
- notifFrame.Position = UDim2.new(1, 0, 0, 20)
- notifFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
- notifFrame.BorderSizePixel = 0
- local corner = Instance.new("UICorner", notifFrame)
- corner.CornerRadius = UDim.new(0, 8)
- local titleLabel = Instance.new("TextLabel", notifFrame)
- titleLabel.Size = UDim2.new(1, -10, 0, 30)
- titleLabel.Position = UDim2.new(0, 5, 0, 5)
- titleLabel.BackgroundTransparency = 1
- titleLabel.Text = title
- titleLabel.TextColor3 = Color3.fromRGB(0, 255, 127)
- titleLabel.TextScaled = true
- titleLabel.Font = Enum.Font.GothamBold
- titleLabel.TextXAlignment = Enum.TextXAlignment.Left
- local messageLabel = Instance.new("TextLabel", notifFrame)
- messageLabel.Size = UDim2.new(1, -10, 0, 40)
- messageLabel.Position = UDim2.new(0, 5, 0, 35)
- messageLabel.BackgroundTransparency = 1
- messageLabel.Text = message
- messageLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
- messageLabel.TextScaled = true
- messageLabel.Font = Enum.Font.Gotham
- messageLabel.TextXAlignment = Enum.TextXAlignment.Left
- local slideIn = TweenService:Create(notifFrame, TweenInfo.new(0.5, Enum.EasingStyle.Back), { Position = UDim2.new(1, -320, 0, 20) })
- slideIn:Play()
- game:GetService("Debris"):AddItem(notifGui, duration + 0.5)
- task.delay(duration, function()
- local slideOut = TweenService:Create(notifFrame, TweenInfo.new(0.5, Enum.EasingStyle.Back), { Position = UDim2.new(1, 0, 0, 20) })
- slideOut:Play()
- end)
- end
- -- ========== Mini "V" Mobile Toggle ==========
- task.delay(1, function()
- local screenGui = Instance.new("ScreenGui", PlayerGui)
- screenGui.Name = "ViperToggle"
- screenGui.ResetOnSpawn = false
- local toggleFrame = Instance.new("Frame", screenGui)
- toggleFrame.Size = UDim2.new(0, 50, 0, 50)
- toggleFrame.Position = UDim2.new(0, 10, 0, 10)
- toggleFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
- toggleFrame.BorderSizePixel = 0
- local corner = Instance.new("UICorner", toggleFrame)
- corner.CornerRadius = UDim.new(0, 8)
- local gradient = Instance.new("UIGradient", toggleFrame)
- gradient.Color = ColorSequence.new{
- ColorSequenceKeypoint.new(0, Color3.fromRGB(40, 40, 40)),
- ColorSequenceKeypoint.new(1, Color3.fromRGB(20, 20, 20))
- }
- local toggleButton = Instance.new("TextButton", toggleFrame)
- toggleButton.Size = UDim2.new(1, 0, 1, 0)
- toggleButton.BackgroundTransparency = 1
- toggleButton.Text = "V"
- toggleButton.TextColor3 = Color3.fromRGB(0, 255, 127)
- toggleButton.TextScaled = true
- toggleButton.Font = Enum.Font.GothamBold
- local visible = true
- toggleButton.MouseButton1Click:Connect(function()
- visible = not visible
- Window.Root.Visible = visible
- end)
- toggleButton.MouseEnter:Connect(function()
- TweenService:Create(toggleFrame, TweenInfo.new(0.2), { Size = UDim2.new(0, 55, 0, 55), BackgroundColor3 = Color3.fromRGB(50, 50, 50) }):Play()
- TweenService:Create(toggleButton, TweenInfo.new(0.2), { TextColor3 = Color3.fromRGB(0, 255, 200) }):Play()
- end)
- toggleButton.MouseLeave:Connect(function()
- TweenService:Create(toggleFrame, TweenInfo.new(0.2), { Size = UDim2.new(0, 50, 0, 50), BackgroundColor3 = Color3.fromRGB(30, 30, 30) }):Play()
- TweenService:Create(toggleButton, TweenInfo.new(0.2), { TextColor3 = Color3.fromRGB(0, 255, 127) }):Play()
- end)
- end)
- -- Welcome
- task.delay(2, function()
- createNotification("Viper Hub", "Welcome to Viper Hub! 👽", 3)
- task.delay(4, function()
- createNotification("Viper Security", "All Systems Operational", 4)
- end)
- end)
Advertisement
Add Comment
Please, Sign In to add comment