Encrypt UAsset Files

In Project Settings, under Project - Crypto, there is an option for “Encrypt UAsset Files.” If enabled, what exactly does this option do? Is it something that I should enable if I plan on making and distributing a build?

I wonder if this makes any difference for the end product since there are hundreds of file unpackers on the web. Maybe it has another purpose?

2 Likes

I think it’s for encrypting the PAK file. But I wouldn’t bother. Even if you successfully manage to do this, and nobody manages to unpick it ( which as @Roy_Wierer.Seda145 is unlikely ), you haven’t stopped people from stealing the game, just seeing your assets.

Piracy of the game is the main issue, and there’s nothing you can do about that. That’s why games like Fortnite operate by making money after you have the game. It’s the only way you can stop these sados…

1 Like

So, I had to look some stuff up and I wanted to share what I found. If I’ve made a mistake, please correct me.

A PAK file is a compressed archive file. Like a zip file, but for larger files.
An unpacker is program used to extract a PAK file.

So, it seems to me that if I don’t encrypt my UAsset files, then all my project assets can be duplicated and distributed by anyone with a copy of my build. :scream:

Is this correct? If so, shouldn’t UAsset file encryption be automatic and compulsory?

This is correct, but if you encrypt it, it makes no difference. People can just decrypt it and then unpack it.

Why wouldn’t it make a difference? I’m no computer cryptography expert, but I was under the impression that decryption can take days or years (depending on the strength of the encryption algorithm), the latter being a significant amount of time.

They don’t actually decrypt it :slight_smile:

The engine source is readily available. The part of the engine that decrypt the PAK is well known. Someone who knows what they’re doing can easily get the decryption key from memory during a game run.

Then they can read the PAK.

You can encrypt your PAK and use copy protection on the rest of the executable. When you release your game, the next day a cracked version will be available. There’s nothing you can do about it. There are a lot of easy-to-use tools to enable this sort of behavior.

1 Like

Thanks for taking the time to explain.

So, for my question “Is it(Encrypt UAsset Files) something that I should enable if I plan on making and distributing a build?” I take the answer to be:

If I want to protect my asset files from most people, then “Yes.” Someone who knows what they’re doing will always be able to access the files.

To make a direct answer, I would say: It’s a good idea to take some reasonable steps to encrypt your PAK, and copy protect your EXE. But be aware that everything is still available to anyone with some determination.

1 Like

There are tons of ways. Even if you encrypt everything your game is going to use the files and you can always dump it from the RAM.

3 Likes