Solved it!
A meandering discussion on the Talk page for the server.properties article on the Minecraft Wiki indicates that this is Forge's fault. Apparently it redefines spawn-protection
to be a boolean that turns protection on or off entirely (which you can't do in vanilla), and defines a new variable, spawn-protection-size
for what the former variable means for a vanilla server.
As a side effect, it appears that a server with the Forge API installed will honour the default spawn-protection area of 16 blocks until you edit the variable, at which point it treats it as boolean and looks for spawn-protection-size
instead, doesn't find it, and effectively turns spawn protection off entirely.
So this is what happened to me then. Adding spawn-protection-size=42
to my server.properties
file made spawn protection work (again) as expected. Redefining configuration variables is poor practice!
Not reasonably
Nothing you can build in vanilla Minecraft is indestructible.
That said, Simply Sarc recently posted a video on his channel, where he shows off a way to actually make a base indestructible, using 60 Elder Guardians, which are synched up so that one of them uses his curse every second. That means thats any player in the vicinity can't not have Mining Fatigue III for more than a second at a time.
This doesn't make your base truly indestructible, but depending on the material you used for building it, it will make breaking into a base take an awfully long amount of time.
Of course, your team would also be unable to break things inside your base, but you could have a redstone-operated door which can only be opened from the inside.
In pure survival, your team would need to capture these guardians manually, which involves raiding at least 20 ocean monuments. It is also possible to synchronize the curse timers, although the video doesn't go into details, mostly because ot would be utterly ridiculous to even attempt this method of base protection.
Best Answer
As suspected by @Codingale, this is indeed spawn protection. From going through some decompiled Minecraft code, I gathered that a player is allowed to build at the spawn point of a world if:
spawn-protection
is set to 0 or less in your server config.As per that list and assuming you are the only OP on the server, de-oping yourself will cause the spawn protection to be bypassed.
If you don't like spawn protection, you can disable it by setting
in your
server.properties
.Note that the Minecraft Wiki claims the following on
spawn-protection
:However, this is not true. There is an explicit check in the code for that value and I've verified that setting it to
0
does indeed disable spawn protection for versions at least as far back as 1.8.