
Key Required

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local CoreGui = game:GetService("CoreGui")
local TweenService = game:GetService("TweenService")
local lp = Players.LocalPlayer
local Config = {
VisiblePoints = true,
VFX = true,
Music = true,
BatchSize = 100
}
-- Epic Initialization Sequence (Console)
print("\n========================================")
print("🩸 AWAKENING THE KING OF CURSES...")
task.wait(0.8)
warn(" \"Domain Expansion: Malevolent Shrine.\"")
task.wait(1)
print("🔗 Loading Cursed Techniques (VFX ENABLED)...")
task.wait(0.5)
print("========================================\n")
-- Base CFrame of the sword
local baseCF = CFrame.new(
7.82324982, 0.237220764, 0.352325439,
0.9998101, 0.00494627282, -0.0188489575,
-0.00540907215, 0.999683261, -0.024581708,
0.018721398, 0.0246789958, 0.999520183
)
local activeAnimations = {}
local activePoints = {}
local activeVFX = {}
local shrineCooldown = false
-- ==========================================
-- UTILITY & SOUND FUNCTIONS
-- ==========================================
-- Background Music
local bgMusic
local function setupMusic()
if bgMusic then bgMusic:Destroy() end
bgMusic = Instance.new("Sound")
bgMusic.SoundId = "rbxassetid://904562208" -- Dark ominous ambient track
bgMusic.Volume = 0.5
bgMusic.Looped = true
bgMusic.Parent = workspace
if Config.Music then
bgMusic:Play()
end
end
setupMusic()
local function playSound(id, volume, pitch)
if not Config.Music then return end
local char = lp.Character
if not char then return end
local root = char:FindFirstChild("HumanoidRootPart")
if not root then return end
local sound = Instance.new("Sound")
sound.SoundId = "rbxassetid://" .. tostring(id)
sound.Volume = volume or 1
sound.PlaybackSpeed = pitch or 1
sound.Parent = root
sound:Play()
game.Debris:AddItem(sound, 5)
end
local function getBlade()
local char = lp.Character
if not char then return nil end
local weapon = char:FindFirstChild("Weapon")
if not weapon then return nil end
local hitParts = weapon:FindFirstChild("HitParts")
if not hitParts then return nil end
return hitParts:FindFirstChild("MainBlade")
end
local function clearHitboxes()
for _, conn in ipairs(activeAnimations) do
if conn then conn:Disconnect() end
end
table.clear(activeAnimations)
table.clear(activePoints)
for _, vfx in ipairs(activeVFX) do
if vfx and vfx.Parent then vfx:Destroy() end
end
table.clear(activeVFX)
local blade = getBlade()
if not blade then return end
for _, child in ipairs(blade:GetChildren()) do
if child:IsA("Attachment") and child:GetAttribute("IsSukunaHitbox") then
child:Destroy()
end
end
end
-- ==========================================
-- VFX GENERATORS
-- ==========================================
local function addCursedEnergy(parent)
if not Config.VFX then return end
local pe = Instance.new("ParticleEmitter")
pe.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 0, 0)),
ColorSequenceKeypoint.new(0.5, Color3.fromRGB(100, 0, 0)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 0, 0))
})
pe.Size = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0.5),
NumberSequenceKeypoint.new(1, 0)
})
pe.Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0),
NumberSequenceKeypoint.new(1, 1)
})
pe.Lifetime = NumberRange.new(0.3, 0.6)
pe.Rate = 20
pe.Speed = NumberRange.new(1, 3)
pe.EmissionDirection = Enum.NormalId.Back
pe.Parent = parent
return pe
end
local function addFireVFX(parent)
if not Config.VFX then return end
local fire = Instance.new("Fire")
fire.Color = Color3.fromRGB(255, 100, 0)
fire.SecondaryColor = Color3.fromRGB(255, 0, 0)
fire.Heat = 25
fire.Size = 4
fire.Parent = parent
return fire
end
local function spawnDomainSphere()
if not Config.VFX then return end
local char = lp.Character
if not char then return end
local root = char:FindFirstChild("HumanoidRootPart")
if not root then return end
local domain = Instance.new("Part")
domain.Shape = Enum.PartType.Ball
domain.Size = Vector3.new(1, 1, 1)
domain.Material = Enum.Material.ForceField
domain.Color = Color3.fromRGB(255, 0, 0)
domain.Transparency = 0.5
domain.Anchored = true
domain.CanCollide = false
domain.Position = root.Position
domain.Parent = workspace
table.insert(activeVFX, domain)
-- Expand domain
local tweenInfo = TweenInfo.new(2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
local tween = TweenService:Create(domain, tweenInfo, {Size = Vector3.new(250, 250, 250), Transparency = 0.8})
tween:Play()
end
local function spawnPhysicalShrine()
if not Config.VFX then return end
local char = lp.Character
if not char then return end
local root = char:FindFirstChild("HumanoidRootPart")
if not root then return end
local shrineModel = Instance.new("Model")
shrineModel.Name = "PhysicalShrine"
shrineModel.Parent = workspace
table.insert(activeVFX, shrineModel)
-- Shrine Base
local base = Instance.new("Part")
base.Size = Vector3.new(40, 3, 40)
base.Anchored = true
base.CanCollide = false
base.Color = Color3.fromRGB(20, 20, 20)
base.Material = Enum.Material.Slate
-- Positioned right behind the player
base.CFrame = root.CFrame * CFrame.new(0, -3.5, -15)
base.Parent = shrineModel
-- Shrine Altar / Main Body
local altar = Instance.new("Part")
altar.Size = Vector3.new(20, 15, 20)
altar.Anchored = true
altar.CanCollide = false
altar.Color = Color3.fromRGB(40, 10, 10)
altar.Material = Enum.Material.Wood
altar.CFrame = base.CFrame * CFrame.new(0, 9, 0)
altar.Parent = shrineModel
-- Shrine Roof
local roof = Instance.new("Part")
roof.Size = Vector3.new(35, 8, 35)
roof.Anchored = true
roof.CanCollide = false
roof.Color = Color3.fromRGB(10, 10, 10)
roof.Material = Enum.Material.Slate
roof.CFrame = altar.CFrame * CFrame.new(0, 11.5, 0) * CFrame.Angles(0, math.pi/4, 0)
roof.Parent = shrineModel
-- Animate popping up from the ground
local parts = {base, altar, roof}
for _, p in ipairs(parts) do
local targetCF = p.CFrame
p.CFrame = targetCF * CFrame.new(0, -60, 0) -- Start underground
local tw = TweenService:Create(p, TweenInfo.new(2, Enum.EasingStyle.Bounce, Enum.EasingDirection.Out), {CFrame = targetCF})
tw:Play()
end
end
local function spawnShockwave()
if not Config.VFX then return end
local char = lp.Character
if not char then return end
local root = char:FindFirstChild("HumanoidRootPart")
if not root then return end
local wave = Instance.new("Part")
wave.Shape = Enum.PartType.Cylinder
wave.Size = Vector3.new(1, 1, 1)
wave.Material = Enum.Material.Neon
wave.Color = Color3.fromRGB(255, 50, 50)
wave.Transparency = 0.2
wave.Anchored = true
wave.CanCollide = false
wave.CFrame = root.CFrame * CFrame.new(0, -2.5, 0) * CFrame.Angles(0, 0, math.pi/2)
wave.Parent = workspace
table.insert(activeVFX, wave)
local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
local tween = TweenService:Create(wave, tweenInfo, {Size = Vector3.new(0.5, 150, 150), Transparency = 1})
tween:Play()
tween.Completed:Connect(function()
if wave and wave.Parent then wave:Destroy() end
end)
end
local function createPoint(blade, offsetCFrame, vfxType)
local att = Instance.new("Attachment")
att.Name = "DmgPoint"
att:SetAttribute("IsSukunaHitbox", true)
att.Visible = Config.VisiblePoints
att.CFrame = baseCF * offsetCFrame
att.Parent = blade
if vfxType == "Cursed" then
addCursedEnergy(att)
elseif vfxType == "Fire" then
addFireVFX(att)
end
table.insert(activePoints, att)
return att
end
-- ==========================================
-- ROTATION & MOVEMENT ENGINES
-- ==========================================
local function animateAttack(points, spinSpeeds)
local elapsed = 0
local conn
local originalCFs = {}
for i, p in ipairs(points) do
originalCFs[i] = p.CFrame
end
conn = RunService.Heartbeat:Connect(function(dt)
elapsed = elapsed + dt
local rotation = CFrame.Angles(
math.rad(spinSpeeds.X * elapsed),
math.rad(spinSpeeds.Y * elapsed),
math.rad(spinSpeeds.Z * elapsed)
)
for i = 1, #points do
local p = points[i]
if p and p.Parent then
p.CFrame = rotation * originalCFs[i]
end
end
end)
table.insert(activeAnimations, conn)
end
-- NEW: A specific engine for Malevolent Shrine that wildly teleports hitboxes
local function animateShrineStorm(points)
local conn
conn = RunService.Heartbeat:Connect(function(dt)
for i = 1, #points do
local p = points[i]
if p and p.Parent then
-- Teleports every point randomly inside the 250 stud radius every frame
local rx = (math.random() - 0.5) * 250
local ry = (math.random() - 0.5) * 250
local rz = (math.random() - 0.5) * 250
local rot = CFrame.Angles(math.random()*math.pi*2, math.random()*math.pi*2, math.random()*math.pi*2)
p.CFrame = baseCF * CFrame.new(rx, ry, rz) * rot
end
end
end)
table.insert(activeAnimations, conn)
end
local function prayAnimation(duration)
local char = lp.Character
if not char then return end
local humanoid = char:FindFirstChildOfClass("Humanoid")
if not humanoid then return end
local elapsed = 0
local conn
conn = RunService.Stepped:Connect(function(dt)
elapsed = elapsed + dt
if elapsed >= duration then
conn:Disconnect()
return
end
if humanoid.RigType == Enum.HumanoidRigType.R6 then
local rs = char:FindFirstChild("Torso") and char.Torso:FindFirstChild("Right Shoulder")
local ls = char:FindFirstChild("Torso") and char.Torso:FindFirstChild("Left Shoulder")
if rs then rs.Transform = CFrame.Angles(math.pi/2, -math.pi/4, 0) end
if ls then ls.Transform = CFrame.Angles(math.pi/2, math.pi/4, 0) end
elseif humanoid.RigType == Enum.HumanoidRigType.R15 then
local rs = char:FindFirstChild("RightUpperArm") and char.RightUpperArm:FindFirstChild("RightShoulder")
local ls = char:FindFirstChild("LeftUpperArm") and char.LeftUpperArm:FindFirstChild("LeftShoulder")
local re = char:FindFirstChild("RightLowerArm") and char.RightLowerArm:FindFirstChild("RightElbow")
local le = char:FindFirstChild("LeftLowerArm") and char.LeftLowerArm:FindFirstChild("LeftElbow")
if rs then rs.Transform = CFrame.Angles(math.pi/2.5, -math.pi/6, 0) end
if ls then ls.Transform = CFrame.Angles(math.pi/2.5, math.pi/6, 0) end
if re then re.Transform = CFrame.Angles(0, 0, 0) end
if le then le.Transform = CFrame.Angles(0, 0, 0) end
end
end)
end
-- ==========================================
-- SUKUNA'S CURSED TECHNIQUES
-- ==========================================
local isAttacking = false
local function executeSlash()
if isAttacking then return end
local blade = getBlade()
if not blade then warn("Equip your weapon first!") return end
isAttacking = true
playSound(1046985834, 1.5, 1)
clearHitboxes()
local points = {}
for i = -40, 40, 2 do
table.insert(points, createPoint(blade, CFrame.new(15, i, i), "Cursed"))
table.insert(points, createPoint(blade, CFrame.new(15, i, -i), "Cursed"))
end
animateAttack(points, Vector3.new(2500, 0, 0))
isAttacking = false
end
local function executeRush()
if isAttacking then return end
local blade = getBlade()
if not blade then warn("Equip your weapon first!") return end
isAttacking = true
playSound(1046985834, 1.5, 0.7)
clearHitboxes()
local points = {}
for y = -20, 20, 4 do
for z = -40, 40, 4 do
table.insert(points, createPoint(blade, CFrame.new(10, y, z), "Cursed"))
end
end
animateAttack(points, Vector3.new(3500, 1000, 0))
isAttacking = false
end
local function executeShrine()
if isAttacking then return end
if shrineCooldown then
warn("[Sukuna] Malevolent Shrine is currently on cooldown!")
return
end
local blade = getBlade()
if not blade then warn("Equip your weapon first!") return end
isAttacking = true
-- Handle Shrine Cooldown Logic
shrineCooldown = true
task.spawn(function()
local sg = CoreGui:FindFirstChild("SukunaHub")
local btn = sg and sg:FindFirstChild("MainFrame") and sg.MainFrame:FindFirstChild("BtnShrine")
for i = 30, 1, -1 do
if btn then btn.Text = "Shrine Cooldown (" .. i .. "s)" end
task.wait(1)
end
shrineCooldown = false
if btn then btn.Text = "Malevolent Shrine" end
print("[Sukuna] Malevolent Shrine is ready to be cast again!")
end)
playSound(3149714151, 2, 1) -- Domain Expansion sound
clearHitboxes()
prayAnimation(2)
spawnDomainSphere() -- Red expanding sphere
spawnPhysicalShrine() -- Physical temple structure
local points = {}
-- Create 400 hitboxes that will act as the inescapable cutting storm
for i = 1, 400 do
table.insert(points, createPoint(blade, CFrame.new(0,0,0), "Cursed"))
end
-- Teleports hitboxes omnidirectionally constantly inside the domain
animateShrineStorm(points)
isAttacking = false
end
local function executeWorldSlash()
if isAttacking then return end
local blade = getBlade()
if not blade then warn("Equip your weapon first!") return end
isAttacking = true
playSound(1010899204, 2, 0.8)
clearHitboxes()
local points = {}
for y = -20, 20, 5 do
for z = -20, 20, 5 do
table.insert(points, createPoint(blade, CFrame.new(15, y, z), "Cursed"))
end
end
animateAttack(points, Vector3.new(0, 0, 1000))
isAttacking = false
end
local function executeFireArrow()
if isAttacking then return end
local blade = getBlade()
if not blade then warn("Equip your weapon first!") return end
isAttacking = true
playSound(289315275, 2, 1)
clearHitboxes()
local points = {}
-- [OP BUFF]: Starts extremely close (x=1.5), extends incredibly far (x=250), with higher density (step 3)
for x = 1.5, 250, 3 do
for angle = 0, math.pi*2, math.pi/4 do
local y = math.sin(angle) * 7
local z = math.cos(angle) * 7
table.insert(points, createPoint(blade, CFrame.new(x, y, z), "Fire"))
end
end
animateAttack(points, Vector3.new(4000, 0, 0)) -- Faster rotation
isAttacking = false
end
local function executeSpiderweb()
if isAttacking then return end
local blade = getBlade()
if not blade then warn("Equip your weapon first!") return end
isAttacking = true
playSound(144485303, 2, 1)
clearHitboxes()
spawnShockwave() -- Spawns red ground shockwave
local points = {}
math.randomseed(os.time())
for i = 1, 200 do
local rx = (math.random() - 0.5) * 2 * 40
local ry = -3
local rz = (math.random() - 0.5) * 2 * 40
local pos = Vector3.new(rx, ry, rz)
local flatPos = pos + Vector3.new(pos.X, 0, pos.Z).Unit
local offsetCF = CFrame.new(pos, flatPos)
table.insert(points, createPoint(blade, offsetCF, "Cursed"))
end
animateAttack(points, Vector3.new(0, 2000, 0))
isAttacking = false
end
local function executeHalfCut()
if isAttacking then return end
local blade = getBlade()
if not blade then warn("Equip your weapon first!") return end
isAttacking = true
playSound(1046985834, 2, 0.4)
clearHitboxes()
local points = {}
local lineWidth = 100
local startDist = 1.5
local layers = 25
local distStep = 4
for i = 0, layers - 1 do
local currentDist = startDist + (i * distStep)
for z = -lineWidth, lineWidth, 1.5 do
local vfx = (i % 5 == 0) and "Cursed" or nil
table.insert(points, createPoint(blade, CFrame.new(currentDist, 1.5, z), vfx))
end
end
local elapsed = 0
local conn
local originalCFs = {}
for i, p in ipairs(points) do
originalCFs[i] = p.CFrame
end
conn = RunService.Heartbeat:Connect(function(dt)
elapsed = elapsed + dt
local dropAmount = elapsed * 0.8
for i = 1, #points do
local p = points[i]
if p and p.Parent then
p.CFrame = originalCFs[i] * CFrame.new(0, -dropAmount, 0)
end
end
end)
table.insert(activeAnimations, conn)
isAttacking = false
end
local function executeLineOfDeathHorizontal()
if isAttacking then return end
local blade = getBlade()
if not blade then warn("Equip your weapon first!") return end
isAttacking = true
playSound(1046985834, 2, 0.6)
clearHitboxes()
local points = {}
local lineWidth = 150
local startDist = 5
local heightOffset = 1.5
local curveStrength = 0.0008
for z = -lineWidth, lineWidth, 1.5 do
local curve = (z * z) * curveStrength
table.insert(points, createPoint(blade, CFrame.new(startDist - curve, heightOffset, z), "Cursed"))
end
isAttacking = false
end
local function executeLineOfDeathVertical()
if isAttacking then return end
local blade = getBlade()
if not blade then warn("Equip your weapon first!") return end
isAttacking = true
playSound(1046985834, 2, 0.6)
clearHitboxes()
local points = {}
local lineWidth = 150
local startDist = 5
local curveStrength = 0.0008
for y = -lineWidth, lineWidth, 1.5 do
local curve = (y * y) * curveStrength
table.insert(points, createPoint(blade, CFrame.new(startDist - curve, y, 0), "Cursed"))
end
local elapsed = 0
local conn
local originalCFs = {}
for i, p in ipairs(points) do
originalCFs[i] = p.CFrame
end
conn = RunService.Heartbeat:Connect(function(dt)
elapsed = elapsed + dt
local travelAmount = elapsed * 100
for i = 1, #points do
local p = points[i]
if p and p.Parent then
p.CFrame = originalCFs[i] * CFrame.new(travelAmount, 0, 0)
end
end
end)
table.insert(activeAnimations, conn)
isAttacking = false
end
local function executeCalamity()
if isAttacking then return end
local blade = getBlade()
if not blade then warn("Equip your weapon first!") return end
isAttacking = true
playSound(289315275, 3, 0.5)
clearHitboxes()
spawnDomainSphere()
local points = {}
local width = 80
local height = 80
local step = 8
for y = -height/2, height/2, step do
for z = -width/2, width/2, step do
table.insert(points, createPoint(blade, CFrame.new(30, y, z), "Cursed"))
end
if #points % Config.BatchSize == 0 then task.wait() end
end
animateAttack(points, Vector3.new(2000, 2000, 2000))
isAttacking = false
end
-- ==========================================
-- GUI CREATION
-- ==========================================
if CoreGui:FindFirstChild("SukunaHub") then
CoreGui.SukunaHub:Destroy()
end
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "SukunaHub"
ScreenGui.Parent = CoreGui
local MainFrame = Instance.new("Frame")
MainFrame.Name = "MainFrame"
MainFrame.Size = UDim2.new(0, 280, 0, 710)
MainFrame.Position = UDim2.new(0.5, -140, 0.5, -355)
MainFrame.BackgroundColor3 = Color3.fromRGB(15, 0, 0)
MainFrame.BorderSizePixel = 2
MainFrame.BorderColor3 = Color3.fromRGB(150, 0, 0)
MainFrame.Active = true
MainFrame.Draggable = true
MainFrame.Parent = ScreenGui
local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1, 0, 0, 40)
Title.BackgroundTransparency = 1
Title.Text = ""
Title.TextColor3 = Color3.fromRGB(255, 50, 50)
Title.TextSize = 24
Title.Font = Enum.Font.Code
Title.Parent = MainFrame
task.spawn(function()
local textToType = "🩸 SUKUNA HUB 🩸"
for i = 1, #textToType do
Title.Text = string.sub(textToType, 1, i)
task.wait(0.05)
end
end)
local function createButton(name, text, yPos, callback, isSupreme, widthOffset)
local wOff = widthOffset or 0.9
local btn = Instance.new("TextButton")
btn.Name = name
btn.Size = UDim2.new(wOff, 0, 0, 40)
if wOff < 0.9 then
btn.Position = UDim2.new(0.05 + (0.9 - wOff), 0, 0, yPos)
else
btn.Position = UDim2.new(0.05, 0, 0, yPos)
end
if isSupreme then
btn.BackgroundColor3 = Color3.fromRGB(70, 0, 0)
btn.BorderColor3 = Color3.fromRGB(255, 0, 0)
btn.TextColor3 = Color3.fromRGB(255, 255, 100)
else
btn.BackgroundColor3 = Color3.fromRGB(40, 0, 0)
btn.BorderColor3 = Color3.fromRGB(200, 0, 0)
btn.TextColor3 = Color3.fromRGB(255, 200, 200)
end
btn.TextSize = 13
btn.Font = Enum.Font.Code
btn.Text = text
btn.Parent = MainFrame
btn.MouseButton1Click:Connect(function()
if name == "BtnShrine" and shrineCooldown then return end
if not (name == "BtnVFX" or name == "BtnMusic" or name == "BtnVis") then
if name ~= "BtnShrine" then
btn.Text = "Casting..."
end
callback()
task.wait(0.5)
if name ~= "BtnShrine" then
btn.Text = text
end
else
callback()
end
end)
return btn
end
-- Attack Buttons
createButton("BtnSlash", "Dismantle (X Wave)", 50, executeSlash)
createButton("BtnRush", "Cleave (Colossal Grid)", 100, executeRush)
createButton("BtnShrine", "Malevolent Shrine", 150, executeShrine)
createButton("BtnWorldSlash", "World Slash (Wall)", 200, executeWorldSlash)
createButton("BtnFuga", "Fuga (Fire Arrow)", 250, executeFireArrow)
createButton("BtnSpiderweb", "Spiderweb (Ground)", 300, executeSpiderweb)
createButton("BtnHalfCut", "Half/Cut (Go/Jo)", 350, executeHalfCut)
createButton("BtnLineOfDeathH", "Line of Death (Horiz Curve)", 400, executeLineOfDeathHorizontal)
createButton("BtnLineOfDeathV", "Line of Death (Vert Curve)", 450, executeLineOfDeathVertical)
createButton("BtnCalamity", "🔥 CALAMITY (Vortex) 🔥", 520, executeCalamity, true)
-- Utility Toggles
local btnVis = createButton("BtnVis", Config.VisiblePoints and "👁️ Hitboxes: ON" or "👁️ Hitboxes: OFF", 575, function() end, false, 0.42)
btnVis.Position = UDim2.new(0.05, 0, 0, 575)
btnVis.MouseButton1Click:Connect(function()
Config.VisiblePoints = not Config.VisiblePoints
btnVis.Text = Config.VisiblePoints and "👁️ Hitboxes: ON" or "👁️ Hitboxes: OFF"
for _, p in ipairs(activePoints) do
if p and p.Parent then p.Visible = Config.VisiblePoints end
end
end)
local btnVFX = createButton("BtnVFX", Config.VFX and "✨ VFX: ON" or "✨ VFX: OFF", 575, function() end, false, 0.42)
btnVFX.Position = UDim2.new(0.53, 0, 0, 575)
btnVFX.MouseButton1Click:Connect(function()
Config.VFX = not Config.VFX
btnVFX.Text = Config.VFX and "✨ VFX: ON" or "✨ VFX: OFF"
end)
local btnMusic = createButton("BtnMusic", Config.Music and "🎵 Music: ON" or "🎵 Music: OFF", 620, function() end, false, 0.9)
btnMusic.MouseButton1Click:Connect(function()
Config.Music = not Config.Music
btnMusic.Text = Config.Music and "🎵 Music: ON" or "🎵 Music: OFF"
if bgMusic then
if Config.Music then bgMusic:Play() else bgMusic:Stop() end
end
end)
createButton("BtnClear", "Disable (Clear Hitboxes/VFX)", 665, function()
clearHitboxes()
print("[Sukuna] Hitboxes and VFX cleared.")
end)
print("[Sukuna Hub V22] OP Fuga & Physical Shrine Loaded!")



Compatible with all executors
How do I make things work I have the gui but is it mobile supported because it just shoots a big beam outa my ahh and it doesn’t do anything
@crack999 it increases your hitbox, the beam you see is your hitbox you can hide it too, btw i recommend using spiderweb its op
lags but works
Why I was black listed
@Belbouhh23 what do you mean sir
bruh it didn't work
What games is it supporting