So i want to try to improve something in blueprint and add new bool variable into each variable made when u click the “+Variable” button. But how do i get access to that information and how do you know that function is the one? Been reading some documentation and theres so little info on how to extend the editor i just need to know what the functions do and small example of what are some of there arguments it needs. I was able to learn houdini Vex fast cause they have good documentation.
“Extending the Editor” basically means downloading engine source and modifying it there. Conveniently (or not), that’s also the best place for documentation. UE4 changes so much that it’s super difficult for them to keep the web documentation up to date. It’s just easier to read the source and follow the code. Toss in a break point, see what the callstack is, step through functions, etc.
If you’re trying to modify the Blueprint Editor, all that functionality is in Engine/Kismet/Private (most of it in BlueprintEditor.cpp). I’ve written lots of custom editors built around the basic Blueprint Editor, but there’s no easy way to learn it other than to get your feet wet and just play with things.
As much i wish it wasnt like that it seem it not bad i guess. I went through 80% Programming with C++ | Unreal Engine Documentation (Programming Guide) and going back and looking at the engine source code its starting to look less confusing. As you said the BlueprintEditor.cpp API looks like what im looking for and its funny how i went through it before long ago and didnt understand what i was looking at so i cancel it out and went to learning other things. But now coming back with little bit more knowledge on c++ im slowly getting there. But also i dont really wanna add onto the Engine source file but onto a plugin.
Sounds like you want to use EditCondition property flag, but you didn’t really explain what you’re trying to do.
I just want to add an extra UPROPERTY to bool variables only and check each variable what Category its in or if there is none. Was reading EditCondition but doesnt look like what im looking for unless im misunderstanding something. IDetailPropertyRow::EditCondition | Unreal Engine Documentation ← is this the EditCondition you were talking about
I could implement it from the engine source file. When i use the Widget Reflector, Category is in BlueprintDetailsCustomization.cpp. But i would prefer to use a plugin.
Line 500 in cpp file:
PopulateCategories(MyBlueprint.Pin().Get(), CategorySource); TSharedPtr<SComboButton> NewComboButton; TSharedPtr<SListView<TSharedPtr<FText>>> NewListView; TSharedPtr<SToolTip> CategoryTooltip = IDocumentation::Get()->CreateToolTip(LOCTEXT("EditCategoryName_Tooltip", "The category of the variable; editing this will place the variable into another category or create a new one."), NULL, DocLink, TEXT("Category")); Category.AddCustomRow( LOCTEXT("CategoryLabel", "Category") ) .Visibility(GetPropertyOwnerBlueprint()? EVisibility::Visible : EVisibility::Hidden) .NameContent() SNew(STextBlock) .Text( LOCTEXT("CategoryLabel", "Category") ) .ToolTip(CategoryTooltip) .Font( DetailFontInfo ) ]
Ok so i did some changes to the Engine/Source file and im sure i did everything right in terms of code there no error and getting 0 flags when building solution. But im not getting a slate checkbox to show up in teh blueprint editor. Does anyone know why? if i remember clearly i dont know if this is true but the engine as something that protects it from code being modified. If so how can i switch that.
Nvm i know why it wasnt working. But now i have changed the direction on my approach for this implementation and moved from adding it to the engine source to blueprintpure function. More reasonable approach to giving the user more control and also less code for something simple,so why add it to the engine.