I've checked out Stoat and Fluxer. Both seem like they would be the easiest to convince your friends to move.
Fluxer in particular seems a little ahead of Stoat with screen sharing and video calls. Both have the main Discord features, text and voice channels, etc.
I'm rooting for Fluxer now though because they're AGPLv3 without a CLA. So the code will be free forever.
I tried out Matrix as well with Element. It was a complete disaster. The few friends I convinced to try it hated it, the UI was buggy AF, the whole the thing was slow, and we couldn't even see our chats because something, something encryption. They quickly retreated back to Discord.
Slack has the same issues as Discord, so that's automatically discarded.
Mattermost and Zulip I don't know too much about. I think Mattermost is open core, which is lame. So that's out.
Really, the only options are Stoat or Fluxer.

