Announcement

Collapse
No announcement yet.

Blueprint Corruption with DataTables when re-opening a project

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Blueprint Corruption with DataTables when re-opening a project

    UPDATE: Still an issue in official 4.5



    Here is a video demonstration of the issue I am experiencing. Every time I reopen a saved project that uses the Get Data Table Row node the links to use the out row are are broken. In the video I demonstrate how I must first select the same Data Table that is already in the node to reconnect it.

    I've made a bug report on this in the past, but I figured it might be worth revisiting this since I'm still having this issue in the 4.5 preview. At this point I don't know if it's a bug or if I simply don't know how to use DataTables properly so I want to talk about this on the forums because I feel there is a lot of confusion about DataTables and this may be helpful to someone else in the future.

    As a sanity check I've set up a brand new blank project(the one shown in the video) that uses the example from this blog post: https://www.unrealengine.com/blog/dr...ata-from-excel

    To test the functionality of GetDataTableRow I created an actor blueprint that prints XPtoLvl of a given row to the screen.


    To implement the structure I used a helpful Answer Hub post which explains in detail how it should be implemented. This is the exact code that I used to implement the structure.

    Here is how the .h file is implemented:
    Code:
    #pragma once
    #include "LevelUp.generated.h"
    
    /** Structure that defines a level up table entry */
    USTRUCT(BlueprintType)
    struct FLevelUpData : public FTableRowBase
    {
    	GENERATED_USTRUCT_BODY()
    
    public:
    
    	FLevelUpData()
    		: XPtoLvl(0)
    		, XP(0)
    	{}
    
    	/** The 'Name' column is the same as the XP Level */
    
    	/** XP to get to the given level from the previous level */
    	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = LevelUp)
    		int32 XPtoLvl;
    
    	/** This was the old property name (represented total XP) */
    	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = LevelUp)
    		int32 XP;
    
    	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = LevelUp)
    		TAssetPtr<UTexture> Asset;
    };
    
    
    UCLASS(Abstract, CustomConstructor)
    class ULevelUp : public UObject
    {
    	GENERATED_UCLASS_BODY()
    
    	ULevelUp(const class FPostConstructInitializeProperties& PCIP) : Super(PCIP) {}
    };
    And the .cpp(as recommended by the Answer Hub post I deleted all references to the automatically generated constructor and destructor):
    Code:
    // Fill out your copyright notice in the Description page of Project Settings.
    
    #include "DataTableTest.h"
    #include "LevelUp.h"
    Again, not sure if this is a bug that just hasn't been fixed yet, if it's an issue with my setup, or if I just don't know how to use DataTables. I've tried to make this as clean a project as possible and followed the example provided in the article as closely as possible.

    With regards to my setup. I am using Unreal Engine 4.5 preview, a blank project with the alterations I've mentioned above, and Visual Studio 2013. I have reinstalled UE4 and Visual Studio recently trying to remedy this bug to no avail. Any help will be greatly appreciated! I'm working on a dialogue system that uses Data Tables, but this and the inability to dynamically change DataTables is proving to be quite the show stopper...

    If you're interested in seeing the state of it now I recently posted a video about it. I'd love to put this on the Marketplace at some point, but I can't proceed with my vision for the project with my current situation and the state of Data Tables.
    http://youtu.be/ff7Yva-0MmM
    Last edited by Spade; 10-15-2014, 02:36 PM.
Working...
X