Behavior Tree "class not found, make sure it's saved"

Everytime, I start Unreal Editor, one of my nodes in Behavior Tree gets reseted and I need to manually restore it to the correct one. Not only this annoying, but also I cannot run a standalone game even if I correct the BT.

I verified the engine but that did not help me.
Could you point me out , what is wrong with my tree.

Thanks,

this is what I get everytime I start Unreal Editor

this is desired version:

Hello yateam,

I have a few questions for you that will help narrow down what issue it is that you are experiencing.

Quick questions:

  1. Can you reproduce this issue in a clean project?
  2. If so, could you provide a detailed set of steps to reproduce this issue on our end?
  3. Could you provide screen shots of any other blueprints that may be involved with this issue?
  1. & 2) - I haven’t tried in a clean project. I will do that later.

  2. I don’t use blueprints. My tasks are C++ classes based on UBTTask_BlackboardBase. Interesting thing that I have implemented a few of them - and they almost similar but for some reason only GoTo Task gives such results.

Hi Rudy, I was able to reproduce the issue in a clean project.

  1. File → New C++ Class
  2. Create class BTTask_GoTo : public BTTask_BlackboardBase
  3. Create behavior tree. Add Selector to the root node. Add newly created GoTo task as a child to the Selector node. Save, close the editor
  4. Open editor, open the tree - You can see the screenshot I attached earlier.

My temporal workaround for the issue is to create task with a different name. I chose BTTask_GoToDestination. Seems like working fine for me.

Hello yateam,

I have a few more questions to clarify a few of the steps that you gave in your last comment.

Quick questions:

  1. Could you provide the code that is been used that may be involved with this issue?
  2. When you say create a class BTTask_Goto, did you mean for me to create a class derived from BTTask_MoveTo?

For the clean project where I tested it, it is really empty.

// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "BehaviorTree/Tasks/BTTask_BlackboardBase.h"
#include "BTTask_GoTo.generated.h"

/**
 * 
 */
UCLASS()
class KOSMOFRONT_API UBTTask_GoTo : public UBTTask_BlackboardBase
{
	GENERATED_BODY()
	
};

As you see I extended it from UBTTask_BlackboardBase, not from MoveTo.

After I renamed it from UBTTask_GoTo to UBTTask_GoToDestination, everything went fine.

Hey yateam-

I was able to reproduce the error in your screenshot. As you mentioned it seems to be related to the name given to the class. I’ve submitted a report to investigate this further (UE-20918).

Cheers

Thank you!

I’ve encountered the same problem with version 5.0.3-20979098
I noticed some of the custom BTTask/BTService did not load into UE when opening a project, causing the references to “not be found” in the behaviour tree.
I deleted the /binaries and /intermediate folder in the project folder then right-click on project file → generate visual studio project files. Then double-click on project file and rebuild the binaries when prompted. This seemed to fix the problem for me (all classes properly loaded and found in BTtree) when reopening project after closing. IE the class naming was not involved for me.