AntiSeedCracker [1.20.4 - 1.21] icon

AntiSeedCracker [1.20.4 - 1.21] -----

Making the life of public seed crackers harder



DISCLAIMER: THIS IS NOW A SEMI WORKING SOLUTION. IF YOU WANT TO CONTRIBUTE TO THIS EFFORT, PLEASE TAKE A LOOK AT THE LINKED GITHUB!

Why does this plugin exist?
Since update 19w36a (early 1.15) the server sends the first 8 bits of your world's seed to the client. This makes seed cracking incredibly easy. It has annoyed me on my personal server, that people just came around pasting the world's seed, which can have multiple forms of impact on your server.

Spent hours searching the perfect seed? Well, now everyone has it.
Does a user know where all diamond ores, strongholds, and villages are? Now you know why.

This anti seed cracker plugin has been made to make finding your world seed harder. It will never be impossible because you can still derive it from structures etc., but it makes it significantly harder to find it automatically.
How does it work?
The server sends the hashed seed in two places. Whenever a player joins the game and whenever a player respawns. Thanks to ProtocolLib, modifying that information is incredibly easy. All we do is set the seed to a random believable value and are done with it.

New in version 1.1.0 of the plugin, I added the option to change your end spikes. They are a very easy way for the seed cracking mod to get some important bits of information, and modifying them is neither gameplay breaking nor difficult. However, this feature is off by default, since it does modify the actual world. You can decide by yourself if you want it.
New in version 1.2, we now also modify end cities. Enabling this and the above makes the end un-useable for automated seed reversal.

Friendly reminder, apparently structure blocks contain the seed too. If you use them, try to avoid updating them when others are around.

Demonstration:
Without plugin:
[​IMG]
With plugin:

[​IMG]
[​IMG]
Commands and Permissions
/antiseedcracker reload - Reloads the configuration
Needs the permission antiseedcracker.admin which OPs have by default.

Code (YAML):
[/SIZE ] [/SIZE ]
[SIZE=5 ] [SIZE=4 ] # Settings for when the server-sent hashed seed is randomized.[/SIZE][/SIZE]
[SIZE=5 ] [SIZE=4 ]randomize_hashed_seed: [/SIZE ] [/SIZE ]
[SIZE=5 ] [SIZE=4 ]   # Whether the seed should be randomized in the login packet.[/SIZE][/SIZE]
[SIZE=5 ] [SIZE=4 ]   # The login packet is sent before the player sees the world, to send server and join world information.[/SIZE][/SIZE]
[SIZE=5 ] [SIZE=4 ]   # This is NOT the handshake login packet, so at this point the player already joined the server.[/SIZE][/SIZE]
[SIZE=5][SIZE=4]  login
: true [/SIZE ] [/SIZE ]
[SIZE=5 ] [SIZE=4 ]   # Whether the seed should be randomized in the respawn packet.[/SIZE][/SIZE]
[SIZE=5 ] [SIZE=4 ]   # The respawn packet is sent when the player respawns after a death, and when they are teleported to a different dimension.[/SIZE][/SIZE]
[SIZE=5 ] [SIZE=4 ]   # It contains about half the fields the login packet has, mainly the new world information.[/SIZE][/SIZE]
[SIZE=5][SIZE=4]  respawn
: true [/SIZE ] [/SIZE ]
[SIZE=5 ] [SIZE=4 ] [/SIZE ] [/SIZE ]
[SIZE=5 ] [SIZE=4 ] # Warning: All of these actually modify your world. Only enable them if you are okay with that![/SIZE][/SIZE]
[SIZE=5 ] [SIZE=4 ]modifiers: [/SIZE ] [/SIZE ]
[SIZE=5 ] [SIZE=4 ]   # Modification of end spikes (bedrock) so that they do not conform to known pillar generation seeds.[/SIZE][/SIZE]
[SIZE=5 ] [SIZE=4 ]  end_spikes: [/SIZE ] [/SIZE ]
[SIZE=5 ] [SIZE=4 ]     # Whether this feature is enabled.[/SIZE][/SIZE]
[SIZE=5][SIZE=4]    enabled
: false [/SIZE ] [/SIZE ]
[SIZE=5 ] [SIZE=4 ]     # How the end spikes should be modified.[/SIZE][/SIZE]
[SIZE=5 ] [SIZE=4 ]     # "swap" means that it swaps the bedrock blocks of two spikes, but this comes at the downside of floating bedrock.[/SIZE][/SIZE]
[SIZE=5 ] [SIZE=4 ]     # "move" means that it moves a random bedrock block down, but makes the positions "illogical".[/SIZE][/SIZE]
[SIZE=5 ] [SIZE=4 ]     # At the moment there is no check against "move", so by default I recommend "move".[/SIZE][/SIZE]
[SIZE=5][SIZE=4]    mode
: move [/SIZE ] [/SIZE ]
[SIZE=5 ] [SIZE=4 ]     # The worlds end spikes are allowed to be modified in.[/SIZE][/SIZE]
[SIZE=5 ] [SIZE=4 ]    worlds: [/SIZE ] [/SIZE ]
[SIZE=5 ] [SIZE=4 ]      - "world_the_end" [/SIZE ] [/SIZE ]
[SIZE=5 ] [SIZE=4 ] [/SIZE ] [/SIZE ]
[SIZE=5 ] [SIZE=4 ]   # Modification of end cities' base tower (magenta_stained_glass -> magenta_stained_glass_pane).[/SIZE][/SIZE]
[SIZE=5 ] [SIZE=4 ]   # This check is only done once per end city; so if someone decides to 'fix' it, the effort is undone.[/SIZE][/SIZE]
[SIZE=5 ] [SIZE=4 ]  end_cities: [/SIZE ] [/SIZE ]
[SIZE=5 ] [SIZE=4 ]     # Whether this feature is enabled.[/SIZE][/SIZE]
[SIZE=5][SIZE=4]    enabled
: false [/SIZE ] [/SIZE ]
[SIZE=5 ] [SIZE=4 ]     # The worlds end cities are allowed to be modified in.[/SIZE][/SIZE]
[SIZE=5 ] [SIZE=4 ]    worlds: [/SIZE ] [/SIZE ]
[SIZE=5 ] [SIZE=4 ]      - "world_the_end" [/SIZE ] [/SIZE ]
[SIZE=5 ] [SIZE=4 ]


Requirements
• Spigot 1.20.4+ - Feel free to test on other versions and report back
• ProtocolLib 5.1+
Questions / Feedback
Feel free to ask or suggest anything in the discussion section of this resource.
I'm relatively active checking Spigot, so you can message me here. Additionally, you can add me on Discord as akshualy.
Resource Information
Author:
----------
Total Downloads: 9,502
First Release: Jul 15, 2020
Last Update: Jun 18, 2024
Category: ---------------
All-Time Rating:
13 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings