Hello, I'm currently pre loading and instantiating all my assets at the begin of my game, and I store them in a Dictionary. Code (CSharp): private static void OnFactoryLoadedCompleted(AsyncOperationHandle<IList<IResourceLocation>> obj) { if (obj.Status == AsyncOperationStatus.Succeeded) { if (obj.Result != null) { foreach (var result in obj.Result) { Addressables.LoadAssetAsync<Object>(result).Completed += o => { store.Add(result.PrimaryKey, o.Result); }; } } isLoaded = true; } } I have AssetReferences on ScriptableObject that I want to instantiate. But AssetReference doens't hold the key to the Object, only the GUID. I need to use the key because I'm saving my game entities based on the key. I don't want to use the GUID to do so if I want to replace an object later with another one I can't force unity to regenerate the same GUID (or at least it will be more complicated) Any solution ? Thanks