Is there any way to prevent regular users from unpinning topics? I’m well aware that many forums abuse the usage of pins, which is probably why Discourse allows members to unpin, but I only wish to pin the most important information and I want that to remain pinned until a moderator or admin unpins it.
Sure, you can disable the site setting
automatically unpin topics that is the setting used to globally enable/disable the feature.
But users can still click the X and unpin the message right?
Yes, but only if they know that by clicking on the pin icon something changes.
Ah! And you know how to hide that button with CSS.
Is there a way to prevent this entirely without simply hiding the button with css?
Nope. Hide the button with CSS is the only way.