
Key Required
OP FEATURES!!! BY EXOTH NO KEY
Lua Script•1086 lines (39676 chars)
--[[
====================================================================
⚡ JUJUTSU KAISEN EVOLUTION - UNIVERSAL MASTER HUB ⚡
Supports: World 1, World 2 (The Culling Game), & Future Worlds!
Discovered Packets & Remote Events Integrated:
- Packet("TapEvent"): Fire() -> Super Fast Power Farm
- Packet("ClaimWins", Packet.NumberS8): Fire(stage) -> Massive Wins (Up to 50T/sec!)
- Packet("Rebirth"): Fire() -> Auto Rebirth
- Packet("Upgrade", Packet.String): Fire(name) -> Auto Upgrades
- Packet("PurchaseAura", Packet.String): Fire(aura) -> Auto Buy Aura
- Packet("ChangeAura", Packet.String, Packet.Boolean8): Fire(aura, bool)
- Packet("RequestRoll"): Fire() -> Auto Roll Titles (No animation delay)
- Packet("EquipTitle", Packet.String): Fire(title)
- Packet("PurchaseMorph", Packet.String): Fire(morph) -> Auto Buy Morphs
- Packet("EquipMorph", Packet.String): Fire(morph)
- Packet("Teleport"): Fire() -> Next World Portal
- Packet("AutoClick", Packet.Boolean8): Fire(bool)
- IdleModule.Communicator: Anti-AFK Hook
====================================================================
--]]
-- Cleanup previous execution if running
if _G.JJKHubCleanup then
pcall(_G.JJKHubCleanup)
end
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")
local VirtualUser = game:GetService("VirtualUser")
local Workspace = game:GetService("Workspace")
local CollectionService = game:GetService("CollectionService")
local MarketplaceService = game:GetService("MarketplaceService")
local LocalPlayer = Players.LocalPlayer
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui", 10)
-- World info
local PlaceName = "Jujutsu Evolution"
pcall(function()
PlaceName = MarketplaceService:GetProductInfo(game.PlaceId).Name
end)
-- Core Game Modules
local Packages = ReplicatedStorage:WaitForChild("Packages", 10)
local PacketModule = require(Packages:WaitForChild("Packet", 10))
local ReplicaController = require(ReplicatedStorage:WaitForChild("ReplicaController", 10))
local Replica = ReplicaController:GetReplica()
local PowerUtils = require(ReplicatedStorage:WaitForChild("Shared"):WaitForChild("PowerUtils"))
local NumberUtils = require(ReplicatedStorage:WaitForChild("Modules"):WaitForChild("NumberUtils"))
local Config = ReplicatedStorage:WaitForChild("Config")
local TitleConfig = require(Config:WaitForChild("TitleConfig"))
local AuraConfig = require(Config:WaitForChild("AuraConfig"))
local MorphConfig = require(Config:WaitForChild("MorphConfig"))
local TrainingConfig = require(Config:WaitForChild("TrainingConfig"))
local WallConfig = require(Config:WaitForChild("WallConfig"))
-- Stage Rewards lookup
local StageRewards = {}
if WallConfig and WallConfig.Walls then
for k, v in pairs(WallConfig.Walls) do
StageRewards[tonumber(k) or k] = v.Reward
end
end
-- Discovered Packets
local Packets = {
TapEvent = PacketModule("TapEvent"),
ClaimWins = PacketModule("ClaimWins", PacketModule.NumberS8),
Rebirth = PacketModule("Rebirth"),
Upgrade = PacketModule("Upgrade", PacketModule.String),
PurchaseAura = PacketModule("PurchaseAura", PacketModule.String),
ChangeAura = PacketModule("ChangeAura", PacketModule.String, PacketModule.Boolean8),
RequestRoll = PacketModule("RequestRoll"),
EquipTitle = PacketModule("EquipTitle", PacketModule.String),
ChangeTitleState = PacketModule("ChangeTitleState", PacketModule.String, PacketModule.Boolean8),
PurchaseMorph = PacketModule("PurchaseMorph", PacketModule.String),
EquipMorph = PacketModule("EquipMorph", PacketModule.String),
Teleport = PacketModule("Teleport"),
AutoClick = PacketModule("AutoClick", PacketModule.Boolean8),
SkipStage = PacketModule("SkipStage", PacketModule.NumberU8)
}
-- Initialize Response packet for Title Rolling
local RollResponseCaller = Packets.RequestRoll:Response(PacketModule.String, PacketModule.NumberS8)
-- Dynamic Stage & Training Bag Helpers
local function getStages()
local list = {}
local stagesFolder = workspace:FindFirstChild("Stages")
if stagesFolder then
for _, s in ipairs(stagesFolder:GetChildren()) do
local num = tonumber(s.Name)
if num then
local z = s:FindFirstChild("Zone")
local p = z and z.Position or (s:IsA("BasePart") and s.Position)
table.insert(list, { stage = num, pos = p, reward = StageRewards[num] or 0 })
end
end
end
table.sort(list, function(a, b) return a.stage < b.stage end)
return list
end
local function getTrainingZones()
local list = {}
for _, z in ipairs(CollectionService:GetTagged("TrainingZone")) do
local p = nil
if z:FindFirstChild("Zone") and z.Zone:IsA("BasePart") then
p = z.Zone.Position
elseif z:IsA("Model") and z.PrimaryPart then
p = z.PrimaryPart.Position
end
local cfg = TrainingConfig[z.Name]
local mult = z:GetAttribute("Multiplier") or (cfg and cfg.Multiplier) or 1
local bagName = z:GetAttribute("BagName") or (cfg and cfg.Name) or z.Name
table.insert(list, {
id = z.Name,
name = bagName,
mult = mult,
rebirths = cfg and cfg.Rebirths or 0,
product = cfg and cfg.Product or nil,
pos = p
})
end
table.sort(list, function(a, b) return a.mult < b.mult end)
return list
end
local function teleportTo(cf)
local char = LocalPlayer.Character
local hrp = char and char:FindFirstChild("HumanoidRootPart")
if hrp then
hrp.CFrame = typeof(cf) == "CFrame" and cf or CFrame.new(cf)
end
end
local function tpToBestBag()
local zones = getTrainingZones()
local r = Replica and Replica.Data and Replica.Data.Rebirths or 0
local best = nil
for _, z in ipairs(zones) do
if not z.product and r >= z.rebirths and z.pos then
if not best or z.mult > best.mult then
best = z
end
end
end
if best and best.pos then
teleportTo(best.pos + Vector3.new(0, 3, 0))
end
end
-- State Configuration
local State = {
AutoTap = false,
TapSpeed = "Hyper",
AutoWins = false,
WinStage = 11,
AutoRebirth = false,
AutoUpgrades = false,
AutoRollTitles = false,
AutoEquipBestTitle = false,
AutoBuyAuras = false,
AutoBuyMorphs = false,
AutoEquipBestMorph = false,
ServerAutoClick = false,
Noclip = false,
InfJump = false,
AntiAFK = true,
WalkSpeed = 16,
JumpPower = 50,
CustomSpeedEnabled = false,
CustomJumpEnabled = false
}
local Running = true
local ActiveThreads = {}
local function spawnThread(fn)
local t = task.spawn(function()
while Running do
local success, _ = pcall(fn)
if not success then
task.wait(1)
end
end
end)
table.insert(ActiveThreads, t)
return t
end
-- ====================================================================
-- AUTO FARM LOOPS
-- ====================================================================
-- 1. Auto Tap / Power Punch
spawnThread(function()
if State.AutoTap then
local count = (State.TapSpeed == "Hyper" and 15) or (State.TapSpeed == "Fast" and 5) or 1
for _ = 1, count do
if not State.AutoTap or not Running then break end
Packets.TapEvent:Fire()
end
task.wait(0.03)
else
task.wait(0.2)
end
end)
-- 2. Auto Wins
spawnThread(function()
if State.AutoWins then
Packets.ClaimWins:Fire(State.WinStage)
task.wait(0.8)
else
task.wait(0.5)
end
end)
-- 3. Auto Rebirth
spawnThread(function()
if State.AutoRebirth and Replica and Replica.Data then
local p = Replica.Data.Power or 0
local r = Replica.Data.Rebirths or 0
local lvlData = PowerUtils:GetLevelData(p, r)
if lvlData and lvlData.IsMax then
Packets.Rebirth:Fire()
task.wait(1.5)
else
task.wait(0.5)
end
else
task.wait(1)
end
end)
-- 4. Auto Upgrades
spawnThread(function()
if State.AutoUpgrades and Replica and Replica.Data then
Packets.Upgrade:Fire("Speed")
task.wait(0.1)
Packets.Upgrade:Fire("Luck")
task.wait(0.1)
Packets.Upgrade:Fire("TrainingRate")
task.wait(1)
else
task.wait(1)
end
end)
-- 5. Auto Roll Titles
spawnThread(function()
if State.AutoRollTitles and Replica and Replica.Data then
if (Replica.Data.Wins or 0) >= 10 then
local rolledTitle, mult = RollResponseCaller:Fire()
if rolledTitle and State.AutoEquipBestTitle then
local cur = Replica.Data.EquippedTitle
local curMult = cur and TitleConfig[cur] and TitleConfig[cur].Multiplier or 0
local newMult = TitleConfig[rolledTitle] and TitleConfig[rolledTitle].Multiplier or mult or 0
if newMult > curMult then
Packets.EquipTitle:Fire(rolledTitle)
end
end
task.wait(0.1)
else
task.wait(1)
end
else
task.wait(0.5)
end
end)
-- 6. Auto Buy Auras
spawnThread(function()
if State.AutoBuyAuras and Replica and Replica.Data then
local wins = Replica.Data.Wins or 0
local owned = Replica.Data.Auras or {}
local highestOwned = nil
local highestMult = 0
for i = 1, 10 do
local auraKey = "Aura" .. tostring(i)
local cfg = AuraConfig[auraKey]
if cfg then
if not owned[auraKey] and wins >= (cfg.Cost or 0) then
Packets.PurchaseAura:Fire(auraKey)
task.wait(0.3)
end
if owned[auraKey] and (cfg.Multiplier or 0) > highestMult then
highestMult = cfg.Multiplier
highestOwned = auraKey
end
end
end
if highestOwned and Replica.Data.EquippedAura ~= highestOwned then
Packets.ChangeAura:Fire(highestOwned, true)
end
task.wait(2)
else
task.wait(1)
end
end)
-- 7. Auto Buy Morphs
spawnThread(function()
if State.AutoBuyMorphs and Replica and Replica.Data then
local wins = Replica.Data.Wins or 0
local owned = Replica.Data.UnlockedMorphs or {}
local bestMorph = nil
local bestMult = 0
for i = 1, 41 do
local mKey = "Morph" .. tostring(i)
local cfg = MorphConfig.Morphs[mKey]
if cfg and not cfg.Product and not cfg.Limited and cfg.Price then
if not owned[mKey] and wins >= cfg.Price then
Packets.PurchaseMorph:Fire(mKey)
task.wait(0.2)
end
if (owned[mKey] == true) and (cfg.Multiplier or 0) > bestMult then
bestMult = cfg.Multiplier
bestMorph = mKey
end
end
end
if State.AutoEquipBestMorph and bestMorph and Replica.Data.EquippedMorph ~= bestMorph then
Packets.EquipMorph:Fire(bestMorph)
end
task.wait(2.5)
else
task.wait(1)
end
end)
-- Anti-AFK
local antiAfkConn = LocalPlayer.Idled:Connect(function()
if State.AntiAFK then
VirtualUser:CaptureController()
VirtualUser:ClickButton2(Vector2.new(0, 0))
end
end)
-- Noclip & Movement
local noclipConn = RunService.Stepped:Connect(function()
if not Running then return end
local char = LocalPlayer.Character
if not char then return end
if State.Noclip then
for _, part in ipairs(char:GetDescendants()) do
if part:IsA("BasePart") and part.CanCollide then
part.CanCollide = false
end
end
end
local hum = char:FindFirstChildOfClass("Humanoid")
if hum then
if State.CustomSpeedEnabled then hum.WalkSpeed = State.WalkSpeed end
if State.CustomJumpEnabled then hum.JumpPower = State.JumpPower end
end
end)
-- Infinite Jump
local infJumpConn = UserInputService.JumpRequest:Connect(function()
if State.InfJump and Running then
local char = LocalPlayer.Character
local hum = char and char:FindFirstChildOfClass("Humanoid")
if hum then hum:ChangeState(Enum.HumanoidStateType.Jumping) end
end
end)
-- ====================================================================
-- MODERN HIGH-END GUI CREATION
-- ====================================================================
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "JJK_Evolution_MasterHub"
ScreenGui.ResetOnSpawn = false
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
local successCore, _ = pcall(function()
ScreenGui.Parent = game:GetService("CoreGui")
end)
if not successCore or not ScreenGui.Parent then
ScreenGui.Parent = PlayerGui
end
-- Mini Floating Open/Close Button
local FloatingBtn = Instance.new("TextButton")
FloatingBtn.Name = "FloatingOpenButton"
FloatingBtn.Size = UDim2.new(0, 110, 0, 36)
FloatingBtn.Position = UDim2.new(0, 15, 0.5, -18)
FloatingBtn.BackgroundColor3 = Color3.fromRGB(18, 14, 30)
FloatingBtn.Text = "⚡ JJK HUB"
FloatingBtn.TextColor3 = Color3.fromRGB(216, 180, 254)
FloatingBtn.Font = Enum.Font.GothamBold
FloatingBtn.TextSize = 13
FloatingBtn.Parent = ScreenGui
local FloatCorner = Instance.new("UICorner")
FloatCorner.CornerRadius = UDim.new(0, 10)
FloatCorner.Parent = FloatingBtn
local FloatStroke = Instance.new("UIStroke")
FloatStroke.Color = Color3.fromRGB(147, 51, 234)
FloatStroke.Thickness = 1.5
FloatStroke.Parent = FloatingBtn
-- Main Frame
local MainFrame = Instance.new("Frame")
MainFrame.Name = "MainFrame"
MainFrame.Size = UDim2.new(0, 680, 0, 480)
MainFrame.Position = UDim2.new(0.5, -340, 0.5, -240)
MainFrame.BackgroundColor3 = Color3.fromRGB(13, 14, 21)
MainFrame.ClipsDescendants = true
MainFrame.Parent = ScreenGui
local MainCorner = Instance.new("UICorner")
MainCorner.CornerRadius = UDim.new(0, 14)
MainCorner.Parent = MainFrame
local MainStroke = Instance.new("UIStroke")
MainStroke.Color = Color3.fromRGB(139, 92, 246)
MainStroke.Thickness = 1.8
MainStroke.Parent = MainFrame
-- Top Bar (Draggable)
local TopBar = Instance.new("Frame")
TopBar.Name = "TopBar"
TopBar.Size = UDim2.new(1, 0, 0, 46)
TopBar.BackgroundColor3 = Color3.fromRGB(22, 19, 38)
TopBar.Parent = MainFrame
local TopCorner = Instance.new("UICorner")
TopCorner.CornerRadius = UDim.new(0, 14)
TopCorner.Parent = TopBar
local TitleLabel = Instance.new("TextLabel")
TitleLabel.Name = "TitleLabel"
TitleLabel.Size = UDim2.new(0, 480, 1, 0)
TitleLabel.Position = UDim2.new(0, 16, 0, 0)
TitleLabel.BackgroundTransparency = 1
TitleLabel.Text = "⚡ " .. string.upper(PlaceName) .. " - MASTER HUB"
TitleLabel.TextColor3 = Color3.fromRGB(243, 232, 255)
TitleLabel.Font = Enum.Font.GothamBold
TitleLabel.TextSize = 13.5
TitleLabel.TextXAlignment = Enum.TextXAlignment.Left
TitleLabel.Parent = TopBar
-- Close Button
local CloseBtn = Instance.new("TextButton")
CloseBtn.Name = "CloseBtn"
CloseBtn.Size = UDim2.new(0, 32, 0, 32)
CloseBtn.Position = UDim2.new(1, -40, 0, 7)
CloseBtn.BackgroundColor3 = Color3.fromRGB(34, 25, 48)
CloseBtn.Text = "X"
CloseBtn.TextColor3 = Color3.fromRGB(244, 63, 94)
CloseBtn.Font = Enum.Font.GothamBold
CloseBtn.TextSize = 14
CloseBtn.Parent = TopBar
local CloseCorner = Instance.new("UICorner")
CloseCorner.CornerRadius = UDim.new(0, 8)
CloseCorner.Parent = CloseBtn
-- Minimize Button
local MinBtn = Instance.new("TextButton")
MinBtn.Name = "MinBtn"
MinBtn.Size = UDim2.new(0, 32, 0, 32)
MinBtn.Position = UDim2.new(1, -78, 0, 7)
MinBtn.BackgroundColor3 = Color3.fromRGB(34, 25, 48)
MinBtn.Text = "-"
MinBtn.TextColor3 = Color3.fromRGB(216, 180, 254)
MinBtn.Font = Enum.Font.GothamBold
MinBtn.TextSize = 14
MinBtn.Parent = TopBar
local MinCorner = Instance.new("UICorner")
MinCorner.CornerRadius = UDim.new(0, 8)
MinCorner.Parent = MinBtn
-- Dragging
local isDragging = false
local dragStart = nil
local startPos = nil
TopBar.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
isDragging = true
dragStart = input.Position
startPos = MainFrame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then isDragging = false end
end)
end
end)
UserInputService.InputChanged:Connect(function(input)
if isDragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
local delta = input.Position - dragStart
MainFrame.Position = UDim2.new(
startPos.X.Scale, startPos.X.Offset + delta.X,
startPos.Y.Scale, startPos.Y.Offset + delta.Y
)
end
end)
FloatingBtn.Activated:Connect(function() MainFrame.Visible = not MainFrame.Visible end)
CloseBtn.Activated:Connect(function() MainFrame.Visible = false end)
MinBtn.Activated:Connect(function() MainFrame.Visible = false end)
-- Sidebar Tabs Container
local Sidebar = Instance.new("Frame")
Sidebar.Name = "Sidebar"
Sidebar.Size = UDim2.new(0, 160, 1, -86)
Sidebar.Position = UDim2.new(0, 0, 0, 46)
Sidebar.BackgroundColor3 = Color3.fromRGB(18, 16, 28)
Sidebar.BorderSizePixel = 0
Sidebar.Parent = MainFrame
local TabListLayout = Instance.new("UIListLayout")
TabListLayout.SortOrder = Enum.SortOrder.LayoutOrder
TabListLayout.Padding = UDim.new(0, 6)
TabListLayout.Parent = Sidebar
local SidebarPadding = Instance.new("UIPadding")
SidebarPadding.PaddingTop = UDim.new(0, 12)
SidebarPadding.PaddingLeft = UDim.new(0, 10)
SidebarPadding.PaddingRight = UDim.new(0, 10)
SidebarPadding.Parent = Sidebar
-- Content Container
local ContentContainer = Instance.new("Frame")
ContentContainer.Name = "ContentContainer"
ContentContainer.Size = UDim2.new(1, -170, 1, -86)
ContentContainer.Position = UDim2.new(0, 165, 0, 46)
ContentContainer.BackgroundTransparency = 1
ContentContainer.Parent = MainFrame
-- Live Stats Bar at Bottom
local StatsBar = Instance.new("Frame")
StatsBar.Name = "StatsBar"
StatsBar.Size = UDim2.new(1, 0, 0, 40)
StatsBar.Position = UDim2.new(0, 0, 1, -40)
StatsBar.BackgroundColor3 = Color3.fromRGB(16, 14, 25)
StatsBar.BorderSizePixel = 0
StatsBar.Parent = MainFrame
local StatsLabel = Instance.new("TextLabel")
StatsLabel.Name = "StatsLabel"
StatsLabel.Size = UDim2.new(1, -20, 1, 0)
StatsLabel.Position = UDim2.new(0, 12, 0, 0)
StatsLabel.BackgroundTransparency = 1
StatsLabel.Text = "⚡ Power: 0 | 🏆 Wins: 0 | 🔄 Rebirth: 0 | 👤 Morph: None"
StatsLabel.TextColor3 = Color3.fromRGB(192, 132, 252)
StatsLabel.Font = Enum.Font.GothamMedium
StatsLabel.TextSize = 11.5
StatsLabel.TextXAlignment = Enum.TextXAlignment.Left
StatsLabel.Parent = StatsBar
task.spawn(function()
while Running do
if Replica and Replica.Data then
local p = NumberUtils:FormatNumber(Replica.Data.Power or 0)
local w = NumberUtils:FormatNumber(Replica.Data.Wins or 0)
local r = tostring(Replica.Data.Rebirths or 0)
local m = tostring(Replica.Data.EquippedMorph or "None")
local t = tostring(Replica.Data.EquippedTitle or "None")
StatsLabel.Text = string.format("⚡ Power: %s | 🏆 Wins: %s | 🔄 Rebirth: %s | 👤 Morph: %s | 🎖️ Title: %s", p, w, r, m, t)
end
task.wait(0.5)
end
end)
-- Tabs Manager
local Tabs = {}
local TabButtons = {}
local function createTab(name, icon)
local tabBtn = Instance.new("TextButton")
tabBtn.Name = name .. "TabBtn"
tabBtn.Size = UDim2.new(1, 0, 0, 36)
tabBtn.BackgroundColor3 = Color3.fromRGB(25, 22, 39)
tabBtn.Text = " " .. icon .. " " .. name
tabBtn.TextColor3 = Color3.fromRGB(168, 162, 185)
tabBtn.Font = Enum.Font.GothamBold
tabBtn.TextSize = 12
tabBtn.TextXAlignment = Enum.TextXAlignment.Left
tabBtn.Parent = Sidebar
local btnCorner = Instance.new("UICorner")
btnCorner.CornerRadius = UDim.new(0, 8)
btnCorner.Parent = tabBtn
local page = Instance.new("ScrollingFrame")
page.Name = name .. "Page"
page.Size = UDim2.new(1, 0, 1, 0)
page.BackgroundTransparency = 1
page.BorderSizePixel = 0
page.ScrollBarThickness = 5
page.ScrollBarImageColor3 = Color3.fromRGB(147, 51, 234)
page.Visible = false
page.Parent = ContentContainer
local pageLayout = Instance.new("UIListLayout")
pageLayout.SortOrder = Enum.SortOrder.LayoutOrder
pageLayout.Padding = UDim.new(0, 8)
pageLayout.Parent = page
local pagePadding = Instance.new("UIPadding")
pagePadding.PaddingTop = UDim.new(0, 10)
pagePadding.PaddingLeft = UDim.new(0, 6)
pagePadding.PaddingRight = UDim.new(0, 10)
pagePadding.PaddingBottom = UDim.new(0, 10)
pagePadding.Parent = page
pageLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
page.CanvasSize = UDim2.new(0, 0, 0, pageLayout.AbsoluteContentSize.Y + 20)
end)
Tabs[name] = page
TabButtons[name] = tabBtn
tabBtn.Activated:Connect(function()
for tName, p in pairs(Tabs) do p.Visible = (tName == name) end
for tName, b in pairs(TabButtons) do
if tName == name then
b.BackgroundColor3 = Color3.fromRGB(88, 28, 135)
b.TextColor3 = Color3.fromRGB(255, 255, 255)
else
b.BackgroundColor3 = Color3.fromRGB(25, 22, 39)
b.TextColor3 = Color3.fromRGB(168, 162, 185)
end
end
end)
return page
end
local function addSection(parent, title)
local header = Instance.new("Frame")
header.Size = UDim2.new(1, 0, 0, 26)
header.BackgroundColor3 = Color3.fromRGB(30, 24, 52)
header.Parent = parent
local hCorner = Instance.new("UICorner")
hCorner.CornerRadius = UDim.new(0, 6)
hCorner.Parent = header
local lbl = Instance.new("TextLabel")
lbl.Size = UDim2.new(1, -12, 1, 0)
lbl.Position = UDim2.new(0, 10, 0, 0)
lbl.BackgroundTransparency = 1
lbl.Text = "// " .. string.upper(title)
lbl.TextColor3 = Color3.fromRGB(216, 180, 254)
lbl.Font = Enum.Font.GothamBold
lbl.TextSize = 11.5
lbl.TextXAlignment = Enum.TextXAlignment.Left
lbl.Parent = header
end
local function addToggle(parent, title, desc, defaultState, callback)
local card = Instance.new("Frame")
card.Size = UDim2.new(1, 0, 0, 48)
card.BackgroundColor3 = Color3.fromRGB(20, 18, 32)
card.Parent = parent
local cCorner = Instance.new("UICorner")
cCorner.CornerRadius = UDim.new(0, 8)
cCorner.Parent = card
local cStroke = Instance.new("UIStroke")
cStroke.Color = Color3.fromRGB(45, 38, 70)
cStroke.Thickness = 1
cStroke.Parent = card
local titleLbl = Instance.new("TextLabel")
titleLbl.Size = UDim2.new(1, -90, 0, 22)
titleLbl.Position = UDim2.new(0, 12, 0, 5)
titleLbl.BackgroundTransparency = 1
titleLbl.Text = title
titleLbl.TextColor3 = Color3.fromRGB(243, 232, 255)
titleLbl.Font = Enum.Font.GothamBold
titleLbl.TextSize = 13
titleLbl.TextXAlignment = Enum.TextXAlignment.Left
titleLbl.Parent = card
local descLbl = Instance.new("TextLabel")
descLbl.Size = UDim2.new(1, -90, 0, 16)
descLbl.Position = UDim2.new(0, 12, 0, 26)
descLbl.BackgroundTransparency = 1
descLbl.Text = desc
descLbl.TextColor3 = Color3.fromRGB(156, 148, 178)
descLbl.Font = Enum.Font.Gotham
descLbl.TextSize = 10.5
descLbl.TextXAlignment = Enum.TextXAlignment.Left
descLbl.Parent = card
local toggleBtn = Instance.new("TextButton")
toggleBtn.Size = UDim2.new(0, 64, 0, 28)
toggleBtn.Position = UDim2.new(1, -74, 0.5, -14)
toggleBtn.BackgroundColor3 = defaultState and Color3.fromRGB(126, 34, 206) or Color3.fromRGB(39, 35, 58)
toggleBtn.Text = defaultState and "ON" or "OFF"
toggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
toggleBtn.Font = Enum.Font.GothamBold
toggleBtn.TextSize = 12
toggleBtn.Parent = card
local tCorner = Instance.new("UICorner")
tCorner.CornerRadius = UDim.new(0, 7)
tCorner.Parent = toggleBtn
local isToggled = defaultState
toggleBtn.Activated:Connect(function()
isToggled = not isToggled
toggleBtn.Text = isToggled and "ON" or "OFF"
toggleBtn.BackgroundColor3 = isToggled and Color3.fromRGB(126, 34, 206) or Color3.fromRGB(39, 35, 58)
callback(isToggled)
end)
return toggleBtn
end
local function addButton(parent, title, desc, btnText, callback)
local card = Instance.new("Frame")
card.Size = UDim2.new(1, 0, 0, 48)
card.BackgroundColor3 = Color3.fromRGB(20, 18, 32)
card.Parent = parent
local cCorner = Instance.new("UICorner")
cCorner.CornerRadius = UDim.new(0, 8)
cCorner.Parent = card
local cStroke = Instance.new("UIStroke")
cStroke.Color = Color3.fromRGB(45, 38, 70)
cStroke.Thickness = 1
cStroke.Parent = card
local titleLbl = Instance.new("TextLabel")
titleLbl.Size = UDim2.new(1, -110, 0, 22)
titleLbl.Position = UDim2.new(0, 12, 0, 5)
titleLbl.BackgroundTransparency = 1
titleLbl.Text = title
titleLbl.TextColor3 = Color3.fromRGB(243, 232, 255)
titleLbl.Font = Enum.Font.GothamBold
titleLbl.TextSize = 13
titleLbl.TextXAlignment = Enum.TextXAlignment.Left
titleLbl.Parent = card
local descLbl = Instance.new("TextLabel")
descLbl.Size = UDim2.new(1, -110, 0, 16)
descLbl.Position = UDim2.new(0, 12, 0, 26)
descLbl.BackgroundTransparency = 1
descLbl.Text = desc
descLbl.TextColor3 = Color3.fromRGB(156, 148, 178)
descLbl.Font = Enum.Font.Gotham
descLbl.TextSize = 10.5
descLbl.TextXAlignment = Enum.TextXAlignment.Left
descLbl.Parent = card
local actionBtn = Instance.new("TextButton")
actionBtn.Size = UDim2.new(0, 96, 0, 28)
actionBtn.Position = UDim2.new(1, -106, 0.5, -14)
actionBtn.BackgroundColor3 = Color3.fromRGB(79, 70, 229)
actionBtn.Text = btnText
actionBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
actionBtn.Font = Enum.Font.GothamBold
actionBtn.TextSize = 11.5
actionBtn.Parent = card
local aCorner = Instance.new("UICorner")
aCorner.CornerRadius = UDim.new(0, 7)
aCorner.Parent = actionBtn
actionBtn.Activated:Connect(callback)
return actionBtn, descLbl
end
-- ====================================================================
-- TAB 1: AUTO FARM
-- ====================================================================
local pageFarm = createTab("Auto Farm", "⚡")
addSection(pageFarm, "Cursed Energy & Power Farming")
addToggle(pageFarm, "Auto Tap / Super Punch", "Fires TapEvent packets rapidly to gain massive Power", State.AutoTap, function(val)
State.AutoTap = val
end)
local speedBtn, speedDesc = addButton(pageFarm, "Tap Speed Mode", "Current: " .. State.TapSpeed .. " (Normal / Fast / Hyper)", "Change Speed", function()
if State.TapSpeed == "Hyper" then State.TapSpeed = "Normal"
elseif State.TapSpeed == "Normal" then State.TapSpeed = "Fast"
else State.TapSpeed = "Hyper" end
speedDesc.Text = "Current: " .. State.TapSpeed .. " (Normal / Fast / Hyper)"
end)
addButton(pageFarm, "TP To Best Training Bag", "Teleports character inside highest unlocked multiplier bag", "Teleport", function()
tpToBestBag()
end)
addSection(pageFarm, "Wins Farming (Stage Exploiter)")
local currentRewardFormatted = NumberUtils:FormatNumber(StageRewards[State.WinStage] or 50000000000000)
local winBtn, winDesc
addToggle(pageFarm, "Auto Claim Wins", "Repeatedly claims selected stage wins via Packet", State.AutoWins, function(val)
State.AutoWins = val
end)
winBtn, winDesc = addButton(pageFarm, "Selected Win Stage", "Stage " .. tostring(State.WinStage) .. " (+" .. currentRewardFormatted .. " Wins)", "Change Stage", function()
State.WinStage = (State.WinStage % 11) + 1
local rwd = NumberUtils:FormatNumber(StageRewards[State.WinStage] or 0)
winDesc.Text = "Stage " .. tostring(State.WinStage) .. " (+" .. rwd .. " Wins)"
end)
addSection(pageFarm, "Rebirth Automation")
addToggle(pageFarm, "Auto Rebirth", "Instantly rebirths when max level is reached to gain multipliers", State.AutoRebirth, function(val)
State.AutoRebirth = val
end)
addButton(pageFarm, "Manual Rebirth Now", "Attempts instant rebirth if eligible", "Rebirth", function()
Packets.Rebirth:Fire()
end)
addToggle(pageFarm, "Server AutoClicker", "Toggles built-in game server auto clicker", State.ServerAutoClick, function(val)
State.ServerAutoClick = val
Packets.AutoClick:Fire(val)
end)
-- ====================================================================
-- TAB 2: SHOP & UPGRADES
-- ====================================================================
local pageShop = createTab("Upgrades", "💎")
addSection(pageShop, "Stat Upgrades (Costs Wins)")
addToggle(pageShop, "Auto Buy Upgrades", "Repeatedly upgrades Speed, Luck, and TrainingRate", State.AutoUpgrades, function(val)
State.AutoUpgrades = val
end)
addButton(pageShop, "Max Out All Upgrades", "Fires 10 upgrade batches for Speed, Luck & TrainingRate", "Max Upgrades", function()
for _ = 1, 10 do
Packets.Upgrade:Fire("Speed")
Packets.Upgrade:Fire("Luck")
Packets.Upgrade:Fire("TrainingRate")
task.wait(0.05)
end
end)
addSection(pageShop, "Auras & Morphs")
addToggle(pageShop, "Auto Buy & Equip Auras", "Automatically buys Aura1 through Aura10 & equips best", State.AutoBuyAuras, function(val)
State.AutoBuyAuras = val
end)
addButton(pageShop, "Buy & Equip Limitless Aura", "Attempts to purchase & equip Aura10 (50x Multiplier)", "Buy Aura 10", function()
Packets.PurchaseAura:Fire("Aura10")
task.wait(0.3)
Packets.ChangeAura:Fire("Aura10", true)
end)
addToggle(pageShop, "Auto Buy & Equip Morphs", "Buys all affordable Morphs (1-41) and equips best multiplier", State.AutoBuyMorphs, function(val)
State.AutoBuyMorphs = val
State.AutoEquipBestMorph = val
end)
addButton(pageShop, "Equip Best Owned Morph", "Scans unlocked morphs and equips highest multiplier", "Equip Best", function()
if Replica and Replica.Data and Replica.Data.UnlockedMorphs then
local bestKey = nil
local bestM = 0
for mKey, val in pairs(Replica.Data.UnlockedMorphs) do
if val == true then
local cfg = MorphConfig.Morphs[mKey]
if cfg and (cfg.Multiplier or 0) > bestM then
bestM = cfg.Multiplier
bestKey = mKey
end
end
end
if bestKey then
Packets.EquipMorph:Fire(bestKey)
end
end
end)
-- ====================================================================
-- TAB 3: TITLES & ROLLS
-- ====================================================================
local pageTitles = createTab("Titles", "🎲")
addSection(pageTitles, "Title Roll System (10 Wins / Roll)")
addToggle(pageTitles, "Auto Roll Titles (Fast)", "Repeatedly rolls titles via Packet without UI delays", State.AutoRollTitles, function(val)
State.AutoRollTitles = val
end)
addToggle(pageTitles, "Auto Equip Best Title", "Automatically equips highest multiplier title when rolled", State.AutoEquipBestTitle, function(val)
State.AutoEquipBestTitle = val
end)
addButton(pageTitles, "Roll 1x Title", "Single instant title roll", "Roll 1x", function()
local t, _ = RollResponseCaller:Fire()
if t and State.AutoEquipBestTitle then
Packets.EquipTitle:Fire(t)
end
end)
addButton(pageTitles, "Roll 10x Titles", "Batch 10 instant title rolls", "Roll 10x", function()
for _ = 1, 10 do
RollResponseCaller:Fire()
task.wait(0.08)
end
end)
addButton(pageTitles, "Equip Highest Owned Title", "Equips your strongest title from inventory", "Equip Strongest", function()
if Replica and Replica.Data and Replica.Data.Titles then
local bestTitle = nil
local bestM = 0
for tName, val in pairs(Replica.Data.Titles) do
if val == true then
local cfg = TitleConfig[tName]
if cfg and (cfg.Multiplier or 0) > bestM then
bestM = cfg.Multiplier
bestTitle = tName
end
end
end
if bestTitle then
Packets.EquipTitle:Fire(bestTitle)
end
end
end)
-- ====================================================================
-- TAB 4: TELEPORTS
-- ====================================================================
local pageTP = createTab("Teleports", "🚀")
addSection(pageTP, "World & Special Locations")
addButton(pageTP, "Spawn Location", "Teleport back to the game spawn", "Teleport", function()
local sp = workspace:FindFirstChild("SpawnLocation")
if sp then teleportTo(sp.CFrame + Vector3.new(0, 3, 0)) end
end)
addButton(pageTP, "Next World Portal", "Fires Teleport packet to next world (Rebirth required)", "Enter Portal", function()
Packets.Teleport:Fire()
end)
addButton(pageTP, "PVP Zone (King of the Hill)", "Teleports to the PVP combat arena", "Teleport", function()
local pvp = workspace:FindFirstChild("PvpZone")
if pvp and pvp:FindFirstChild("KingZone") then
teleportTo(pvp.KingZone.Position + Vector3.new(0, 4, 0))
end
end)
addSection(pageTP, "Training Bags (Multipliers)")
local trainingZones = getTrainingZones()
for _, z in ipairs(trainingZones) do
if z.pos then
addButton(pageTP, z.name .. " (" .. tostring(z.mult) .. "x)", "Rebirths: " .. tostring(z.rebirths) .. (z.product and " [Product]" or ""), "TP Bag", function()
teleportTo(z.pos + Vector3.new(0, 3, 0))
end)
end
end
addSection(pageTP, "Wall Stages (Current World)")
local currentStages = getStages()
for _, s in ipairs(currentStages) do
if s.pos then
local rwd = NumberUtils:FormatNumber(s.reward)
addButton(pageTP, "Stage " .. tostring(s.stage) .. " (+" .. rwd .. " Wins)", "Teleport directly to stage reward zone", "TP Stage", function()
teleportTo(s.pos + Vector3.new(0, 4, 0))
end)
end
end
-- ====================================================================
-- TAB 5: PLAYER & MOVEMENT
-- ====================================================================
local pagePlayer = createTab("Player", "🏃")
addSection(pagePlayer, "Movement Modifications")
addToggle(pagePlayer, "Custom WalkSpeed (60)", "Increases character walking speed", State.CustomSpeedEnabled, function(val)
State.CustomSpeedEnabled = val
State.WalkSpeed = val and 60 or 16
local char = LocalPlayer.Character
local hum = char and char:FindFirstChildOfClass("Humanoid")
if hum then hum.WalkSpeed = State.WalkSpeed end
end)
addToggle(pagePlayer, "Custom JumpPower (120)", "Increases jump height", State.CustomJumpEnabled, function(val)
State.CustomJumpEnabled = val
State.JumpPower = val and 120 or 50
local char = LocalPlayer.Character
local hum = char and char:FindFirstChildOfClass("Humanoid")
if hum then hum.JumpPower = State.JumpPower end
end)
addToggle(pagePlayer, "Infinite Jump", "Jump as many times as you want in mid-air", State.InfJump, function(val)
State.InfJump = val
end)
addToggle(pagePlayer, "Noclip", "Walk through walls and obstacles effortlessly", State.Noclip, function(val)
State.Noclip = val
end)
addSection(pagePlayer, "Safety & AFK Protection")
addToggle(pagePlayer, "Anti-AFK Protection", "Prevents Roblox 20-minute idle disconnect", State.AntiAFK, function(val)
State.AntiAFK = val
end)
-- ====================================================================
-- TAB 6: REMOTE SPY & EVENT EXPLORER
-- ====================================================================
local pageRemotes = createTab("Remotes", "📡")
addSection(pageRemotes, "Discovered Packet Events (Network Protocol)")
local remoteList = {
{ name = "TapEvent (Packet ID: 7)", desc = "Fire() -> Instant Power gain (unthrottled)" },
{ name = "ClaimWins (Packet ID: 11)", desc = "Fire(NumberS8 stage) -> Instant Wins (World 2 Stage 11 = 50T!)" },
{ name = "Rebirth (Packet ID: 8)", desc = "Fire() -> Rebirth player when max level is reached" },
{ name = "Upgrade (Packet ID: 13)", desc = "Fire(String stat) -> 'Speed', 'Luck', 'TrainingRate'" },
{ name = "PurchaseAura (Packet ID: 3)", desc = "Fire(String aura) -> 'Aura1' to 'Aura10'" },
{ name = "ChangeAura (Packet ID: 4)", desc = "Fire(String aura, Boolean8 equip) -> Equips Aura" },
{ name = "RequestRoll (Packet ID: 1)", desc = "Fire() -> Returns (titleName, multiplier) for 10 Wins" },
{ name = "EquipTitle (Packet ID: 15)", desc = "Fire(String title) -> Equips selected Title" },
{ name = "ChangeTitleState (Packet ID: 2)", desc = "Fire(String title, Boolean8 lockState)" },
{ name = "PurchaseMorph (Packet ID: 5)", desc = "Fire(String morph) -> 'Morph1' to 'Morph41'" },
{ name = "EquipMorph (Packet ID: 6)", desc = "Fire(String morph) -> Equips selected Morph" },
{ name = "Teleport (Packet ID: 17)", desc = "Fire() -> Teleports to next world" },
{ name = "AutoClick (Packet ID: 9)", desc = "Fire(Boolean8 enabled) -> Server AutoClicker" },
{ name = "SkipStage (Packet ID: 16)", desc = "OnClientEvent(NumberU8 stage) -> Wall skip listener" }
}
for _, item in ipairs(remoteList) do
local card = Instance.new("Frame")
card.Size = UDim2.new(1, 0, 0, 44)
card.BackgroundColor3 = Color3.fromRGB(20, 18, 32)
card.Parent = pageRemotes
local cCorner = Instance.new("UICorner")
cCorner.CornerRadius = UDim.new(0, 8)
cCorner.Parent = card
local titleLbl = Instance.new("TextLabel")
titleLbl.Size = UDim2.new(1, -20, 0, 20)
titleLbl.Position = UDim2.new(0, 12, 0, 4)
titleLbl.BackgroundTransparency = 1
titleLbl.Text = "⚡ " .. item.name
titleLbl.TextColor3 = Color3.fromRGB(167, 139, 250)
titleLbl.Font = Enum.Font.GothamBold
titleLbl.TextSize = 12
titleLbl.TextXAlignment = Enum.TextXAlignment.Left
titleLbl.Parent = card
local descLbl = Instance.new("TextLabel")
descLbl.Size = UDim2.new(1, -20, 0, 16)
descLbl.Position = UDim2.new(0, 12, 0, 24)
descLbl.BackgroundTransparency = 1
descLbl.Text = item.desc
descLbl.TextColor3 = Color3.fromRGB(156, 163, 175)
descLbl.Font = Enum.Font.Gotham
descLbl.TextSize = 10.5
descLbl.TextXAlignment = Enum.TextXAlignment.Left
descLbl.Parent = card
end
-- Default active tab
TabButtons["Auto Farm"].BackgroundColor3 = Color3.fromRGB(88, 28, 135)
TabButtons["Auto Farm"].TextColor3 = Color3.fromRGB(255, 255, 255)
Tabs["Auto Farm"].Visible = true
-- Global cleanup function for clean re-execution
_G.JJKHubCleanup = function()
Running = false
pcall(function() antiAfkConn:Disconnect() end)
pcall(function() noclipConn:Disconnect() end)
pcall(function() infJumpConn:Disconnect() end)
for _, t in ipairs(ActiveThreads) do
pcall(function() task.cancel(t) end)
end
pcall(function() ScreenGui:Destroy() end)
end
print("⚡ [JJK MASTER HUB] Universal Loaded for: " .. PlaceName)Features & Information
NO KEY OP FEATURES!!!
Community Comments (0)
No comments yet for this script.
