Introduction
By now, I think everybody reading this has heard that Discord will be requiring ID verification for a large amount of features, so I'll skip the news. Right now, it seems like everybody is looking for a sane backup plan for when Discord starts pushing this to everybody. I've seen a lot of names get thrown around so far over a variety of platforms, and most of these options are not very good. I believe XMPP and Mumble are the best way to go forward, with maybe some other platforms to supplement the two. While it does suck that not everything can be 1:1 replaced that well, this is the best we have, and in some cases we're better off just leaving features behind.
STOaT/Revolt, Valour, Root, Nerimity, etc
All of these are pretty clear clones of Discord. I see these get thrown around more than anything else, probably because of how similar their UIs and (intended) featuresets are to Discord's. Most of these are open source, but almost all of these have the same problems. They're all lacking end to end encryption (Valour claims to be planning E2EE, whether this happens or not is yet to be found out) and are centralized.
While it is convenient at times, centralization is incredibly bad for a messaging network. You can't run your own server as part of the network to have control of your data, so everything lives on the master server. When the main, official servers go down, everything goes down. It also makes it possible for the service to corrupt one day and implement the ID checking you once sought to escape. Server software is often open source but I've yet to see a client for any "true" Discord clone be designed in a way that would work with multiple servers at once, and again, you can't connect your own server to form a greater network.
SMS/MMS
Please, I beg you, just don't. Whatever's wrong with you, I cannot fix with just this article.
Telegram
Telegram is centralized, requires a phone number, and lies a lot about a privacy a lot. End to end encryption is only present in specifically encrypted conversations on mobile clients. Because of this, it immediately goes in the garbage.
Signal
Signal is well known for their strong security practices, and while these are for the most part true, that can only be said for now. The problem is that Signal is centralized, so there's nothing stopping them from going rogue on server side. It also requires a phone number, which is definitely reason for concern. It's encrypted, which is an improvement over Discord for sure, but still far from ideal.
Also, Signal is encrypted everywhere. Encryption is good for private communication, but causes problems while solving nothing in public communities, which is a major part of what people used Discord for.
Matrix
Matrix (especially big rooms) break constantly and even small servers are incredibly heavy. I used to believe in Matrix and would push it as the solution to Discord, but it's been years and things have somehow only got worse in that time. I no longer have any hope in this protocol. As much as the developers claim to have fixed room state problems, they keep coming back worse than the last time again and again. In my experience, every part of it is constantly finding new ways to fail on you. It also works like absolute shit on anything even close to a spotty connection, a problem not felt nearly as much on XMPP and IRC.
IRC
IRC is pretty much the old reliable of internet communication. It's probably older than most people reading this article, and still active and improving to this day. It's lightweight on both server and client side. I think IRC is good for large, public communities, but it lacks end to end encryption (unless you want to use OTR or whatever, which very few clients support), which makes it very bad for privacy. IRC is also centralized, though MOST (with the exception of Senpai, Gamja, and Goguma if you don't use Soju) clients are designed to make using multiple IRC networks/servers easy. IRC is a bit dated and lacks many features though, so it does take some getting used to coming from Discord, and you will probably need a bouncer.
XMPP
XMPP is, as of the time I'm writing this, the only viable all-purpose messenger. It has (most) of the features one needs for text chat; media upload, text reactions, replies, end to end encryption, and so on. Hosting your own server is also fairly light on resources, a bit heavier than IRC and far lighter than Matrix. The main problem in XMPP is its client ecosystem, though that has been improving more than ever lately. Most clients are also lacking in the voice/video department sadly, so I suggest using Jitsi or Mumble (depending on your needs) in tandem with XMPP until multi-user calling is more common.
XMPP being decentralized and allowing all servers to join together in one network lets anybody run their own part of the network, giving you full control over your data and still allowing you to talk to people on their own servers, kinda like e-mail. This also means XMPP couldn't try to make you give over your ID if it wanted to. If a server tried it, you could either move to a different one or host your own.
Conclusion
Text: XMPP for most cases, IRC if you only care about building communities and don't need DMs or anything.
Voice/Video: Mumble and Jitsi/Screego/whatever you want for screenshare or video if needed.
See also: Jabber - GS.XYZ
There's a lot of IM software out there, so I might do a part 2 of this if needed.