Nothing is uncrackable, but layers of complexity makes things harder to crack. Hackers love complexity as challenge as it is usually what they are looking for, the dopamine rush of cracking it, so the harder it is the more exciting it is. There are crackers who do it just for fun and others that they do it as a “side-income” and sell pirated software, but some of them are very determined and they will dig until the last drop of code.
Code rotation, obfuscation and traps inside the code is what makes this fun not only for them, for us.
As @Jarda mentioned, is fun to see crackers struggling in forums.
Is not a battle, is a game. They crack, we learn new security layers. They can’t crack something and we learn new security layer. Sometimes cracking is not bad for us, it teaches us our vulnerabilities as developers and boosts our security if we are whiling to learn, it can be fun when you get used to!
If your plugin is good, people will pay for it. People who doesn’t pay for it is people who won’t ever buy it, they cannot afford it, so they are not your clients. So it doesn’t matter if they use a pirated version, piracy does something good for software: EXPOSURE.
So if your software is being pirated, it means is good and you are a creative software engineer, security is another topic, but you did a great product that everyone wants though, and that is cool.
Monetary side, well yeah, if feels like it affects but in the end, who’s gonna pay for it is gonna pay, even if there’s a pirated version out there.
So obfuscate as much as possible, put some traps for hackers inside the plugin, you’ll start to see the fun inside this world.