Best way to handle collisions in a 2.5D Fighting Game?

Hello Everyone! I am writing to ask a simple question, how would I go about detecting hitbox collisions on the server? Since .Touched is unreliable and block cast isn’t working for me.

Here are my previous attempts (Block Cast):

local Part: Part = DataPacket.Part
		local Size = DataPacket.Size
		local Magnitude = DataPacket.Magnitude

		print("Part", DataPacket.Part)
		print("Magnitude", DataPacket.Magnitude)
		print("Size", DataPacket.Size)

		-- Get the current CFrame of the part
		local Direction = Part.CFrame.LookVector*Magnitude

		local Params = RaycastParams.new()
		Params.FilterType = Enum.RaycastFilterType.Exclude
		Params.FilterDescendantsInstances = Melee.GlobalFunctions.GetAllNonCharacterParts()
		Params.IgnoreWater = true

		local Result = workspace:Blockcast(Part.CFrame, Size, Direction, Params)
		Melee.GlobalFunctions.VisualizeBlockCast(Part.CFrame, Size, Direction, Params)

Result:

workspace:GetPartsInPart() works well. Able to use OverlapParams with it as well.