-- PlaceId check — Violence District ONLY
IF game.PlaceId ~= 93978595733734 THEN
warn("⚡ REIN HUB: This script is only compatible with Violence-District!")
RETURN
END
-- ═══════════════════════════════════════════════════════════
-- SERVICES
-- ═══════════════════════════════════════════════════════════
LOCAL Players = game:GetService("Players")
LOCAL RunService = game:GetService("RunService")
LOCAL ReplicatedStorage = game:GetService("ReplicatedStorage")
LOCAL Teams = game:GetService("Teams")
LOCAL UserInputService = game:GetService("UserInputService")
LOCAL CoreGui = game:GetService("CoreGui")
LOCAL TweenService = game:GetService("TweenService")
LOCAL VirtualUser = game:GetService("VirtualUser")
LOCAL LocalPlayer = Players.LocalPlayer
LOCAL Camera = workspace.CurrentCamera
-- ═══════════════════════════════════════════════════════════
-- REMOTES — VIOLENCE DISTRICT SPECIFIC
-- ═══════════════════════════════════════════════════════════
LOCAL Remotes = ReplicatedStorage:WaitForChild("Remotes", 10)
LOCAL ItemRemotes = Remotes AND Remotes:FindFirstChild("Items")
-- Parry remote — correct path for VD
LOCAL ParryClient = nil
pcall(FUNCTION()
ParryClient = ReplicatedStorage:WaitForChild("Items", 5):WaitForChild("ParryClient", 5)
END)
-- Fallback search
IF NOT ParryClient THEN
pcall(FUNCTION()
ParryClient = ItemRemotes AND (ItemRemotes:FindFirstChild("ParryClient") OR ItemRemotes:FindFirstChild("Parrying Dagger") AND ItemRemotes:FindFirstChild("Parrying Dagger"):FindFirstChild("parry"))
END)
END
-- Generator remotes
LOCAL GenRemotes = Remotes AND Remotes:FindFirstChild("Generator")
LOCAL SkillCheckResult = GenRemotes AND GenRemotes:FindFirstChild("SkillCheckResultEvent")
LOCAL SkillCheckEvent = GenRemotes AND GenRemotes:FindFirstChild("SkillCheckEvent")
-- Attack remotes
LOCAL AttackRemotes = Remotes AND Remotes:FindFirstChild("Attacks")
LOCAL AttackHitRemote = AttackRemotes AND AttackRemotes:FindFirstChild("hit")
LOCAL LungeDetectRemote = AttackRemotes AND AttackRemotes:FindFirstChild("LungeDetect")
-- Game module references
LOCAL KillerModules = nil
LOCAL SurvivorConfig = nil
pcall(FUNCTION()
KillerModules = ReplicatedStorage:WaitForChild("Modules", 5):WaitForChild("Killers", 5)
END)
pcall(FUNCTION()
SurvivorConfig = ReplicatedStorage:WaitForChild("Modules", 5):WaitForChild("Survivors", 5):WaitForChild("SurvivorConfig", 5)
END)
-- ═══════════════════════════════════════════════════════════
-- STATE MANAGEMENT
-- ═══════════════════════════════════════════════════════════
LOCAL State = {
UIVisible = FALSE,
Minimized = FALSE,
AutoParry = FALSE,
GodMode = FALSE,
WalkSpeed = 16,
SpeedEnabled = FALSE,
PerfectGen = FALSE,
AFKMode = TRUE,
AFKStartTime = os.time(),
ESPPlayers = FALSE,
ESPKiller = FALSE,
ESPGenerators = FALSE,
ESPGenProgress = FALSE,
GenHUDVisible = FALSE,
ActiveTab = "Visual",
Connections = {},
SelectedPlayer = nil,
}
LOCAL TeamColors = {
Survivors = Color3.fromRGB(0, 255, 0),
Killer = Color3.fromRGB(255, 0, 0),
Spectator = Color3.fromRGB(180, 180, 180),
UNKNOWN = Color3.fromRGB(255, 255, 255),
Generator = Color3.fromRGB(255, 200, 0),
}
-- ═══════════════════════════════════════════════════════════
-- GUI CLEANUP
-- ═══════════════════════════════════════════════════════════
IF CoreGui:FindFirstChild("REINHubVD") THEN
CoreGui.REINHubVD:Destroy()
END
IF CoreGui:FindFirstChild("REINHubLoading") THEN
CoreGui.REINHubLoading:Destroy()
END
-- Animated gradient rotation registry
LOCAL AnimatingGradients = {}
LOCAL FUNCTION registerGradient(g)
TABLE.insert(AnimatingGradients, g)
END
TABLE.insert(State.Connections, RunService.Heartbeat:CONNECT(FUNCTION()
LOCAL rot = (tick() * 150) % 360
FOR _, g IN ipairs(AnimatingGradients) do
pcall(FUNCTION() g.Rotation = rot END)
END
END))
-- ═══════════════════════════════════════════════════════════
-- ANTI-AFK — AUTO ACTIVE ON LOAD (runs immediately)
-- ═══════════════════════════════════════════════════════════
pcall(FUNCTION()
LocalPlayer.Idled:CONNECT(FUNCTION()
VirtualUser:CaptureController()
VirtualUser:ClickButton2(Vector2.new(0, 0))
END)
END)
-- ═══════════════════════════════════════════════════════════
-- PREMIUM CINEMATIC LOADING SCREEN
-- ═══════════════════════════════════════════════════════════
LOCAL LoadingGui = Instance.new("ScreenGui")
LoadingGui.Name = "REINHubLoading"
LoadingGui.ResetOnSpawn = FALSE
LoadingGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
LoadingGui.DisplayOrder = 999
pcall(FUNCTION() LoadingGui.Parent = CoreGui END)
IF NOT LoadingGui.Parent THEN LoadingGui.Parent = LocalPlayer:WaitForChild("PlayerGui") END
-- Full-screen backdrop
LOCAL LoadingFrame = Instance.new("Frame")
LoadingFrame.Size = UDim2.new(1, 0, 1, 0)
LoadingFrame.BackgroundColor3 = Color3.fromRGB(6, 3, 14)
LoadingFrame.BorderSizePixel = 0
LoadingFrame.Parent = LoadingGui
-- Vignette overlay
LOCAL Vignette = Instance.new("ImageLabel")
Vignette.Size = UDim2.new(1, 0, 1, 0)
Vignette.BackgroundTransparency = 1
Vignette.Image = "rbxassetid://1526406850"
Vignette.ImageColor3 = Color3.fromRGB(0, 0, 0)
Vignette.ImageTransparency = 0.3
Vignette.ZIndex = 2
Vignette.Parent = LoadingFrame
-- Matrix purple background — drifting
LOCAL MatrixBgLoad = Instance.new("ImageLabel")
MatrixBgLoad.Size = UDim2.new(1.2, 0, 1.2, 0)
MatrixBgLoad.Position = UDim2.new(-0.1, 0, -0.1, 0)
MatrixBgLoad.Image = "rbxassetid://79915007129772"
MatrixBgLoad.ImageColor3 = Color3.fromRGB(120, 30, 220)
MatrixBgLoad.ImageTransparency = 0.88
MatrixBgLoad.BackgroundTransparency = 1
MatrixBgLoad.ScaleType = Enum.ScaleType.Tile
MatrixBgLoad.TileSize = UDim2.new(0, 200, 0, 200)
MatrixBgLoad.ZIndex = 1
MatrixBgLoad.Parent = LoadingFrame
task.spawn(FUNCTION()
LOCAL dc
dc = RunService.Heartbeat:CONNECT(FUNCTION()
IF NOT MatrixBgLoad OR NOT MatrixBgLoad.Parent THEN dc:Disconnect() RETURN END
LOCAL t = tick() * 0.02
MatrixBgLoad.Position = UDim2.new(-0.1 + math.sin(t) * 0.03, 0, -0.1 + math.cos(t * 0.7) * 0.02, 0)
END)
END)
-- Center container
LOCAL CenterLoad = Instance.new("Frame")
CenterLoad.Size = UDim2.new(0, 400, 0, 360)
CenterLoad.Position = UDim2.new(0.5, -200, 0.5, -180)
CenterLoad.BackgroundTransparency = 1
CenterLoad.ZIndex = 10
CenterLoad.Parent = LoadingFrame
-- Spinning outer ring
LOCAL OuterRing = Instance.new("ImageLabel")
OuterRing.Size = UDim2.new(0, 180, 0, 180)
OuterRing.Position = UDim2.new(0.5, -90, 0, 10)
OuterRing.BackgroundTransparency = 1
OuterRing.Image = "rbxassetid://11745689735"
OuterRing.ImageColor3 = Color3.fromRGB(160, 50, 255)
OuterRing.ImageTransparency = 0.3
OuterRing.ZIndex = 11
OuterRing.Parent = CenterLoad
-- Spinning inner ring (counter)
LOCAL InnerRing = Instance.new("ImageLabel")
InnerRing.Size = UDim2.new(0, 150, 0, 150)
InnerRing.Position = UDim2.new(0.5, -75, 0, 25)
InnerRing.BackgroundTransparency = 1
InnerRing.Image = "rbxassetid://11745689735"
InnerRing.ImageColor3 = Color3.fromRGB(200, 100, 255)
InnerRing.ImageTransparency = 0.5
InnerRing.ZIndex = 12
InnerRing.Parent = CenterLoad
task.spawn(FUNCTION()
LOCAL sc
sc = RunService.Heartbeat:CONNECT(FUNCTION()
IF NOT OuterRing OR NOT OuterRing.Parent THEN sc:Disconnect() RETURN END
OuterRing.Rotation = (tick() * 45) % 360
InnerRing.Rotation = -(tick() * 60) % 360
OuterRing.ImageTransparency = 0.25 + math.sin(tick() * 2) * 0.15
END)
END)
-- Logo centered in rings
LOCAL LogoLoad = Instance.new("ImageLabel")
LogoLoad.Size = UDim2.new(0, 100, 0, 100)
LogoLoad.Position = UDim2.new(0.5, -50, 0, 50)
LogoLoad.Image = "rbxassetid://126054630022043"
LogoLoad.BackgroundTransparency = 1
LogoLoad.ZIndex = 15
LogoLoad.Parent = CenterLoad
task.spawn(FUNCTION()
LOCAL gc
gc = RunService.Heartbeat:CONNECT(FUNCTION()
IF NOT LogoLoad OR NOT LogoLoad.Parent THEN gc:Disconnect() RETURN END
LogoLoad.ImageTransparency = math.sin(tick() * 1.5) * 0.15
END)
END)
-- Title
LOCAL TitleLoad = Instance.new("TextLabel")
TitleLoad.Text = "REIN HUB X VD"
TitleLoad.Size = UDim2.new(1, 0, 0, 30)
TitleLoad.Position = UDim2.new(0, 0, 0, 200)
TitleLoad.BackgroundTransparency = 1
TitleLoad.TextColor3 = Color3.fromRGB(220, 180, 255)
TitleLoad.Font = Enum.Font.GothamBold
TitleLoad.TextSize = 20
TitleLoad.ZIndex = 15
TitleLoad.Parent = CenterLoad
-- Status text (rotating messages)
LOCAL StatusLoad = Instance.new("TextLabel")
StatusLoad.Text = "Initializing..."
StatusLoad.Size = UDim2.new(1, 0, 0, 20)
StatusLoad.Position = UDim2.new(0, 0, 0, 234)
StatusLoad.BackgroundTransparency = 1
StatusLoad.TextColor3 = Color3.fromRGB(150, 120, 200)
StatusLoad.Font = Enum.Font.GothamSemibold
StatusLoad.TextSize = 11
StatusLoad.ZIndex = 15
StatusLoad.Parent = CenterLoad
-- Progress bar background
LOCAL BarBg = Instance.new("Frame")
BarBg.Size = UDim2.new(0, 320, 0, 10)
BarBg.Position = UDim2.new(0.5, -160, 0, 272)
BarBg.BackgroundColor3 = Color3.fromRGB(20, 12, 35)
BarBg.BorderSizePixel = 0
BarBg.ZIndex = 15
BarBg.Parent = CenterLoad
Instance.new("UICorner", BarBg).CornerRadius = UDim.new(1, 0)
LOCAL BarStroke = Instance.new("UIStroke")
BarStroke.Color = Color3.fromRGB(100, 40, 180)
BarStroke.Thickness = 1.5
BarStroke.Transparency = 0.4
BarStroke.Parent = BarBg
-- Progress bar fill
LOCAL BarFill = Instance.new("Frame")
BarFill.Size = UDim2.new(0, 0, 1, 0)
BarFill.BackgroundColor3 = Color3.fromRGB(160, 50, 255)
BarFill.BorderSizePixel = 0
BarFill.ZIndex = 16
BarFill.Parent = BarBg
Instance.new("UICorner", BarFill).CornerRadius = UDim.new(1, 0)
LOCAL BarGrad = Instance.new("UIGradient")
BarGrad.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(100, 30, 200)),
ColorSequenceKeypoint.new(0.4, Color3.fromRGB(160, 50, 255)),
ColorSequenceKeypoint.new(0.7, Color3.fromRGB(200, 100, 255)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(255, 150, 255)),
})
BarGrad.Parent = BarFill
-- Percentage text
LOCAL PctText = Instance.new("TextLabel")
PctText.Text = "0%"
PctText.Size = UDim2.new(0, 60, 0, 20)
PctText.Position = UDim2.new(0.5, -30, 0, 288)
PctText.BackgroundTransparency = 1
PctText.TextColor3 = Color3.fromRGB(200, 160, 255)
PctText.Font = Enum.Font.GothamBold
PctText.TextSize = 12
PctText.ZIndex = 15
PctText.Parent = CenterLoad
-- Floating sparkle particles
LOCAL ParticleBox = Instance.new("Frame")
ParticleBox.Size = UDim2.new(1, 0, 1, 0)
ParticleBox.BackgroundTransparency = 1
ParticleBox.ZIndex = 5
ParticleBox.ClipsDescendants = TRUE
ParticleBox.Parent = LoadingFrame
task.spawn(FUNCTION()
FOR i = 1, 25 do
LOCAL p = Instance.new("Frame")
p.Size = UDim2.new(0, math.random(2, 5), 0, math.random(2, 5))
p.Position = UDim2.new(math.random() * 0.95, 0, math.random() * 0.95, 0)
p.BackgroundColor3 = Color3.fromRGB(math.random(120, 200), math.random(40, 100), math.random(200, 255))
p.BackgroundTransparency = math.random() * 0.5 + 0.3
p.BorderSizePixel = 0
p.ZIndex = 5
p.Parent = ParticleBox
Instance.new("UICorner", p).CornerRadius = UDim.new(1, 0)
LOCAL sY = math.random(80, 110) / 100
LOCAL dur = math.random(4, 8)
LOCAL sX = math.random() * 0.95
task.spawn(FUNCTION()
while p AND p.Parent do
p.Position = UDim2.new(sX + math.sin(tick() + i) * 0.02, 0, sY, 0)
LOCAL tw = TweenService:CREATE(p, TweenInfo.new(dur, Enum.EasingStyle.Linear), {
POSITION = UDim2.new(sX + math.sin(tick() + i) * 0.05, 0, -0.1, 0)
})
tw:Play()
tw.Completed:Wait()
sX = math.random() * 0.95
p.Position = UDim2.new(sX, 0, sY, 0)
END
END)
END
END)
-- Credit line
LOCAL CreditLoad = Instance.new("TextLabel")
CreditLoad.Text = "Developer by ReinUhuy · Violence District"
CreditLoad.Size = UDim2.new(1, 0, 0, 18)
CreditLoad.Position = UDim2.new(0, 0, 0, 330)
CreditLoad.BackgroundTransparency = 1
CreditLoad.TextColor3 = Color3.fromRGB(80, 60, 120)
CreditLoad.Font = Enum.Font.Gotham
CreditLoad.TextSize = 9
CreditLoad.ZIndex = 15
CreditLoad.Parent = CenterLoad
-- ═══════════════════════════════════════════════════════════
-- MAIN UI CONTAINER
-- ═══════════════════════════════════════════════════════════
LOCAL ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "REINHubVD"
ScreenGui.ResetOnSpawn = FALSE
pcall(FUNCTION() ScreenGui.Parent = CoreGui END)
IF NOT ScreenGui.Parent THEN ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui") END
-- Main Panel
LOCAL MainFrame = Instance.new("Frame")
MainFrame.Size = UDim2.new(0, 550, 0, 430)
MainFrame.Position = UDim2.new(0.5, -275, 0.5, -215)
MainFrame.BackgroundColor3 = Color3.fromRGB(15, 12, 22)
MainFrame.BorderSizePixel = 0
MainFrame.Active = TRUE
MainFrame.Draggable = TRUE
MainFrame.ClipsDescendants = TRUE
MainFrame.Visible = FALSE
MainFrame.Parent = ScreenGui
Instance.new("UICorner", MainFrame).CornerRadius = UDim.new(0, 12)
LOCAL MainStroke = Instance.new("UIStroke")
MainStroke.Color = Color3.fromRGB(255, 255, 255)
MainStroke.Thickness = 2
MainStroke.Parent = MainFrame
LOCAL MainGrad = Instance.new("UIGradient")
MainGrad.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(160, 50, 255)),
ColorSequenceKeypoint.new(0.3, Color3.fromRGB(30, 10, 60)),
ColorSequenceKeypoint.new(0.7, Color3.fromRGB(30, 10, 60)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(160, 50, 255)),
})
MainGrad.Parent = MainStroke
registerGradient(MainGrad)
-- Matrix bg on main panel
LOCAL MatrixBg = Instance.new("ImageLabel")
MatrixBg.Size = UDim2.new(1, 0, 1, 0)
MatrixBg.Image = "rbxassetid://79915007129772"
MatrixBg.ImageColor3 = Color3.fromRGB(160, 50, 255)
MatrixBg.ImageTransparency = 0.88
MatrixBg.BackgroundTransparency = 1
MatrixBg.ScaleType = Enum.ScaleType.Tile
MatrixBg.TileSize = UDim2.new(0, 256, 0, 256)
MatrixBg.Parent = MainFrame
-- ═══════════════════════════════════════════════════════════
-- FLOATING REOPEN BUTTON (Logo icon when closed)
-- ═══════════════════════════════════════════════════════════
LOCAL ReopenBtn = Instance.new("ImageButton")
ReopenBtn.Size = UDim2.new(0, 50, 0, 50)
ReopenBtn.Position = UDim2.new(0.02, 0, 0.45, 0)
ReopenBtn.BackgroundColor3 = Color3.fromRGB(18, 12, 28)
ReopenBtn.Image = "rbxassetid://126054630022043"
ReopenBtn.Active = TRUE
ReopenBtn.Draggable = TRUE
ReopenBtn.Visible = FALSE
ReopenBtn.Parent = ScreenGui
Instance.new("UICorner", ReopenBtn).CornerRadius = UDim.new(1, 0)
LOCAL ReopenStroke = Instance.new("UIStroke")
ReopenStroke.Color = Color3.fromRGB(255, 255, 255)
ReopenStroke.Thickness = 2
ReopenStroke.Parent = ReopenBtn
LOCAL ReopenGrad = Instance.new("UIGradient")
ReopenGrad.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(160, 50, 255)),
ColorSequenceKeypoint.new(0.5, Color3.fromRGB(30, 10, 60)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(160, 50, 255)),
})
ReopenGrad.Parent = ReopenStroke
registerGradient(ReopenGrad)
ReopenBtn.MouseButton1Click:CONNECT(FUNCTION()
ReopenBtn.Visible = FALSE
MainFrame.Visible = TRUE
State.UIVisible = TRUE
END)
-- ═══════════════════════════════════════════════════════════
-- MINIMIZED PILL BAR (with logo, text, neon animated border)
-- ═══════════════════════════════════════════════════════════
LOCAL Pillbar = Instance.new("Frame")
Pillbar.Size = UDim2.new(0, 240, 0, 42)
Pillbar.Position = UDim2.new(0.5, -120, 0.05, 0)
Pillbar.BackgroundColor3 = Color3.fromRGB(18, 12, 28)
Pillbar.BorderSizePixel = 0
Pillbar.Active = TRUE
Pillbar.Draggable = TRUE
Pillbar.Visible = FALSE
Pillbar.Parent = ScreenGui
Instance.new("UICorner", Pillbar).CornerRadius = UDim.new(1, 0)
LOCAL PillStroke = Instance.new("UIStroke")
PillStroke.Color = Color3.fromRGB(255, 255, 255)
PillStroke.Thickness = 2
PillStroke.Parent = Pillbar
LOCAL PillGrad = Instance.new("UIGradient")
PillGrad.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(160, 50, 255)),
ColorSequenceKeypoint.new(0.5, Color3.fromRGB(30, 10, 60)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(160, 50, 255)),
})
PillGrad.Parent = PillStroke
registerGradient(PillGrad)
LOCAL PillLogo = Instance.new("ImageLabel")
PillLogo.Size = UDim2.new(0, 28, 0, 28)
PillLogo.Position = UDim2.new(0, 8, 0.5, -14)
PillLogo.Image = "rbxassetid://126054630022043"
PillLogo.BackgroundTransparency = 1
PillLogo.Parent = Pillbar
LOCAL PillTitle = Instance.new("TextLabel")
PillTitle.Text = "REIN HUB X VD"
PillTitle.Size = UDim2.new(1, -95, 1, 0)
PillTitle.Position = UDim2.new(0, 42, 0, 0)
PillTitle.BackgroundTransparency = 1
PillTitle.TextColor3 = Color3.fromRGB(200, 170, 255)
PillTitle.Font = Enum.Font.GothamBold
PillTitle.TextSize = 11
PillTitle.TextXAlignment = Enum.TextXAlignment.Left
PillTitle.Parent = Pillbar
LOCAL PillMaxBtn = Instance.new("TextButton")
PillMaxBtn.Text = "+"
PillMaxBtn.Size = UDim2.new(0, 24, 0, 24)
PillMaxBtn.Position = UDim2.new(1, -55, 0.5, -12)
PillMaxBtn.BackgroundTransparency = 1
PillMaxBtn.TextColor3 = Color3.fromRGB(255, 200, 80)
PillMaxBtn.Font = Enum.Font.GothamBold
PillMaxBtn.TextSize = 13
PillMaxBtn.Parent = Pillbar
LOCAL PillCloseBtn = Instance.new("ImageButton")
PillCloseBtn.Size = UDim2.new(0, 20, 0, 20)
PillCloseBtn.Position = UDim2.new(1, -28, 0.5, -10)
PillCloseBtn.Image = "rbxassetid://126054630022043"
PillCloseBtn.BackgroundTransparency = 1
PillCloseBtn.Parent = Pillbar
LOCAL FUNCTION toggleMinimize()
State.Minimized = NOT State.Minimized
IF State.Minimized THEN
MainFrame.Visible = FALSE
Pillbar.Visible = TRUE
Pillbar.Position = UDim2.new(0, MainFrame.AbsolutePosition.X + (MainFrame.AbsoluteSize.X / 2) - 120, 0, MainFrame.AbsolutePosition.Y)
ELSE
Pillbar.Visible = FALSE
MainFrame.Visible = TRUE
MainFrame.Position = UDim2.new(0, Pillbar.AbsolutePosition.X - 155, 0, Pillbar.AbsolutePosition.Y)
END
END
LOCAL FUNCTION closeHub()
MainFrame.Visible = FALSE
Pillbar.Visible = FALSE
ReopenBtn.Visible = TRUE
State.UIVisible = FALSE
END
PillMaxBtn.MouseButton1Click:CONNECT(toggleMinimize)
PillCloseBtn.MouseButton1Click:CONNECT(closeHub)
-- ═══════════════════════════════════════════════════════════
-- TITLE BAR
-- ═══════════════════════════════════════════════════════════
LOCAL TitleBar = Instance.new("Frame")
TitleBar.Size = UDim2.new(1, 0, 0, 42)
TitleBar.BackgroundColor3 = Color3.fromRGB(22, 16, 34)
TitleBar.BorderSizePixel = 0
TitleBar.Parent = MainFrame
LOCAL TBC = Instance.new("UICorner")
TBC.CornerRadius = UDim.new(0, 12)
TBC.Parent = TitleBar
LOCAL TBCover = Instance.new("Frame")
TBCover.Size = UDim2.new(1, 0, 0, 10)
TBCover.Position = UDim2.new(0, 0, 1, -10)
TBCover.BackgroundColor3 = Color3.fromRGB(22, 16, 34)
TBCover.BorderSizePixel = 0
TBCover.Parent = TitleBar
LOCAL TBLogo = Instance.new("ImageLabel")
TBLogo.Size = UDim2.new(0, 26, 0, 26)
TBLogo.Position = UDim2.new(0, 12, 0.5, -13)
TBLogo.Image = "rbxassetid://126054630022043"
TBLogo.BackgroundTransparency = 1
TBLogo.Parent = TitleBar
LOCAL TBLabel = Instance.new("TextLabel")
TBLabel.Text = "REIN HUB X VD"
TBLabel.Size = UDim2.new(1, -110, 1, 0)
TBLabel.Position = UDim2.new(0, 44, 0, 0)
TBLabel.BackgroundTransparency = 1
TBLabel.TextColor3 = Color3.fromRGB(200, 170, 255)
TBLabel.Font = Enum.Font.GothamBold
TBLabel.TextSize = 13
TBLabel.TextXAlignment = Enum.TextXAlignment.Left
TBLabel.Parent = TitleBar
LOCAL MinBtn = Instance.new("TextButton")
MinBtn.Text = "—"
MinBtn.Size = UDim2.new(0, 28, 0, 28)
MinBtn.Position = UDim2.new(1, -70, 0.5, -14)
MinBtn.BackgroundTransparency = 1
MinBtn.TextColor3 = Color3.fromRGB(255, 200, 80)
MinBtn.Font = Enum.Font.GothamBold
MinBtn.TextSize = 14
MinBtn.Parent = TitleBar
MinBtn.MouseButton1Click:CONNECT(toggleMinimize)
LOCAL CloseBtn = Instance.new("ImageButton")
CloseBtn.Size = UDim2.new(0, 22, 0, 22)
CloseBtn.Position = UDim2.new(1, -34, 0.5, -11)
CloseBtn.Image = "rbxassetid://126054630022043"
CloseBtn.BackgroundTransparency = 1
CloseBtn.Parent = TitleBar
CloseBtn.MouseButton1Click:CONNECT(closeHub)
-- ═══════════════════════════════════════════════════════════
-- SIDEBAR NAVIGATION — Visual, Combat, Player, Misc, SC, Info
-- ═══════════════════════════════════════════════════════════
LOCAL Sidebar = Instance.new("Frame")
Sidebar.Name = "Sidebar"
Sidebar.Size = UDim2.new(0, 135, 1, -42)
Sidebar.Position = UDim2.new(0, 0, 0, 42)
Sidebar.BackgroundColor3 = Color3.fromRGB(12, 9, 20)
Sidebar.BorderSizePixel = 0
Sidebar.ClipsDescendants = TRUE
Sidebar.Parent = MainFrame
LOCAL SidebarTitle = Instance.new("TextLabel")
SidebarTitle.Name = "SidebarTitle"
SidebarTitle.Text = "MENU"
SidebarTitle.Size = UDim2.new(1, -20, 0, 28)
SidebarTitle.Position = UDim2.new(0, 10, 0, 8)
SidebarTitle.BackgroundTransparency = 1
SidebarTitle.TextColor3 = Color3.fromRGB(175, 140, 225)
SidebarTitle.Font = Enum.Font.GothamBold
SidebarTitle.TextSize = 10
SidebarTitle.TextXAlignment = Enum.TextXAlignment.Left
SidebarTitle.Parent = Sidebar
LOCAL SideContainer = Instance.new("Frame")
SideContainer.Name = "SideContainer"
SideContainer.Size = UDim2.new(1, -16, 1, -48)
SideContainer.Position = UDim2.new(0, 8, 0, 42)
SideContainer.BackgroundTransparency = 1
SideContainer.Parent = Sidebar
LOCAL SideLayout = Instance.new("UIListLayout")
SideLayout.SortOrder = Enum.SortOrder.LayoutOrder
SideLayout.Padding = UDim.new(0, 5)
SideLayout.Parent = SideContainer
LOCAL Tabs = {"Visual", "Combat", "Player", "Misc", "SC", "Info"}
LOCAL TabButtons = {}
LOCAL TabPages = {}
LOCAL FUNCTION selectTab(name)
State.ActiveTab = name
FOR tabName, page IN pairs(TabPages) do
page.Visible = (tabName == name)
END
FOR tabName, button IN pairs(TabButtons) do
LOCAL selected = (tabName == name)
IF selected THEN
button.BackgroundColor3 = Color3.fromRGB(65, 38, 105)
button.TextColor3 = Color3.fromRGB(235, 215, 255)
ELSE
button.BackgroundColor3 = Color3.fromRGB(21, 16, 32)
button.TextColor3 = Color3.fromRGB(155, 140, 180)
END
LOCAL indicator = button:FindFirstChild("ActiveIndicator")
IF indicator THEN
indicator.Visible = selected
END
END
END
FOR idx, name IN ipairs(Tabs) do
LOCAL btn = Instance.new("TextButton")
btn.Name = name
btn.Text = name
btn.Size = UDim2.new(1, 0, 0, 38)
btn.BackgroundColor3 = Color3.fromRGB(21, 16, 32)
btn.TextColor3 = Color3.fromRGB(155, 140, 180)
btn.Font = Enum.Font.GothamSemibold
btn.TextSize = 10
btn.TextXAlignment = Enum.TextXAlignment.Left
btn.BorderSizePixel = 0
btn.LayoutOrder = idx
btn.AutoButtonColor = FALSE
btn.Parent = SideContainer
LOCAL corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 7)
corner.Parent = btn
LOCAL indicator = Instance.new("Frame")
indicator.Name = "ActiveIndicator"
indicator.Size = UDim2.new(0, 3, 0, 22)
indicator.Position = UDim2.new(0, 0, 0.5, -11)
indicator.BackgroundColor3 = Color3.fromRGB(180, 80, 255)
indicator.BorderSizePixel = 0
indicator.Visible = FALSE
indicator.Parent = btn
LOCAL page = Instance.new("ScrollingFrame")
page.Name = name .. "Page"
page.Size = UDim2.new(1, -151, 1, -58)
page.Position = UDim2.new(0, 143, 0, 50)
page.BackgroundTransparency = 1
page.BorderSizePixel = 0
page.ScrollBarThickness = 5
page.ScrollBarImageColor3 = Color3.fromRGB(160, 50, 255)
page.AutomaticCanvasSize = Enum.AutomaticSize.Y
page.CanvasSize = UDim2.new(0, 0, 0, 0)
page.Visible = FALSE
page.Parent = MainFrame
LOCAL pageLayout = Instance.new("UIListLayout")
pageLayout.SortOrder = Enum.SortOrder.LayoutOrder
pageLayout.Padding = UDim.new(0, 6)
pageLayout.Parent = page
TabButtons[name] = btn
TabPages[name] = page
btn.MouseButton1Click:CONNECT(FUNCTION()
selectTab(name)
END)
END
selectTab("Visual")
-- ═══════════════════════════════════════════════════════════
-- UI ELEMENT HELPERS
-- ═══════════════════════════════════════════════════════════
LOCAL FUNCTION createHeader(parent, text, ORDER)
LOCAL label = Instance.new("TextLabel")
label.Size = UDim2.new(1, 0, 0, 28)
label.BackgroundColor3 = Color3.fromRGB(30, 22, 50)
label.Text = " " .. text
label.TextColor3 = Color3.fromRGB(200, 170, 255)
label.Font = Enum.Font.GothamBold
label.TextSize = 11
label.TextXAlignment = Enum.TextXAlignment.Left
label.LayoutOrder = ORDER
label.Parent = parent
Instance.new("UICorner", label).CornerRadius = UDim.new(0, 6)
END
LOCAL FUNCTION stylePremiumButton(btn)
Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6)
LOCAL stroke = Instance.new("UIStroke")
stroke.Color = Color3.fromRGB(100, 50, 180)
stroke.Thickness = 1
stroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
stroke.Parent = btn
LOCAL grad = Instance.new("UIGradient")
grad.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(160, 50, 255)),
ColorSequenceKeypoint.new(0.5, Color3.fromRGB(80, 30, 140)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(160, 50, 255)),
})
grad.Parent = stroke
registerGradient(grad)
LOCAL origColor = btn.BackgroundColor3
btn.MouseEnter:CONNECT(FUNCTION()
TweenService:CREATE(btn, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(80, 45, 140)}):Play()
TweenService:CREATE(stroke, TweenInfo.new(0.2), {Color = Color3.fromRGB(180, 80, 255)}):Play()
END)
btn.MouseLeave:CONNECT(FUNCTION()
TweenService:CREATE(btn, TweenInfo.new(0.2), {BackgroundColor3 = origColor}):Play()
TweenService:CREATE(stroke, TweenInfo.new(0.2), {Color = Color3.fromRGB(100, 50, 180)}):Play()
END)
END
LOCAL FUNCTION createToggle(parent, text, DEFAULT, callback, ORDER)
LOCAL frame = Instance.new("Frame")
frame.Size = UDim2.new(1, 0, 0, 36)
frame.BackgroundColor3 = Color3.fromRGB(22, 17, 34)
frame.LayoutOrder = ORDER
frame.Parent = parent
Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 6)
LOCAL label = Instance.new("TextLabel")
label.Text = " " .. text
label.Size = UDim2.new(1, -70, 1, 0)
label.BackgroundTransparency = 1
label.TextColor3 = Color3.fromRGB(220, 200, 245)
label.Font = Enum.Font.Gotham
label.TextSize = 11.5
label.TextXAlignment = Enum.TextXAlignment.Left
label.Parent = frame
LOCAL btn = Instance.new("TextButton")
btn.Size = UDim2.new(0, 52, 0, 24)
btn.Position = UDim2.new(1, -62, 0.5, -12)
btn.BackgroundColor3 = DEFAULT AND Color3.fromRGB(130, 60, 240) OR Color3.fromRGB(50, 45, 65)
btn.Text = DEFAULT AND "ON" OR "OFF"
btn.TextColor3 = Color3.fromRGB(255, 255, 255)
btn.Font = Enum.Font.GothamBold
btn.TextSize = 10
btn.Parent = frame
stylePremiumButton(btn)
LOCAL isOn = DEFAULT
btn.MouseButton1Click:CONNECT(FUNCTION()
isOn = NOT isOn
btn.BackgroundColor3 = isOn AND Color3.fromRGB(130, 60, 240) OR Color3.fromRGB(50, 45, 65)
btn.Text = isOn AND "ON" OR "OFF"
IF callback THEN callback(isOn) END
END)
RETURN btn
END
-- ═══════════════════════════════════════════════════════════
-- VISUAL TAB — ESP & Generator HUD
-- ═══════════════════════════════════════════════════════════
LOCAL vPage = TabPages.Visual
createHeader(vPage, "👁️ Visual Settings", 1)
createToggle(vPage, "ESP Players (Green)", FALSE, FUNCTION(v)
State.ESPPlayers = v
IF NOT v THEN cleanESP() END
END, 2)
createToggle(vPage, "ESP Killer (Red)", FALSE, FUNCTION(v)
State.ESPKiller = v
IF NOT v THEN cleanESP() END
END, 3)
createToggle(vPage, "ESP Generators", FALSE, FUNCTION(v)
State.ESPGenerators = v
IF NOT v THEN cleanESP() END
END, 4)
createToggle(vPage, "Generator Progress Details", FALSE, FUNCTION(v)
State.ESPGenProgress = v
END, 5)
-- Generator HUD
LOCAL GenHUD = Instance.new("Frame")
GenHUD.Name = "REINGenHUD"
GenHUD.Size = UDim2.new(0, 190, 0, 95)
GenHUD.Position = UDim2.new(0.8, -10, 0.15, 0)
GenHUD.BackgroundColor3 = Color3.fromRGB(18, 12, 28)
GenHUD.BorderSizePixel = 0
GenHUD.Active = TRUE
GenHUD.Draggable = TRUE
GenHUD.Visible = FALSE
GenHUD.Parent = ScreenGui
Instance.new("UICorner", GenHUD).CornerRadius = UDim.new(0, 8)
LOCAL HUDStroke = Instance.new("UIStroke")
HUDStroke.Color = Color3.fromRGB(255, 255, 255)
HUDStroke.Thickness = 1.8
HUDStroke.Parent = GenHUD
LOCAL HUDGrad = Instance.new("UIGradient")
HUDGrad.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(160, 50, 255)),
ColorSequenceKeypoint.new(0.5, Color3.fromRGB(30, 10, 60)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(160, 50, 255)),
})
HUDGrad.Parent = HUDStroke
registerGradient(HUDGrad)
LOCAL HUDTitle = Instance.new("TextLabel")
HUDTitle.Text = "⚡ GENERATORS LEFT"
HUDTitle.Size = UDim2.new(1, 0, 0, 26)
HUDTitle.BackgroundTransparency = 1
HUDTitle.TextColor3 = Color3.fromRGB(180, 140, 255)
HUDTitle.Font = Enum.Font.GothamBold
HUDTitle.TextSize = 10
HUDTitle.Parent = GenHUD
LOCAL HUDContent = Instance.new("TextLabel")
HUDContent.Text = "Calculating..."
HUDContent.Size = UDim2.new(1, -16, 1, -26)
HUDContent.Position = UDim2.new(0, 8, 0, 24)
HUDContent.BackgroundTransparency = 1
HUDContent.TextColor3 = Color3.fromRGB(220, 200, 240)
HUDContent.Font = Enum.Font.GothamSemibold
HUDContent.TextSize = 10.5
HUDContent.TextXAlignment = Enum.TextXAlignment.Left
HUDContent.TextYAlignment = Enum.TextYAlignment.Top
HUDContent.Parent = GenHUD
createToggle(vPage, "Generator Counter HUD", FALSE, FUNCTION(v)
State.GenHUDVisible = v
GenHUD.Visible = v
END, 6)
-- ESP Helpers
LOCAL FUNCTION getGenerators()
LOCAL gens = {}
pcall(FUNCTION()
FOR _, obj IN ipairs(workspace:GetDescendants()) do
IF obj.Name:LOWER():find("generator") AND obj:IsA("Model") THEN
TABLE.insert(gens, obj)
END
END
END)
RETURN gens
END
LOCAL FUNCTION getGenProgress(gen)
LOCAL prog = gen:FindFirstChild("Progress") OR gen:FindFirstChild("progress") OR gen:FindFirstChild("Percent")
IF prog AND prog:IsA("ValueBase") THEN RETURN prog.Value END
LOCAL attr = gen:GetAttribute("Progress") OR gen:GetAttribute("progress")
IF attr THEN RETURN attr END
LOCAL bGui = gen:FindFirstChildOfClass("BillboardGui") OR gen:FindFirstChildOfClass("SurfaceGui")
IF bGui THEN
LOCAL lbl = bGui:FindFirstChildOfClass("TextLabel")
IF lbl THEN
LOCAL num = lbl.Text:MATCH("(%d+)")
IF num THEN RETURN tonumber(num) END
END
END
RETURN nil
END
LOCAL FUNCTION updateGenHUD()
IF NOT State.GenHUDVisible THEN RETURN END
LOCAL gens = getGenerators()
LOCAL total = #gens
LOCAL completed, active = 0, 0
FOR _, g IN ipairs(gens) do
LOCAL p = getGenProgress(g)
IF p AND p >= 100 THEN completed = completed + 1 ELSE active = active + 1 END
END
HUDContent.Text = string.format("Unfinished: %d\nCompleted: %d\nTotal Gens: %d\nEscape: %s",
active, completed, total, active == 0 AND "READY" OR "IN PROGRESS")
END
LOCAL ESPFolder = Instance.new("Folder")
ESPFolder.Name = "REIN_ESP"
pcall(FUNCTION() ESPFolder.Parent = CoreGui END)
IF NOT ESPFolder.Parent THEN ESPFolder.Parent = ScreenGui END
FUNCTION cleanESP()
pcall(FUNCTION()
FOR _, obj IN ipairs(ESPFolder:GetChildren()) do obj:Destroy() END
FOR _, p IN ipairs(Players:GetPlayers()) do
IF p.Character THEN
LOCAL h = p.Character:FindFirstChild("REIN_Highlight")
IF h THEN h:Destroy() END
LOCAL b = p.Character:FindFirstChild("REIN_Billboard")
IF b THEN b:Destroy() END
END
END
FOR _, g IN ipairs(getGenerators()) do
LOCAL h = g:FindFirstChild("REIN_Highlight")
IF h THEN h:Destroy() END
LOCAL b = g:FindFirstChild("REIN_Billboard")
IF b THEN b:Destroy() END
END
END)
END
LOCAL FUNCTION applyHighlight(object, color, name, isGen)
IF NOT object THEN RETURN END
LOCAL highlight = object:FindFirstChild("REIN_Highlight")
IF NOT highlight THEN
highlight = Instance.new("Highlight")
highlight.Name = "REIN_Highlight"
highlight.FillColor = color
highlight.FillTransparency = 0.5
highlight.OutlineColor = color
highlight.OutlineTransparency = 0.1
highlight.Adornee = object
highlight.Parent = object
ELSE
highlight.OutlineColor = color
highlight.FillColor = color
END
LOCAL bill = object:FindFirstChild("REIN_Billboard")
IF NOT bill THEN
bill = Instance.new("BillboardGui")
bill.Name = "REIN_Billboard"
bill.Size = UDim2.new(0, 120, 0, 45)
bill.AlwaysOnTop = TRUE
bill.StudsOffset = Vector3.new(0, 3.5, 0)
bill.Adornee = object:IsA("Model") AND (object.PrimaryPart OR object:FindFirstChild("HumanoidRootPart") OR object:FindFirstChildOfClass("Part")) OR object
bill.Parent = object
LOCAL t = Instance.new("TextLabel")
t.BackgroundTransparency = 1
t.Size = UDim2.new(1, 0, 1, 0)
t.TextColor3 = color
t.Font = Enum.Font.GothamBold
t.TextSize = 10
t.TextStrokeTransparency = 0.4
t.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
t.Text = name
t.Parent = bill
END
LOCAL lbl = bill:FindFirstChildOfClass("TextLabel")
IF lbl AND LocalPlayer.Character AND LocalPlayer.Character:FindFirstChild("HumanoidRootPart") THEN
LOCAL myHrp = LocalPlayer.Character.HumanoidRootPart
LOCAL tPart = object:IsA("Model") AND (object.PrimaryPart OR object:FindFirstChild("HumanoidRootPart") OR object:FindFirstChildOfClass("Part")) OR object
IF tPart THEN
LOCAL dist = math.round((myHrp.Position - tPart.Position).Magnitude)
IF isGen AND State.ESPGenProgress THEN
LOCAL prog = getGenProgress(object) OR 0
lbl.Text = string.format("%s\n[%d%%] | %d studs", name, prog, dist)
ELSE
lbl.Text = string.format("%s\n%d studs", name, dist)
END
lbl.TextColor3 = color
END
END
END
LOCAL FUNCTION runESPUpdate()
-- Players ESP — GREEN for survivors, RED for killer
IF State.ESPPlayers OR State.ESPKiller THEN
FOR _, p IN ipairs(Players:GetPlayers()) do
IF p ~= LocalPlayer AND p.Character AND p.Character:FindFirstChild("HumanoidRootPart") THEN
LOCAL isKiller = (p.Team AND p.Team.Name:LOWER():find("killer")) OR p.Character:FindFirstChild("Knife") OR p.Character:FindFirstChild("Weapon")
IF isKiller AND State.ESPKiller THEN
applyHighlight(p.Character, TeamColors.Killer, p.Name .. " [KILLER]", FALSE)
ELSEIF NOT isKiller AND State.ESPPlayers THEN
applyHighlight(p.Character, TeamColors.Survivors, p.Name .. " [SURVIVOR]", FALSE)
ELSE
LOCAL h = p.Character:FindFirstChild("REIN_Highlight")
IF h THEN h:Destroy() END
LOCAL b = p.Character:FindFirstChild("REIN_Billboard")
IF b THEN b:Destroy() END
END
END
END
END
-- Generator ESP
IF State.ESPGenerators THEN
FOR _, gen IN ipairs(getGenerators()) do
applyHighlight(gen, TeamColors.Generator, "Generator", TRUE)
END
END
END
TABLE.insert(State.Connections, RunService.Heartbeat:CONNECT(FUNCTION()
IF tick() % 0.3 < 0.05 THEN
pcall(runESPUpdate)
pcall(updateGenHUD)
END
END))
-- ═══════════════════════════════════════════════════════════
-- COMBAT TAB — Auto Parry & God Mode
-- ═══════════════════════════════════════════════════════════
LOCAL cPage = TabPages.Combat
createHeader(cPage, "⚔️ Combat Systems", 1)
createToggle(cPage, "Auto Parry (Comming Soon)", FALSE, FUNCTION(v) State.AutoParry = v END, 2)
createToggle(cPage, "God Mode (Comming Soon)", FALSE, FUNCTION(v) State.GodMode = v END, 3)
-- Auto Parry — using ReplicatedStorage.Items.ParryClient
LOCAL parryDebounce = FALSE
LOCAL FUNCTION tryParry()
IF parryDebounce OR NOT State.AutoParry THEN RETURN END
parryDebounce = TRUE
-- Find parry remote dynamically
LOCAL pRemote = ParryClient
IF NOT pRemote THEN
pcall(FUNCTION()
pRemote = ReplicatedStorage:FindFirstChild("Items") AND ReplicatedStorage.Items:FindFirstChild("ParryClient")
END)
END
IF NOT pRemote THEN
pcall(FUNCTION()
LOCAL parryDagger = ItemRemotes AND ItemRemotes:FindFirstChild("Parrying Dagger")
pRemote = parryDagger AND parryDagger:FindFirstChild("parry")
END)
END
-- Deep search fallback
IF NOT pRemote THEN
pcall(FUNCTION()
FOR _, v IN ipairs(ReplicatedStorage:GetDescendants()) do
IF (v.Name == "ParryClient" OR v.Name == "parry") AND (v:IsA("RemoteEvent") OR v:IsA("RemoteFunction") OR v:IsA("BindableEvent")) THEN
pRemote = v
break
END
END
END)
END
IF pRemote THEN
pcall(FUNCTION()
IF pRemote:IsA("RemoteEvent") THEN
pRemote:FireServer()
ELSEIF pRemote:IsA("BindableEvent") THEN
pRemote:Fire()
ELSEIF pRemote:IsA("RemoteFunction") THEN
pRemote:InvokeServer()
ELSE
pRemote:FireServer()
END
END)
END
task.delay(0.15, FUNCTION() parryDebounce = FALSE END)
END
LOCAL FUNCTION checkKillerStrike()
IF NOT State.AutoParry THEN RETURN END
LOCAL CHAR = LocalPlayer.Character
LOCAL hrp = CHAR AND CHAR:FindFirstChild("HumanoidRootPart")
IF NOT hrp THEN RETURN END
FOR _, k IN ipairs(Players:GetPlayers()) do
IF k ~= LocalPlayer AND k.Character AND k.Character:FindFirstChild("HumanoidRootPart") THEN
LOCAL kHrp = k.Character.HumanoidRootPart
LOCAL dist = (hrp.Position - kHrp.Position).Magnitude
IF dist >= 2 AND dist <= 14 THEN
LOCAL isKiller = (k.Team AND k.Team.Name:LOWER():find("killer")) OR k.Character:FindFirstChild("Knife") OR k.Character:FindFirstChild("Weapon")
IF isKiller THEN
LOCAL hum = k.Character:FindFirstChildOfClass("Humanoid")
IF hum THEN
LOCAL anims = hum:GetPlayingAnimationTracks()
FOR _, a IN ipairs(anims) do
LOCAL n = a.Name:LOWER()
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
tryParry()
RETURN
END
END
END
END
END
END
END
END
TABLE.insert(State.Connections, RunService.Heartbeat:CONNECT(checkKillerStrike))
IF AttackHitRemote THEN
TABLE.insert(State.Connections, AttackHitRemote.OnClientEvent:CONNECT(FUNCTION()
IF State.AutoParry THEN tryParry() END
END))
END
IF LungeDetectRemote THEN
TABLE.insert(State.Connections, LungeDetectRemote.OnClientEvent:CONNECT(FUNCTION(killer)
IF State.AutoParry AND killer AND killer ~= LocalPlayer THEN
LOCAL CHAR = LocalPlayer.Character
LOCAL hrp = CHAR AND CHAR:FindFirstChild("HumanoidRootPart")
IF hrp AND killer.Character AND killer.Character:FindFirstChild("HumanoidRootPart") THEN
LOCAL dist = (hrp.Position - killer.Character.HumanoidRootPart.Position).Magnitude
IF dist <= 14 THEN tryParry() END
END
END
END))
END
-- ═══════════════════════════════════════════════════════════
-- GOD MODE — HP 999999 + Space (hook/continue) works normally
-- ═══════════════════════════════════════════════════════════
-- Hook namecall to block INCOMING damage only (not outgoing killer actions)
LOCAL oldNamecall
oldNamecall = hookmetamethod(game, "__namecall", newcclosure(FUNCTION(SELF, ...)
LOCAL method = getnamecallmethod()
IF method == "FireServer" AND State.GodMode THEN
LOCAL isLocalKiller = LocalPlayer.Team AND LocalPlayer.Team.Name:LOWER():find("killer")
LOCAL name = SELF.Name:LOWER()
-- Block incoming damage/hook remotes ONLY for survivors
-- Do NOT block: hook (when you're killer), continue, space, interact, generator, skill
IF NOT isLocalKiller THEN
IF name:find("takedamage") OR name:find("injure") OR name:find("down") THEN
RETURN
END
IF SELF == AttackHitRemote THEN
RETURN
END
END
END
RETURN oldNamecall(SELF, ...)
END))
-- God Mode health loop — sets HP to 999999 continuously
TABLE.insert(State.Connections, RunService.Heartbeat:CONNECT(FUNCTION()
IF State.GodMode AND LocalPlayer.Character THEN
LOCAL hum = LocalPlayer.Character:FindFirstChildOfClass("Humanoid")
IF hum THEN
pcall(FUNCTION()
IF hum.MaxHealth ~= 999999 THEN hum.MaxHealth = 999999 END
IF hum.Health < 999999 THEN hum.Health = 999999 END
END)
END
END
END))
-- ═══════════════════════════════════════════════════════════
-- PLAYER TAB — Player List, Details, Teleport & Speed
-- ═══════════════════════════════════════════════════════════
LOCAL pPage = TabPages.Player
LOCAL PlayerContent = Instance.new("Frame")
PlayerContent.Size = UDim2.new(1, 0, 1, 0)
PlayerContent.BackgroundTransparency = 1
PlayerContent.LayoutOrder = 1
PlayerContent.Parent = pPage
LOCAL PlayerLeft = Instance.new("ScrollingFrame")
PlayerLeft.Size = UDim2.new(0, 170, 1, 0)
PlayerLeft.BackgroundTransparency = 1
PlayerLeft.ScrollBarThickness = 4
PlayerLeft.Parent = PlayerContent
LOCAL LeftLayout = Instance.new("UIListLayout")
LeftLayout.SortOrder = Enum.SortOrder.LayoutOrder
LeftLayout.Padding = UDim.new(0, 4)
LeftLayout.Parent = PlayerLeft
LOCAL PlayerRight = Instance.new("Frame")
PlayerRight.Size = UDim2.new(1, -180, 1, 0)
PlayerRight.Position = UDim2.new(0, 180, 0, 0)
PlayerRight.BackgroundColor3 = Color3.fromRGB(22, 17, 34)
PlayerRight.BorderSizePixel = 0
PlayerRight.Parent = PlayerContent
Instance.new("UICorner", PlayerRight).CornerRadius = UDim.new(0, 8)
LOCAL RightLayout = Instance.new("UIListLayout")
RightLayout.SortOrder = Enum.SortOrder.LayoutOrder
RightLayout.Padding = UDim.new(0, 8)
RightLayout.Parent = PlayerRight
LOCAL DetailTitle = Instance.new("TextLabel")
DetailTitle.Text = "🔍 PLAYER DETAILS"
DetailTitle.Size = UDim2.new(1, 0, 0, 24)
DetailTitle.BackgroundTransparency = 1
DetailTitle.TextColor3 = Color3.fromRGB(180, 140, 255)
DetailTitle.Font = Enum.Font.GothamBold
DetailTitle.TextSize = 11
DetailTitle.Parent = PlayerRight
LOCAL DetailText = Instance.new("TextLabel")
DetailText.Text = "Select a player from the list."
DetailText.Size = UDim2.new(1, -20, 0, 80)
DetailText.Position = UDim2.new(0, 10, 0, 0)
DetailText.BackgroundTransparency = 1
DetailText.TextColor3 = Color3.fromRGB(210, 195, 235)
DetailText.Font = Enum.Font.Gotham
DetailText.TextSize = 11
DetailText.TextXAlignment = Enum.TextXAlignment.Left
DetailText.TextYAlignment = Enum.TextYAlignment.Top
DetailText.Parent = PlayerRight
-- Teleport Button
LOCAL TeleportBtn = Instance.new("TextButton")
TeleportBtn.Text = "Teleport To Player"
TeleportBtn.Size = UDim2.new(1, -20, 0, 28)
TeleportBtn.BackgroundColor3 = Color3.fromRGB(90, 50, 200)
TeleportBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
TeleportBtn.Font = Enum.Font.GothamBold
TeleportBtn.TextSize = 11
TeleportBtn.Visible = FALSE
TeleportBtn.Parent = PlayerRight
Instance.new("UICorner", TeleportBtn).CornerRadius = UDim.new(0, 6)
TeleportBtn.MouseButton1Click:CONNECT(FUNCTION()
LOCAL target = State.SelectedPlayer
IF target AND target.Character AND target.Character:FindFirstChild("HumanoidRootPart") AND LocalPlayer.Character AND LocalPlayer.Character:FindFirstChild("HumanoidRootPart") THEN
LocalPlayer.Character.HumanoidRootPart.CFrame = target.Character.HumanoidRootPart.CFrame * CFrame.new(0, 0, 3)
END
END)
-- Walk Speed controls
LOCAL SpeedTitle = Instance.new("TextLabel")
SpeedTitle.Text = "🏃 WALK SPEED"
SpeedTitle.Size = UDim2.new(1, 0, 0, 20)
SpeedTitle.BackgroundTransparency = 1
SpeedTitle.TextColor3 = Color3.fromRGB(180, 140, 255)
SpeedTitle.Font = Enum.Font.GothamBold
SpeedTitle.TextSize = 11
SpeedTitle.Parent = PlayerRight
LOCAL SpeedFrame = Instance.new("Frame")
SpeedFrame.Size = UDim2.new(1, -20, 0, 32)
SpeedFrame.BackgroundTransparency = 1
SpeedFrame.Parent = PlayerRight
LOCAL SpeedInput = Instance.new("TextBox")
SpeedInput.Text = "16"
SpeedInput.PlaceholderText = "Speed (5-100)"
SpeedInput.Size = UDim2.new(0.4, 0, 1, 0)
SpeedInput.BackgroundColor3 = Color3.fromRGB(30, 25, 45)
SpeedInput.TextColor3 = Color3.fromRGB(255, 255, 255)
SpeedInput.Font = Enum.Font.Gotham
SpeedInput.TextSize = 11
SpeedInput.Parent = SpeedFrame
Instance.new("UICorner", SpeedInput).CornerRadius = UDim.new(0, 6)
LOCAL SpeedToggle = Instance.new("TextButton")
SpeedToggle.Text = "Speed: OFF"
SpeedToggle.Size = UDim2.new(0.56, 0, 1, 0)
SpeedToggle.Position = UDim2.new(0.44, 0, 0, 0)
SpeedToggle.BackgroundColor3 = Color3.fromRGB(50, 45, 65)
SpeedToggle.TextColor3 = Color3.fromRGB(255, 255, 255)
SpeedToggle.Font = Enum.Font.GothamBold
SpeedToggle.TextSize = 11
SpeedToggle.Parent = SpeedFrame
stylePremiumButton(SpeedToggle)
SpeedToggle.MouseButton1Click:CONNECT(FUNCTION()
State.SpeedEnabled = NOT State.SpeedEnabled
SpeedToggle.Text = State.SpeedEnabled AND "Speed: ON" OR "Speed: OFF"
SpeedToggle.BackgroundColor3 = State.SpeedEnabled AND Color3.fromRGB(130, 60, 240) OR Color3.fromRGB(50, 45, 65)
END)
SpeedInput:GetPropertyChangedSignal("Text"):CONNECT(FUNCTION()
LOCAL val = tonumber(SpeedInput.Text)
IF val THEN State.WalkSpeed = math.clamp(val, 5, 100) END
END)
TABLE.insert(State.Connections, RunService.Heartbeat:CONNECT(FUNCTION()
IF State.SpeedEnabled AND LocalPlayer.Character THEN
LOCAL hum = LocalPlayer.Character:FindFirstChildOfClass("Humanoid")
IF hum THEN hum.WalkSpeed = State.WalkSpeed END
END
END))
LOCAL FUNCTION rebuildPlayerList()
FOR _, c IN ipairs(PlayerLeft:GetChildren()) do
IF c:IsA("TextButton") THEN c:Destroy() END
END
LOCAL idx = 1
FOR _, p IN ipairs(Players:GetPlayers()) do
LOCAL btn = Instance.new("TextButton")
btn.Size = UDim2.new(1, -8, 0, 30)
btn.BackgroundColor3 = (State.SelectedPlayer == p) AND Color3.fromRGB(70, 40, 120) OR Color3.fromRGB(28, 22, 40)
btn.Text = " " .. p.Name
btn.TextColor3 = (State.SelectedPlayer == p) AND Color3.fromRGB(230, 200, 255) OR Color3.fromRGB(195, 185, 215)
btn.Font = Enum.Font.GothamBold
btn.TextSize = 11
btn.TextXAlignment = Enum.TextXAlignment.Left
btn.LayoutOrder = idx
btn.Parent = PlayerLeft
Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6)
btn.MouseButton1Click:CONNECT(FUNCTION()
State.SelectedPlayer = p
rebuildPlayerList()
LOCAL team = p.Team AND p.Team.Name OR "Unknown"
LOCAL hp = 100
pcall(FUNCTION()
IF p.Character AND p.Character:FindFirstChildOfClass("Humanoid") THEN
hp = math.round(p.Character:FindFirstChildOfClass("Humanoid").Health)
END
END)
DetailText.Text = string.format("Name: %s\nTeam: %s\nHealth: %d\nAccount Age: %d days\nUserId: %d",
p.Name, team, hp, p.AccountAge OR 0, p.UserId)
TeleportBtn.Visible = TRUE
END)
idx = idx + 1
END
PlayerLeft.CanvasSize = UDim2.new(0, 0, 0, idx * 34)
END
TABLE.insert(State.Connections, RunService.Heartbeat:CONNECT(FUNCTION()
IF State.ActiveTab == "Player" AND tick() % 3.0 < 0.05 THEN rebuildPlayerList() END
END))
rebuildPlayerList()
-- ═══════════════════════════════════════════════════════════
-- MISC TAB — Perfect Generator & AFK
-- ═══════════════════════════════════════════════════════════
LOCAL mPage = TabPages.Misc
createHeader(mPage, "🔧 Generator & AFK Systems", 1)
createToggle(mPage, "Perfect Generator (Comming Soon)", FALSE, FUNCTION(v)
State.PerfectGen = v
END, 2)
-- Helper for new Perfect Generator
LOCAL FUNCTION normalizeAngle(angle)
angle = angle % 360
RETURN angle < 0 AND angle + 360 OR angle
END
-- Perfect Generator — intercept skillcheck events and auto-succeed
LOCAL FUNCTION Autogen()
IF NOT State.PerfectGen THEN RETURN END
pcall(FUNCTION()
LOCAL CheckPrompt = LocalPlayer.PlayerGui:FindFirstChild("SkillCheckPromptGui")
IF CheckPrompt AND CheckPrompt.Check AND CheckPrompt.Check.Line AND CheckPrompt.Check.Goal THEN
LOCAL Rotation = CheckPrompt.Check.Line.Rotation
LOCAL GoalRotation = CheckPrompt.Check.Goal.Rotation
Rotation = normalizeAngle(Rotation)
GoalRotation = normalizeAngle(GoalRotation)
LOCAL lowerSuccess = normalizeAngle(104 + GoalRotation)
LOCAL upperSuccess = normalizeAngle(114 + GoalRotation)
IF lowerSuccess <= Rotation AND Rotation <= upperSuccess THEN
VirtualUser:CaptureController()
VirtualUser:KeyPress(Enum.KeyCode.Space)
task.wait()
VirtualUser:KeyRelease(Enum.KeyCode.Space)
END
END
END)
END
-- Lobby Stay & Neon RGB AFK Mode
LOCAL afkTimerLabel = Instance.new("TextLabel")
afkTimerLabel.Text = "AFK Time: 00:00:00"
afkTimerLabel.Size = UDim2.new(1, 0, 0, 24)
afkTimerLabel.BackgroundTransparency = 1
afkTimerLabel.Font = Enum.Font.GothamBold
afkTimerLabel.TextSize = 12.5
afkTimerLabel.LayoutOrder = 4
afkTimerLabel.Parent = mPage
LOCAL PreAFKCFrame = nil
createToggle(mPage, "Lobby AFK Safe Mode", FALSE, FUNCTION(v)
State.AFKMode = v
IF v THEN
State.AFKStartTime = os.time()
IF LocalPlayer.Character AND LocalPlayer.Character:FindFirstChild("HumanoidRootPart") THEN
PreAFKCFrame = LocalPlayer.Character.HumanoidRootPart.CFrame
LocalPlayer.Character.HumanoidRootPart.CFrame = CFrame.new(0, 5000, 0)
LOCAL part = Instance.new("Part")
part.Name = "REIN_AFKPlatform"
part.Size = Vector3.new(12, 1.5, 12)
part.Position = Vector3.new(0, 4995, 0)
part.Anchored = TRUE
part.Parent = workspace
END
ELSE
afkTimerLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
afkTimerLabel.Text = "AFK Time: 00:00:00"
LOCAL plat = workspace:FindFirstChild("REIN_AFKPlatform")
IF plat THEN plat:Destroy() END
IF LocalPlayer.Character AND LocalPlayer.Character:FindFirstChild("HumanoidRootPart") THEN
IF PreAFKCFrame THEN
LocalPlayer.Character.HumanoidRootPart.CFrame = PreAFKCFrame
ELSE
LOCAL spawns = {}
FOR _, obj IN ipairs(workspace:GetDescendants()) do
IF obj:IsA("SpawnLocation") THEN
TABLE.insert(spawns, obj)
END
END
IF #spawns > 0 THEN
LOCAL randomSpawn = spawns[math.random(1, #spawns)]
LocalPlayer.Character.HumanoidRootPart.CFrame = randomSpawn.CFrame * CFrame.new(0, 3, 0)
ELSE
LocalPlayer.Character.HumanoidRootPart.CFrame = CFrame.new(0, 15, 0)
END
END
END
PreAFKCFrame = nil
END
END, 3)
TABLE.insert(State.Connections, RunService.Heartbeat:CONNECT(FUNCTION()
IF State.AFKMode THEN
LOCAL hue = tick() % 4 / 4
afkTimerLabel.TextColor3 = Color3.fromHSV(hue, 1, 1)
LOCAL diff = os.time() - State.AFKStartTime
LOCAL h = math.floor(diff / 3600)
LOCAL m = math.floor((diff % 3600) / 60)
LOCAL s = diff % 60
afkTimerLabel.Text = string.format("AFK Time: %02d:%02d:%02d", h, m, s)
IF LocalPlayer.Character AND LocalPlayer.Character:FindFirstChild("HumanoidRootPart") THEN
LOCAL pos = LocalPlayer.Character.HumanoidRootPart.Position
IF pos.Y < 4500 AND workspace:FindFirstChild("REIN_AFKPlatform") THEN
LocalPlayer.Character.HumanoidRootPart.CFrame = CFrame.new(0, 5000, 0)
END
END
END
END))
-- AFK Mode display
LOCAL afkTimerLabel = Instance.new("TextLabel")
afkTimerLabel.Text = "Anti-AFK: ACTIVE ✓"
afkTimerLabel.Size = UDim2.new(1, 0, 0, 24)
afkTimerLabel.BackgroundTransparency = 1
afkTimerLabel.TextColor3 = Color3.fromRGB(0, 255, 100)
afkTimerLabel.Font = Enum.Font.GothamBold
afkTimerLabel.TextSize = 12.5
afkTimerLabel.LayoutOrder = 4
afkTimerLabel.Parent = mPage
-- AFK timer with RGB color cycling
TABLE.insert(State.Connections, RunService.Heartbeat:CONNECT(FUNCTION()
LOCAL hue = tick() % 4 / 4
afkTimerLabel.TextColor3 = Color3.fromHSV(hue, 1, 1)
LOCAL diff = os.time() - State.AFKStartTime
LOCAL h = math.floor(diff / 3600)
LOCAL m = math.floor((diff % 3600) / 60)
LOCAL s = diff % 60
afkTimerLabel.Text = string.format("Anti-AFK: ACTIVE ✓ | Uptime: %02d:%02d:%02d", h, m, s)
Autogen() -- Run perfect gen logic in the main heartbeat loop
END))
-- ═══════════════════════════════════════════════════════════
-- SC TAB — External Script Loaders
-- ═══════════════════════════════════════════════════════════
LOCAL scPage = TabPages.SC
createHeader(scPage, "📜 External Script Loaders", 1)
-- Askr Hub loader
LOCAL scFrame1 = Instance.new("Frame")
scFrame1.Size = UDim2.new(1, 0, 0, 45)
scFrame1.BackgroundColor3 = Color3.fromRGB(22, 17, 34)
scFrame1.LayoutOrder = 2
scFrame1.Parent = scPage
Instance.new("UICorner", scFrame1).CornerRadius = UDim.new(0, 6)
LOCAL scLabel1 = Instance.new("TextLabel")
scLabel1.Text = "Perfect Generator Script"
scLabel1.Size = UDim2.new(1, -160, 1, 0)
scLabel1.BackgroundTransparency = 1
scLabel1.TextColor3 = Color3.fromRGB(220, 200, 245)
scLabel1.Font = Enum.Font.GothamSemibold
scLabel1.TextSize = 11
scLabel1.TextXAlignment = Enum.TextXAlignment.Left
scLabel1.Parent = scFrame1
LOCAL scBtn1 = Instance.new("TextButton")
scBtn1.Size = UDim2.new(0, 140, 0, 28)
scBtn1.Position = UDim2.new(1, -150, 0.5, -14)
scBtn1.BackgroundColor3 = Color3.fromRGB(120, 60, 220)
scBtn1.Text = "⚡ Execute"
scBtn1.TextColor3 = Color3.fromRGB(255, 255, 255)
scBtn1.Font = Enum.Font.GothamBold
scBtn1.TextSize = 10
scBtn1.Parent = scFrame1
stylePremiumButton(scBtn1)
scBtn1.MouseButton1Click:CONNECT(FUNCTION()
scBtn1.Text = "Executing..."
LOCAL ok, err = pcall(FUNCTION()
loadstring(game:HttpGet("https://raw.githubusercontent.com/Netshh/askr-hub/main/loader.lua"))()
END)
scBtn1.Text = ok AND "✓ Done!" OR "✗ Failed!"
scBtn1.BackgroundColor3 = ok AND Color3.fromRGB(0, 150, 80) OR Color3.fromRGB(150, 40, 40)
IF NOT ok THEN warn("⚡ REIN HUB: Askr Hub failed: " .. tostring(err)) END
task.delay(2, FUNCTION()
scBtn1.Text = "⚡ Execute"
scBtn1.BackgroundColor3 = Color3.fromRGB(120, 60, 220)
END)
END)
-- Auto Aim Veil loader
LOCAL scFrame2 = Instance.new("Frame")
scFrame2.Size = UDim2.new(1, 0, 0, 45)
scFrame2.BackgroundColor3 = Color3.fromRGB(22, 17, 34)
scFrame2.LayoutOrder = 3
scFrame2.Parent = scPage
Instance.new("UICorner", scFrame2).CornerRadius = UDim.new(0, 6)
LOCAL scLabel2 = Instance.new("TextLabel")
scLabel2.Text = "Auto Aim Veil Script [ERROR]"
scLabel2.Size = UDim2.new(1, -160, 1, 0)
scLabel2.BackgroundTransparency = 1
scLabel2.TextColor3 = Color3.fromRGB(220, 200, 245)
scLabel2.Font = Enum.Font.GothamSemibold
scLabel2.TextSize = 11
scLabel2.TextXAlignment = Enum.TextXAlignment.Left
scLabel2.Parent = scFrame2
LOCAL scBtn2 = Instance.new("TextButton")
scBtn2.Size = UDim2.new(0, 140, 0, 28)
scBtn2.Position = UDim2.new(1, -150, 0.5, -14)
scBtn2.BackgroundColor3 = Color3.fromRGB(120, 60, 220)
scBtn2.Text = "⚡ Execute"
scBtn2.TextColor3 = Color3.fromRGB(255, 255, 255)
scBtn2.Font = Enum.Font.GothamBold
scBtn2.TextSize = 10
scBtn2.Parent = scFrame2
stylePremiumButton(scBtn2)
scBtn2.MouseButton1Click:CONNECT(FUNCTION()
scBtn2.Text = "Executing..."
LOCAL ok, err = pcall(FUNCTION()
loadstring(game:HttpGet("https://raw.githubusercontent.com/RillBoys/BOLONG-HUB/refs/heads/main/games/veil"))()
END)
scBtn2.Text = ok AND "✓ Done!" OR "✗ Failed!"
scBtn2.BackgroundColor3 = ok AND Color3.fromRGB(0, 150, 80) OR Color3.fromRGB(150, 40, 40)
IF NOT ok THEN warn("⚡ REIN HUB: Veil script failed: " .. tostring(err)) END
task.delay(2, FUNCTION()
scBtn2.Text = "⚡ Execute"
scBtn2.BackgroundColor3 = Color3.fromRGB(120, 60, 220)
END)
END)
-- REINHUB X MITHUB
LOCAL scFrame3 = Instance.new("Frame")
scFrame3.Size = UDim2.new(1, 0, 0, 45)
scFrame3.BackgroundColor3 = Color3.fromRGB(22, 17, 34)
scFrame3.LayoutOrder = 4
scFrame3.Parent = scPage
Instance.new("UICorner", scFrame3).CornerRadius = UDim.new(0, 6)
LOCAL scLabel2 = Instance.new("TextLabel")
scLabel2.Text = "REINHUB X MITHUB"
scLabel2.Size = UDim2.new(1, -160, 1, 0)
scLabel2.BackgroundTransparency = 1
scLabel2.TextColor3 = Color3.fromRGB(220, 200, 245)
scLabel2.Font = Enum.Font.GothamSemibold
scLabel2.TextSize = 11
scLabel2.TextXAlignment = Enum.TextXAlignment.Left
scLabel2.Parent = scFrame3
LOCAL scBtn2 = Instance.new("TextButton")
scBtn2.Size = UDim2.new(0, 140, 0, 28)
scBtn2.Position = UDim2.new(1, -150, 0.5, -14)
scBtn2.BackgroundColor3 = Color3.fromRGB(120, 60, 220)
scBtn2.Text = "⚡ Execute"
scBtn2.TextColor3 = Color3.fromRGB(255, 255, 255)
scBtn2.Font = Enum.Font.GothamBold
scBtn2.TextSize = 10
scBtn2.Parent = scFrame3
stylePremiumButton(scBtn2)
scBtn2.MouseButton1Click:CONNECT(FUNCTION()
scBtn2.Text = "Executing..."
LOCAL ok, err = pcall(FUNCTION()
loadstring(game:HttpGet("https://raw.githubusercontent.com/loopesloop877/peakvd/refs/heads/main/mkthubp"))()
END)
scBtn2.Text = ok AND "✓ Done!" OR "✗ Failed!"
scBtn2.BackgroundColor3 = ok AND Color3.fromRGB(0, 150, 80) OR Color3.fromRGB(150, 40, 40)
IF NOT ok THEN warn("⚡ REIN HUB: MITHUB failed: " .. tostring(err)) END
task.delay(2, FUNCTION()
scBtn2.Text = "⚡ Execute"
scBtn2.BackgroundColor3 = Color3.fromRGB(120, 60, 220)
END)
END)
-- MITHUB Key
LOCAL scFrame4 = Instance.new("Frame")
scFrame4.Size = UDim2.new(1, 0, 0, 45) -- Tetap sama
scFrame4.BackgroundColor3 = Color3.fromRGB(22, 17, 34)
scFrame4.LayoutOrder = 5
scFrame4.Parent = scPage
Instance.new("UICorner", scFrame4).CornerRadius = UDim.new(0, 6)
LOCAL scLabel4 = Instance.new("TextLabel")
scLabel4.Text = "MITHUB Key"
scLabel4.Size = UDim2.new(1, -330, 1, 0) -- Beri ruang untuk tombol salin
scLabel4.BackgroundTransparency = 1
scLabel4.TextColor3 = Color3.fromRGB(220, 200, 245)
scLabel4.Font = Enum.Font.GothamSemibold
scLabel4.TextSize = 11
scLabel4.TextXAlignment = Enum.TextXAlignment.Left
scLabel4.Parent = scFrame4
LOCAL keyBox = Instance.new("TextBox")
keyBox.Text = "GENERATE KEY MANUAL"
keyBox.Size = UDim2.new(0, 240, 0, 28) -- Sedikit lebih kecil
keyBox.Position = UDim2.new(1, -320, 0.5, -14) -- Geser ke kiri
keyBox.BackgroundColor3 = Color3.fromRGB(30, 25, 45)
keyBox.TextColor3 = Color3.fromRGB(200, 180, 240)
keyBox.Font = Enum.Font.Gotham
keyBox.TextSize = 10
keyBox.ClearTextOnFocus = FALSE
keyBox.Parent = scFrame4
Instance.new("UICorner", keyBox).CornerRadius = UDim.new(0, 6)
LOCAL copyBtn = Instance.new("TextButton")
copyBtn.Size = UDim2.new(0, 70, 0, 28)
copyBtn.Position = UDim2.new(1, -75, 0.5, -14)
copyBtn.BackgroundColor3 = Color3.fromRGB(80, 50, 160)
copyBtn.Text = "Salin"
copyBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
copyBtn.Font = Enum.Font.GothamBold
copyBtn.TextSize = 10
copyBtn.Parent = scFrame4
stylePremiumButton(copyBtn)
copyBtn.MouseButton1Click:CONNECT(FUNCTION()
setclipboard("MITHUB-93O1-RS61-PQKP-B8GC")
copyBtn.Text = "Tersalin!"
copyBtn.BackgroundColor3 = Color3.fromRGB(0, 150, 80)
task.delay(2, FUNCTION()
copyBtn.Text = "Salin"
copyBtn.BackgroundColor3 = Color3.fromRGB(80, 50, 160)
END)
END)
-- ═══════════════════════════════════════════════════════════
-- INFO TAB — About, User Stats, Unload
-- ═══════════════════════════════════════════════════════════
LOCAL iPage = TabPages.Info
createHeader(iPage, "ℹ️ About REIN HUB", 1)
LOCAL aboutFrame = Instance.new("Frame")
aboutFrame.Size = UDim2.new(1, 0, 0, 110)
aboutFrame.BackgroundColor3 = Color3.fromRGB(22, 17, 34)
aboutFrame.LayoutOrder = 2
aboutFrame.Parent = iPage
Instance.new("UICorner", aboutFrame).CornerRadius = UDim.new(0, 6)
LOCAL aboutText = Instance.new("TextLabel")
aboutText.Text = [[ REIN HUB X Violence District — Premium
Exclusively built FOR Violence District (PlaceId: 93978595733734).
Features: Auto Parry, God Mode, Perfect Generator Repair,
ESP System (Killer/Survivor/Generator), Anti-AFK,
Walk Speed Control, External Script Loaders, AND more.
TikTok : @reinuhuy
Created BY REINUHUY · Follow me ON TT]]
aboutText.Size = UDim2.new(1, -20, 1, 0)
aboutText.Position = UDim2.new(0, 10, 0, 0)
aboutText.BackgroundTransparency = 1
aboutText.TextColor3 = Color3.fromRGB(210, 195, 235)
aboutText.Font = Enum.Font.Gotham
aboutText.TextSize = 10
aboutText.TextXAlignment = Enum.TextXAlignment.Left
aboutText.TextYAlignment = Enum.TextYAlignment.Center
aboutText.TextWrapped = TRUE
aboutText.Parent = aboutFrame
createHeader(iPage, "👤 User & Game Stats", 3)
LOCAL statsFrame = Instance.new("Frame")
statsFrame.Size = UDim2.new(1, 0, 0, 90)
statsFrame.BackgroundColor3 = Color3.fromRGB(22, 17, 34)
statsFrame.LayoutOrder = 4
statsFrame.Parent = iPage
Instance.new("UICorner", statsFrame).CornerRadius = UDim.new(0, 6)
LOCAL execName = "Unknown"
pcall(FUNCTION()
execName = identifyexecutor AND SELECT(1, identifyexecutor()) OR (getexecutorname AND getexecutorname()) OR "Unknown"
END)
LOCAL statsText = Instance.new("TextLabel")
statsText.Text = string.format(" Username: %s\n Game PlaceId: %d\n Executor: %s\n Anti-AFK: Auto Active ✓",
LocalPlayer.Name, game.PlaceId, execName)
statsText.Size = UDim2.new(1, -20, 1, 0)
statsText.Position = UDim2.new(0, 10, 0, 0)
statsText.BackgroundTransparency = 1
statsText.TextColor3 = Color3.fromRGB(200, 180, 240)
statsText.Font = Enum.Font.GothamSemibold
statsText.TextSize = 10.5
statsText.TextXAlignment = Enum.TextXAlignment.Left
statsText.TextYAlignment = Enum.TextYAlignment.Center
statsText.Parent = statsFrame
-- Unload button
LOCAL unloadBtn = Instance.new("TextButton")
unloadBtn.Text = "💀 Unload / Self-Destruct Hub"
unloadBtn.Size = UDim2.new(1, 0, 0, 32)
unloadBtn.BackgroundColor3 = Color3.fromRGB(120, 30, 30)
unloadBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
unloadBtn.Font = Enum.Font.GothamBold
unloadBtn.TextSize = 11
unloadBtn.LayoutOrder = 5
unloadBtn.Parent = iPage
stylePremiumButton(unloadBtn)
unloadBtn.MouseButton1Click:CONNECT(FUNCTION()
FOR _, conn IN ipairs(State.Connections) do pcall(FUNCTION() conn:Disconnect() END) END
pcall(cleanESP)
pcall(FUNCTION() GenHUD:Destroy() END)
ScreenGui:Destroy()
print("⚡ REIN HUB: Completely unloaded.")
END)
-- ═══════════════════════════════════════════════════════════
-- CINEMATIC LOADING ANIMATION SEQUENCE
-- ═══════════════════════════════════════════════════════════
LOCAL LoadMsgs = {
{0, "Establishing connection..."},
{8, "Scanning game environment..."},
{18, "Mapping remote hierarchy..."},
{28, "Initializing ESP modules..."},
{40, "Loading combat systems..."},
{50, "Configuring auto-parry engine..."},
{60, "Setting up generator scanner..."},
{72, "Building admin interface..."},
{82, "Hooking metamethods..."},
{90, "Bypassing anti-cheat layers..."},
{95, "Finalizing injection..."},
{99, "Almost ready..."},
}
task.spawn(FUNCTION()
LoadingFrame.BackgroundTransparency = 0
LOCAL fadeIn = TweenInfo.new(0.8, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
TweenService:CREATE(LogoLoad, fadeIn, {ImageTransparency = 0}):Play()
TweenService:CREATE(TitleLoad, fadeIn, {TextTransparency = 0}):Play()
task.wait(0.5)
LOCAL pct = 0
LOCAL mi = 1
while pct <= 100 do
IF mi <= #LoadMsgs AND pct >= LoadMsgs[mi][1] THEN
LOCAL fo = TweenInfo.new(0.12, Enum.EasingStyle.Quad)
TweenService:CREATE(StatusLoad, fo, {TextTransparency = 1}):Play()
task.wait(0.12)
StatusLoad.Text = LoadMsgs[mi][2]
TweenService:CREATE(StatusLoad, fo, {TextTransparency = 0}):Play()
mi = mi + 1
END
BarFill.Size = UDim2.new(pct / 100, 0, 1, 0)
PctText.Text = pct .. "%"
LOCAL hue = (pct / 100) * 0.8
BarStroke.Color = Color3.fromHSV(0.75 - hue * 0.15, 0.7, 0.8)
LOCAL dt = 0.02
IF pct < 10 THEN dt = 0.04
ELSEIF pct >= 45 AND pct <= 55 THEN dt = 0.06
ELSEIF pct > 85 AND pct < 95 THEN dt = 0.05
ELSEIF pct >= 95 THEN dt = 0.03
END
task.wait(dt)
pct = pct + 1
END
PctText.Text = "100%"
StatusLoad.Text = "Welcome, " .. LocalPlayer.Name
task.wait(0.6)
-- Cinematic fade-out
LOCAL foI = TweenInfo.new(0.5, Enum.EasingStyle.Quad, Enum.EasingDirection.In)
LOCAL foS = TweenInfo.new(0.7, Enum.EasingStyle.Quad, Enum.EasingDirection.In)
FOR _, child IN ipairs(ParticleBox:GetChildren()) do
IF child:IsA("Frame") THEN
TweenService:CREATE(child, foI, {BackgroundTransparency = 1}):Play()
END
END
TweenService:CREATE(OuterRing, foI, {ImageTransparency = 1}):Play()
TweenService:CREATE(InnerRing, foI, {ImageTransparency = 1}):Play()
task.wait(0.2)
TweenService:CREATE(LogoLoad, foI, {ImageTransparency = 1}):Play()
TweenService:CREATE(TitleLoad, foI, {TextTransparency = 1}):Play()
TweenService:CREATE(StatusLoad, foI, {TextTransparency = 1}):Play()
TweenService:CREATE(PctText, foI, {TextTransparency = 1}):Play()
TweenService:CREATE(CreditLoad, foI, {TextTransparency = 1}):Play()
TweenService:CREATE(BarBg, foI, {BackgroundTransparency = 1}):Play()
TweenService:CREATE(BarFill, foI, {BackgroundTransparency = 1}):Play()
TweenService:CREATE(BarStroke, foI, {Transparency = 1}):Play()
task.wait(0.3)
TweenService:CREATE(LoadingFrame, foS, {BackgroundTransparency = 1}):Play()
TweenService:CREATE(MatrixBgLoad, foS, {ImageTransparency = 1}):Play()
TweenService:CREATE(Vignette, foS, {ImageTransparency = 1}):Play()
task.wait(0.7)
LoadingGui:Destroy()
MainFrame.Visible = TRUE
State.UIVisible = TRUE
END)
-- ═══════════════════════════════════════════════════════════
-- BOOTSTRAP
-- ═══════════════════════════════════════════════════════════
print("⚡ REIN HUB X VD loaded! Anti-AFK active. All systems online.")