OnCollisonEnter never being called

I’m having a lot of issues getting the OnCollisionEnter function to be called. (using Unity 2d btw)
This script is attached to a bullet prefab with a circle collider with a dynamic ridgidbody using continuous collision detection.

I’ve tried this with and without the if and it never gets called whatever i try. The object I’m trying to collide it with has a box collider and a ridgidbody (also with dynamic and continuous collision).

Please keep in mind that I’m still very much a Unity beginner.

void OnCollisionEnter(Collision col)
        {
            if (col.gameObject.tag == "Enemy")
            {
                GameObject player = GameObject.Find("Player");
                int damage = player.GetComponent<WeaponScript>().damage;
                col.gameObject.GetComponent<Enemy>().health -= damage;
                Destroy(this.gameObject);
            }
        }

Basically what this script is supposed to accomplish is subtracting the damage of the players current weapon from the health of the hit object, then destroying the bullet.

I’ve sat trying to figure this out for far too long and thoight I might as well ask here and see if anyone could enlighten my obvious lack of knowledge here.

Since you’re using 2D, you’ll probably want to use:

void OnCollisionEnter2D(Collision2D col)

Note the different function name OnCollisionEnter2D, and the different argument type Collision2D.