Spawn an object at the hit's position

Hello, so I’m making a game and I want it so when you hit someone with a sword it spawns a hit collision effect at the position that you hit.

Handle.Touched:Connect(function(Hit)
    local Humanoid = Hit.Parent:FindFirstChildOfClass("Humanoid")
    local HumanoidRootPart = Hit.Parent:FindFirstChild("HumanoidRootPart")
    
    if Humanoid and not Deb[Humanoid] and HumanoidRootPart and CanDamage and not Hit.Parent:IsDescendantOf(Tool.Parent) then
   	    Deb[Humanoid] = true
	    Humanoid:TakeDamage(10)
	    
	    local HitCollisionClone = HitCollision:Clone()
	    HitCollisionClone.Parent = workspace
	    HitCollisionClone.CFrame = -- Hit position here
	    
	    Humanoid.WalkSpeed = 0
	    Stunned = true
	    wait(StunDuration)
	    Humanoid.WalkSpeed = 16
	    
	    if MyRoot then
		    --Push(HumanoidRootPart)
	    end
    end
end)

Couldn’t you just make the HitCollision’s CFrame equal to the Handle’s CFrame?

Oh you’re right, but there is one problem. As you can see in this image, it’s not really on the dummy. I want it so it will be like the impact point in which the sword hits the dummy.
image

Well, in that instance couldn’t you just Parent the HitCollisionClone to the Target’s HumanoidRootPart or something?

That doesn’t really change much

Rather than trying to place it at the Handle’s position, why not try it at the Hit’s position?

By that I meant, the part that the touched event collided with’s position.

Like this:
HitCollisionClone.CFrame = Hit.CFrame

Thing is both doesn’t make much of a difference.
To be hitting, they are really close (visually), and with larger parts, it might just seem unrealistic either way.

You can instead raycast to get the hit position.

Doesn’t work. If I do that the object is not spawning and there is no error somehow.

I don’t really know how to use raycasts. Can you show me?