How to remove software cursor and use a default one?

After calling SetMouseCursorWidget on PlayerController to set a custom mouse cursor:

How to remove it and get back to the default one?

After looking into the source code, apparently, you can’t from blueprint and you’ll need a little bit of help from C++. Add this to your blueprint function library header:

	UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"))
	static void RemoveSoftwareCursor(const UObject* WorldContextObject);

And then implementation:

void UMyBlueprintFunctionLibrary::RemoveSoftwareCursor(const UObject* WorldContextObject) {
	auto PlayerController = UGameplayStatics::GetPlayerController(WorldContextObject, 0);
	PlayerController->GetLocalPlayer()->ViewportClient->SetSoftwareCursorWidget(EMouseCursor::Default, nullptr);
}

Then in blueprints you just call it:

Don’t forget that you need to compile your project before this function will appear in blueprints