xvc200

viper hub

Jul 15th, 2025
17
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.67 KB | None | 0 0
  1. -- Load Fluent UI + Managers
  2. local Fluent = loadstring(game:HttpGet("https://github.com/dawid-scripts/Fluent/releases/latest/download/main.lua"))()
  3. local SaveManager = loadstring(game:HttpGet("https://raw.githubusercontent.com/dawid-scripts/Fluent/master/Addons/SaveManager.lua"))()
  4. local InterfaceManager = loadstring(game:HttpGet("https://raw.githubusercontent.com/dawid-scripts/Fluent/master/Addons/InterfaceManager.lua"))()
  5.  
  6. local TweenService = game:GetService("TweenService")
  7. local UserInputService = game:GetService("UserInputService")
  8. local RunService = game:GetService("RunService")
  9. local ReplicatedStorage = game:GetService("ReplicatedStorage")
  10. local Players = game:GetService("Players")
  11. local LocalPlayer = Players.LocalPlayer
  12. local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
  13.  
  14. -- Window
  15. local Window = Fluent:CreateWindow({
  16. Title = "SlapBattle by Viper Hub",
  17. SubTitle = "👽",
  18. TabWidth = 110,
  19. Size = UDim2.fromOffset(580, 460),
  20. Acrylic = true,
  21. Theme = "Darker",
  22. MinimizeKey = Enum.KeyCode.LeftControl
  23. })
  24.  
  25. -- Tabs
  26. local Tabs = {
  27. Home = Window:AddTab({ Title = "Home", Icon = "home" }),
  28. Main = Window:AddTab({ Title = "Main", Icon = "swords" }),
  29. Settings = Window:AddTab({ Title = "Settings", Icon = "settings" })
  30. }
  31.  
  32. -- Home Content
  33. Tabs.Home:AddParagraph({
  34. Title = "Viper Supported Games",
  35. Content = "• Something Evil Will Happen\n• Tower of Hell\n• Slap Battles"
  36. })
  37.  
  38. Tabs.Home:AddButton({
  39. Title = "Copy Discord Invite 📋",
  40. Description = "Click to copy Discord link",
  41. Callback = function()
  42. setclipboard("https://discord.gg/fGDfD7Rv")
  43. createNotification("Copied!", "Discord link copied to clipboard", 3)
  44. end
  45. })
  46.  
  47. -- ========== MAIN GUI ==========
  48. -- Supported Games Info
  49. Tabs.Main:AddParagraph({
  50. Title = "Supported Games & Features",
  51. Content = "• Something Evil Will Happen: ✅ Fully Supported\n• Tower of Hell: ✅ Fully Supported\n• Slap Battles: ⚠️ AutoSlapFarm Only"
  52. })
  53.  
  54. local autoFarm = false
  55. local slapCooldown = 1
  56. local tpCooldown = 0.8
  57. local slapRange = 35
  58. local lastSlap = 0
  59. local lastTP = 0
  60. local currentTargetIndex = 1
  61. local hasGlove = false
  62. local gotInitialGlove = false
  63. local teleportDone = false
  64. local invisibilityEnabled = false
  65. local megarockImmunityEnabled = false
  66. local antiVoidEnabled = false
  67. local antiVoidPlate = nil
  68. local SlapRemote = ReplicatedStorage:WaitForChild("b")
  69.  
  70. Tabs.Main:AddToggle("AutoFarmSlapToggle", {
  71. Title = "AutoFarmSlap",
  72. Description = "Turn on Invisible less risk",
  73. Default = false,
  74. Callback = function(value)
  75. autoFarm = value
  76. if value then
  77. hasGlove = checkGlove()
  78. gotInitialGlove = false
  79. teleportDone = false
  80. local char = LocalPlayer.Character
  81. if char and not hasGlove then
  82. teleportToTeleport1()
  83. elseif char and hasGlove then
  84. gotInitialGlove = true
  85. equipGlove()
  86. end
  87. end
  88. end
  89. })
  90.  
  91. Tabs.Main:AddToggle("InvisibleToggle", {
  92. Title = "Toggle Invisibility",
  93. Description = "Players CAN'T see you - Only YOU can see yourself. Others can't see your head, body, or name tag.",
  94. Default = false,
  95. Callback = function(value)
  96. invisibilityEnabled = value
  97. local char = LocalPlayer.Character
  98. if char then
  99. for _, part in ipairs(char:GetChildren()) do
  100. if part:IsA("BasePart") then
  101. part.Transparency = value and 1 or 0
  102. end
  103. end
  104. local nameTag = char:FindFirstChild("Head"):FindFirstChild("BillboardGui")
  105. if nameTag then
  106. nameTag.Enabled = not value
  107. end
  108.  
  109. -- Set Humanoid properties for full invisibility
  110. local humanoid = char:FindFirstChildOfClass("Humanoid")
  111. if humanoid then
  112. humanoid.HipWidth = value and 0 or 0.5
  113. humanoid.HipHeight = value and 0 or 2
  114. end
  115. end
  116. end
  117. })
  118.  
  119. Tabs.Main:AddToggle("MegarockImmunityToggle", {
  120. Title = "Megarockability Immunity",
  121. Description = "Become immune to Megarockability effects.",
  122. Default = false,
  123. Callback = function(value)
  124. megarockImmunityEnabled = value
  125. local char = LocalPlayer.Character
  126. if char then
  127. if value then
  128. -- Example code to handle immunity (this may vary based on how Megarockability is implemented)
  129. char:FindFirstChildOfClass("Humanoid").Changed:Connect(function(property)
  130. if property == "Health" and char:FindFirstChild("MegarockDebuff") then
  131. -- Prevent health change when affected by Megarockability
  132. char.Humanoid.Health = char.Humanoid.MaxHealth
  133. end
  134. end)
  135. end
  136. end
  137. end
  138. })
  139.  
  140. Tabs.Main:AddToggle("AntiVoidToggle", {
  141. Title = "Anti-Void",
  142. Description = "Spawns a huge baseplate under the arena to prevent falling into the void",
  143. Default = false,
  144. Callback = function(value)
  145. antiVoidEnabled = value
  146. if value then
  147. -- Create anti-void plate
  148. antiVoidPlate = Instance.new("Part")
  149. antiVoidPlate.Name = "ViperAntiVoidPlate"
  150. antiVoidPlate.Size = Vector3.new(10000, 10, 10000) -- Huge plate covering entire map
  151. antiVoidPlate.Position = Vector3.new(0, -25, 0) -- Just below arena at Y=-25
  152. antiVoidPlate.Anchored = true
  153. antiVoidPlate.CanCollide = true
  154. antiVoidPlate.Transparency = 0.7
  155. antiVoidPlate.Color = Color3.fromRGB(0, 100, 255)
  156. antiVoidPlate.Material = Enum.Material.Neon
  157. antiVoidPlate.Parent = workspace
  158.  
  159. createNotification("Anti-Void", "Protective baseplate created at Y=-25!", 3)
  160. else
  161. -- Remove anti-void plate
  162. if antiVoidPlate then
  163. antiVoidPlate:Destroy()
  164. antiVoidPlate = nil
  165. createNotification("Anti-Void", "Baseplate removed", 2)
  166. end
  167. end
  168. end
  169. })
  170.  
  171. -- Helpers
  172. function isInLobby(char)
  173. local root = char and char:FindFirstChild("HumanoidRootPart")
  174. return root and root.Position.Y >= -327 and root.Position.Y <= -325
  175. end
  176.  
  177. function isInPlayArea(char)
  178. local y = char and char:FindFirstChild("HumanoidRootPart") and char.HumanoidRootPart.Position.Y
  179. if not y then return false end
  180. if y > 1000 then return false end
  181. if y > 0 and y < 100 then return true end
  182. if y > -40 and y < 0 then return true end
  183. if y >= 100 and y < 500 then return true end
  184. return false
  185. end
  186.  
  187. function checkGlove()
  188. local char = LocalPlayer.Character
  189. if not char then return false end
  190. for _, tool in ipairs(char:GetChildren()) do
  191. if tool:IsA("Tool") then return true end
  192. end
  193. local bp = LocalPlayer:FindFirstChild("Backpack")
  194. if bp then
  195. for _, tool in ipairs(bp:GetChildren()) do
  196. if tool:IsA("Tool") then return true end
  197. end
  198. end
  199. return false
  200. end
  201.  
  202. function equipGlove()
  203. local bp = LocalPlayer:FindFirstChild("Backpack")
  204. if not bp then return end
  205. for _, tool in ipairs(bp:GetChildren()) do
  206. if tool:IsA("Tool") then
  207. local hum = LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Humanoid")
  208. if hum then
  209. hum:EquipTool(tool)
  210. hasGlove = true
  211. gotInitialGlove = true
  212. print("[SlapFarm] Equipped:", tool.Name)
  213. break
  214. end
  215. end
  216. end
  217. end
  218.  
  219. function teleportToTeleport1()
  220. local char = LocalPlayer.Character
  221. if not char then return end
  222. local root = char:FindFirstChild("HumanoidRootPart")
  223. if not root then return end
  224. local tp = workspace:FindFirstChild("Lobby") and workspace.Lobby:FindFirstChild("Teleport1")
  225. if tp then
  226. char:PivotTo(tp.CFrame + Vector3.new(0, 5, 0))
  227. task.wait(0.4)
  228. equipGlove()
  229. teleportDone = true
  230. print("[SlapFarm] Teleported to Teleport1")
  231. end
  232. end
  233.  
  234. function getValidTargets()
  235. local targets = {}
  236. local myRoot = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
  237. if not myRoot then return targets end
  238. for _, plr in ipairs(Players:GetPlayers()) do
  239. if plr ~= LocalPlayer and plr.Character then
  240. local root = plr.Character:FindFirstChild("HumanoidRootPart")
  241. local hum = plr.Character:FindFirstChildOfClass("Humanoid")
  242. if root and hum and hum.Health > 0 and isInPlayArea(plr.Character) then
  243. local dist = (myRoot.Position - root.Position).Magnitude
  244. if dist <= 200 then
  245. table.insert(targets, {
  246. player = plr,
  247. root = root,
  248. humanoid = hum,
  249. distance = dist
  250. })
  251. end
  252. end
  253. end
  254. end
  255. table.sort(targets, function(a, b) return a.distance < b.distance end)
  256. return targets
  257. end
  258.  
  259. LocalPlayer.CharacterAdded:Connect(function(char)
  260. hasGlove = false
  261. gotInitialGlove = false
  262. teleportDone = false
  263. char:WaitForChild("HumanoidRootPart")
  264. task.wait(0.5)
  265. if autoFarm then
  266. teleportToTeleport1()
  267. end
  268. end)
  269.  
  270. RunService.Heartbeat:Connect(function()
  271. if not autoFarm then return end
  272. local char = LocalPlayer.Character
  273. local root = char and char:FindFirstChild("HumanoidRootPart")
  274. if not root then return end
  275. if not hasGlove and not gotInitialGlove then
  276. hasGlove = checkGlove()
  277. if not hasGlove then
  278. if not teleportDone and isInLobby(char) then
  279. teleportToTeleport1()
  280. end
  281. return
  282. else
  283. equipGlove()
  284. gotInitialGlove = true
  285. end
  286. end
  287. if isInLobby(char) and hasGlove and not teleportDone then
  288. teleportToTeleport1()
  289. return
  290. end
  291. if not hasGlove or not isInPlayArea(char) then return end
  292. local targets = getValidTargets()
  293. if #targets == 0 then return end
  294. if tick() - lastTP >= tpCooldown then
  295. currentTargetIndex += 1
  296. if currentTargetIndex > #targets then currentTargetIndex = 1 end
  297. local target = targets[currentTargetIndex]
  298. if target and target.root then
  299. local offset = target.root.CFrame.LookVector * -5 + Vector3.new(0, 5, 0)
  300. char:PivotTo(CFrame.new(target.root.Position + offset))
  301. lastTP = tick()
  302. end
  303. end
  304. if tick() - lastSlap >= slapCooldown then
  305. for _, target in ipairs(targets) do
  306. if target.distance <= slapRange then
  307. SlapRemote:FireServer(target.humanoid)
  308. lastSlap = tick()
  309. print("[SlapFarm] Slapped:", target.player.Name)
  310. break
  311. end
  312. end
  313. end
  314. end)
  315.  
  316. -- ========== Fluent Managers ==========
  317. SaveManager:SetLibrary(Fluent)
  318. InterfaceManager:SetLibrary(Fluent)
  319. InterfaceManager:BuildInterfaceSection(Tabs.Settings)
  320. SaveManager:BuildConfigSection(Tabs.Settings)
  321. SaveManager:LoadAutoloadConfig()
  322. Window:SelectTab(2)
  323.  
  324. -- ========== Custom Notification ==========
  325. function createNotification(title, message, duration)
  326. duration = duration or 3
  327. local notifGui = Instance.new("ScreenGui", PlayerGui)
  328. notifGui.Name = "ViperNotification"
  329. notifGui.ResetOnSpawn = false
  330. local notifFrame = Instance.new("Frame", notifGui)
  331. notifFrame.Size = UDim2.new(0, 300, 0, 80)
  332. notifFrame.Position = UDim2.new(1, 0, 0, 20)
  333. notifFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
  334. notifFrame.BorderSizePixel = 0
  335. local corner = Instance.new("UICorner", notifFrame)
  336. corner.CornerRadius = UDim.new(0, 8)
  337. local titleLabel = Instance.new("TextLabel", notifFrame)
  338. titleLabel.Size = UDim2.new(1, -10, 0, 30)
  339. titleLabel.Position = UDim2.new(0, 5, 0, 5)
  340. titleLabel.BackgroundTransparency = 1
  341. titleLabel.Text = title
  342. titleLabel.TextColor3 = Color3.fromRGB(0, 255, 127)
  343. titleLabel.TextScaled = true
  344. titleLabel.Font = Enum.Font.GothamBold
  345. titleLabel.TextXAlignment = Enum.TextXAlignment.Left
  346. local messageLabel = Instance.new("TextLabel", notifFrame)
  347. messageLabel.Size = UDim2.new(1, -10, 0, 40)
  348. messageLabel.Position = UDim2.new(0, 5, 0, 35)
  349. messageLabel.BackgroundTransparency = 1
  350. messageLabel.Text = message
  351. messageLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
  352. messageLabel.TextScaled = true
  353. messageLabel.Font = Enum.Font.Gotham
  354. messageLabel.TextXAlignment = Enum.TextXAlignment.Left
  355. local slideIn = TweenService:Create(notifFrame, TweenInfo.new(0.5, Enum.EasingStyle.Back), { Position = UDim2.new(1, -320, 0, 20) })
  356. slideIn:Play()
  357. game:GetService("Debris"):AddItem(notifGui, duration + 0.5)
  358. task.delay(duration, function()
  359. local slideOut = TweenService:Create(notifFrame, TweenInfo.new(0.5, Enum.EasingStyle.Back), { Position = UDim2.new(1, 0, 0, 20) })
  360. slideOut:Play()
  361. end)
  362. end
  363.  
  364. -- ========== Mini "V" Mobile Toggle ==========
  365. task.delay(1, function()
  366. local screenGui = Instance.new("ScreenGui", PlayerGui)
  367. screenGui.Name = "ViperToggle"
  368. screenGui.ResetOnSpawn = false
  369. local toggleFrame = Instance.new("Frame", screenGui)
  370. toggleFrame.Size = UDim2.new(0, 50, 0, 50)
  371. toggleFrame.Position = UDim2.new(0, 10, 0, 10)
  372. toggleFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
  373. toggleFrame.BorderSizePixel = 0
  374. local corner = Instance.new("UICorner", toggleFrame)
  375. corner.CornerRadius = UDim.new(0, 8)
  376. local gradient = Instance.new("UIGradient", toggleFrame)
  377. gradient.Color = ColorSequence.new{
  378. ColorSequenceKeypoint.new(0, Color3.fromRGB(40, 40, 40)),
  379. ColorSequenceKeypoint.new(1, Color3.fromRGB(20, 20, 20))
  380. }
  381. local toggleButton = Instance.new("TextButton", toggleFrame)
  382. toggleButton.Size = UDim2.new(1, 0, 1, 0)
  383. toggleButton.BackgroundTransparency = 1
  384. toggleButton.Text = "V"
  385. toggleButton.TextColor3 = Color3.fromRGB(0, 255, 127)
  386. toggleButton.TextScaled = true
  387. toggleButton.Font = Enum.Font.GothamBold
  388. local visible = true
  389. toggleButton.MouseButton1Click:Connect(function()
  390. visible = not visible
  391. Window.Root.Visible = visible
  392. end)
  393. toggleButton.MouseEnter:Connect(function()
  394. TweenService:Create(toggleFrame, TweenInfo.new(0.2), { Size = UDim2.new(0, 55, 0, 55), BackgroundColor3 = Color3.fromRGB(50, 50, 50) }):Play()
  395. TweenService:Create(toggleButton, TweenInfo.new(0.2), { TextColor3 = Color3.fromRGB(0, 255, 200) }):Play()
  396. end)
  397. toggleButton.MouseLeave:Connect(function()
  398. TweenService:Create(toggleFrame, TweenInfo.new(0.2), { Size = UDim2.new(0, 50, 0, 50), BackgroundColor3 = Color3.fromRGB(30, 30, 30) }):Play()
  399. TweenService:Create(toggleButton, TweenInfo.new(0.2), { TextColor3 = Color3.fromRGB(0, 255, 127) }):Play()
  400. end)
  401. end)
  402.  
  403. -- Welcome
  404. task.delay(2, function()
  405. createNotification("Viper Hub", "Welcome to Viper Hub! 👽", 3)
  406. task.delay(4, function()
  407. createNotification("Viper Security", "All Systems Operational", 4)
  408. end)
  409. end)
Advertisement
Add Comment
Please, Sign In to add comment