local TweenService = game:GetService("TweenService") local Debris = game:GetService("Debris") local Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer local Mouse = LocalPlayer:GetMouse() if _G.CrucifixActivatedConnection then _G.CrucifixActivatedConnection:Disconnect() end if _G.CrucifixEquippedConnection then _G.CrucifixEquippedConnection:Disconnect() end if _G.CrucifixUnequippedConnection then _G.CrucifixUnequippedConnection:Disconnect() end local oldTool = LocalPlayer.Backpack:FindFirstChild("Crucifix") or (LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Crucifix")) if oldTool then oldTool:Destroy() end local MESH_ID = "rbxassetid://6552335491" local BURLAP_COLOR = Color3.fromRGB(160, 130, 95) local BLUE_MAGIC_COLOR = Color3.fromRGB(0, 170, 255) local CUSTOM_SIZE = Vector3.new(0.099, 0.095, 0.0881) local isProcessing = false local isEquipped = false local tool = Instance.new("Tool") tool.Name = "Crucifix" tool.RequiresHandle = true tool.CanBeDropped = true tool.TextureId = "rbxassetid://12434168968" local handle = Instance.new("Part") handle.Name = "Handle" handle.Size = CUSTOM_SIZE handle.Material = Enum.Material.Wood handle.Reflectance = 1 handle.Color = BURLAP_COLOR handle.Parent = tool local toolMesh = Instance.new("SpecialMesh") toolMesh.MeshType = Enum.MeshType.FileMesh toolMesh.MeshId = MESH_ID toolMesh.Scale = CUSTOM_SIZE toolMesh.Parent = handle tool.Parent = LocalPlayer:WaitForChild("Backpack") _G.CrucifixEquippedConnection = tool.Equipped:Connect(function() isEquipped = true handle.Transparency = 0 end) _G.CrucifixUnequippedConnection = tool.Unequipped:Connect(function() isEquipped = false end) _G.CrucifixActivatedConnection = Mouse.Button1Down:Connect(function() local character = LocalPlayer.Character if not character or not isEquipped or isProcessing or tool.Parent ~= character then return end local targetPart = Mouse.Target if not targetPart or not targetPart:IsA("BasePart") or targetPart.Transparency >= 1 or targetPart:IsDescendantOf(character) or targetPart.Name == "Terrain" then return end isProcessing = true local clickPosition = Mouse.Hit.Position local lightPart = Instance.new("Part") lightPart.Size = Vector3.new(1, 1, 1) lightPart.Position = clickPosition lightPart.Transparency = 1 lightPart.Anchored = true lightPart.CanCollide = false lightPart.Parent = workspace local pointLight = Instance.new("PointLight") pointLight.Color = BLUE_MAGIC_COLOR pointLight.Range = 25 pointLight.Brightness = 6 pointLight.Shadows = false pointLight.Parent = lightPart local particles = Instance.new("ParticleEmitter") particles.Color = ColorSequence.new(BLUE_MAGIC_COLOR) particles.Size = NumberSequence.new(0.3, 0) particles.Lifetime = NumberRange.new(0.6, 1.2) particles.Speed = NumberRange.new(1, 4) particles.SpreadAngle = Vector2.new(0, 360) particles.Rate = 65 particles.Parent = lightPart TweenService:Create(pointLight, TweenInfo.new(2), { Brightness = 0, Range = 0 }):Play() Debris:AddItem(lightPart, 4.5) local clonePart = targetPart:Clone() clonePart.Anchored = true clonePart.CanCollide = false clonePart.CFrame = targetPart.CFrame clonePart.Parent = workspace targetPart.LocalTransparencyModifier = 1 local selectionBox = Instance.new("SelectionBox") selectionBox.Adornee = clonePart selectionBox.Color3 = BLUE_MAGIC_COLOR selectionBox.LineThickness = 0.15 selectionBox.Parent = lightPart local flyingCrucifix = Instance.new("Part") flyingCrucifix.Size = CUSTOM_SIZE flyingCrucifix.Material = Enum.Material.Wood flyingCrucifix.Color = BURLAP_COLOR flyingCrucifix.CanCollide = false flyingCrucifix.Anchored = true flyingCrucifix.CFrame = CFrame.new(clickPosition) flyingCrucifix.Parent = workspace local effectMesh = Instance.new("SpecialMesh") effectMesh.MeshType = Enum.MeshType.FileMesh effectMesh.MeshId = MESH_ID effectMesh.Scale = CUSTOM_SIZE effectMesh.Parent = flyingCrucifix local duration = math.random(30, 40) / 10 local flyHeight = math.random(20, 50) / 10 local targetPosCrucifix = flyingCrucifix.Position + Vector3.new(0, flyHeight, 0) local targetPosClone = clonePart.Position + Vector3.new(0, flyHeight, 0) local tweenInfo = TweenInfo.new( duration, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut ) local flyAndSpinTween = TweenService:Create(flyingCrucifix, tweenInfo, { Position = targetPosCrucifix, Orientation = flyingCrucifix.Orientation + Vector3.new(0, 720, 0) }) local wallTween = TweenService:Create(clonePart, tweenInfo, { Position = targetPosClone, Orientation = clonePart.Orientation + Vector3.new(0, 360, 0), Size = Vector3.new(0, 0, 0) }) task.delay(duration - 0.8, function() if not flyingCrucifix.Parent or not clonePart.Parent then return end local fadeInfo = TweenInfo.new( 0.8, Enum.EasingStyle.Quad, Enum.EasingDirection.In ) TweenService:Create(flyingCrucifix, fadeInfo, { Transparency = 1 }):Play() TweenService:Create(clonePart, fadeInfo, { Transparency = 1 }):Play() particles.Enabled = false TweenService:Create(selectionBox, fadeInfo, { Transparency = 1 }):Play() end) flyAndSpinTween:Play() wallTween:Play() task.wait(duration) local burstPart = Instance.new("Part") burstPart.Size = Vector3.new(1, 1, 1) burstPart.Position = flyingCrucifix.Position burstPart.Transparency = 1 burstPart.Anchored = true burstPart.CanCollide = false burstPart.Parent = workspace local burstParticles = Instance.new("ParticleEmitter") burstParticles.Color = ColorSequence.new(BLUE_MAGIC_COLOR) burstParticles.Size = NumberSequence.new(0.4, 0) burstParticles.Lifetime = NumberRange.new(0.3, 0.6) burstParticles.Speed = NumberRange.new(5, 10) burstParticles.SpreadAngle = Vector2.new(0, 360) burstParticles.Rate = 200 burstParticles.Parent = burstPart task.delay(0.1, function() burstParticles.Enabled = false end) Debris:AddItem(burstPart, 0.7) flyingCrucifix:Destroy() clonePart:Destroy() isProcessing = false end)