--// Services
local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local Debris = game:GetService("Debris")
local RunService = game:GetService("RunService")
local player = Players:FindFirstChild("AlphonsoGames")
if not player then return end
-- Create the Tool
local unfinishdblad = Instance.new("Tool")
unfinishdblad.Name = "megaunfinishdblad"
unfinishdblad.GripPos = Vector3.new(0, -4, 0) -- twice as tall, move grip down
unfinishdblad.Grip = CFrame.new(0, -4, 0)
-- Create the main handle (hilt)
local Handle = Instance.new("Part")
Handle.Name = "Handle"
Handle.CFrame = CFrame.new(0, 0, 0)
Handle.BottomSurface = Enum.SurfaceType.Smooth
Handle.TopSurface = Enum.SurfaceType.Smooth
Handle.Color = Color3.fromRGB(100, 100, 255)
Handle.Massless = true
Handle.Material = Enum.Material.Neon
Handle.Size = Vector3.new(1, 15, 1) -- twice as tall
Handle.Parent = unfinishdblad
local Mesh = Instance.new("SpecialMesh")
Mesh.MeshId = "rbxassetid://741731407"
Mesh.TextureId = "rbxassetid://5208650502"
Mesh.MeshType = Enum.MeshType.FileMesh
Mesh.Scale = Vector3.new(1, 2, 1) -- scale mesh to match double height
Mesh.Parent = Handle
-- Celestial Aura Particle Effect on the Blade
local CelestialAura = Instance.new("ParticleEmitter")
CelestialAura.Name = "CelestialAura"
CelestialAura.Lifetime = NumberRange.new(1.5, 2)
CelestialAura.Transparency = NumberSequence.new(0, 1)
CelestialAura.LightEmission = 0.75
CelestialAura.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(100, 100, 255)),
ColorSequenceKeypoint.new(0.5934256, Color3.fromRGB(182, 37, 255)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(191, 0, 255))
})
CelestialAura.Squash = NumberSequence.new({
NumberSequenceKeypoint.new(0, 1.0124998),
NumberSequenceKeypoint.new(0.4, -3),
NumberSequenceKeypoint.new(1, -3)
})
CelestialAura.Speed = NumberRange.new(0, 0)
CelestialAura.Size = NumberSequence.new(3.6874998, 0)
CelestialAura.ZOffset = 1
CelestialAura.VelocityInheritance = 1
CelestialAura.LockedToPart = true
CelestialAura.Rate = 50
CelestialAura.Texture = "rbxassetid://91727176544127"
CelestialAura.Parent = Handle
-- Sound effects
local Sound = Instance.new("Sound")
Sound.Name = "Equip"
Sound.MinDistance = 75
Sound.MaxDistance = 125
Sound.Volume = 1.5
Sound.SoundId = "rbxassetid://9085320874"
Sound.Pitch = 0.95
Sound.Parent = Handle
local Sound1 = Instance.new("Sound")
Sound1.Name = "Swing"
Sound1.Volume = 2
Sound1.SoundId = "rbxassetid://139477377921609"
Sound1.MinDistance = 50
Sound1.MaxDistance = 500
Sound1.Pitch = 0.85
Sound1.Parent = Handle
--[[
local Sound2 = Instance.new("Sound")
Sound2.Name = "ShockWave"
Sound2.Volume = 3
Sound2.SoundId = "rbxassetid://18507374738"
Sound2.MinDistance = 75
Sound2.MaxDistance = 750
Sound2.Pitch = 0.7
Sound2.Parent = Handle
]]
local Sound3 = Instance.new("Sound")
Sound3.Name = "Music"
Sound3.SoundId = "rbxassetid://84989010700738"
Sound3.Volume = 1
Sound3.Looped = true
Sound3.MinDistance = 125
Sound3.MaxDistance = 1250
Sound3.Pitch = 1.25
Sound3.Parent = Handle
-- Attachments for circle particle effects
local Attachment1 = Instance.new("Attachment")
Attachment1.Name = "Attachment1"
Attachment1.Position = Vector3.new(0, -6.5, 0) -- move down for double height
Attachment1.Parent = Handle
local circle = Instance.new("ParticleEmitter")
circle.Name = "circle"
circle.Lifetime = NumberRange.new(2.5, 2.5)
circle.LockedToPart = true
circle.Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0.90625),
NumberSequenceKeypoint.new(0.5, 0.99375),
NumberSequenceKeypoint.new(1, 0.825)
})
circle.Color = ColorSequence.new(Color3.fromRGB(43, 1, 255))
circle.Speed = NumberRange.new(0.175, 0.175)
circle.Brightness = 10
circle.Size = NumberSequence.new({
NumberSequenceKeypoint.new(0, 1.9374996),
NumberSequenceKeypoint.new(0.5099751, 2.6875),
NumberSequenceKeypoint.new(1, 2.6875)
})
circle.VelocityInheritance = 1
circle.LockedToPart = true
circle.Rate = 25
circle.Texture = "rbxassetid://75376272963576"
circle.RotSpeed = NumberRange.new(380, 380)
circle.Orientation = Enum.ParticleOrientation.VelocityPerpendicular
circle.Parent = Attachment1
local Attachment2 = Instance.new("Attachment")
Attachment2.Name = "Attachment2"
Attachment2.Position = Vector3.new(0, 0, 0)
Attachment2.Parent = Handle
local circle1 = Instance.new("ParticleEmitter")
circle1.Name = "circle"
circle1.Lifetime = NumberRange.new(2.5, 2.5)
circle1.LockedToPart = true
circle1.Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0.90625),
NumberSequenceKeypoint.new(0.5, 0.99375),
NumberSequenceKeypoint.new(1, 0.825)
})
circle1.Color = ColorSequence.new(Color3.fromRGB(43, 1, 255))
circle1.Speed = NumberRange.new(0.175, 0.175)
circle1.Brightness = 10
circle1.Size = NumberSequence.new({
NumberSequenceKeypoint.new(0, 1.9999999),
NumberSequenceKeypoint.new(0.5, 2.4374998),
NumberSequenceKeypoint.new(1, 1.4375001)
})
circle1.VelocityInheritance = 1
circle1.LockedToPart = true
circle1.Rate = 25
circle1.Texture = "rbxassetid://75376272963576"
circle1.RotSpeed = NumberRange.new(380, 380)
circle1.Orientation = Enum.ParticleOrientation.VelocityPerpendicular
circle1.Parent = Attachment2
local Attachment3 = Instance.new("Attachment")
Attachment3.Name = "Attachment3"
Attachment3.Position = Vector3.new(0, 5, 0) -- move up for double height
Attachment3.Parent = Handle
local circle2 = Instance.new("ParticleEmitter")
circle2.Name = "circle"
circle2.Lifetime = NumberRange.new(2.5, 2.5)
circle2.LockedToPart = true
circle2.Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0.90625),
NumberSequenceKeypoint.new(0.5, 0.99375),
NumberSequenceKeypoint.new(1, 0.825)
})
circle2.Color = ColorSequence.new(Color3.fromRGB(43, 1, 255))
circle2.Speed = NumberRange.new(0.175, 0.175)
circle2.Brightness = 10
circle2.Size = NumberSequence.new({
NumberSequenceKeypoint.new(0, 3.125),
NumberSequenceKeypoint.new(0.5074813, 1.9999999),
NumberSequenceKeypoint.new(1, 2.9375)
})
circle2.VelocityInheritance = 1
circle2.LockedToPart = true
circle2.Rate = 25
circle2.Texture = "rbxassetid://75376272963576"
circle2.RotSpeed = NumberRange.new(380, 380)
circle2.Orientation = Enum.ParticleOrientation.VelocityPerpendicular
circle2.Parent = Attachment3
-- Highlight to make the blade pop
local Highlight = Instance.new("Highlight")
Highlight.DepthMode = Enum.HighlightDepthMode.Occluded
Highlight.FillTransparency = 1
Highlight.Parent = unfinishdblad
-- Add tool to player's backpack
unfinishdblad.Parent = player.Backpack
-- Sound effects for equip and unequip
local equipSound = Sound
local swingSound = Sound1
local shockSound = Sound2
local music = Sound3
------------------------------------------------------------
-- AGGRESSIVE WIDE PROJECTILE ATTACK (3x RANGE)
------------------------------------------------------------
-- Utility: Get all humanoids in a radius
local function getHumanoidsInRadius(center, radius, ignoreModel)
local found = {}
for _, model in ipairs(workspace:GetDescendants()) do
if model:IsA("Model") and model ~= ignoreModel then
local humanoid = model:FindFirstChildOfClass("Humanoid")
local hrp = model:FindFirstChild("HumanoidRootPart")
if humanoid and hrp and (hrp.Position - center).Magnitude <= radius then
table.insert(found, {humanoid = humanoid, hrp = hrp})
end
end
end
return found
end
-- Create the aggressive wide projectile
local function createAwesomeProjectile(originCFrame, ownerModel)
local projectile = Instance.new("Part")
projectile.Name = "CelestialBladeProjectile"
projectile.Anchored = false
projectile.CanCollide = false
projectile.Size = Vector3.new(12, 40, 12)
projectile.CFrame = originCFrame
projectile.Material = Enum.Material.Neon
projectile.Color = Color3.fromRGB(255, 0, 255)
projectile.Transparency = 0.08
projectile.CastShadow = false
projectile.Parent = workspace
-- Mesh for blade shape (wider)
local mesh = Instance.new("SpecialMesh")
mesh.MeshType = Enum.MeshType.FileMesh
mesh.MeshId = "rbxassetid://741731407"
mesh.TextureId = "rbxassetid://5208650502"
mesh.Scale = Vector3.new(12, 12, 12)
mesh.Parent = projectile
-- Glowing trail (more aggressive)
local att0 = Instance.new("Attachment", projectile)
att0.Position = Vector3.new(0, 40, 0)
local att1 = Instance.new("Attachment", projectile)
att1.Position = Vector3.new(0, -40, 0)
local trail = Instance.new("Trail")
trail.Attachment0 = att0
trail.Attachment1 = att1
trail.Lifetime = 0.45
trail.Color = ColorSequence.new{
ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 0, 255)),
ColorSequenceKeypoint.new(0.5, Color3.fromRGB(255, 255, 255)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(191, 0, 255))
}
trail.Transparency = NumberSequence.new{
NumberSequenceKeypoint.new(0, 0.05),
NumberSequenceKeypoint.new(0.5, 0.15),
NumberSequenceKeypoint.new(1, 1)
}
trail.LightEmission = 1
trail.MinLength = 0
trail.Parent = projectile
-- Particle burst on spawn (more aggressive)
local burst = Instance.new("ParticleEmitter")
burst.Lifetime = NumberRange.new(0.18, 0.28)
burst.Rate = 0
burst.Speed = NumberRange.new(40, 80)
burst.Size = NumberSequence.new(4, 0)
burst.Color = ColorSequence.new(Color3.fromRGB(255, 0, 255), Color3.fromRGB(255, 255, 255), Color3.fromRGB(191, 0, 255))
burst.EmissionDirection = Enum.NormalId.Front
burst.LightEmission = 1
burst.Texture = "rbxassetid://91727176544127"
burst.Parent = projectile
burst:Emit(120)
-- Movement (faster)
local bv = Instance.new("BodyVelocity")
bv.Velocity = originCFrame.LookVector * 320
bv.MaxForce = Vector3.new(1e7, 1e7, 1e7)
bv.Parent = projectile
-- Spin effect (more aggressive)
local spin = Instance.new("BodyAngularVelocity")
spin.AngularVelocity = Vector3.new(0, 30, 0)
spin.MaxTorque = Vector3.new(0, 1e7, 0)
spin.Parent = projectile
-- Max range logic (3x range)
local startPos = originCFrame.Position
local maxRange = 720
local exploded = false
-- Explosion effect (more aggressive)
local function explode(pos)
if exploded then return end
exploded = true
-- Visual: burst and shockwave
local burst = Instance.new("ParticleEmitter")
burst.Texture = "rbxassetid://91727176544127"
burst.Color = ColorSequence.new(Color3.fromRGB(255, 255, 255), Color3.fromRGB(255, 0, 255), Color3.fromRGB(191, 0, 255))
burst.Size = NumberSequence.new({NumberSequenceKeypoint.new(0, 18), NumberSequenceKeypoint.new(1, 0)})
burst.Lifetime = NumberRange.new(0.4, 0.6)
burst.Rate = 0
burst.Speed = NumberRange.new(180, 240)
burst.EmissionDirection = Enum.NormalId.Top
burst.LightEmission = 1
burst.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 0), NumberSequenceKeypoint.new(1, 1)})
burst.Parent = projectile
burst:Emit(200)
local shockwave = Instance.new("Part")
shockwave.Shape = Enum.PartType.Ball
shockwave.Anchored = true
shockwave.CanCollide = false
shockwave.Transparency = 0.3
shockwave.Size = Vector3.new(1, 1, 1)
shockwave.CFrame = CFrame.new(pos)
shockwave.Color = Color3.fromRGB(255, 0, 255)
shockwave.Material = Enum.Material.Neon
shockwave.Parent = workspace
local shockTween = TweenService:Create(shockwave, TweenInfo.new(0.5, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Size = Vector3.new(160, 160, 160), Transparency = 1})
shockTween:Play()
shockTween.Completed:Connect(function()
shockwave:Destroy()
end)
local function playShockSound()
local newSound = Instance.new("Sound")
newSound.SoundId = "rbxassetid://18507374738"
newSound.Volume = 3
newSound.MinDistance = 75
newSound.MaxDistance = 1250
newSound.Pitch = 0.7
newSound.Parent = Handle -- Parent to where you want the sound to come from (e.g., the handle)
newSound:Play() -- Play the new sound instance
Debris:AddItem(newSound, newSound.TimeLength) -- Clean up after the sound finishes playing
end
playShockSound()
-- Damage and launch enemies (more aggressive)
for _, info in ipairs(getHumanoidsInRadius(pos, 36, ownerModel)) do
info.humanoid:TakeDamage(200)
-- Launch away from explosion
local away = (info.hrp.Position - pos).Unit
local bv = Instance.new("BodyVelocity")
bv.MaxForce = Vector3.new(1e6, 1e6, 1e6)
bv.Velocity = away * 320 + Vector3.new(0, 180, 0)
bv.Parent = info.hrp
Debris:AddItem(bv, 0.3)
-- Hit flash
local flash = Instance.new("Highlight")
flash.FillColor = Color3.fromRGB(255, 0, 255)
flash.OutlineColor = Color3.fromRGB(255, 255, 255)
flash.OutlineTransparency = 0.1
flash.FillTransparency = 0.2
flash.Parent = info.hrp.Parent
Debris:AddItem(flash, 0.3)
end
-- Fade out projectile
local fadeTween = TweenService:Create(projectile, TweenInfo.new(0.15), {Transparency = 1})
fadeTween:Play()
fadeTween.Completed:Connect(function()
projectile:Destroy()
end)
end
-- Touch logic
projectile.Touched:Connect(function(hitPart)
if exploded then return end
local characterHit = hitPart.Parent
if characterHit and characterHit:FindFirstChildOfClass("Humanoid") and characterHit ~= ownerModel then
explode(projectile.Position)
end
end)
-- Range check
local rangeConn
rangeConn = RunService.Heartbeat:Connect(function()
if not projectile or not projectile.Parent then
if rangeConn then rangeConn:Disconnect() end
return
end
if (projectile.Position - startPos).Magnitude >= maxRange then
explode(projectile.Position)
if rangeConn then rangeConn:Disconnect() end
end
end)
Debris:AddItem(projectile, 6)
end
unfinishdblad.Activated:Connect(function()
swingSound:Play()
local character = player.Character
if not character then return end
local hrp = character:FindFirstChild("HumanoidRootPart")
if not hrp then return end
local humanoid = character:FindFirstChildOfClass("Humanoid")
if humanoid then
local anim = Instance.new("StringValue")
anim.Name = "toolanim"
anim.Value = "Slash"
anim.Parent = unfinishdblad
end
-- Blade pulse
local pulseTween = TweenService:Create(Handle, TweenInfo.new(0.1, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Color = Color3.fromRGB(255, 0, 255)})
local pulseBackTween = TweenService:Create(Handle, TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.In), {Color = Color3.fromRGB(100, 100, 255)})
pulseTween:Play()
pulseTween.Completed:Connect(function()
pulseBackTween:Play()
end)
-- Fire the aggressive wide projectile
local projCFrame = hrp.CFrame * CFrame.new(0, 0, -6)
createAwesomeProjectile(projCFrame, character)
end)
-- Variables to store the original values for later removal
local originalWalkSpeed
local originalJumpPower
unfinishdblad.Equipped:Connect(function()
equipSound:Play()
music:Play()
local character = player.Character
if character and character:FindFirstChild("Humanoid") then
local humanoid = character.Humanoid
originalWalkSpeed = humanoid.WalkSpeed
originalJumpPower = humanoid.JumpPower
humanoid.WalkSpeed = originalWalkSpeed + 150
humanoid.JumpPower = originalJumpPower + 150
end
end)
unfinishdblad.Unequipped:Connect(function()
equipSound:Stop()
music:Stop()
local character = player.Character
if character and character:FindFirstChild("Humanoid") then
local humanoid = character.Humanoid
if originalWalkSpeed and originalJumpPower then
humanoid.WalkSpeed = originalWalkSpeed
humanoid.JumpPower = originalJumpPower
end
end
end)
make the shockwave sound be from the exploding projectile.