Assets "saved with empty engine version" warning

I’ve migrated a few assets from my previous project and when packaging, log displays warnings like:

LogLinker:Warning: Asset '../../../../../../Unreal Projekty/eqTEST/Content/Potwory/Materialy/LightHouseBoss.uasset' has been saved with empty engine version. The asset will be loaded but may be incompatible.

How do i get rid of these warnings when i have pure Blueprint project? The project is working, but i have a lot of these warnings in my log. I have 4.6.1.

I too would like to remove these warnings from my log

In 4.7.1, these warning should disappear after resaving problematic assets. More info HERE.

So, there are 2 options:

  1. Remove & reimport these assets
  2. Open problematic assets, edit something inside and save them.

Had this same warning in 4.16.1 this resolved it for me

well that was easy

Just test with one of them, it works, thanks, i still have 339 warning(s) need to fix :slight_smile:

Thankyou SunMachineYanny. I ran the command you suggested and it worked very nicely so all my warnings are now gone. I would just add that the project must not be open for the command to work. It will run but have no effect if the project is open.
Where did you find out about this may I ask? I often feel there is a secret store of information that I am not privy to.

There are 2 options.

  1. You can batch resave your project. Close Unreal Editor and then run script:

C:\<PATH_TO_LAUNCHER_INSTALLS>\UE_<VERSION>\Engine\Binaries\Win64\UE4Editor-Cmd.exe C:\<PROJECT_PATH>\<PROJECT_NAME>.uproject -run=ResavePackages -OnlyUnversioned

  1. You can disable the warning in DefaultEngine.ini

    [Core.System]
    ZeroEngineVersionWarning=False

15 Likes

Tested option 1.), worked like a charm. Many hundreds warnings are now gone - thanks!

BTW, forgot to mention, did this with UE 4.26.2.

Fantastic that someine else has had problems you never thought was possible… so many ■■■■ pits that all of a sudden appears where you’re walking around in this engine.

Thanks a lot

This is by far the best suggestion.

One detail for UE5: UE4Editor-Cmd.exe is now UnrealEditor-Cmd.exe. Also, if you have a lot of assets, this could take a while.

That being said, this fixed all of my versioning issues. Thanks!

2 Likes

Script for 5.1 I wrote to fix this warning on 11K files. Before 5.1 package_name property was called otherwise, so will have to change it if want to use it for earlier versions.

The idea is just to use unreal.EditorAssetLibrary.save_asset instead of manual opening and saving. I save progress because it will crash sometimes because of memory lack or some specific file issues and then won’t have to run from 0, the fixed assets will be skipped.

import os

import unreal
import json

# Change me!
assets_to_ignore = [
    "Maps/Levels/Zedek.umap"
]
asset_root_dir = "/Game/"
json_progress_path = "C:/Users/JediKnight/Documents/Unreal Projects/ECR/Script/Python/Others/temp.json"

asset_reg = unreal.AssetRegistryHelpers.get_asset_registry()


def update_progress_json():
    with open(json_progress_path, "w") as f:
        json.dump({"processed": processed_paths}, f, ensure_ascii=False, indent=4)


def should_ignore_asset(asset_path):
    asset_path = str(asset_path).lower()
    for ignore_asset in assets_to_ignore:
        ignore_asset = ignore_asset.lower().replace(".uasset", "").replace(".umap", "")
        if asset_path.endswith(ignore_asset):
            return True
    return False


processed_paths = []

if os.path.exists(json_progress_path):
    with open(json_progress_path, "r") as f:
        data = json.load(f)
        processed_paths = data["processed"]
        assets_to_ignore += processed_paths

assets = asset_reg.get_assets_by_path(asset_root_dir, recursive=True)
for asset in assets:
    print("Got", asset.package_name)
    if should_ignore_asset(asset.package_name):
        print("Ignoring", asset.package_name)
        continue
    else:
        print("Not ignoring", asset.package_name)
        unreal.EditorAssetLibrary.save_asset(asset.package_name, False)
        print("Saved", asset.package_name)
        processed_paths.append(str(asset.package_name))
        update_progress_json()

The above script unfortunately didn’t work for me, I tried running the command with both “-OnlyUnversioned” and without, neither seemed to prevent the warnings during packaging after they finished execution. I’m upgrading my project from a custom version of UE to version 5.2, maybe that might have something to do with it, IDK.

In any case, what did work for me was to right click the folder(s) in the editor containing the unversioned assets and pressing “Resave All”. After that the warnings disappeared from packaging. I tried doing this on the content folder first but UE crashed, so I simply went one by one through the root folders in my project and resaved the ones containing the problematic assets. Note: Can take awhile.

2 Likes

Do i run this in cmd?

was getting really frustrated trying to run this in cmd and terminal. Finally got the script to work on using the ‘run’ app. It accepts spaces in the syntax, no need for underscores (worked for me on win 11)

1 Like