D

SQL Detected Guest 2 Views Size: 72.95 KB Posted on: Aug 19, 26 @ 4:43 AM
  1. -- PlaceId check — Violence District ONLY
  2. IF game.PlaceId ~= 93978595733734 THEN
  3.     warn("⚡ REIN HUB: This script is only compatible with Violence-District!")
  4.     RETURN
  5. END
  6.  
  7. -- ═══════════════════════════════════════════════════════════
  8. -- SERVICES
  9. -- ═══════════════════════════════════════════════════════════
  10. LOCAL Players = game:GetService("Players")
  11. LOCAL RunService = game:GetService("RunService")
  12. LOCAL ReplicatedStorage = game:GetService("ReplicatedStorage")
  13. LOCAL Teams = game:GetService("Teams")
  14. LOCAL UserInputService = game:GetService("UserInputService")
  15. LOCAL CoreGui = game:GetService("CoreGui")
  16. LOCAL TweenService = game:GetService("TweenService")
  17. LOCAL VirtualUser = game:GetService("VirtualUser")
  18.  
  19. LOCAL LocalPlayer = Players.LocalPlayer
  20. LOCAL Camera = workspace.CurrentCamera
  21.  
  22. -- ═══════════════════════════════════════════════════════════
  23. -- REMOTES — VIOLENCE DISTRICT SPECIFIC
  24. -- ═══════════════════════════════════════════════════════════
  25. LOCAL Remotes = ReplicatedStorage:WaitForChild("Remotes", 10)
  26. LOCAL ItemRemotes = Remotes AND Remotes:FindFirstChild("Items")
  27.  
  28. -- Parry remote — correct path for VD
  29. LOCAL ParryClient = nil
  30. pcall(FUNCTION()
  31.     ParryClient = ReplicatedStorage:WaitForChild("Items", 5):WaitForChild("ParryClient", 5)
  32. END)
  33. -- Fallback search
  34. IF NOT ParryClient THEN
  35.     pcall(FUNCTION()
  36.         ParryClient = ItemRemotes AND (ItemRemotes:FindFirstChild("ParryClient") OR ItemRemotes:FindFirstChild("Parrying Dagger") AND ItemRemotes:FindFirstChild("Parrying Dagger"):FindFirstChild("parry"))
  37.     END)
  38. END
  39.  
  40. -- Generator remotes
  41. LOCAL GenRemotes = Remotes AND Remotes:FindFirstChild("Generator")
  42. LOCAL SkillCheckResult = GenRemotes AND GenRemotes:FindFirstChild("SkillCheckResultEvent")
  43. LOCAL SkillCheckEvent = GenRemotes AND GenRemotes:FindFirstChild("SkillCheckEvent")
  44.  
  45. -- Attack remotes
  46. LOCAL AttackRemotes = Remotes AND Remotes:FindFirstChild("Attacks")
  47. LOCAL AttackHitRemote = AttackRemotes AND AttackRemotes:FindFirstChild("hit")
  48. LOCAL LungeDetectRemote = AttackRemotes AND AttackRemotes:FindFirstChild("LungeDetect")
  49.  
  50. -- Game module references
  51. LOCAL KillerModules = nil
  52. LOCAL SurvivorConfig = nil
  53. pcall(FUNCTION()
  54.     KillerModules = ReplicatedStorage:WaitForChild("Modules", 5):WaitForChild("Killers", 5)
  55. END)
  56. pcall(FUNCTION()
  57.     SurvivorConfig = ReplicatedStorage:WaitForChild("Modules", 5):WaitForChild("Survivors", 5):WaitForChild("SurvivorConfig", 5)
  58. END)
  59.  
  60. -- ═══════════════════════════════════════════════════════════
  61. -- STATE MANAGEMENT
  62. -- ═══════════════════════════════════════════════════════════
  63. LOCAL State = {
  64.     UIVisible = FALSE,
  65.     Minimized = FALSE,
  66.     AutoParry = FALSE,
  67.     GodMode = FALSE,
  68.     WalkSpeed = 16,
  69.     SpeedEnabled = FALSE,
  70.     PerfectGen = FALSE,
  71.     AFKMode = TRUE,
  72.     AFKStartTime = os.time(),
  73.     ESPPlayers = FALSE,
  74.     ESPKiller = FALSE,
  75.     ESPGenerators = FALSE,
  76.     ESPGenProgress = FALSE,
  77.     GenHUDVisible = FALSE,
  78.     ActiveTab = "Visual",
  79.     Connections = {},
  80.     SelectedPlayer = nil,
  81. }
  82.  
  83. LOCAL TeamColors = {
  84.     Survivors = Color3.fromRGB(0, 255, 0),
  85.     Killer = Color3.fromRGB(255, 0, 0),
  86.     Spectator = Color3.fromRGB(180, 180, 180),
  87.     UNKNOWN = Color3.fromRGB(255, 255, 255),
  88.     Generator = Color3.fromRGB(255, 200, 0),
  89. }
  90.  
  91. -- ═══════════════════════════════════════════════════════════
  92. -- GUI CLEANUP
  93. -- ═══════════════════════════════════════════════════════════
  94. IF CoreGui:FindFirstChild("REINHubVD") THEN
  95.     CoreGui.REINHubVD:Destroy()
  96. END
  97. IF CoreGui:FindFirstChild("REINHubLoading") THEN
  98.     CoreGui.REINHubLoading:Destroy()
  99. END
  100.  
  101. -- Animated gradient rotation registry
  102. LOCAL AnimatingGradients = {}
  103. LOCAL FUNCTION registerGradient(g)
  104.     TABLE.insert(AnimatingGradients, g)
  105. END
  106.  
  107. TABLE.insert(State.Connections, RunService.Heartbeat:CONNECT(FUNCTION()
  108.     LOCAL rot = (tick() * 150) % 360
  109.     FOR _, g IN ipairs(AnimatingGradients) do
  110.         pcall(FUNCTION() g.Rotation = rot END)
  111.     END
  112. END))
  113.  
  114. -- ═══════════════════════════════════════════════════════════
  115. -- ANTI-AFK — AUTO ACTIVE ON LOAD (runs immediately)
  116. -- ═══════════════════════════════════════════════════════════
  117. pcall(FUNCTION()
  118.     LocalPlayer.Idled:CONNECT(FUNCTION()
  119.         VirtualUser:CaptureController()
  120.         VirtualUser:ClickButton2(Vector2.new(0, 0))
  121.     END)
  122. END)
  123.  
  124. -- ═══════════════════════════════════════════════════════════
  125. -- PREMIUM CINEMATIC LOADING SCREEN
  126. -- ═══════════════════════════════════════════════════════════
  127. LOCAL LoadingGui = Instance.new("ScreenGui")
  128. LoadingGui.Name = "REINHubLoading"
  129. LoadingGui.ResetOnSpawn = FALSE
  130. LoadingGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
  131. LoadingGui.DisplayOrder = 999
  132. pcall(FUNCTION() LoadingGui.Parent = CoreGui END)
  133. IF NOT LoadingGui.Parent THEN LoadingGui.Parent = LocalPlayer:WaitForChild("PlayerGui") END
  134.  
  135. -- Full-screen backdrop
  136. LOCAL LoadingFrame = Instance.new("Frame")
  137. LoadingFrame.Size = UDim2.new(1, 0, 1, 0)
  138. LoadingFrame.BackgroundColor3 = Color3.fromRGB(6, 3, 14)
  139. LoadingFrame.BorderSizePixel = 0
  140. LoadingFrame.Parent = LoadingGui
  141.  
  142. -- Vignette overlay
  143. LOCAL Vignette = Instance.new("ImageLabel")
  144. Vignette.Size = UDim2.new(1, 0, 1, 0)
  145. Vignette.BackgroundTransparency = 1
  146. Vignette.Image = "rbxassetid://1526406850"
  147. Vignette.ImageColor3 = Color3.fromRGB(0, 0, 0)
  148. Vignette.ImageTransparency = 0.3
  149. Vignette.ZIndex = 2
  150. Vignette.Parent = LoadingFrame
  151.  
  152. -- Matrix purple background — drifting
  153. LOCAL MatrixBgLoad = Instance.new("ImageLabel")
  154. MatrixBgLoad.Size = UDim2.new(1.2, 0, 1.2, 0)
  155. MatrixBgLoad.Position = UDim2.new(-0.1, 0, -0.1, 0)
  156. MatrixBgLoad.Image = "rbxassetid://79915007129772"
  157. MatrixBgLoad.ImageColor3 = Color3.fromRGB(120, 30, 220)
  158. MatrixBgLoad.ImageTransparency = 0.88
  159. MatrixBgLoad.BackgroundTransparency = 1
  160. MatrixBgLoad.ScaleType = Enum.ScaleType.Tile
  161. MatrixBgLoad.TileSize = UDim2.new(0, 200, 0, 200)
  162. MatrixBgLoad.ZIndex = 1
  163. MatrixBgLoad.Parent = LoadingFrame
  164.  
  165. task.spawn(FUNCTION()
  166.     LOCAL dc
  167.     dc = RunService.Heartbeat:CONNECT(FUNCTION()
  168.         IF NOT MatrixBgLoad OR NOT MatrixBgLoad.Parent THEN dc:Disconnect() RETURN END
  169.         LOCAL t = tick() * 0.02
  170.         MatrixBgLoad.Position = UDim2.new(-0.1 + math.sin(t) * 0.03, 0, -0.1 + math.cos(t * 0.7) * 0.02, 0)
  171.     END)
  172. END)
  173.  
  174. -- Center container
  175. LOCAL CenterLoad = Instance.new("Frame")
  176. CenterLoad.Size = UDim2.new(0, 400, 0, 360)
  177. CenterLoad.Position = UDim2.new(0.5, -200, 0.5, -180)
  178. CenterLoad.BackgroundTransparency = 1
  179. CenterLoad.ZIndex = 10
  180. CenterLoad.Parent = LoadingFrame
  181.  
  182. -- Spinning outer ring
  183. LOCAL OuterRing = Instance.new("ImageLabel")
  184. OuterRing.Size = UDim2.new(0, 180, 0, 180)
  185. OuterRing.Position = UDim2.new(0.5, -90, 0, 10)
  186. OuterRing.BackgroundTransparency = 1
  187. OuterRing.Image = "rbxassetid://11745689735"
  188. OuterRing.ImageColor3 = Color3.fromRGB(160, 50, 255)
  189. OuterRing.ImageTransparency = 0.3
  190. OuterRing.ZIndex = 11
  191. OuterRing.Parent = CenterLoad
  192.  
  193. -- Spinning inner ring (counter)
  194. LOCAL InnerRing = Instance.new("ImageLabel")
  195. InnerRing.Size = UDim2.new(0, 150, 0, 150)
  196. InnerRing.Position = UDim2.new(0.5, -75, 0, 25)
  197. InnerRing.BackgroundTransparency = 1
  198. InnerRing.Image = "rbxassetid://11745689735"
  199. InnerRing.ImageColor3 = Color3.fromRGB(200, 100, 255)
  200. InnerRing.ImageTransparency = 0.5
  201. InnerRing.ZIndex = 12
  202. InnerRing.Parent = CenterLoad
  203.  
  204. task.spawn(FUNCTION()
  205.     LOCAL sc
  206.     sc = RunService.Heartbeat:CONNECT(FUNCTION()
  207.         IF NOT OuterRing OR NOT OuterRing.Parent THEN sc:Disconnect() RETURN END
  208.         OuterRing.Rotation = (tick() * 45) % 360
  209.         InnerRing.Rotation = -(tick() * 60) % 360
  210.         OuterRing.ImageTransparency = 0.25 + math.sin(tick() * 2) * 0.15
  211.     END)
  212. END)
  213.  
  214. -- Logo centered in rings
  215. LOCAL LogoLoad = Instance.new("ImageLabel")
  216. LogoLoad.Size = UDim2.new(0, 100, 0, 100)
  217. LogoLoad.Position = UDim2.new(0.5, -50, 0, 50)
  218. LogoLoad.Image = "rbxassetid://126054630022043"
  219. LogoLoad.BackgroundTransparency = 1
  220. LogoLoad.ZIndex = 15
  221. LogoLoad.Parent = CenterLoad
  222.  
  223. task.spawn(FUNCTION()
  224.     LOCAL gc
  225.     gc = RunService.Heartbeat:CONNECT(FUNCTION()
  226.         IF NOT LogoLoad OR NOT LogoLoad.Parent THEN gc:Disconnect() RETURN END
  227.         LogoLoad.ImageTransparency = math.sin(tick() * 1.5) * 0.15
  228.     END)
  229. END)
  230.  
  231. -- Title
  232. LOCAL TitleLoad = Instance.new("TextLabel")
  233. TitleLoad.Text = "REIN HUB X VD"
  234. TitleLoad.Size = UDim2.new(1, 0, 0, 30)
  235. TitleLoad.Position = UDim2.new(0, 0, 0, 200)
  236. TitleLoad.BackgroundTransparency = 1
  237. TitleLoad.TextColor3 = Color3.fromRGB(220, 180, 255)
  238. TitleLoad.Font = Enum.Font.GothamBold
  239. TitleLoad.TextSize = 20
  240. TitleLoad.ZIndex = 15
  241. TitleLoad.Parent = CenterLoad
  242.  
  243. -- Status text (rotating messages)
  244. LOCAL StatusLoad = Instance.new("TextLabel")
  245. StatusLoad.Text = "Initializing..."
  246. StatusLoad.Size = UDim2.new(1, 0, 0, 20)
  247. StatusLoad.Position = UDim2.new(0, 0, 0, 234)
  248. StatusLoad.BackgroundTransparency = 1
  249. StatusLoad.TextColor3 = Color3.fromRGB(150, 120, 200)
  250. StatusLoad.Font = Enum.Font.GothamSemibold
  251. StatusLoad.TextSize = 11
  252. StatusLoad.ZIndex = 15
  253. StatusLoad.Parent = CenterLoad
  254.  
  255. -- Progress bar background
  256. LOCAL BarBg = Instance.new("Frame")
  257. BarBg.Size = UDim2.new(0, 320, 0, 10)
  258. BarBg.Position = UDim2.new(0.5, -160, 0, 272)
  259. BarBg.BackgroundColor3 = Color3.fromRGB(20, 12, 35)
  260. BarBg.BorderSizePixel = 0
  261. BarBg.ZIndex = 15
  262. BarBg.Parent = CenterLoad
  263. Instance.new("UICorner", BarBg).CornerRadius = UDim.new(1, 0)
  264.  
  265. LOCAL BarStroke = Instance.new("UIStroke")
  266. BarStroke.Color = Color3.fromRGB(100, 40, 180)
  267. BarStroke.Thickness = 1.5
  268. BarStroke.Transparency = 0.4
  269. BarStroke.Parent = BarBg
  270.  
  271. -- Progress bar fill
  272. LOCAL BarFill = Instance.new("Frame")
  273. BarFill.Size = UDim2.new(0, 0, 1, 0)
  274. BarFill.BackgroundColor3 = Color3.fromRGB(160, 50, 255)
  275. BarFill.BorderSizePixel = 0
  276. BarFill.ZIndex = 16
  277. BarFill.Parent = BarBg
  278. Instance.new("UICorner", BarFill).CornerRadius = UDim.new(1, 0)
  279.  
  280. LOCAL BarGrad = Instance.new("UIGradient")
  281. BarGrad.Color = ColorSequence.new({
  282.     ColorSequenceKeypoint.new(0, Color3.fromRGB(100, 30, 200)),
  283.     ColorSequenceKeypoint.new(0.4, Color3.fromRGB(160, 50, 255)),
  284.     ColorSequenceKeypoint.new(0.7, Color3.fromRGB(200, 100, 255)),
  285.     ColorSequenceKeypoint.new(1, Color3.fromRGB(255, 150, 255)),
  286. })
  287. BarGrad.Parent = BarFill
  288.  
  289. -- Percentage text
  290. LOCAL PctText = Instance.new("TextLabel")
  291. PctText.Text = "0%"
  292. PctText.Size = UDim2.new(0, 60, 0, 20)
  293. PctText.Position = UDim2.new(0.5, -30, 0, 288)
  294. PctText.BackgroundTransparency = 1
  295. PctText.TextColor3 = Color3.fromRGB(200, 160, 255)
  296. PctText.Font = Enum.Font.GothamBold
  297. PctText.TextSize = 12
  298. PctText.ZIndex = 15
  299. PctText.Parent = CenterLoad
  300.  
  301. -- Floating sparkle particles
  302. LOCAL ParticleBox = Instance.new("Frame")
  303. ParticleBox.Size = UDim2.new(1, 0, 1, 0)
  304. ParticleBox.BackgroundTransparency = 1
  305. ParticleBox.ZIndex = 5
  306. ParticleBox.ClipsDescendants = TRUE
  307. ParticleBox.Parent = LoadingFrame
  308.  
  309. task.spawn(FUNCTION()
  310.     FOR i = 1, 25 do
  311.         LOCAL p = Instance.new("Frame")
  312.         p.Size = UDim2.new(0, math.random(2, 5), 0, math.random(2, 5))
  313.         p.Position = UDim2.new(math.random() * 0.95, 0, math.random() * 0.95, 0)
  314.         p.BackgroundColor3 = Color3.fromRGB(math.random(120, 200), math.random(40, 100), math.random(200, 255))
  315.         p.BackgroundTransparency = math.random() * 0.5 + 0.3
  316.         p.BorderSizePixel = 0
  317.         p.ZIndex = 5
  318.         p.Parent = ParticleBox
  319.         Instance.new("UICorner", p).CornerRadius = UDim.new(1, 0)
  320.  
  321.         LOCAL sY = math.random(80, 110) / 100
  322.         LOCAL dur = math.random(4, 8)
  323.         LOCAL sX = math.random() * 0.95
  324.  
  325.         task.spawn(FUNCTION()
  326.             while p AND p.Parent do
  327.                 p.Position = UDim2.new(sX + math.sin(tick() + i) * 0.02, 0, sY, 0)
  328.                 LOCAL tw = TweenService:CREATE(p, TweenInfo.new(dur, Enum.EasingStyle.Linear), {
  329.                     POSITION = UDim2.new(sX + math.sin(tick() + i) * 0.05, 0, -0.1, 0)
  330.                 })
  331.                 tw:Play()
  332.                 tw.Completed:Wait()
  333.                 sX = math.random() * 0.95
  334.                 p.Position = UDim2.new(sX, 0, sY, 0)
  335.             END
  336.         END)
  337.     END
  338. END)
  339.  
  340. -- Credit line
  341. LOCAL CreditLoad = Instance.new("TextLabel")
  342. CreditLoad.Text = "Developer by ReinUhuy · Violence District"
  343. CreditLoad.Size = UDim2.new(1, 0, 0, 18)
  344. CreditLoad.Position = UDim2.new(0, 0, 0, 330)
  345. CreditLoad.BackgroundTransparency = 1
  346. CreditLoad.TextColor3 = Color3.fromRGB(80, 60, 120)
  347. CreditLoad.Font = Enum.Font.Gotham
  348. CreditLoad.TextSize = 9
  349. CreditLoad.ZIndex = 15
  350. CreditLoad.Parent = CenterLoad
  351.  
  352. -- ═══════════════════════════════════════════════════════════
  353. -- MAIN UI CONTAINER
  354. -- ═══════════════════════════════════════════════════════════
  355. LOCAL ScreenGui = Instance.new("ScreenGui")
  356. ScreenGui.Name = "REINHubVD"
  357. ScreenGui.ResetOnSpawn = FALSE
  358. pcall(FUNCTION() ScreenGui.Parent = CoreGui END)
  359. IF NOT ScreenGui.Parent THEN ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui") END
  360.  
  361. -- Main Panel
  362. LOCAL MainFrame = Instance.new("Frame")
  363. MainFrame.Size = UDim2.new(0, 550, 0, 430)
  364. MainFrame.Position = UDim2.new(0.5, -275, 0.5, -215)
  365. MainFrame.BackgroundColor3 = Color3.fromRGB(15, 12, 22)
  366. MainFrame.BorderSizePixel = 0
  367. MainFrame.Active = TRUE
  368. MainFrame.Draggable = TRUE
  369. MainFrame.ClipsDescendants = TRUE
  370. MainFrame.Visible = FALSE
  371. MainFrame.Parent = ScreenGui
  372.  
  373. Instance.new("UICorner", MainFrame).CornerRadius = UDim.new(0, 12)
  374.  
  375. LOCAL MainStroke = Instance.new("UIStroke")
  376. MainStroke.Color = Color3.fromRGB(255, 255, 255)
  377. MainStroke.Thickness = 2
  378. MainStroke.Parent = MainFrame
  379.  
  380. LOCAL MainGrad = Instance.new("UIGradient")
  381. MainGrad.Color = ColorSequence.new({
  382.     ColorSequenceKeypoint.new(0, Color3.fromRGB(160, 50, 255)),
  383.     ColorSequenceKeypoint.new(0.3, Color3.fromRGB(30, 10, 60)),
  384.     ColorSequenceKeypoint.new(0.7, Color3.fromRGB(30, 10, 60)),
  385.     ColorSequenceKeypoint.new(1, Color3.fromRGB(160, 50, 255)),
  386. })
  387. MainGrad.Parent = MainStroke
  388. registerGradient(MainGrad)
  389.  
  390. -- Matrix bg on main panel
  391. LOCAL MatrixBg = Instance.new("ImageLabel")
  392. MatrixBg.Size = UDim2.new(1, 0, 1, 0)
  393. MatrixBg.Image = "rbxassetid://79915007129772"
  394. MatrixBg.ImageColor3 = Color3.fromRGB(160, 50, 255)
  395. MatrixBg.ImageTransparency = 0.88
  396. MatrixBg.BackgroundTransparency = 1
  397. MatrixBg.ScaleType = Enum.ScaleType.Tile
  398. MatrixBg.TileSize = UDim2.new(0, 256, 0, 256)
  399. MatrixBg.Parent = MainFrame
  400.  
  401. -- ═══════════════════════════════════════════════════════════
  402. -- FLOATING REOPEN BUTTON (Logo icon when closed)
  403. -- ═══════════════════════════════════════════════════════════
  404. LOCAL ReopenBtn = Instance.new("ImageButton")
  405. ReopenBtn.Size = UDim2.new(0, 50, 0, 50)
  406. ReopenBtn.Position = UDim2.new(0.02, 0, 0.45, 0)
  407. ReopenBtn.BackgroundColor3 = Color3.fromRGB(18, 12, 28)
  408. ReopenBtn.Image = "rbxassetid://126054630022043"
  409. ReopenBtn.Active = TRUE
  410. ReopenBtn.Draggable = TRUE
  411. ReopenBtn.Visible = FALSE
  412. ReopenBtn.Parent = ScreenGui
  413.  
  414. Instance.new("UICorner", ReopenBtn).CornerRadius = UDim.new(1, 0)
  415.  
  416. LOCAL ReopenStroke = Instance.new("UIStroke")
  417. ReopenStroke.Color = Color3.fromRGB(255, 255, 255)
  418. ReopenStroke.Thickness = 2
  419. ReopenStroke.Parent = ReopenBtn
  420.  
  421. LOCAL ReopenGrad = Instance.new("UIGradient")
  422. ReopenGrad.Color = ColorSequence.new({
  423.     ColorSequenceKeypoint.new(0, Color3.fromRGB(160, 50, 255)),
  424.     ColorSequenceKeypoint.new(0.5, Color3.fromRGB(30, 10, 60)),
  425.     ColorSequenceKeypoint.new(1, Color3.fromRGB(160, 50, 255)),
  426. })
  427. ReopenGrad.Parent = ReopenStroke
  428. registerGradient(ReopenGrad)
  429.  
  430. ReopenBtn.MouseButton1Click:CONNECT(FUNCTION()
  431.     ReopenBtn.Visible = FALSE
  432.     MainFrame.Visible = TRUE
  433.     State.UIVisible = TRUE
  434. END)
  435.  
  436. -- ═══════════════════════════════════════════════════════════
  437. -- MINIMIZED PILL BAR (with logo, text, neon animated border)
  438. -- ═══════════════════════════════════════════════════════════
  439. LOCAL Pillbar = Instance.new("Frame")
  440. Pillbar.Size = UDim2.new(0, 240, 0, 42)
  441. Pillbar.Position = UDim2.new(0.5, -120, 0.05, 0)
  442. Pillbar.BackgroundColor3 = Color3.fromRGB(18, 12, 28)
  443. Pillbar.BorderSizePixel = 0
  444. Pillbar.Active = TRUE
  445. Pillbar.Draggable = TRUE
  446. Pillbar.Visible = FALSE
  447. Pillbar.Parent = ScreenGui
  448.  
  449. Instance.new("UICorner", Pillbar).CornerRadius = UDim.new(1, 0)
  450.  
  451. LOCAL PillStroke = Instance.new("UIStroke")
  452. PillStroke.Color = Color3.fromRGB(255, 255, 255)
  453. PillStroke.Thickness = 2
  454. PillStroke.Parent = Pillbar
  455.  
  456. LOCAL PillGrad = Instance.new("UIGradient")
  457. PillGrad.Color = ColorSequence.new({
  458.     ColorSequenceKeypoint.new(0, Color3.fromRGB(160, 50, 255)),
  459.     ColorSequenceKeypoint.new(0.5, Color3.fromRGB(30, 10, 60)),
  460.     ColorSequenceKeypoint.new(1, Color3.fromRGB(160, 50, 255)),
  461. })
  462. PillGrad.Parent = PillStroke
  463. registerGradient(PillGrad)
  464.  
  465. LOCAL PillLogo = Instance.new("ImageLabel")
  466. PillLogo.Size = UDim2.new(0, 28, 0, 28)
  467. PillLogo.Position = UDim2.new(0, 8, 0.5, -14)
  468. PillLogo.Image = "rbxassetid://126054630022043"
  469. PillLogo.BackgroundTransparency = 1
  470. PillLogo.Parent = Pillbar
  471.  
  472. LOCAL PillTitle = Instance.new("TextLabel")
  473. PillTitle.Text = "REIN HUB X VD"
  474. PillTitle.Size = UDim2.new(1, -95, 1, 0)
  475. PillTitle.Position = UDim2.new(0, 42, 0, 0)
  476. PillTitle.BackgroundTransparency = 1
  477. PillTitle.TextColor3 = Color3.fromRGB(200, 170, 255)
  478. PillTitle.Font = Enum.Font.GothamBold
  479. PillTitle.TextSize = 11
  480. PillTitle.TextXAlignment = Enum.TextXAlignment.Left
  481. PillTitle.Parent = Pillbar
  482.  
  483. LOCAL PillMaxBtn = Instance.new("TextButton")
  484. PillMaxBtn.Text = "+"
  485. PillMaxBtn.Size = UDim2.new(0, 24, 0, 24)
  486. PillMaxBtn.Position = UDim2.new(1, -55, 0.5, -12)
  487. PillMaxBtn.BackgroundTransparency = 1
  488. PillMaxBtn.TextColor3 = Color3.fromRGB(255, 200, 80)
  489. PillMaxBtn.Font = Enum.Font.GothamBold
  490. PillMaxBtn.TextSize = 13
  491. PillMaxBtn.Parent = Pillbar
  492.  
  493. LOCAL PillCloseBtn = Instance.new("ImageButton")
  494. PillCloseBtn.Size = UDim2.new(0, 20, 0, 20)
  495. PillCloseBtn.Position = UDim2.new(1, -28, 0.5, -10)
  496. PillCloseBtn.Image = "rbxassetid://126054630022043"
  497. PillCloseBtn.BackgroundTransparency = 1
  498. PillCloseBtn.Parent = Pillbar
  499.  
  500. LOCAL FUNCTION toggleMinimize()
  501.     State.Minimized = NOT State.Minimized
  502.     IF State.Minimized THEN
  503.         MainFrame.Visible = FALSE
  504.         Pillbar.Visible = TRUE
  505.         Pillbar.Position = UDim2.new(0, MainFrame.AbsolutePosition.X + (MainFrame.AbsoluteSize.X / 2) - 120, 0, MainFrame.AbsolutePosition.Y)
  506.     ELSE
  507.         Pillbar.Visible = FALSE
  508.         MainFrame.Visible = TRUE
  509.         MainFrame.Position = UDim2.new(0, Pillbar.AbsolutePosition.X - 155, 0, Pillbar.AbsolutePosition.Y)
  510.     END
  511. END
  512.  
  513. LOCAL FUNCTION closeHub()
  514.     MainFrame.Visible = FALSE
  515.     Pillbar.Visible = FALSE
  516.     ReopenBtn.Visible = TRUE
  517.     State.UIVisible = FALSE
  518. END
  519.  
  520. PillMaxBtn.MouseButton1Click:CONNECT(toggleMinimize)
  521. PillCloseBtn.MouseButton1Click:CONNECT(closeHub)
  522.  
  523. -- ═══════════════════════════════════════════════════════════
  524. -- TITLE BAR
  525. -- ═══════════════════════════════════════════════════════════
  526. LOCAL TitleBar = Instance.new("Frame")
  527. TitleBar.Size = UDim2.new(1, 0, 0, 42)
  528. TitleBar.BackgroundColor3 = Color3.fromRGB(22, 16, 34)
  529. TitleBar.BorderSizePixel = 0
  530. TitleBar.Parent = MainFrame
  531.  
  532. LOCAL TBC = Instance.new("UICorner")
  533. TBC.CornerRadius = UDim.new(0, 12)
  534. TBC.Parent = TitleBar
  535.  
  536. LOCAL TBCover = Instance.new("Frame")
  537. TBCover.Size = UDim2.new(1, 0, 0, 10)
  538. TBCover.Position = UDim2.new(0, 0, 1, -10)
  539. TBCover.BackgroundColor3 = Color3.fromRGB(22, 16, 34)
  540. TBCover.BorderSizePixel = 0
  541. TBCover.Parent = TitleBar
  542.  
  543. LOCAL TBLogo = Instance.new("ImageLabel")
  544. TBLogo.Size = UDim2.new(0, 26, 0, 26)
  545. TBLogo.Position = UDim2.new(0, 12, 0.5, -13)
  546. TBLogo.Image = "rbxassetid://126054630022043"
  547. TBLogo.BackgroundTransparency = 1
  548. TBLogo.Parent = TitleBar
  549.  
  550. LOCAL TBLabel = Instance.new("TextLabel")
  551. TBLabel.Text = "REIN HUB X VD"
  552. TBLabel.Size = UDim2.new(1, -110, 1, 0)
  553. TBLabel.Position = UDim2.new(0, 44, 0, 0)
  554. TBLabel.BackgroundTransparency = 1
  555. TBLabel.TextColor3 = Color3.fromRGB(200, 170, 255)
  556. TBLabel.Font = Enum.Font.GothamBold
  557. TBLabel.TextSize = 13
  558. TBLabel.TextXAlignment = Enum.TextXAlignment.Left
  559. TBLabel.Parent = TitleBar
  560.  
  561. LOCAL MinBtn = Instance.new("TextButton")
  562. MinBtn.Text = "—"
  563. MinBtn.Size = UDim2.new(0, 28, 0, 28)
  564. MinBtn.Position = UDim2.new(1, -70, 0.5, -14)
  565. MinBtn.BackgroundTransparency = 1
  566. MinBtn.TextColor3 = Color3.fromRGB(255, 200, 80)
  567. MinBtn.Font = Enum.Font.GothamBold
  568. MinBtn.TextSize = 14
  569. MinBtn.Parent = TitleBar
  570. MinBtn.MouseButton1Click:CONNECT(toggleMinimize)
  571.  
  572. LOCAL CloseBtn = Instance.new("ImageButton")
  573. CloseBtn.Size = UDim2.new(0, 22, 0, 22)
  574. CloseBtn.Position = UDim2.new(1, -34, 0.5, -11)
  575. CloseBtn.Image = "rbxassetid://126054630022043"
  576. CloseBtn.BackgroundTransparency = 1
  577. CloseBtn.Parent = TitleBar
  578. CloseBtn.MouseButton1Click:CONNECT(closeHub)
  579.  
  580. -- ═══════════════════════════════════════════════════════════
  581. -- SIDEBAR NAVIGATION — Visual, Combat, Player, Misc, SC, Info
  582. -- ═══════════════════════════════════════════════════════════
  583.  
  584. LOCAL Sidebar = Instance.new("Frame")
  585. Sidebar.Name = "Sidebar"
  586. Sidebar.Size = UDim2.new(0, 135, 1, -42)
  587. Sidebar.Position = UDim2.new(0, 0, 0, 42)
  588. Sidebar.BackgroundColor3 = Color3.fromRGB(12, 9, 20)
  589. Sidebar.BorderSizePixel = 0
  590. Sidebar.ClipsDescendants = TRUE
  591. Sidebar.Parent = MainFrame
  592.  
  593. LOCAL SidebarTitle = Instance.new("TextLabel")
  594. SidebarTitle.Name = "SidebarTitle"
  595. SidebarTitle.Text = "MENU"
  596. SidebarTitle.Size = UDim2.new(1, -20, 0, 28)
  597. SidebarTitle.Position = UDim2.new(0, 10, 0, 8)
  598. SidebarTitle.BackgroundTransparency = 1
  599. SidebarTitle.TextColor3 = Color3.fromRGB(175, 140, 225)
  600. SidebarTitle.Font = Enum.Font.GothamBold
  601. SidebarTitle.TextSize = 10
  602. SidebarTitle.TextXAlignment = Enum.TextXAlignment.Left
  603. SidebarTitle.Parent = Sidebar
  604.  
  605. LOCAL SideContainer = Instance.new("Frame")
  606. SideContainer.Name = "SideContainer"
  607. SideContainer.Size = UDim2.new(1, -16, 1, -48)
  608. SideContainer.Position = UDim2.new(0, 8, 0, 42)
  609. SideContainer.BackgroundTransparency = 1
  610. SideContainer.Parent = Sidebar
  611.  
  612. LOCAL SideLayout = Instance.new("UIListLayout")
  613. SideLayout.SortOrder = Enum.SortOrder.LayoutOrder
  614. SideLayout.Padding = UDim.new(0, 5)
  615. SideLayout.Parent = SideContainer
  616.  
  617. LOCAL Tabs = {"Visual", "Combat", "Player", "Misc", "SC", "Info"}
  618. LOCAL TabButtons = {}
  619. LOCAL TabPages = {}
  620.  
  621. LOCAL FUNCTION selectTab(name)
  622.     State.ActiveTab = name
  623.  
  624.     FOR tabName, page IN pairs(TabPages) do
  625.         page.Visible = (tabName == name)
  626.     END
  627.  
  628.     FOR tabName, button IN pairs(TabButtons) do
  629.         LOCAL selected = (tabName == name)
  630.  
  631.         IF selected THEN
  632.             button.BackgroundColor3 = Color3.fromRGB(65, 38, 105)
  633.             button.TextColor3 = Color3.fromRGB(235, 215, 255)
  634.         ELSE
  635.             button.BackgroundColor3 = Color3.fromRGB(21, 16, 32)
  636.             button.TextColor3 = Color3.fromRGB(155, 140, 180)
  637.         END
  638.  
  639.         LOCAL indicator = button:FindFirstChild("ActiveIndicator")
  640.         IF indicator THEN
  641.             indicator.Visible = selected
  642.         END
  643.     END
  644. END
  645.  
  646. FOR idx, name IN ipairs(Tabs) do
  647.     LOCAL btn = Instance.new("TextButton")
  648.     btn.Name = name
  649.     btn.Text = name
  650.     btn.Size = UDim2.new(1, 0, 0, 38)
  651.     btn.BackgroundColor3 = Color3.fromRGB(21, 16, 32)
  652.     btn.TextColor3 = Color3.fromRGB(155, 140, 180)
  653.     btn.Font = Enum.Font.GothamSemibold
  654.     btn.TextSize = 10
  655.     btn.TextXAlignment = Enum.TextXAlignment.Left
  656.     btn.BorderSizePixel = 0
  657.     btn.LayoutOrder = idx
  658.     btn.AutoButtonColor = FALSE
  659.     btn.Parent = SideContainer
  660.  
  661.     LOCAL corner = Instance.new("UICorner")
  662.     corner.CornerRadius = UDim.new(0, 7)
  663.     corner.Parent = btn
  664.  
  665.     LOCAL indicator = Instance.new("Frame")
  666.     indicator.Name = "ActiveIndicator"
  667.     indicator.Size = UDim2.new(0, 3, 0, 22)
  668.     indicator.Position = UDim2.new(0, 0, 0.5, -11)
  669.     indicator.BackgroundColor3 = Color3.fromRGB(180, 80, 255)
  670.     indicator.BorderSizePixel = 0
  671.     indicator.Visible = FALSE
  672.     indicator.Parent = btn
  673.  
  674.     LOCAL page = Instance.new("ScrollingFrame")
  675.     page.Name = name .. "Page"
  676.     page.Size = UDim2.new(1, -151, 1, -58)
  677.     page.Position = UDim2.new(0, 143, 0, 50)
  678.     page.BackgroundTransparency = 1
  679.     page.BorderSizePixel = 0
  680.     page.ScrollBarThickness = 5
  681.     page.ScrollBarImageColor3 = Color3.fromRGB(160, 50, 255)
  682.     page.AutomaticCanvasSize = Enum.AutomaticSize.Y
  683.     page.CanvasSize = UDim2.new(0, 0, 0, 0)
  684.     page.Visible = FALSE
  685.     page.Parent = MainFrame
  686.  
  687.     LOCAL pageLayout = Instance.new("UIListLayout")
  688.     pageLayout.SortOrder = Enum.SortOrder.LayoutOrder
  689.     pageLayout.Padding = UDim.new(0, 6)
  690.     pageLayout.Parent = page
  691.  
  692.     TabButtons[name] = btn
  693.     TabPages[name] = page
  694.  
  695.     btn.MouseButton1Click:CONNECT(FUNCTION()
  696.         selectTab(name)
  697.     END)
  698. END
  699.  
  700. selectTab("Visual")
  701.  
  702. -- ═══════════════════════════════════════════════════════════
  703. -- UI ELEMENT HELPERS
  704. -- ═══════════════════════════════════════════════════════════
  705.  
  706. LOCAL FUNCTION createHeader(parent, text, ORDER)
  707.     LOCAL label = Instance.new("TextLabel")
  708.     label.Size = UDim2.new(1, 0, 0, 28)
  709.     label.BackgroundColor3 = Color3.fromRGB(30, 22, 50)
  710.     label.Text = "   " .. text
  711.     label.TextColor3 = Color3.fromRGB(200, 170, 255)
  712.     label.Font = Enum.Font.GothamBold
  713.     label.TextSize = 11
  714.     label.TextXAlignment = Enum.TextXAlignment.Left
  715.     label.LayoutOrder = ORDER
  716.     label.Parent = parent
  717.     Instance.new("UICorner", label).CornerRadius = UDim.new(0, 6)
  718. END
  719.  
  720. LOCAL FUNCTION stylePremiumButton(btn)
  721.     Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6)
  722.  
  723.     LOCAL stroke = Instance.new("UIStroke")
  724.     stroke.Color = Color3.fromRGB(100, 50, 180)
  725.     stroke.Thickness = 1
  726.     stroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
  727.     stroke.Parent = btn
  728.  
  729.     LOCAL grad = Instance.new("UIGradient")
  730.     grad.Color = ColorSequence.new({
  731.         ColorSequenceKeypoint.new(0, Color3.fromRGB(160, 50, 255)),
  732.         ColorSequenceKeypoint.new(0.5, Color3.fromRGB(80, 30, 140)),
  733.         ColorSequenceKeypoint.new(1, Color3.fromRGB(160, 50, 255)),
  734.     })
  735.     grad.Parent = stroke
  736.     registerGradient(grad)
  737.  
  738.     LOCAL origColor = btn.BackgroundColor3
  739.     btn.MouseEnter:CONNECT(FUNCTION()
  740.         TweenService:CREATE(btn, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(80, 45, 140)}):Play()
  741.         TweenService:CREATE(stroke, TweenInfo.new(0.2), {Color = Color3.fromRGB(180, 80, 255)}):Play()
  742.     END)
  743.     btn.MouseLeave:CONNECT(FUNCTION()
  744.         TweenService:CREATE(btn, TweenInfo.new(0.2), {BackgroundColor3 = origColor}):Play()
  745.         TweenService:CREATE(stroke, TweenInfo.new(0.2), {Color = Color3.fromRGB(100, 50, 180)}):Play()
  746.     END)
  747. END
  748.  
  749. LOCAL FUNCTION createToggle(parent, text, DEFAULT, callback, ORDER)
  750.     LOCAL frame = Instance.new("Frame")
  751.     frame.Size = UDim2.new(1, 0, 0, 36)
  752.     frame.BackgroundColor3 = Color3.fromRGB(22, 17, 34)
  753.     frame.LayoutOrder = ORDER
  754.     frame.Parent = parent
  755.     Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 6)
  756.  
  757.     LOCAL label = Instance.new("TextLabel")
  758.     label.Text = "   " .. text
  759.     label.Size = UDim2.new(1, -70, 1, 0)
  760.     label.BackgroundTransparency = 1
  761.     label.TextColor3 = Color3.fromRGB(220, 200, 245)
  762.     label.Font = Enum.Font.Gotham
  763.     label.TextSize = 11.5
  764.     label.TextXAlignment = Enum.TextXAlignment.Left
  765.     label.Parent = frame
  766.  
  767.     LOCAL btn = Instance.new("TextButton")
  768.     btn.Size = UDim2.new(0, 52, 0, 24)
  769.     btn.Position = UDim2.new(1, -62, 0.5, -12)
  770.     btn.BackgroundColor3 = DEFAULT AND Color3.fromRGB(130, 60, 240) OR Color3.fromRGB(50, 45, 65)
  771.     btn.Text = DEFAULT AND "ON" OR "OFF"
  772.     btn.TextColor3 = Color3.fromRGB(255, 255, 255)
  773.     btn.Font = Enum.Font.GothamBold
  774.     btn.TextSize = 10
  775.     btn.Parent = frame
  776.  
  777.     stylePremiumButton(btn)
  778.  
  779.     LOCAL isOn = DEFAULT
  780.     btn.MouseButton1Click:CONNECT(FUNCTION()
  781.         isOn = NOT isOn
  782.         btn.BackgroundColor3 = isOn AND Color3.fromRGB(130, 60, 240) OR Color3.fromRGB(50, 45, 65)
  783.         btn.Text = isOn AND "ON" OR "OFF"
  784.         IF callback THEN callback(isOn) END
  785.     END)
  786.     RETURN btn
  787. END
  788.  
  789. -- ═══════════════════════════════════════════════════════════
  790. -- VISUAL TAB — ESP & Generator HUD
  791. -- ═══════════════════════════════════════════════════════════
  792. LOCAL vPage = TabPages.Visual
  793. createHeader(vPage, "👁️ Visual Settings", 1)
  794.  
  795. createToggle(vPage, "ESP Players (Green)", FALSE, FUNCTION(v)
  796.     State.ESPPlayers = v
  797.     IF NOT v THEN cleanESP() END
  798. END, 2)
  799.  
  800. createToggle(vPage, "ESP Killer (Red)", FALSE, FUNCTION(v)
  801.     State.ESPKiller = v
  802.     IF NOT v THEN cleanESP() END
  803. END, 3)
  804.  
  805. createToggle(vPage, "ESP Generators", FALSE, FUNCTION(v)
  806.     State.ESPGenerators = v
  807.     IF NOT v THEN cleanESP() END
  808. END, 4)
  809.  
  810. createToggle(vPage, "Generator Progress Details", FALSE, FUNCTION(v)
  811.     State.ESPGenProgress = v
  812. END, 5)
  813.  
  814. -- Generator HUD
  815. LOCAL GenHUD = Instance.new("Frame")
  816. GenHUD.Name = "REINGenHUD"
  817. GenHUD.Size = UDim2.new(0, 190, 0, 95)
  818. GenHUD.Position = UDim2.new(0.8, -10, 0.15, 0)
  819. GenHUD.BackgroundColor3 = Color3.fromRGB(18, 12, 28)
  820. GenHUD.BorderSizePixel = 0
  821. GenHUD.Active = TRUE
  822. GenHUD.Draggable = TRUE
  823. GenHUD.Visible = FALSE
  824. GenHUD.Parent = ScreenGui
  825.  
  826. Instance.new("UICorner", GenHUD).CornerRadius = UDim.new(0, 8)
  827.  
  828. LOCAL HUDStroke = Instance.new("UIStroke")
  829. HUDStroke.Color = Color3.fromRGB(255, 255, 255)
  830. HUDStroke.Thickness = 1.8
  831. HUDStroke.Parent = GenHUD
  832.  
  833. LOCAL HUDGrad = Instance.new("UIGradient")
  834. HUDGrad.Color = ColorSequence.new({
  835.     ColorSequenceKeypoint.new(0, Color3.fromRGB(160, 50, 255)),
  836.     ColorSequenceKeypoint.new(0.5, Color3.fromRGB(30, 10, 60)),
  837.     ColorSequenceKeypoint.new(1, Color3.fromRGB(160, 50, 255)),
  838. })
  839. HUDGrad.Parent = HUDStroke
  840. registerGradient(HUDGrad)
  841.  
  842. LOCAL HUDTitle = Instance.new("TextLabel")
  843. HUDTitle.Text = "⚡ GENERATORS LEFT"
  844. HUDTitle.Size = UDim2.new(1, 0, 0, 26)
  845. HUDTitle.BackgroundTransparency = 1
  846. HUDTitle.TextColor3 = Color3.fromRGB(180, 140, 255)
  847. HUDTitle.Font = Enum.Font.GothamBold
  848. HUDTitle.TextSize = 10
  849. HUDTitle.Parent = GenHUD
  850.  
  851. LOCAL HUDContent = Instance.new("TextLabel")
  852. HUDContent.Text = "Calculating..."
  853. HUDContent.Size = UDim2.new(1, -16, 1, -26)
  854. HUDContent.Position = UDim2.new(0, 8, 0, 24)
  855. HUDContent.BackgroundTransparency = 1
  856. HUDContent.TextColor3 = Color3.fromRGB(220, 200, 240)
  857. HUDContent.Font = Enum.Font.GothamSemibold
  858. HUDContent.TextSize = 10.5
  859. HUDContent.TextXAlignment = Enum.TextXAlignment.Left
  860. HUDContent.TextYAlignment = Enum.TextYAlignment.Top
  861. HUDContent.Parent = GenHUD
  862.  
  863. createToggle(vPage, "Generator Counter HUD", FALSE, FUNCTION(v)
  864.     State.GenHUDVisible = v
  865.     GenHUD.Visible = v
  866. END, 6)
  867.  
  868. -- ESP Helpers
  869. LOCAL FUNCTION getGenerators()
  870.     LOCAL gens = {}
  871.     pcall(FUNCTION()
  872.         FOR _, obj IN ipairs(workspace:GetDescendants()) do
  873.             IF obj.Name:LOWER():find("generator") AND obj:IsA("Model") THEN
  874.                 TABLE.insert(gens, obj)
  875.             END
  876.         END
  877.     END)
  878.     RETURN gens
  879. END
  880.  
  881. LOCAL FUNCTION getGenProgress(gen)
  882.     LOCAL prog = gen:FindFirstChild("Progress") OR gen:FindFirstChild("progress") OR gen:FindFirstChild("Percent")
  883.     IF prog AND prog:IsA("ValueBase") THEN RETURN prog.Value END
  884.     LOCAL attr = gen:GetAttribute("Progress") OR gen:GetAttribute("progress")
  885.     IF attr THEN RETURN attr END
  886.     LOCAL bGui = gen:FindFirstChildOfClass("BillboardGui") OR gen:FindFirstChildOfClass("SurfaceGui")
  887.     IF bGui THEN
  888.         LOCAL lbl = bGui:FindFirstChildOfClass("TextLabel")
  889.         IF lbl THEN
  890.             LOCAL num = lbl.Text:MATCH("(%d+)")
  891.             IF num THEN RETURN tonumber(num) END
  892.         END
  893.     END
  894.     RETURN nil
  895. END
  896.  
  897. LOCAL FUNCTION updateGenHUD()
  898.     IF NOT State.GenHUDVisible THEN RETURN END
  899.     LOCAL gens = getGenerators()
  900.     LOCAL total = #gens
  901.     LOCAL completed, active = 0, 0
  902.     FOR _, g IN ipairs(gens) do
  903.         LOCAL p = getGenProgress(g)
  904.         IF p AND p >= 100 THEN completed = completed + 1 ELSE active = active + 1 END
  905.     END
  906.     HUDContent.Text = string.format("Unfinished: %d\nCompleted: %d\nTotal Gens: %d\nEscape: %s",
  907.         active, completed, total, active == 0 AND "READY" OR "IN PROGRESS")
  908. END
  909.  
  910. LOCAL ESPFolder = Instance.new("Folder")
  911. ESPFolder.Name = "REIN_ESP"
  912. pcall(FUNCTION() ESPFolder.Parent = CoreGui END)
  913. IF NOT ESPFolder.Parent THEN ESPFolder.Parent = ScreenGui END
  914.  
  915. FUNCTION cleanESP()
  916.     pcall(FUNCTION()
  917.         FOR _, obj IN ipairs(ESPFolder:GetChildren()) do obj:Destroy() END
  918.         FOR _, p IN ipairs(Players:GetPlayers()) do
  919.             IF p.Character THEN
  920.                 LOCAL h = p.Character:FindFirstChild("REIN_Highlight")
  921.                 IF h THEN h:Destroy() END
  922.                 LOCAL b = p.Character:FindFirstChild("REIN_Billboard")
  923.                 IF b THEN b:Destroy() END
  924.             END
  925.         END
  926.         FOR _, g IN ipairs(getGenerators()) do
  927.             LOCAL h = g:FindFirstChild("REIN_Highlight")
  928.             IF h THEN h:Destroy() END
  929.             LOCAL b = g:FindFirstChild("REIN_Billboard")
  930.             IF b THEN b:Destroy() END
  931.         END
  932.     END)
  933. END
  934.  
  935. LOCAL FUNCTION applyHighlight(object, color, name, isGen)
  936.     IF NOT object THEN RETURN END
  937.     LOCAL highlight = object:FindFirstChild("REIN_Highlight")
  938.     IF NOT highlight THEN
  939.         highlight = Instance.new("Highlight")
  940.         highlight.Name = "REIN_Highlight"
  941.         highlight.FillColor = color
  942.         highlight.FillTransparency = 0.5
  943.         highlight.OutlineColor = color
  944.         highlight.OutlineTransparency = 0.1
  945.         highlight.Adornee = object
  946.         highlight.Parent = object
  947.     ELSE
  948.         highlight.OutlineColor = color
  949.         highlight.FillColor = color
  950.     END
  951.     LOCAL bill = object:FindFirstChild("REIN_Billboard")
  952.     IF NOT bill THEN
  953.         bill = Instance.new("BillboardGui")
  954.         bill.Name = "REIN_Billboard"
  955.         bill.Size = UDim2.new(0, 120, 0, 45)
  956.         bill.AlwaysOnTop = TRUE
  957.         bill.StudsOffset = Vector3.new(0, 3.5, 0)
  958.         bill.Adornee = object:IsA("Model") AND (object.PrimaryPart OR object:FindFirstChild("HumanoidRootPart") OR object:FindFirstChildOfClass("Part")) OR object
  959.         bill.Parent = object
  960.         LOCAL t = Instance.new("TextLabel")
  961.         t.BackgroundTransparency = 1
  962.         t.Size = UDim2.new(1, 0, 1, 0)
  963.         t.TextColor3 = color
  964.         t.Font = Enum.Font.GothamBold
  965.         t.TextSize = 10
  966.         t.TextStrokeTransparency = 0.4
  967.         t.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
  968.         t.Text = name
  969.         t.Parent = bill
  970.     END
  971.     LOCAL lbl = bill:FindFirstChildOfClass("TextLabel")
  972.     IF lbl AND LocalPlayer.Character AND LocalPlayer.Character:FindFirstChild("HumanoidRootPart") THEN
  973.         LOCAL myHrp = LocalPlayer.Character.HumanoidRootPart
  974.         LOCAL tPart = object:IsA("Model") AND (object.PrimaryPart OR object:FindFirstChild("HumanoidRootPart") OR object:FindFirstChildOfClass("Part")) OR object
  975.         IF tPart THEN
  976.             LOCAL dist = math.round((myHrp.Position - tPart.Position).Magnitude)
  977.             IF isGen AND State.ESPGenProgress THEN
  978.                 LOCAL prog = getGenProgress(object) OR 0
  979.                 lbl.Text = string.format("%s\n[%d%%] | %d studs", name, prog, dist)
  980.             ELSE
  981.                 lbl.Text = string.format("%s\n%d studs", name, dist)
  982.             END
  983.             lbl.TextColor3 = color
  984.         END
  985.     END
  986. END
  987.  
  988. LOCAL FUNCTION runESPUpdate()
  989.     -- Players ESP — GREEN for survivors, RED for killer
  990.     IF State.ESPPlayers OR State.ESPKiller THEN
  991.         FOR _, p IN ipairs(Players:GetPlayers()) do
  992.             IF p ~= LocalPlayer AND p.Character AND p.Character:FindFirstChild("HumanoidRootPart") THEN
  993.                 LOCAL isKiller = (p.Team AND p.Team.Name:LOWER():find("killer")) OR p.Character:FindFirstChild("Knife") OR p.Character:FindFirstChild("Weapon")
  994.                 IF isKiller AND State.ESPKiller THEN
  995.                     applyHighlight(p.Character, TeamColors.Killer, p.Name .. " [KILLER]", FALSE)
  996.                 ELSEIF NOT isKiller AND State.ESPPlayers THEN
  997.                     applyHighlight(p.Character, TeamColors.Survivors, p.Name .. " [SURVIVOR]", FALSE)
  998.                 ELSE
  999.                     LOCAL h = p.Character:FindFirstChild("REIN_Highlight")
  1000.                     IF h THEN h:Destroy() END
  1001.                     LOCAL b = p.Character:FindFirstChild("REIN_Billboard")
  1002.                     IF b THEN b:Destroy() END
  1003.                 END
  1004.             END
  1005.         END
  1006.     END
  1007.     -- Generator ESP
  1008.     IF State.ESPGenerators THEN
  1009.         FOR _, gen IN ipairs(getGenerators()) do
  1010.             applyHighlight(gen, TeamColors.Generator, "Generator", TRUE)
  1011.         END
  1012.     END
  1013. END
  1014.  
  1015. TABLE.insert(State.Connections, RunService.Heartbeat:CONNECT(FUNCTION()
  1016.     IF tick() % 0.3 < 0.05 THEN
  1017.         pcall(runESPUpdate)
  1018.         pcall(updateGenHUD)
  1019.     END
  1020. END))
  1021.  
  1022. -- ═══════════════════════════════════════════════════════════
  1023. -- COMBAT TAB — Auto Parry & God Mode
  1024. -- ═══════════════════════════════════════════════════════════
  1025. LOCAL cPage = TabPages.Combat
  1026. createHeader(cPage, "⚔️ Combat Systems", 1)
  1027.  
  1028. createToggle(cPage, "Auto Parry (Comming Soon)", FALSE, FUNCTION(v) State.AutoParry = v END, 2)
  1029. createToggle(cPage, "God Mode (Comming Soon)", FALSE, FUNCTION(v) State.GodMode = v END, 3)
  1030.  
  1031. -- Auto Parry — using ReplicatedStorage.Items.ParryClient
  1032. LOCAL parryDebounce = FALSE
  1033. LOCAL FUNCTION tryParry()
  1034.     IF parryDebounce OR NOT State.AutoParry THEN RETURN END
  1035.     parryDebounce = TRUE
  1036.  
  1037.     -- Find parry remote dynamically
  1038.     LOCAL pRemote = ParryClient
  1039.     IF NOT pRemote THEN
  1040.         pcall(FUNCTION()
  1041.             pRemote = ReplicatedStorage:FindFirstChild("Items") AND ReplicatedStorage.Items:FindFirstChild("ParryClient")
  1042.         END)
  1043.     END
  1044.     IF NOT pRemote THEN
  1045.         pcall(FUNCTION()
  1046.             LOCAL parryDagger = ItemRemotes AND ItemRemotes:FindFirstChild("Parrying Dagger")
  1047.             pRemote = parryDagger AND parryDagger:FindFirstChild("parry")
  1048.         END)
  1049.     END
  1050.     -- Deep search fallback
  1051.     IF NOT pRemote THEN
  1052.         pcall(FUNCTION()
  1053.             FOR _, v IN ipairs(ReplicatedStorage:GetDescendants()) do
  1054.                 IF (v.Name == "ParryClient" OR v.Name == "parry") AND (v:IsA("RemoteEvent") OR v:IsA("RemoteFunction") OR v:IsA("BindableEvent")) THEN
  1055.                     pRemote = v
  1056.                     break
  1057.                 END
  1058.             END
  1059.         END)
  1060.     END
  1061.  
  1062.     IF pRemote THEN
  1063.         pcall(FUNCTION()
  1064.             IF pRemote:IsA("RemoteEvent") THEN
  1065.                 pRemote:FireServer()
  1066.             ELSEIF pRemote:IsA("BindableEvent") THEN
  1067.                 pRemote:Fire()
  1068.             ELSEIF pRemote:IsA("RemoteFunction") THEN
  1069.                 pRemote:InvokeServer()
  1070.             ELSE
  1071.                 pRemote:FireServer()
  1072.             END
  1073.         END)
  1074.     END
  1075.     task.delay(0.15, FUNCTION() parryDebounce = FALSE END)
  1076. END
  1077.  
  1078. LOCAL FUNCTION checkKillerStrike()
  1079.     IF NOT State.AutoParry THEN RETURN END
  1080.     LOCAL CHAR = LocalPlayer.Character
  1081.     LOCAL hrp = CHAR AND CHAR:FindFirstChild("HumanoidRootPart")
  1082.     IF NOT hrp THEN RETURN END
  1083.  
  1084.     FOR _, k IN ipairs(Players:GetPlayers()) do
  1085.         IF k ~= LocalPlayer AND k.Character AND k.Character:FindFirstChild("HumanoidRootPart") THEN
  1086.             LOCAL kHrp = k.Character.HumanoidRootPart
  1087.             LOCAL dist = (hrp.Position - kHrp.Position).Magnitude
  1088.  
  1089.             IF dist >= 2 AND dist <= 14 THEN
  1090.                 LOCAL isKiller = (k.Team AND k.Team.Name:LOWER():find("killer")) OR k.Character:FindFirstChild("Knife") OR k.Character:FindFirstChild("Weapon")
  1091.                 IF isKiller THEN
  1092.                     LOCAL hum = k.Character:FindFirstChildOfClass("Humanoid")
  1093.                     IF hum THEN
  1094.                         LOCAL anims = hum:GetPlayingAnimationTracks()
  1095.                         FOR _, a IN ipairs(anims) do
  1096.                             LOCAL n = a.Name:LOWER()
  1097.                             IF n:find("attack") OR n:find("slash") OR n:find("swing") OR n:find("strike") OR n:find("hit") OR n:find("lunge") THEN
  1098.                                 tryParry()
  1099.                                 RETURN
  1100.                             END
  1101.                         END
  1102.                     END
  1103.                 END
  1104.             END
  1105.         END
  1106.     END
  1107. END
  1108.  
  1109. TABLE.insert(State.Connections, RunService.Heartbeat:CONNECT(checkKillerStrike))
  1110.  
  1111. IF AttackHitRemote THEN
  1112.     TABLE.insert(State.Connections, AttackHitRemote.OnClientEvent:CONNECT(FUNCTION()
  1113.         IF State.AutoParry THEN tryParry() END
  1114.     END))
  1115. END
  1116.  
  1117. IF LungeDetectRemote THEN
  1118.     TABLE.insert(State.Connections, LungeDetectRemote.OnClientEvent:CONNECT(FUNCTION(killer)
  1119.         IF State.AutoParry AND killer AND killer ~= LocalPlayer THEN
  1120.             LOCAL CHAR = LocalPlayer.Character
  1121.             LOCAL hrp = CHAR AND CHAR:FindFirstChild("HumanoidRootPart")
  1122.             IF hrp AND killer.Character AND killer.Character:FindFirstChild("HumanoidRootPart") THEN
  1123.                 LOCAL dist = (hrp.Position - killer.Character.HumanoidRootPart.Position).Magnitude
  1124.                 IF dist <= 14 THEN tryParry() END
  1125.             END
  1126.         END
  1127.     END))
  1128. END
  1129.  
  1130. -- ═══════════════════════════════════════════════════════════
  1131. -- GOD MODE — HP 999999 + Space (hook/continue) works normally
  1132. -- ═══════════════════════════════════════════════════════════
  1133. -- Hook namecall to block INCOMING damage only (not outgoing killer actions)
  1134. LOCAL oldNamecall
  1135. oldNamecall = hookmetamethod(game, "__namecall", newcclosure(FUNCTION(SELF, ...)
  1136.     LOCAL method = getnamecallmethod()
  1137.     IF method == "FireServer" AND State.GodMode THEN
  1138.         LOCAL isLocalKiller = LocalPlayer.Team AND LocalPlayer.Team.Name:LOWER():find("killer")
  1139.         LOCAL name = SELF.Name:LOWER()
  1140.         -- Block incoming damage/hook remotes ONLY for survivors
  1141.         -- Do NOT block: hook (when you're killer), continue, space, interact, generator, skill
  1142.         IF NOT isLocalKiller THEN
  1143.             IF name:find("takedamage") OR name:find("injure") OR name:find("down") THEN
  1144.                 RETURN
  1145.             END
  1146.             IF SELF == AttackHitRemote THEN
  1147.                 RETURN
  1148.             END
  1149.         END
  1150.     END
  1151.     RETURN oldNamecall(SELF, ...)
  1152. END))
  1153.  
  1154. -- God Mode health loop — sets HP to 999999 continuously
  1155. TABLE.insert(State.Connections, RunService.Heartbeat:CONNECT(FUNCTION()
  1156.     IF State.GodMode AND LocalPlayer.Character THEN
  1157.         LOCAL hum = LocalPlayer.Character:FindFirstChildOfClass("Humanoid")
  1158.         IF hum THEN
  1159.             pcall(FUNCTION()
  1160.                 IF hum.MaxHealth ~= 999999 THEN hum.MaxHealth = 999999 END
  1161.                 IF hum.Health < 999999 THEN hum.Health = 999999 END
  1162.             END)
  1163.         END
  1164.     END
  1165. END))
  1166.  
  1167. -- ═══════════════════════════════════════════════════════════
  1168. -- PLAYER TAB — Player List, Details, Teleport & Speed
  1169. -- ═══════════════════════════════════════════════════════════
  1170. LOCAL pPage = TabPages.Player
  1171.  
  1172. LOCAL PlayerContent = Instance.new("Frame")
  1173. PlayerContent.Size = UDim2.new(1, 0, 1, 0)
  1174. PlayerContent.BackgroundTransparency = 1
  1175. PlayerContent.LayoutOrder = 1
  1176. PlayerContent.Parent = pPage
  1177.  
  1178. LOCAL PlayerLeft = Instance.new("ScrollingFrame")
  1179. PlayerLeft.Size = UDim2.new(0, 170, 1, 0)
  1180. PlayerLeft.BackgroundTransparency = 1
  1181. PlayerLeft.ScrollBarThickness = 4
  1182. PlayerLeft.Parent = PlayerContent
  1183.  
  1184. LOCAL LeftLayout = Instance.new("UIListLayout")
  1185. LeftLayout.SortOrder = Enum.SortOrder.LayoutOrder
  1186. LeftLayout.Padding = UDim.new(0, 4)
  1187. LeftLayout.Parent = PlayerLeft
  1188.  
  1189. LOCAL PlayerRight = Instance.new("Frame")
  1190. PlayerRight.Size = UDim2.new(1, -180, 1, 0)
  1191. PlayerRight.Position = UDim2.new(0, 180, 0, 0)
  1192. PlayerRight.BackgroundColor3 = Color3.fromRGB(22, 17, 34)
  1193. PlayerRight.BorderSizePixel = 0
  1194. PlayerRight.Parent = PlayerContent
  1195. Instance.new("UICorner", PlayerRight).CornerRadius = UDim.new(0, 8)
  1196.  
  1197. LOCAL RightLayout = Instance.new("UIListLayout")
  1198. RightLayout.SortOrder = Enum.SortOrder.LayoutOrder
  1199. RightLayout.Padding = UDim.new(0, 8)
  1200. RightLayout.Parent = PlayerRight
  1201.  
  1202. LOCAL DetailTitle = Instance.new("TextLabel")
  1203. DetailTitle.Text = "🔍 PLAYER DETAILS"
  1204. DetailTitle.Size = UDim2.new(1, 0, 0, 24)
  1205. DetailTitle.BackgroundTransparency = 1
  1206. DetailTitle.TextColor3 = Color3.fromRGB(180, 140, 255)
  1207. DetailTitle.Font = Enum.Font.GothamBold
  1208. DetailTitle.TextSize = 11
  1209. DetailTitle.Parent = PlayerRight
  1210.  
  1211. LOCAL DetailText = Instance.new("TextLabel")
  1212. DetailText.Text = "Select a player from the list."
  1213. DetailText.Size = UDim2.new(1, -20, 0, 80)
  1214. DetailText.Position = UDim2.new(0, 10, 0, 0)
  1215. DetailText.BackgroundTransparency = 1
  1216. DetailText.TextColor3 = Color3.fromRGB(210, 195, 235)
  1217. DetailText.Font = Enum.Font.Gotham
  1218. DetailText.TextSize = 11
  1219. DetailText.TextXAlignment = Enum.TextXAlignment.Left
  1220. DetailText.TextYAlignment = Enum.TextYAlignment.Top
  1221. DetailText.Parent = PlayerRight
  1222.  
  1223. -- Teleport Button
  1224. LOCAL TeleportBtn = Instance.new("TextButton")
  1225. TeleportBtn.Text = "Teleport To Player"
  1226. TeleportBtn.Size = UDim2.new(1, -20, 0, 28)
  1227. TeleportBtn.BackgroundColor3 = Color3.fromRGB(90, 50, 200)
  1228. TeleportBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
  1229. TeleportBtn.Font = Enum.Font.GothamBold
  1230. TeleportBtn.TextSize = 11
  1231. TeleportBtn.Visible = FALSE
  1232. TeleportBtn.Parent = PlayerRight
  1233. Instance.new("UICorner", TeleportBtn).CornerRadius = UDim.new(0, 6)
  1234.  
  1235. TeleportBtn.MouseButton1Click:CONNECT(FUNCTION()
  1236.     LOCAL target = State.SelectedPlayer
  1237.     IF target AND target.Character AND target.Character:FindFirstChild("HumanoidRootPart") AND LocalPlayer.Character AND LocalPlayer.Character:FindFirstChild("HumanoidRootPart") THEN
  1238.         LocalPlayer.Character.HumanoidRootPart.CFrame = target.Character.HumanoidRootPart.CFrame * CFrame.new(0, 0, 3)
  1239.     END
  1240. END)
  1241.  
  1242. -- Walk Speed controls
  1243. LOCAL SpeedTitle = Instance.new("TextLabel")
  1244. SpeedTitle.Text = "🏃 WALK SPEED"
  1245. SpeedTitle.Size = UDim2.new(1, 0, 0, 20)
  1246. SpeedTitle.BackgroundTransparency = 1
  1247. SpeedTitle.TextColor3 = Color3.fromRGB(180, 140, 255)
  1248. SpeedTitle.Font = Enum.Font.GothamBold
  1249. SpeedTitle.TextSize = 11
  1250. SpeedTitle.Parent = PlayerRight
  1251.  
  1252. LOCAL SpeedFrame = Instance.new("Frame")
  1253. SpeedFrame.Size = UDim2.new(1, -20, 0, 32)
  1254. SpeedFrame.BackgroundTransparency = 1
  1255. SpeedFrame.Parent = PlayerRight
  1256.  
  1257. LOCAL SpeedInput = Instance.new("TextBox")
  1258. SpeedInput.Text = "16"
  1259. SpeedInput.PlaceholderText = "Speed (5-100)"
  1260. SpeedInput.Size = UDim2.new(0.4, 0, 1, 0)
  1261. SpeedInput.BackgroundColor3 = Color3.fromRGB(30, 25, 45)
  1262. SpeedInput.TextColor3 = Color3.fromRGB(255, 255, 255)
  1263. SpeedInput.Font = Enum.Font.Gotham
  1264. SpeedInput.TextSize = 11
  1265. SpeedInput.Parent = SpeedFrame
  1266. Instance.new("UICorner", SpeedInput).CornerRadius = UDim.new(0, 6)
  1267.  
  1268. LOCAL SpeedToggle = Instance.new("TextButton")
  1269. SpeedToggle.Text = "Speed: OFF"
  1270. SpeedToggle.Size = UDim2.new(0.56, 0, 1, 0)
  1271. SpeedToggle.Position = UDim2.new(0.44, 0, 0, 0)
  1272. SpeedToggle.BackgroundColor3 = Color3.fromRGB(50, 45, 65)
  1273. SpeedToggle.TextColor3 = Color3.fromRGB(255, 255, 255)
  1274. SpeedToggle.Font = Enum.Font.GothamBold
  1275. SpeedToggle.TextSize = 11
  1276. SpeedToggle.Parent = SpeedFrame
  1277. stylePremiumButton(SpeedToggle)
  1278.  
  1279. SpeedToggle.MouseButton1Click:CONNECT(FUNCTION()
  1280.     State.SpeedEnabled = NOT State.SpeedEnabled
  1281.     SpeedToggle.Text = State.SpeedEnabled AND "Speed: ON" OR "Speed: OFF"
  1282.     SpeedToggle.BackgroundColor3 = State.SpeedEnabled AND Color3.fromRGB(130, 60, 240) OR Color3.fromRGB(50, 45, 65)
  1283. END)
  1284.  
  1285. SpeedInput:GetPropertyChangedSignal("Text"):CONNECT(FUNCTION()
  1286.     LOCAL val = tonumber(SpeedInput.Text)
  1287.     IF val THEN State.WalkSpeed = math.clamp(val, 5, 100) END
  1288. END)
  1289.  
  1290. TABLE.insert(State.Connections, RunService.Heartbeat:CONNECT(FUNCTION()
  1291.     IF State.SpeedEnabled AND LocalPlayer.Character THEN
  1292.         LOCAL hum = LocalPlayer.Character:FindFirstChildOfClass("Humanoid")
  1293.         IF hum THEN hum.WalkSpeed = State.WalkSpeed END
  1294.     END
  1295. END))
  1296.  
  1297. LOCAL FUNCTION rebuildPlayerList()
  1298.     FOR _, c IN ipairs(PlayerLeft:GetChildren()) do
  1299.         IF c:IsA("TextButton") THEN c:Destroy() END
  1300.     END
  1301.     LOCAL idx = 1
  1302.     FOR _, p IN ipairs(Players:GetPlayers()) do
  1303.         LOCAL btn = Instance.new("TextButton")
  1304.         btn.Size = UDim2.new(1, -8, 0, 30)
  1305.         btn.BackgroundColor3 = (State.SelectedPlayer == p) AND Color3.fromRGB(70, 40, 120) OR Color3.fromRGB(28, 22, 40)
  1306.         btn.Text = "  " .. p.Name
  1307.         btn.TextColor3 = (State.SelectedPlayer == p) AND Color3.fromRGB(230, 200, 255) OR Color3.fromRGB(195, 185, 215)
  1308.         btn.Font = Enum.Font.GothamBold
  1309.         btn.TextSize = 11
  1310.         btn.TextXAlignment = Enum.TextXAlignment.Left
  1311.         btn.LayoutOrder = idx
  1312.         btn.Parent = PlayerLeft
  1313.         Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6)
  1314.  
  1315.         btn.MouseButton1Click:CONNECT(FUNCTION()
  1316.             State.SelectedPlayer = p
  1317.             rebuildPlayerList()
  1318.             LOCAL team = p.Team AND p.Team.Name OR "Unknown"
  1319.             LOCAL hp = 100
  1320.             pcall(FUNCTION()
  1321.                 IF p.Character AND p.Character:FindFirstChildOfClass("Humanoid") THEN
  1322.                     hp = math.round(p.Character:FindFirstChildOfClass("Humanoid").Health)
  1323.                 END
  1324.             END)
  1325.             DetailText.Text = string.format("Name: %s\nTeam: %s\nHealth: %d\nAccount Age: %d days\nUserId: %d",
  1326.                 p.Name, team, hp, p.AccountAge OR 0, p.UserId)
  1327.             TeleportBtn.Visible = TRUE
  1328.         END)
  1329.         idx = idx + 1
  1330.     END
  1331.     PlayerLeft.CanvasSize = UDim2.new(0, 0, 0, idx * 34)
  1332. END
  1333.  
  1334. TABLE.insert(State.Connections, RunService.Heartbeat:CONNECT(FUNCTION()
  1335.     IF State.ActiveTab == "Player" AND tick() % 3.0 < 0.05 THEN rebuildPlayerList() END
  1336. END))
  1337. rebuildPlayerList()
  1338.  
  1339. -- ═══════════════════════════════════════════════════════════
  1340. -- MISC TAB — Perfect Generator & AFK
  1341. -- ═══════════════════════════════════════════════════════════
  1342. LOCAL mPage = TabPages.Misc
  1343. createHeader(mPage, "🔧 Generator & AFK Systems", 1)
  1344.  
  1345. createToggle(mPage, "Perfect Generator (Comming Soon)", FALSE, FUNCTION(v)
  1346.     State.PerfectGen = v
  1347. END, 2)
  1348.  
  1349. -- Helper for new Perfect Generator
  1350. LOCAL FUNCTION normalizeAngle(angle)
  1351.     angle = angle % 360
  1352.     RETURN angle < 0 AND angle + 360 OR angle
  1353. END
  1354.  
  1355. -- Perfect Generator — intercept skillcheck events and auto-succeed
  1356. LOCAL FUNCTION Autogen()
  1357.     IF NOT State.PerfectGen THEN RETURN END
  1358.     pcall(FUNCTION()
  1359.         LOCAL CheckPrompt = LocalPlayer.PlayerGui:FindFirstChild("SkillCheckPromptGui")
  1360.         IF CheckPrompt AND CheckPrompt.Check AND CheckPrompt.Check.Line AND CheckPrompt.Check.Goal THEN
  1361.             LOCAL Rotation = CheckPrompt.Check.Line.Rotation
  1362.             LOCAL GoalRotation = CheckPrompt.Check.Goal.Rotation
  1363.  
  1364.             Rotation = normalizeAngle(Rotation)
  1365.             GoalRotation = normalizeAngle(GoalRotation)
  1366.  
  1367.             LOCAL lowerSuccess = normalizeAngle(104 + GoalRotation)
  1368.             LOCAL upperSuccess = normalizeAngle(114 + GoalRotation)
  1369.  
  1370.             IF lowerSuccess <= Rotation AND Rotation <= upperSuccess THEN
  1371.                 VirtualUser:CaptureController()
  1372.                 VirtualUser:KeyPress(Enum.KeyCode.Space)
  1373.                 task.wait()
  1374.                 VirtualUser:KeyRelease(Enum.KeyCode.Space)
  1375.             END
  1376.         END
  1377.     END)
  1378. END
  1379.  
  1380. -- Lobby Stay & Neon RGB AFK Mode
  1381.   LOCAL afkTimerLabel = Instance.new("TextLabel")
  1382.   afkTimerLabel.Text = "AFK Time: 00:00:00"
  1383.   afkTimerLabel.Size = UDim2.new(1, 0, 0, 24)
  1384.   afkTimerLabel.BackgroundTransparency = 1
  1385.   afkTimerLabel.Font = Enum.Font.GothamBold
  1386.   afkTimerLabel.TextSize = 12.5
  1387.   afkTimerLabel.LayoutOrder = 4
  1388.   afkTimerLabel.Parent = mPage
  1389.  
  1390.   LOCAL PreAFKCFrame = nil
  1391.  
  1392.   createToggle(mPage, "Lobby AFK Safe Mode", FALSE, FUNCTION(v)
  1393.       State.AFKMode = v
  1394.       IF v THEN
  1395.           State.AFKStartTime = os.time()
  1396.           IF LocalPlayer.Character AND LocalPlayer.Character:FindFirstChild("HumanoidRootPart") THEN
  1397.               PreAFKCFrame = LocalPlayer.Character.HumanoidRootPart.CFrame
  1398.               LocalPlayer.Character.HumanoidRootPart.CFrame = CFrame.new(0, 5000, 0)
  1399.              
  1400.               LOCAL part = Instance.new("Part")
  1401.               part.Name = "REIN_AFKPlatform"
  1402.               part.Size = Vector3.new(12, 1.5, 12)
  1403.               part.Position = Vector3.new(0, 4995, 0)
  1404.               part.Anchored = TRUE
  1405.               part.Parent = workspace
  1406.           END
  1407.       ELSE
  1408.           afkTimerLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
  1409.           afkTimerLabel.Text = "AFK Time: 00:00:00"
  1410.          
  1411.           LOCAL plat = workspace:FindFirstChild("REIN_AFKPlatform")
  1412.           IF plat THEN plat:Destroy() END
  1413.          
  1414.           IF LocalPlayer.Character AND LocalPlayer.Character:FindFirstChild("HumanoidRootPart") THEN
  1415.               IF PreAFKCFrame THEN
  1416.                   LocalPlayer.Character.HumanoidRootPart.CFrame = PreAFKCFrame
  1417.               ELSE
  1418.                   LOCAL spawns = {}
  1419.                   FOR _, obj IN ipairs(workspace:GetDescendants()) do
  1420.                       IF obj:IsA("SpawnLocation") THEN
  1421.                           TABLE.insert(spawns, obj)
  1422.                       END
  1423.                   END
  1424.                   IF #spawns > 0 THEN
  1425.                       LOCAL randomSpawn = spawns[math.random(1, #spawns)]
  1426.                       LocalPlayer.Character.HumanoidRootPart.CFrame = randomSpawn.CFrame * CFrame.new(0, 3, 0)
  1427.                   ELSE
  1428.                       LocalPlayer.Character.HumanoidRootPart.CFrame = CFrame.new(0, 15, 0)
  1429.                   END
  1430.               END
  1431.           END
  1432.           PreAFKCFrame = nil
  1433.       END
  1434.   END, 3)
  1435.  
  1436.   TABLE.insert(State.Connections, RunService.Heartbeat:CONNECT(FUNCTION()
  1437.       IF State.AFKMode THEN
  1438.           LOCAL hue = tick() % 4 / 4
  1439.           afkTimerLabel.TextColor3 = Color3.fromHSV(hue, 1, 1)
  1440.          
  1441.           LOCAL diff = os.time() - State.AFKStartTime
  1442.           LOCAL h = math.floor(diff / 3600)
  1443.           LOCAL m = math.floor((diff % 3600) / 60)
  1444.           LOCAL s = diff % 60
  1445.           afkTimerLabel.Text = string.format("AFK Time: %02d:%02d:%02d", h, m, s)
  1446.          
  1447.           IF LocalPlayer.Character AND LocalPlayer.Character:FindFirstChild("HumanoidRootPart") THEN
  1448.               LOCAL pos = LocalPlayer.Character.HumanoidRootPart.Position
  1449.               IF pos.Y < 4500 AND workspace:FindFirstChild("REIN_AFKPlatform") THEN
  1450.                   LocalPlayer.Character.HumanoidRootPart.CFrame = CFrame.new(0, 5000, 0)
  1451.               END
  1452.           END
  1453.       END
  1454.   END))
  1455.  
  1456. -- AFK Mode display
  1457. LOCAL afkTimerLabel = Instance.new("TextLabel")
  1458. afkTimerLabel.Text = "Anti-AFK: ACTIVE ✓"
  1459. afkTimerLabel.Size = UDim2.new(1, 0, 0, 24)
  1460. afkTimerLabel.BackgroundTransparency = 1
  1461. afkTimerLabel.TextColor3 = Color3.fromRGB(0, 255, 100)
  1462. afkTimerLabel.Font = Enum.Font.GothamBold
  1463. afkTimerLabel.TextSize = 12.5
  1464. afkTimerLabel.LayoutOrder = 4
  1465. afkTimerLabel.Parent = mPage
  1466.  
  1467. -- AFK timer with RGB color cycling
  1468. TABLE.insert(State.Connections, RunService.Heartbeat:CONNECT(FUNCTION()
  1469.     LOCAL hue = tick() % 4 / 4
  1470.     afkTimerLabel.TextColor3 = Color3.fromHSV(hue, 1, 1)
  1471.     LOCAL diff = os.time() - State.AFKStartTime
  1472.     LOCAL h = math.floor(diff / 3600)
  1473.     LOCAL m = math.floor((diff % 3600) / 60)
  1474.     LOCAL s = diff % 60
  1475.     afkTimerLabel.Text = string.format("Anti-AFK: ACTIVE ✓ | Uptime: %02d:%02d:%02d", h, m, s)
  1476.     Autogen() -- Run perfect gen logic in the main heartbeat loop
  1477. END))
  1478.  
  1479. -- ═══════════════════════════════════════════════════════════
  1480. -- SC TAB — External Script Loaders
  1481. -- ═══════════════════════════════════════════════════════════
  1482. LOCAL scPage = TabPages.SC
  1483. createHeader(scPage, "📜 External Script Loaders", 1)
  1484.  
  1485. -- Askr Hub loader
  1486. LOCAL scFrame1 = Instance.new("Frame")
  1487. scFrame1.Size = UDim2.new(1, 0, 0, 45)
  1488. scFrame1.BackgroundColor3 = Color3.fromRGB(22, 17, 34)
  1489. scFrame1.LayoutOrder = 2
  1490. scFrame1.Parent = scPage
  1491. Instance.new("UICorner", scFrame1).CornerRadius = UDim.new(0, 6)
  1492.  
  1493. LOCAL scLabel1 = Instance.new("TextLabel")
  1494. scLabel1.Text = "Perfect Generator Script"
  1495. scLabel1.Size = UDim2.new(1, -160, 1, 0)
  1496. scLabel1.BackgroundTransparency = 1
  1497. scLabel1.TextColor3 = Color3.fromRGB(220, 200, 245)
  1498. scLabel1.Font = Enum.Font.GothamSemibold
  1499. scLabel1.TextSize = 11
  1500. scLabel1.TextXAlignment = Enum.TextXAlignment.Left
  1501. scLabel1.Parent = scFrame1
  1502.  
  1503. LOCAL scBtn1 = Instance.new("TextButton")
  1504. scBtn1.Size = UDim2.new(0, 140, 0, 28)
  1505. scBtn1.Position = UDim2.new(1, -150, 0.5, -14)
  1506. scBtn1.BackgroundColor3 = Color3.fromRGB(120, 60, 220)
  1507. scBtn1.Text = "⚡ Execute"
  1508. scBtn1.TextColor3 = Color3.fromRGB(255, 255, 255)
  1509. scBtn1.Font = Enum.Font.GothamBold
  1510. scBtn1.TextSize = 10
  1511. scBtn1.Parent = scFrame1
  1512. stylePremiumButton(scBtn1)
  1513.  
  1514. scBtn1.MouseButton1Click:CONNECT(FUNCTION()
  1515.     scBtn1.Text = "Executing..."
  1516.     LOCAL ok, err = pcall(FUNCTION()
  1517.         loadstring(game:HttpGet("https://raw.githubusercontent.com/Netshh/askr-hub/main/loader.lua"))()
  1518.     END)
  1519.     scBtn1.Text = ok AND "✓ Done!" OR "✗ Failed!"
  1520.     scBtn1.BackgroundColor3 = ok AND Color3.fromRGB(0, 150, 80) OR Color3.fromRGB(150, 40, 40)
  1521.     IF NOT ok THEN warn("⚡ REIN HUB: Askr Hub failed: " .. tostring(err)) END
  1522.     task.delay(2, FUNCTION()
  1523.         scBtn1.Text = "⚡ Execute"
  1524.         scBtn1.BackgroundColor3 = Color3.fromRGB(120, 60, 220)
  1525.     END)
  1526. END)
  1527.  
  1528. -- Auto Aim Veil loader
  1529. LOCAL scFrame2 = Instance.new("Frame")
  1530. scFrame2.Size = UDim2.new(1, 0, 0, 45)
  1531. scFrame2.BackgroundColor3 = Color3.fromRGB(22, 17, 34)
  1532. scFrame2.LayoutOrder = 3
  1533. scFrame2.Parent = scPage
  1534. Instance.new("UICorner", scFrame2).CornerRadius = UDim.new(0, 6)
  1535.  
  1536. LOCAL scLabel2 = Instance.new("TextLabel")
  1537. scLabel2.Text = "Auto Aim Veil Script [ERROR]"
  1538. scLabel2.Size = UDim2.new(1, -160, 1, 0)
  1539. scLabel2.BackgroundTransparency = 1
  1540. scLabel2.TextColor3 = Color3.fromRGB(220, 200, 245)
  1541. scLabel2.Font = Enum.Font.GothamSemibold
  1542. scLabel2.TextSize = 11
  1543. scLabel2.TextXAlignment = Enum.TextXAlignment.Left
  1544. scLabel2.Parent = scFrame2
  1545.  
  1546. LOCAL scBtn2 = Instance.new("TextButton")
  1547. scBtn2.Size = UDim2.new(0, 140, 0, 28)
  1548. scBtn2.Position = UDim2.new(1, -150, 0.5, -14)
  1549. scBtn2.BackgroundColor3 = Color3.fromRGB(120, 60, 220)
  1550. scBtn2.Text = "⚡ Execute"
  1551. scBtn2.TextColor3 = Color3.fromRGB(255, 255, 255)
  1552. scBtn2.Font = Enum.Font.GothamBold
  1553. scBtn2.TextSize = 10
  1554. scBtn2.Parent = scFrame2
  1555. stylePremiumButton(scBtn2)
  1556.  
  1557. scBtn2.MouseButton1Click:CONNECT(FUNCTION()
  1558.     scBtn2.Text = "Executing..."
  1559.     LOCAL ok, err = pcall(FUNCTION()
  1560.         loadstring(game:HttpGet("https://raw.githubusercontent.com/RillBoys/BOLONG-HUB/refs/heads/main/games/veil"))()
  1561.     END)
  1562.     scBtn2.Text = ok AND "✓ Done!" OR "✗ Failed!"
  1563.     scBtn2.BackgroundColor3 = ok AND Color3.fromRGB(0, 150, 80) OR Color3.fromRGB(150, 40, 40)
  1564.     IF NOT ok THEN warn("⚡ REIN HUB: Veil script failed: " .. tostring(err)) END
  1565.     task.delay(2, FUNCTION()
  1566.         scBtn2.Text = "⚡ Execute"
  1567.         scBtn2.BackgroundColor3 = Color3.fromRGB(120, 60, 220)
  1568.     END)
  1569. END)
  1570.  
  1571. -- REINHUB X MITHUB
  1572. LOCAL scFrame3 = Instance.new("Frame")
  1573. scFrame3.Size = UDim2.new(1, 0, 0, 45)
  1574. scFrame3.BackgroundColor3 = Color3.fromRGB(22, 17, 34)
  1575. scFrame3.LayoutOrder = 4
  1576. scFrame3.Parent = scPage
  1577. Instance.new("UICorner", scFrame3).CornerRadius = UDim.new(0, 6)
  1578.  
  1579. LOCAL scLabel2 = Instance.new("TextLabel")
  1580. scLabel2.Text = "REINHUB X MITHUB"
  1581. scLabel2.Size = UDim2.new(1, -160, 1, 0)
  1582. scLabel2.BackgroundTransparency = 1
  1583. scLabel2.TextColor3 = Color3.fromRGB(220, 200, 245)
  1584. scLabel2.Font = Enum.Font.GothamSemibold
  1585. scLabel2.TextSize = 11
  1586. scLabel2.TextXAlignment = Enum.TextXAlignment.Left
  1587. scLabel2.Parent = scFrame3
  1588.  
  1589. LOCAL scBtn2 = Instance.new("TextButton")
  1590. scBtn2.Size = UDim2.new(0, 140, 0, 28)
  1591. scBtn2.Position = UDim2.new(1, -150, 0.5, -14)
  1592. scBtn2.BackgroundColor3 = Color3.fromRGB(120, 60, 220)
  1593. scBtn2.Text = "⚡ Execute"
  1594. scBtn2.TextColor3 = Color3.fromRGB(255, 255, 255)
  1595. scBtn2.Font = Enum.Font.GothamBold
  1596. scBtn2.TextSize = 10
  1597. scBtn2.Parent = scFrame3
  1598. stylePremiumButton(scBtn2)
  1599.  
  1600. scBtn2.MouseButton1Click:CONNECT(FUNCTION()
  1601.     scBtn2.Text = "Executing..."
  1602.     LOCAL ok, err = pcall(FUNCTION()
  1603.         loadstring(game:HttpGet("https://raw.githubusercontent.com/loopesloop877/peakvd/refs/heads/main/mkthubp"))()
  1604.     END)
  1605.     scBtn2.Text = ok AND "✓ Done!" OR "✗ Failed!"
  1606.     scBtn2.BackgroundColor3 = ok AND Color3.fromRGB(0, 150, 80) OR Color3.fromRGB(150, 40, 40)
  1607.     IF NOT ok THEN warn("⚡ REIN HUB: MITHUB failed: " .. tostring(err)) END
  1608.     task.delay(2, FUNCTION()
  1609.         scBtn2.Text = "⚡ Execute"
  1610.         scBtn2.BackgroundColor3 = Color3.fromRGB(120, 60, 220)
  1611.     END)
  1612. END)
  1613.  
  1614. -- MITHUB Key
  1615. LOCAL scFrame4 = Instance.new("Frame")
  1616. scFrame4.Size = UDim2.new(1, 0, 0, 45) -- Tetap sama
  1617. scFrame4.BackgroundColor3 = Color3.fromRGB(22, 17, 34)
  1618. scFrame4.LayoutOrder = 5
  1619. scFrame4.Parent = scPage
  1620. Instance.new("UICorner", scFrame4).CornerRadius = UDim.new(0, 6)
  1621.  
  1622. LOCAL scLabel4 = Instance.new("TextLabel")
  1623. scLabel4.Text = "MITHUB Key"
  1624. scLabel4.Size = UDim2.new(1, -330, 1, 0) -- Beri ruang untuk tombol salin
  1625. scLabel4.BackgroundTransparency = 1
  1626. scLabel4.TextColor3 = Color3.fromRGB(220, 200, 245)
  1627. scLabel4.Font = Enum.Font.GothamSemibold
  1628. scLabel4.TextSize = 11
  1629. scLabel4.TextXAlignment = Enum.TextXAlignment.Left
  1630. scLabel4.Parent = scFrame4
  1631.  
  1632. LOCAL keyBox = Instance.new("TextBox")
  1633. keyBox.Text = "GENERATE KEY MANUAL"
  1634. keyBox.Size = UDim2.new(0, 240, 0, 28) -- Sedikit lebih kecil
  1635. keyBox.Position = UDim2.new(1, -320, 0.5, -14) -- Geser ke kiri
  1636. keyBox.BackgroundColor3 = Color3.fromRGB(30, 25, 45)
  1637. keyBox.TextColor3 = Color3.fromRGB(200, 180, 240)
  1638. keyBox.Font = Enum.Font.Gotham
  1639. keyBox.TextSize = 10
  1640. keyBox.ClearTextOnFocus = FALSE
  1641. keyBox.Parent = scFrame4
  1642. Instance.new("UICorner", keyBox).CornerRadius = UDim.new(0, 6)
  1643.  
  1644. LOCAL copyBtn = Instance.new("TextButton")
  1645. copyBtn.Size = UDim2.new(0, 70, 0, 28)
  1646. copyBtn.Position = UDim2.new(1, -75, 0.5, -14)
  1647. copyBtn.BackgroundColor3 = Color3.fromRGB(80, 50, 160)
  1648. copyBtn.Text = "Salin"
  1649. copyBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
  1650. copyBtn.Font = Enum.Font.GothamBold
  1651. copyBtn.TextSize = 10
  1652. copyBtn.Parent = scFrame4
  1653. stylePremiumButton(copyBtn)
  1654.  
  1655. copyBtn.MouseButton1Click:CONNECT(FUNCTION()
  1656.     setclipboard("MITHUB-93O1-RS61-PQKP-B8GC")
  1657.     copyBtn.Text = "Tersalin!"
  1658.     copyBtn.BackgroundColor3 = Color3.fromRGB(0, 150, 80)
  1659.     task.delay(2, FUNCTION()
  1660.         copyBtn.Text = "Salin"
  1661.         copyBtn.BackgroundColor3 = Color3.fromRGB(80, 50, 160)
  1662.     END)
  1663. END)
  1664. -- ═══════════════════════════════════════════════════════════
  1665. -- INFO TAB — About, User Stats, Unload
  1666. -- ═══════════════════════════════════════════════════════════
  1667. LOCAL iPage = TabPages.Info
  1668. createHeader(iPage, "ℹ️ About REIN HUB", 1)
  1669.  
  1670. LOCAL aboutFrame = Instance.new("Frame")
  1671. aboutFrame.Size = UDim2.new(1, 0, 0, 110)
  1672. aboutFrame.BackgroundColor3 = Color3.fromRGB(22, 17, 34)
  1673. aboutFrame.LayoutOrder = 2
  1674. aboutFrame.Parent = iPage
  1675. Instance.new("UICorner", aboutFrame).CornerRadius = UDim.new(0, 6)
  1676.  
  1677. LOCAL aboutText = Instance.new("TextLabel")
  1678. aboutText.Text = [[  REIN HUB X Violence District — Premium
  1679.  
  1680.   Exclusively built FOR Violence District (PlaceId: 93978595733734).
  1681.   Features: Auto Parry, God Mode, Perfect Generator Repair,
  1682.   ESP System (Killer/Survivor/Generator), Anti-AFK,
  1683.   Walk Speed Control, External Script Loaders, AND more.
  1684.  
  1685.   TikTok : @reinuhuy
  1686.   Created BY REINUHUY · Follow me ON TT]]
  1687. aboutText.Size = UDim2.new(1, -20, 1, 0)
  1688. aboutText.Position = UDim2.new(0, 10, 0, 0)
  1689. aboutText.BackgroundTransparency = 1
  1690. aboutText.TextColor3 = Color3.fromRGB(210, 195, 235)
  1691. aboutText.Font = Enum.Font.Gotham
  1692. aboutText.TextSize = 10
  1693. aboutText.TextXAlignment = Enum.TextXAlignment.Left
  1694. aboutText.TextYAlignment = Enum.TextYAlignment.Center
  1695. aboutText.TextWrapped = TRUE
  1696. aboutText.Parent = aboutFrame
  1697.  
  1698. createHeader(iPage, "👤 User & Game Stats", 3)
  1699.  
  1700. LOCAL statsFrame = Instance.new("Frame")
  1701. statsFrame.Size = UDim2.new(1, 0, 0, 90)
  1702. statsFrame.BackgroundColor3 = Color3.fromRGB(22, 17, 34)
  1703. statsFrame.LayoutOrder = 4
  1704. statsFrame.Parent = iPage
  1705. Instance.new("UICorner", statsFrame).CornerRadius = UDim.new(0, 6)
  1706.  
  1707. LOCAL execName = "Unknown"
  1708. pcall(FUNCTION()
  1709.     execName = identifyexecutor AND SELECT(1, identifyexecutor()) OR (getexecutorname AND getexecutorname()) OR "Unknown"
  1710. END)
  1711.  
  1712. LOCAL statsText = Instance.new("TextLabel")
  1713. statsText.Text = string.format("  Username: %s\n  Game PlaceId: %d\n  Executor: %s\n  Anti-AFK: Auto Active ✓",
  1714.     LocalPlayer.Name, game.PlaceId, execName)
  1715. statsText.Size = UDim2.new(1, -20, 1, 0)
  1716. statsText.Position = UDim2.new(0, 10, 0, 0)
  1717. statsText.BackgroundTransparency = 1
  1718. statsText.TextColor3 = Color3.fromRGB(200, 180, 240)
  1719. statsText.Font = Enum.Font.GothamSemibold
  1720. statsText.TextSize = 10.5
  1721. statsText.TextXAlignment = Enum.TextXAlignment.Left
  1722. statsText.TextYAlignment = Enum.TextYAlignment.Center
  1723. statsText.Parent = statsFrame
  1724.  
  1725. -- Unload button
  1726. LOCAL unloadBtn = Instance.new("TextButton")
  1727. unloadBtn.Text = "💀 Unload / Self-Destruct Hub"
  1728. unloadBtn.Size = UDim2.new(1, 0, 0, 32)
  1729. unloadBtn.BackgroundColor3 = Color3.fromRGB(120, 30, 30)
  1730. unloadBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
  1731. unloadBtn.Font = Enum.Font.GothamBold
  1732. unloadBtn.TextSize = 11
  1733. unloadBtn.LayoutOrder = 5
  1734. unloadBtn.Parent = iPage
  1735. stylePremiumButton(unloadBtn)
  1736.  
  1737. unloadBtn.MouseButton1Click:CONNECT(FUNCTION()
  1738.     FOR _, conn IN ipairs(State.Connections) do pcall(FUNCTION() conn:Disconnect() END) END
  1739.     pcall(cleanESP)
  1740.     pcall(FUNCTION() GenHUD:Destroy() END)
  1741.     ScreenGui:Destroy()
  1742.     print("⚡ REIN HUB: Completely unloaded.")
  1743. END)
  1744.  
  1745. -- ═══════════════════════════════════════════════════════════
  1746. -- CINEMATIC LOADING ANIMATION SEQUENCE
  1747. -- ═══════════════════════════════════════════════════════════
  1748. LOCAL LoadMsgs = {
  1749.     {0,   "Establishing connection..."},
  1750.     {8,   "Scanning game environment..."},
  1751.     {18,  "Mapping remote hierarchy..."},
  1752.     {28,  "Initializing ESP modules..."},
  1753.     {40,  "Loading combat systems..."},
  1754.     {50,  "Configuring auto-parry engine..."},
  1755.     {60,  "Setting up generator scanner..."},
  1756.     {72,  "Building admin interface..."},
  1757.     {82,  "Hooking metamethods..."},
  1758.     {90,  "Bypassing anti-cheat layers..."},
  1759.     {95,  "Finalizing injection..."},
  1760.     {99,  "Almost ready..."},
  1761. }
  1762.  
  1763. task.spawn(FUNCTION()
  1764.     LoadingFrame.BackgroundTransparency = 0
  1765.  
  1766.     LOCAL fadeIn = TweenInfo.new(0.8, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
  1767.     TweenService:CREATE(LogoLoad, fadeIn, {ImageTransparency = 0}):Play()
  1768.     TweenService:CREATE(TitleLoad, fadeIn, {TextTransparency = 0}):Play()
  1769.     task.wait(0.5)
  1770.  
  1771.     LOCAL pct = 0
  1772.     LOCAL mi = 1
  1773.  
  1774.     while pct <= 100 do
  1775.         IF mi <= #LoadMsgs AND pct >= LoadMsgs[mi][1] THEN
  1776.             LOCAL fo = TweenInfo.new(0.12, Enum.EasingStyle.Quad)
  1777.             TweenService:CREATE(StatusLoad, fo, {TextTransparency = 1}):Play()
  1778.             task.wait(0.12)
  1779.             StatusLoad.Text = LoadMsgs[mi][2]
  1780.             TweenService:CREATE(StatusLoad, fo, {TextTransparency = 0}):Play()
  1781.             mi = mi + 1
  1782.         END
  1783.  
  1784.         BarFill.Size = UDim2.new(pct / 100, 0, 1, 0)
  1785.         PctText.Text = pct .. "%"
  1786.  
  1787.         LOCAL hue = (pct / 100) * 0.8
  1788.         BarStroke.Color = Color3.fromHSV(0.75 - hue * 0.15, 0.7, 0.8)
  1789.  
  1790.         LOCAL dt = 0.02
  1791.         IF pct < 10 THEN dt = 0.04
  1792.         ELSEIF pct >= 45 AND pct <= 55 THEN dt = 0.06
  1793.         ELSEIF pct > 85 AND pct < 95 THEN dt = 0.05
  1794.         ELSEIF pct >= 95 THEN dt = 0.03
  1795.         END
  1796.  
  1797.         task.wait(dt)
  1798.         pct = pct + 1
  1799.     END
  1800.  
  1801.     PctText.Text = "100%"
  1802.     StatusLoad.Text = "Welcome, " .. LocalPlayer.Name
  1803.     task.wait(0.6)
  1804.  
  1805.     -- Cinematic fade-out
  1806.     LOCAL foI = TweenInfo.new(0.5, Enum.EasingStyle.Quad, Enum.EasingDirection.In)
  1807.     LOCAL foS = TweenInfo.new(0.7, Enum.EasingStyle.Quad, Enum.EasingDirection.In)
  1808.  
  1809.     FOR _, child IN ipairs(ParticleBox:GetChildren()) do
  1810.         IF child:IsA("Frame") THEN
  1811.             TweenService:CREATE(child, foI, {BackgroundTransparency = 1}):Play()
  1812.         END
  1813.     END
  1814.  
  1815.     TweenService:CREATE(OuterRing, foI, {ImageTransparency = 1}):Play()
  1816.     TweenService:CREATE(InnerRing, foI, {ImageTransparency = 1}):Play()
  1817.     task.wait(0.2)
  1818.  
  1819.     TweenService:CREATE(LogoLoad, foI, {ImageTransparency = 1}):Play()
  1820.     TweenService:CREATE(TitleLoad, foI, {TextTransparency = 1}):Play()
  1821.     TweenService:CREATE(StatusLoad, foI, {TextTransparency = 1}):Play()
  1822.     TweenService:CREATE(PctText, foI, {TextTransparency = 1}):Play()
  1823.     TweenService:CREATE(CreditLoad, foI, {TextTransparency = 1}):Play()
  1824.     TweenService:CREATE(BarBg, foI, {BackgroundTransparency = 1}):Play()
  1825.     TweenService:CREATE(BarFill, foI, {BackgroundTransparency = 1}):Play()
  1826.     TweenService:CREATE(BarStroke, foI, {Transparency = 1}):Play()
  1827.     task.wait(0.3)
  1828.  
  1829.     TweenService:CREATE(LoadingFrame, foS, {BackgroundTransparency = 1}):Play()
  1830.     TweenService:CREATE(MatrixBgLoad, foS, {ImageTransparency = 1}):Play()
  1831.     TweenService:CREATE(Vignette, foS, {ImageTransparency = 1}):Play()
  1832.     task.wait(0.7)
  1833.  
  1834.     LoadingGui:Destroy()
  1835.     MainFrame.Visible = TRUE
  1836.     State.UIVisible = TRUE
  1837. END)
  1838.  
  1839. -- ═══════════════════════════════════════════════════════════
  1840. -- BOOTSTRAP
  1841. -- ═══════════════════════════════════════════════════════════
  1842. print("⚡ REIN HUB X VD loaded! Anti-AFK active. All systems online.")

Raw Paste

Comments 0
Login to post a comment.
  • No comments yet. Be the first.
Login to post a comment. Login or Register
We use cookies. To comply with GDPR in the EU and the UK we have to show you these.

We use cookies and similar technologies to keep this website functional (including spam protection via Google reCAPTCHA or Cloudflare Turnstile), and — with your consent — to measure usage and show ads. See Privacy.