Physics2dOverlapBox is detecting every custom layer

for some reason even though im telling it to only look for certain layers it checks all the custom layers and the colliders don’t even have to overlap they just have to get close, but that’s not what’s supposed to happen. here’s the code:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Dummy : MonoBehaviour
{
    public Animator anim;

    public LayerMask weapon;

    public Vector2 offSet;

    public Vector2 size;

  

    // Update is called once per frame
    void Update()
    {
        if (Physics2D.OverlapBox(transform.position + (Vector3)offSet, size, weapon)) 
        {
            print("I Have'th been Hurt");
            anim.SetTrigger("Hurting");
        }
    }
  
    void OnDrawGizmosSelected()
    {
        Gizmos.color = Color.yellow;
        Gizmos.DrawWireCube(transform.position + (Vector3)offSet, new Vector3(size.x, size.y, 1));
    }
}

Looking at OverlapBox, I don’t see any option for the set of parameters you are trying to use. It thinks you are giving it a position, a size and an angle. So I’m pretty sure what is happening is you are passing the the layermask and its converting it into a float and treating that as the rotation of the box. End result is the box is rotated, when you don’t mean it to be (which explains it hitting unexpected nearby things), and no layermask is applied, so it hits every layer. All you need to do is pass in a rotation angle before the layermask:

    if (Physics2D.OverlapBox(transform.position + (Vector3)offSet, size, 0, weapon))