JIT
creating a celestial blade tool with special effects in roblox
--// 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.
Updated files
v1