&gt;But more like he doesn’t ever want to spend time with people and leaves places early, walks out on things and just snaps and changes mood depending on who he’s with and leaves me explaining to people and have say sorry to them. 

i didnt even have to read the rest of this, your boyfriend sounds like he might seriously have BPD or other anger issues. partially fixable or at least better with therapy. 


&gt;he’s called me a bitch numerous times, a slut, a whore. Just out of nowhere.

dip. dip hard. dip quick. 


&gt;then the next day he’ll snap at me again and won’t even remember what he said the night before.

again echoing some mental issues and the need for the right healthcare professional


&gt;I just don’t have any idea what to do.

personal opinion but stay away from people who get called out for their anger problems, or worse admit to them, and yet continue to be shitty. if youve tried to talk to him about the source of this and been going through these social fuckups and making excuses for him, then it sounds like youve already made up your mind but just need to hear it from some other people. leave him and block him. guys like that are danger. 

or keep trying to get him help or get him to explain whats wrong if it means that much to recover what you originally had. just be careful.