Im trying to make a simple ability (note i made it so the player is detected on purpose for debugging)

Script in ServerScriptService

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SecularDirectory = ReplicatedStorage.Abilities.Secular

SecularDirectory["Soul Piercer"].Cast.OnServerEvent:Connect(function(player)
	if player.stats.soul.Value >= 20 then
		local char = player.Character
		local hum = char:WaitForChild("Humanoid")

		local Anim = hum:LoadAnimation(SecularDirectory["Soul Piercer"].Animation)
		Anim.Looped = true

		Anim:Play()
		--// Parenting \\--
		local SoulPierce = SecularDirectory["Soul Piercer"].SoulPierce:Clone()
		SoulPierce.Parent = char
		SoulPierce.HandWeld.Part1 = char["Left Arm"]

		--// Hitbox Detecting \\--
		local parts = game.Workspace:GetPartsInPart(SoulPierce.Hitbox)

		print(parts)

		for i, v in parts do
			if v.Parent:WaitForChild("Humanoid") then
				if v.Parent:FindFirstChildOfClass("Tool") then
					local enemy = game.Players:GetPlayerFromCharacter(v.Parent)

					local statsFolder = enemy:WaitForChild("stats")
					local posture = statsFolder:WaitForChild("posture")

					posture.Value -= 10

				end
			end
		end
		wait(0.1)
		SoulPierce:Destroy()
	end
end)

Also yes, the part spawns, gets welded, and the animation plays, my only issue is with everything BELOW the "local parts = game.Workspace:GetPartsInPart(SoulPierce.Hitbox)" and yes there is 0 errors.