Validate Assets
You can use IsDataValid to generated BP compilation message/warning/error as you need (for example, to tell your designers they missed something).
Fix actions
In 5.5 there is a new “fix me” overridable methods that will run code when you click on the text (similar to engine “fix” clickable text), more info here.
Example:
TSharedRef<FTokenizedMessage> Message = FTokenizedMessage::Create(EMessageSeverity::Error);
Message->AddToken(FAssetNameToken::Create(GetPathNameSafe(Blueprint),
FText::FromString(FString::Printf(
TEXT("Prefab Reference Component %s doesn't have the default required struct FPSRequiredActorPrefabSpawnParameters (Required Spawn Prefab Parameters)."),
*FU_Utilities::GetNameWithoutTemplateSuffix(PRC->GetFName()).ToString()
))));
// Make a FixeController
TSharedRef<FMutuallyExclusiveFixSet> FixController = MakeShareable(new FMutuallyExclusiveFixSet());
// fix function
TFunction<FFixResult()> ApplyFix = [PRC]()
{
PRC->AddPrefabSpawnParametersStruct<FPSRequiredActorPrefabSpawnParameters>();
return FFixResult::Success();
};
// actual fixer
const TSharedRef<IFixer> Fixer = MakeFix(MoveTemp(ApplyFix));
// action message with fixer
FixController->Add(INVTEXT("Click to add the Required Spawn Prefab Parameters struct"), Fixer);
FixController->CreateTokens([Message](TSharedRef<FFixToken> FixToken)
{ Message->AddToken(FixToken);
});
// finally, add the message to the editor validator entries
Context.AddMessage(Message);
Result:
Validate project
You can use validators See CommonValidators