Asset loading (Available or Not Available)?

So i have this issue where assets is not available in-game e.g: Data table or Weapon Mesh or something else.
Everything works fine except when first starting the Editor i may need to double click on e.g: Data Table asset or BP.

And first then will the asset be loaded in-game “available”, now i partly know how to fix this issue by Loading the object/ asset dynamicly using LoadObjFromPath(.) but reading over some threads and docs i think i may need to do some Asynchronous Asset Loading?

Is it possible someone have the time to explain this concept to me a bit?
The docs on the subject is very confusing and am strugeling to figuer out if its the correct way to go.

Thanks for any help on the subject.

Threads go bump in the night.

I Whould aprichiate if someone could confirm this, or had the time to explain it a bit.

Thanks

Hey -

I’m having a bit of trouble understanding your questions. When you say that the asset is not available in-game do you mean that it is not showing up when you run play in editor? Also, Are you double clicking the asset in the content browser or the actual asset placed in the level? Let me know if you have any other information to include.

Cheers

Hello sorry for not beeing clear enofe.

This is the secnario: (Presisten on all available versions 4.x.)

I open up my project normaly.

I Press Play in Editor and the game launches.

In my UI i have a liist of items the player can craft that is retrived from a Data Table (FString`s).

At this point no strings are added to the list (its like they dont excist.).

Stoping the PiE seassion and navegating to the Data Table asset in the Content Browser.

I double click on the Data Table asset in the Content Browser (i just close the “Table Editor”).

I Start a new PiE session and now the strings are added.

I can run the game as many times as i want and Tabels will only be available once i have double clicked on the Data Table asset in the content browser.
I had the same type of issue some months back with a weapon mesh.
I could solve the problem by ether placing one weapon in the level, double click on the Weapon Blueprint (like above.), Or use ::StaticLoadObject(…) before spawning the asset.

It sounds as though a reference to the asset isn’t getting set properly until the asset is accessed directly. Do you see the same behavior if you try doing a Standalone game rather than PIE? Also, if you recreate the Data Table (create a new one and copy the info) does the same thing occur?

Hello that was a good qustion and running standalone i get no data what so ever. And re-creating and/or re-importing and the same issue ocures.

I followed the documentation on
Data Driven Gameplay Elements in Unreal Engine | Unreal Engine 5.1 Documentation .

My data is stored in a singelton class like shown using the same method of access.

And member type look like this.

// Array of General Crafting Recipts Data Tabels index == crafting skill level -1
    	UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Data Singleton, Data Tabels")
    		TArray<TAssetPtr<UDataTable>> GeneralCraftingRecipts;

Am thinking that am not loading the asset correctly (using TAssetPtr wrongly).
The resson for this is that in a difrent member for items,i have a hard pointer and i get all data of that one except one thats is for a TAssetPtr to a Slate Brush.

// Holds list of general item information for all iems in the game.
	UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Data Singleton, Data Tabels")
		UDataTable* MyMasterItemList;

Ok so i more or less solved this issue by in essence using

UObject::StaticLoadObject(,) With the String Refrence of the TAssetPtr.

If the TAssetPtrObject->IsValidLowLevel() == false;

Like the doc say :wink: i know i was doing something wrong.

Am just wondering am not using the FStreamableManager at this point.

What is the down sides to this?

Hey -

I’m glad to hear that you were able to resolve your problem. Your question about using FStreamableManager would be best suited for the forums where you can get community feedback.

Cheers

Am ahead of you on that one :slight_smile: