Skip to main content

Resource Pack Encryption

Nukkit-MOT supports the use of encrypted resource packs to protect your work. This guide will help you configure resource pack encryption in three simple steps.

Note for Beginners

This encryption is based on the AES symmetric algorithm. While it can effectively enhance the security of your resource pack, it cannot completely prevent professional methods such as packet sniffing from cracking it.

📦 Encrypt the Resource Pack

It is recommended to use the open-source command-line tool EncryptMyPack for encryption. The process is as follows:

  1. Download the Tool
    Download the latest version of the program from GitHub Releases.
  2. Prepare the Resource Pack
    • Must be in .zip format (you can directly rename a .mcpack file)
    • The root directory of the zip file must contain the manifest.json file
    • Supports including sub-packs (Sub Packs)
  3. Encryption

inputZip is the full name of the input zip file, e.g., example.zip

outputZip is the full name of the output zip file, e.g., example.zip

key is a custom 32-bit key. If no key is specified, the default key liulihaocai123456789123456789123 will be used.

EncryptMyPack.exe encrypt <inputZip> <outputZip> [key]
Important Reminder

Nukkit-MOT is only responsible for passing the key to the client and does not participate in the actual encryption/decryption process.

🔑 Configure the Encryption Key

Encryption keys are configured in the packs.yml file inside the server's resource_packs folder (the old <pack name>.mcpack.key sidecar files are no longer read). The file is generated automatically on first startup and is keyed by the pack's UUID, which you can find in the pack's manifest.json under header.uuid.

📁resource_packs
📄ExampleResourcePack.mcpack
📄packs.yml
# resource_packs/packs.yml
"12c2b614-796a-3d8e-9364-cb39c86cebfa":
key: "0123456789abcdefGHIJKLMNOPQRSTUV" # 32-bit encryption key
cdn: "https://cdn.example.com/packs/ExampleResourcePack.mcpack" # optional
  • key: the 32-bit encryption key for this pack. Leave empty for no encryption.
  • cdn (optional): a CDN download URL for this pack. The client tries downloading the pack from this URL first, automatically falling back to normal server chunk transfer if the CDN download fails.
NetEase Packs

Files named *.netease* are only sent to players using the NetEase client.

🔄 Restart the Server

After modifying the configuration, you must restart the server for the encryption to take effect (Nukkit-MOT only loads resource pack configurations at startup).

❓ FAQ

QuestionAnswer
Can the encrypted resource pack be cracked?It may be cracked by professional methods, but it is much more secure than an unencrypted resource pack.
Does encryption affect game performance?It does not affect client or server performance at all.
Are multiple encrypted packs supported?Yes, you can deploy multiple encrypted packs simultaneously — just add a section keyed by each pack's UUID in packs.yml.
Done!

Now, when your players load the resource pack, the client will automatically use the configured key to decrypt and load it.