in my opinion you need to get him out of your home. Your home is your sanctuary. Stop spending a cent on him, for anything. Every time he gets violent, call the police. If he has drugs in your house, call the police. If he is obviously high or using at home, call the police. They will remove him and may save you an eviction process if he won't leave on his own. Accept this is not the son you cuddled as a boy. Drugs rob us of our children. Until he hits rock bottom, he has no reason to stop, and your enabling acts as the safety net that allows him to continue living the way he does.