OnCollisionEnter not working

So I am a fairly new user trying to make a game where you roll a ball to a portal. I made some lava that is supposed to make the player respawn when it touches the player. The player has a rigidbody2d and a box collider. The lava does not. I have a gameobject that contains all the lava in it.

The game is in 2D.

My Collision Script (attached to player) :

using UnityEngine;
using UnityEngine.SceneManagement;

public class CharacterIsHarmed : MonoBehaviour {

public string SceneName;
public bool DebugCollide = false;

// Update is called once per frame
void Update(){

	if (DebugCollide == true) {
		SceneManager.LoadScene (SceneName);
		DebugCollide = false;
	}

}

void OnCollisionEnter (Collision col) 
{

	if (col.collider.name == "Lava") 
	{

		DebugCollide = true;
	}

}

}

The Gameobject containing the lava is named Lava.

After a bit of debugging thanks to @chiker and @KittenSnipes I found out that the collider was working but it would not say what i was colliding with.

@BunnyProductions
I honestly think it is because you are mixing 3d and 2d. You gotta choose which one to use. I think you should use 3d so use a Rigidbody instead of a Rigidbody2d. If you want collisions to work everything will also have to have the same type of collider. So either they all have 3d collidera or they all have 2d. 2d objects can only interact with 2d physics and collisions and 3d objects can only interact with 3d physics and collisions.